+
+MUTATOR_HOOKABLE(SV_StartFrame);
+ // runs globally each server frame
+
+MUTATOR_HOOKABLE(SetModname);
+ // OUT
+ string modname; // name of the mutator/mod if it warrants showing as such in the server browser
+
+MUTATOR_HOOKABLE(Item_Spawn);
+ // called for each item being spawned on a map, including dropped weapons
+ // return 1 to remove an item
+ // INPUT
+ entity self; // the item
+
+MUTATOR_HOOKABLE(SetWeaponreplace);
+ // IN
+ entity self; // map entity
+ entity other; // weapon info
+ // IN+OUT
+ string ret_string;
+
+MUTATOR_HOOKABLE(Item_RespawnCountdown);
+ // called when an item is about to respawn
+ // INPUT+OUTPUT:
+ string item_name;
+ vector item_color;
+
+MUTATOR_HOOKABLE(Item_GiveTo);
+ // called when an item is given to a player
+ entity giveplayer;
+ entity giveitem;
+ float player_wswitch;
+ float player_pickedup;
+
+MUTATOR_HOOKABLE(BotShouldAttack);
+ // called when a bot checks a target to attack
+ // INPUT
+ entity checkentity;
+
+MUTATOR_HOOKABLE(PortalTeleport);
+ // called whenever a player goes through a portal gun teleport
+ // allows you to strip a player of an item if they go through the teleporter to help prevent cheating
+ // INPUT
+ entity self;
+
+MUTATOR_HOOKABLE(HelpMePing);
+ // called whenever a player uses impulse 33 (help me) in cl_impulse.qc
+ // normally help me ping uses self.waypointsprite_attachedforcarrier,
+ // but if your mutator uses something different then you can handle it
+ // in a special manner using this hook
+ // INPUT
+ entity self; // the player who pressed impulse 33
+
+MUTATOR_HOOKABLE(VehicleEnter);
+ // called when a player enters a vehicle
+ // allows mutators to set special settings in this event
+ // INPUT
+ entity vh_player; // player
+ entity vh_vehicle; // vehicle
+
+MUTATOR_HOOKABLE(VehicleExit);
+ // called when a player exits a vehicle
+ // allows mutators to set special settings in this event
+ // INPUT
+ entity vh_player; // player
+ entity vh_vehicle; // vehicle
+
+MUTATOR_HOOKABLE(AbortSpeedrun);
+ // called when a speedrun is aborted and the player is teleported back to start position
+ // INPUT
+ entity self; // player
+
+MUTATOR_HOOKABLE(ItemTouch);
+ // called at when a item is touched. Called early, can edit item properties.
+ entity self; // item
+ entity other; // player
+
+MUTATOR_HOOKABLE(ClientConnect);
+ // called at when a player connect
+ entity self; // player
+
+MUTATOR_HOOKABLE(HavocBot_ChooseRule);
+ entity self;