In module_items some of the weapons uses triggers. Like the musketoon:
["russian_gusarskiy_karabin", "Musketoon", [("Russian_gusarskiy_karabin",0)], itp_type_crossbow |itp_merchandise|itp_primary|itp_two_handed|itp_cant_reload_while_moving_mounted|itp_cant_reload_while_moving|itp_next_item_as_melee ,itcf_shoot_musket|itcf_carry_crossbow_back,
683 , weight(3.0)|difficulty(0)|spd_rtng(18) | shoot_speed(180) | thrust_damage(70 ,pierce)|max_ammo(1)|accuracy(54),imodbits_none,
[(ti_on_weapon_attack, [
(this_or_next|multiplayer_is_server),
(neg|game_in_multiplayer_mode),
(store_trigger_param_1,":agent_id"),
(eq,":agent_id",":agent_id"), # fix compiler bug warning.
(copy_position,pos22,pos1),
(position_move_y,pos22,110),
(try_for_range,":unused",0,10), #4 extra bullets + 1 original = 10 bullets in one shot :D
(copy_position,pos23,pos22),
(store_random_in_range,":x_change",-3,3),
(store_random_in_range,":z_change",-3,3),
(position_rotate_x, pos23, ":x_change"),
(position_rotate_z, pos23, ":z_change"),
(set_fixed_point_multiplier,100),
(store_random_in_range,":bullet_speed",12000,16000),
(store_random_in_range, ":chance", 0, 100),
(try_begin),
(gt,":chance",95),
(add_missile, ":agent_id", pos23, ":bullet_speed", "itm_cannon_explosion_dummy", 0, "itm_explosive_bullets", 0),
(else_try),
(add_missile, ":agent_id", pos23, ":bullet_speed", "itm_cannon_canister_dummy", 0, "itm_canister_ammo", 0),
(try_end),
(try_end),
])]],[/spoiler]
So one of the triggers is 'ti_on_item_unwielded', you might be able to do something with it. For example add a imaginary item etc