This hookscript does some really neat unexpected (to me at least) things, including firing when the steal inventory opens (means we can put an additional barrier to stealing), when dynamite is set and dropped (weirdly this is the same value as reading a book for some reason), and when a weapon or a set of armor is equiped. Most of these have unique "reasons" (the fourth sfall argument). I made a little list for those interested that they can copy into their define.h or whatever. I think I got all of them, but still might be some hidden gems.
take_or_place_container includes when stealing something (I guess also planting, though haven't tested that), and item_destroyed and item_removed are the ones that get fired by scripts.
Code:
#define consume_drug 4666772
#define drop_item 4831349
#define take_or_place_container 4683293
#define read_book 4666865
#define equip_armor 4658121
#define equip_weapon 4658675
#define unload_weapon 4667030
#define load_weapon 4831349
#define use_drug_on_someone 4834866
#define steal_view 4668206
#define use_or_drop_live_dynamite 4666865
#define item_destroyed 4543215
#define item_removed 4548572
#define armor_equiped 4651961
#define left_hand_equiped 4651899
#define right_hand_equiped 4651934
take_or_place_container includes when stealing something (I guess also planting, though haven't tested that), and item_destroyed and item_removed are the ones that get fired by scripts.