diff --git a/docs/index.html b/docs/index.html
index a862b0676..24a22f281 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -18640,6 +18640,16 @@
Entity
CallbackId |
+set_pre_create_rendering_info(function fun) |
+Hooks before the virtual function. The callback signature is bool create_rendering_info(Entity self) |
+
+
+CallbackId |
+set_post_create_rendering_info(function fun) |
+Hooks after the virtual function. The callback signature is nil create_rendering_info(Entity self) |
+
+
+CallbackId |
set_pre_update_state_machine(function fun) |
Hooks before the virtual function. The callback signature is bool update_state_machine(Entity self) |
@@ -18680,6 +18690,46 @@ Entity
CallbackId |
+set_pre_can_be_pushed(function fun) |
+Hooks before the virtual function. The callback signature is optional<bool> can_be_pushed(Entity self) |
+
+
+CallbackId |
+set_post_can_be_pushed(function fun) |
+Hooks after the virtual function. The callback signature is nil can_be_pushed(Entity self) |
+
+
+CallbackId |
+set_pre_is_in_liquid(function fun) |
+Hooks before the virtual function. The callback signature is optional<bool> is_in_liquid(Entity self) Virtual function docs: Returns true if entity is in water/lava |
+
+
+CallbackId |
+set_post_is_in_liquid(function fun) |
+Hooks after the virtual function. The callback signature is nil is_in_liquid(Entity self) Virtual function docs: Returns true if entity is in water/lava |
+
+
+CallbackId |
+set_pre_set_invisible(function fun) |
+Hooks before the virtual function. The callback signature is bool set_invisible(Entity self, bool value) |
+
+
+CallbackId |
+set_post_set_invisible(function fun) |
+Hooks after the virtual function. The callback signature is nil set_invisible(Entity self, bool value) |
+
+
+CallbackId |
+set_pre_friction(function fun) |
+Hooks before the virtual function. The callback signature is optional<float> friction(Entity self) |
+
+
+CallbackId |
+set_post_friction(function fun) |
+Hooks after the virtual function. The callback signature is nil friction(Entity self) |
+
+
+CallbackId |
set_pre_get_held_entity(function fun) |
Hooks before the virtual function. The callback signature is optional<Entity> get_held_entity(Entity self) |
@@ -18700,6 +18750,16 @@ Entity
CallbackId |
+set_pre_activate(function fun) |
+Hooks before the virtual function. The callback signature is bool activate(Entity self, Entity activator) Virtual function docs: Activates a button prompt (with the Use door/Buy button), e.g. buy shop item, activate drill, read sign, interact in camp, ... get_entity(<udjat socket uid>):activate(players[1]) (make sure player 1 has the udjat eye though) |
+
+
+CallbackId |
+set_post_activate(function fun) |
+Hooks after the virtual function. The callback signature is nil activate(Entity self, Entity activator) Virtual function docs: Activates a button prompt (with the Use door/Buy button), e.g. buy shop item, activate drill, read sign, interact in camp, ... get_entity(<udjat socket uid>):activate(players[1]) (make sure player 1 has the udjat eye though) |
+
+
+CallbackId |
set_pre_on_collision2(function fun) |
Hooks before the virtual function. The callback signature is bool on_collision2(Entity self, Entity other_entity) |
@@ -18708,6 +18768,56 @@ Entity
set_post_on_collision2(function fun) |
Hooks after the virtual function. The callback signature is nil on_collision2(Entity self, Entity other_entity) |
+
+CallbackId |
+set_pre_walked_on(function fun) |
+Hooks before the virtual function. The callback signature is bool walked_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_walked_on(function fun) |
+Hooks after the virtual function. The callback signature is nil walked_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_walked_off(function fun) |
+Hooks before the virtual function. The callback signature is bool walked_off(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_walked_off(function fun) |
+Hooks after the virtual function. The callback signature is nil walked_off(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_ledge_grab(function fun) |
+Hooks before the virtual function. The callback signature is bool ledge_grab(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_ledge_grab(function fun) |
+Hooks after the virtual function. The callback signature is nil ledge_grab(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_stood_on(function fun) |
+Hooks before the virtual function. The callback signature is bool stood_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_stood_on(function fun) |
+Hooks after the virtual function. The callback signature is nil stood_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_init(function fun) |
+Hooks before the virtual function. The callback signature is bool init(Entity self) |
+
+
+CallbackId |
+set_post_init(function fun) |
+Hooks after the virtual function. The callback signature is nil init(Entity self) |
+
IceSlidingSound
Derived from Entity LogicalSound
@@ -25024,6 +25134,36 @@ Movable
set_post_damage(function fun) |
Hooks after the virtual function. The callback signature is nil damage(Movable self, int damage_dealer_uid, int damage_amount, int stun_time, float velocity_x, float velocity_y, int iframes) Virtual function docs: Damage the movable by the specified amount, stuns and gives it invincibility for the specified amount of frames and applies the velocities Returns: true if entity was affected, damage_dealer should break etc. false if the event should be ignored by damage_dealer? |
+
+CallbackId |
+set_pre_apply_movement(function fun) |
+Hooks before the virtual function. The callback signature is bool apply_movement(Movable self) |
+
+
+CallbackId |
+set_post_apply_movement(function fun) |
+Hooks after the virtual function. The callback signature is nil apply_movement(Movable self) |
+
+
+CallbackId |
+set_pre_check_is_falling(function fun) |
+Hooks before the virtual function. The callback signature is bool check_is_falling(Movable self) |
+
+
+CallbackId |
+set_post_check_is_falling(function fun) |
+Hooks after the virtual function. The callback signature is nil check_is_falling(Movable self) |
+
+
+CallbackId |
+set_pre_process_input(function fun) |
+Hooks before the virtual function. The callback signature is bool process_input(Movable self) |
+
+
+CallbackId |
+set_post_process_input(function fun) |
+Hooks after the virtual function. The callback signature is nil process_input(Movable self) |
+
MovingIcon
Derived from Entity Movable
@@ -27362,6 +27502,11 @@ ENTITY_OVERRIDE
|
+CREATE_RENDERING_INFO |
+1 |
+ |
+
+
UPDATE_STATE_MACHINE |
2 |
|
@@ -27382,6 +27527,26 @@ ENTITY_OVERRIDE
|
+CAN_BE_PUSHED |
+10 |
+ |
+
+
+IS_IN_LIQUID |
+12 |
+ |
+
+
+SET_INVISIBLE |
+15 |
+ |
+
+
+FRICTION |
+17 |
+ |
+
+
GET_HELD_ENTITY |
22 |
|
@@ -27392,16 +27557,61 @@ ENTITY_OVERRIDE
|
+ACTIVATE |
+25 |
+ |
+
+
ON_COLLISION2 |
26 |
|
+WALKED_ON |
+29 |
+ |
+
+
+WALKED_OFF |
+30 |
+ |
+
+
+LEDGE_GRAB |
+31 |
+ |
+
+
+STOOD_ON |
+32 |
+ |
+
+
+INIT |
+36 |
+ |
+
+
DAMAGE |
48 |
|
+APPLY_MOVEMENT |
+71 |
+ |
+
+
+CHECK_IS_FALLING |
+75 |
+ |
+
+
+PROCESS_INPUT |
+77 |
+ |
+
+
FLOOR_UPDATE |
38 |
|
diff --git a/docs/light.html b/docs/light.html
index 4374f541d..62cf076de 100644
--- a/docs/light.html
+++ b/docs/light.html
@@ -18640,6 +18640,16 @@ Entity
CallbackId |
+set_pre_create_rendering_info(function fun) |
+Hooks before the virtual function. The callback signature is bool create_rendering_info(Entity self) |
+
+
+CallbackId |
+set_post_create_rendering_info(function fun) |
+Hooks after the virtual function. The callback signature is nil create_rendering_info(Entity self) |
+
+
+CallbackId |
set_pre_update_state_machine(function fun) |
Hooks before the virtual function. The callback signature is bool update_state_machine(Entity self) |
@@ -18680,6 +18690,46 @@ Entity
CallbackId |
+set_pre_can_be_pushed(function fun) |
+Hooks before the virtual function. The callback signature is optional<bool> can_be_pushed(Entity self) |
+
+
+CallbackId |
+set_post_can_be_pushed(function fun) |
+Hooks after the virtual function. The callback signature is nil can_be_pushed(Entity self) |
+
+
+CallbackId |
+set_pre_is_in_liquid(function fun) |
+Hooks before the virtual function. The callback signature is optional<bool> is_in_liquid(Entity self) Virtual function docs: Returns true if entity is in water/lava |
+
+
+CallbackId |
+set_post_is_in_liquid(function fun) |
+Hooks after the virtual function. The callback signature is nil is_in_liquid(Entity self) Virtual function docs: Returns true if entity is in water/lava |
+
+
+CallbackId |
+set_pre_set_invisible(function fun) |
+Hooks before the virtual function. The callback signature is bool set_invisible(Entity self, bool value) |
+
+
+CallbackId |
+set_post_set_invisible(function fun) |
+Hooks after the virtual function. The callback signature is nil set_invisible(Entity self, bool value) |
+
+
+CallbackId |
+set_pre_friction(function fun) |
+Hooks before the virtual function. The callback signature is optional<float> friction(Entity self) |
+
+
+CallbackId |
+set_post_friction(function fun) |
+Hooks after the virtual function. The callback signature is nil friction(Entity self) |
+
+
+CallbackId |
set_pre_get_held_entity(function fun) |
Hooks before the virtual function. The callback signature is optional<Entity> get_held_entity(Entity self) |
@@ -18700,6 +18750,16 @@ Entity
CallbackId |
+set_pre_activate(function fun) |
+Hooks before the virtual function. The callback signature is bool activate(Entity self, Entity activator) Virtual function docs: Activates a button prompt (with the Use door/Buy button), e.g. buy shop item, activate drill, read sign, interact in camp, ... get_entity(<udjat socket uid>):activate(players[1]) (make sure player 1 has the udjat eye though) |
+
+
+CallbackId |
+set_post_activate(function fun) |
+Hooks after the virtual function. The callback signature is nil activate(Entity self, Entity activator) Virtual function docs: Activates a button prompt (with the Use door/Buy button), e.g. buy shop item, activate drill, read sign, interact in camp, ... get_entity(<udjat socket uid>):activate(players[1]) (make sure player 1 has the udjat eye though) |
+
+
+CallbackId |
set_pre_on_collision2(function fun) |
Hooks before the virtual function. The callback signature is bool on_collision2(Entity self, Entity other_entity) |
@@ -18708,6 +18768,56 @@ Entity
set_post_on_collision2(function fun) |
Hooks after the virtual function. The callback signature is nil on_collision2(Entity self, Entity other_entity) |
+
+CallbackId |
+set_pre_walked_on(function fun) |
+Hooks before the virtual function. The callback signature is bool walked_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_walked_on(function fun) |
+Hooks after the virtual function. The callback signature is nil walked_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_walked_off(function fun) |
+Hooks before the virtual function. The callback signature is bool walked_off(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_walked_off(function fun) |
+Hooks after the virtual function. The callback signature is nil walked_off(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_ledge_grab(function fun) |
+Hooks before the virtual function. The callback signature is bool ledge_grab(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_ledge_grab(function fun) |
+Hooks after the virtual function. The callback signature is nil ledge_grab(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_stood_on(function fun) |
+Hooks before the virtual function. The callback signature is bool stood_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_post_stood_on(function fun) |
+Hooks after the virtual function. The callback signature is nil stood_on(Entity self, Entity*) |
+
+
+CallbackId |
+set_pre_init(function fun) |
+Hooks before the virtual function. The callback signature is bool init(Entity self) |
+
+
+CallbackId |
+set_post_init(function fun) |
+Hooks after the virtual function. The callback signature is nil init(Entity self) |
+
IceSlidingSound
Derived from Entity LogicalSound
@@ -25024,6 +25134,36 @@ Movable
set_post_damage(function fun) |
Hooks after the virtual function. The callback signature is nil damage(Movable self, int damage_dealer_uid, int damage_amount, int stun_time, float velocity_x, float velocity_y, int iframes) Virtual function docs: Damage the movable by the specified amount, stuns and gives it invincibility for the specified amount of frames and applies the velocities Returns: true if entity was affected, damage_dealer should break etc. false if the event should be ignored by damage_dealer? |
+
+CallbackId |
+set_pre_apply_movement(function fun) |
+Hooks before the virtual function. The callback signature is bool apply_movement(Movable self) |
+
+
+CallbackId |
+set_post_apply_movement(function fun) |
+Hooks after the virtual function. The callback signature is nil apply_movement(Movable self) |
+
+
+CallbackId |
+set_pre_check_is_falling(function fun) |
+Hooks before the virtual function. The callback signature is bool check_is_falling(Movable self) |
+
+
+CallbackId |
+set_post_check_is_falling(function fun) |
+Hooks after the virtual function. The callback signature is nil check_is_falling(Movable self) |
+
+
+CallbackId |
+set_pre_process_input(function fun) |
+Hooks before the virtual function. The callback signature is bool process_input(Movable self) |
+
+
+CallbackId |
+set_post_process_input(function fun) |
+Hooks after the virtual function. The callback signature is nil process_input(Movable self) |
+
MovingIcon
Derived from Entity Movable
@@ -27362,6 +27502,11 @@ ENTITY_OVERRIDE
|
+CREATE_RENDERING_INFO |
+1 |
+ |
+
+
UPDATE_STATE_MACHINE |
2 |
|
@@ -27382,6 +27527,26 @@ ENTITY_OVERRIDE
|
+CAN_BE_PUSHED |
+10 |
+ |
+
+
+IS_IN_LIQUID |
+12 |
+ |
+
+
+SET_INVISIBLE |
+15 |
+ |
+
+
+FRICTION |
+17 |
+ |
+
+
GET_HELD_ENTITY |
22 |
|
@@ -27392,16 +27557,61 @@ ENTITY_OVERRIDE
|
+ACTIVATE |
+25 |
+ |
+
+
ON_COLLISION2 |
26 |
|
+WALKED_ON |
+29 |
+ |
+
+
+WALKED_OFF |
+30 |
+ |
+
+
+LEDGE_GRAB |
+31 |
+ |
+
+
+STOOD_ON |
+32 |
+ |
+
+
+INIT |
+36 |
+ |
+
+
DAMAGE |
48 |
|
+APPLY_MOVEMENT |
+71 |
+ |
+
+
+CHECK_IS_FALLING |
+75 |
+ |
+
+
+PROCESS_INPUT |
+77 |
+ |
+
+
FLOOR_UPDATE |
38 |
|
diff --git a/docs/src/includes/_enums.md b/docs/src/includes/_enums.md
index b4464ff8f..0853597b3 100644
--- a/docs/src/includes/_enums.md
+++ b/docs/src/includes/_enums.md
@@ -227,14 +227,28 @@ Name | Data | Description
Name | Data | Description
---- | ---- | -----------
[DTOR](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.DTOR) | 0 |
+[CREATE_RENDERING_INFO](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.CREATE_RENDERING_INFO) | 1 |
[UPDATE_STATE_MACHINE](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.UPDATE_STATE_MACHINE) | 2 |
[KILL](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.KILL) | 3 |
[ON_COLLISION1](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.ON_COLLISION1) | 4 |
[DESTROY](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.DESTROY) | 5 |
+[CAN_BE_PUSHED](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.CAN_BE_PUSHED) | 10 |
+[IS_IN_LIQUID](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.IS_IN_LIQUID) | 12 |
+[SET_INVISIBLE](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.SET_INVISIBLE) | 15 |
+[FRICTION](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.FRICTION) | 17 |
[GET_HELD_ENTITY](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.GET_HELD_ENTITY) | 22 |
[TRIGGER_ACTION](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.TRIGGER_ACTION) | 24 |
+[ACTIVATE](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.ACTIVATE) | 25 |
[ON_COLLISION2](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.ON_COLLISION2) | 26 |
+[WALKED_ON](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.WALKED_ON) | 29 |
+[WALKED_OFF](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.WALKED_OFF) | 30 |
+[LEDGE_GRAB](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.LEDGE_GRAB) | 31 |
+[STOOD_ON](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.STOOD_ON) | 32 |
+[INIT](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.INIT) | 36 |
[DAMAGE](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.DAMAGE) | 48 |
+[APPLY_MOVEMENT](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.APPLY_MOVEMENT) | 71 |
+[CHECK_IS_FALLING](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.CHECK_IS_FALLING) | 75 |
+[PROCESS_INPUT](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.PROCESS_INPUT) | 77 |
[FLOOR_UPDATE](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=ENTITY_OVERRIDE.FLOOR_UPDATE) | 38 |
## ENT_FLAG
diff --git a/docs/src/includes/_types.md b/docs/src/includes/_types.md
index 88aaf6b91..1392d1fc2 100644
--- a/docs/src/includes/_types.md
+++ b/docs/src/includes/_types.md
@@ -3728,6 +3728,8 @@ bool | [is_cursed()](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=is
nil | [clear_virtual(CallbackId callback_id)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=clear_virtual) | Clears the hook given by `callback_id`, alternatively use `clear_callback()` inside the hook.
[CallbackId](#Aliases) | [set_pre_dtor(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_dtor) | Hooks before the virtual function.
The callback signature is `nil dtor(Entity self)`
[CallbackId](#Aliases) | [set_post_dtor(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_dtor) | Hooks after the virtual function.
The callback signature is `nil dtor(Entity self)`
+[CallbackId](#Aliases) | [set_pre_create_rendering_info(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_create_rendering_info) | Hooks before the virtual function.
The callback signature is `bool create_rendering_info(Entity self)`
+[CallbackId](#Aliases) | [set_post_create_rendering_info(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_create_rendering_info) | Hooks after the virtual function.
The callback signature is `nil create_rendering_info(Entity self)`
[CallbackId](#Aliases) | [set_pre_update_state_machine(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_update_state_machine) | Hooks before the virtual function.
The callback signature is `bool update_state_machine(Entity self)`
[CallbackId](#Aliases) | [set_post_update_state_machine(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_update_state_machine) | Hooks after the virtual function.
The callback signature is `nil update_state_machine(Entity self)`
[CallbackId](#Aliases) | [set_pre_kill(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_kill) | Hooks before the virtual function.
The callback signature is `bool kill(Entity self, bool destroy_corpse, Entity responsible)`
Virtual function docs:
Kills the entity, you can set responsible to `nil` to ignore it
@@ -3736,12 +3738,32 @@ nil | [clear_virtual(CallbackId callback_id)](https://github.com/spelunky-fyi/ov
[CallbackId](#Aliases) | [set_post_on_collision1(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_on_collision1) | Hooks after the virtual function.
The callback signature is `nil on_collision1(Entity self, Entity other_entity)`
[CallbackId](#Aliases) | [set_pre_destroy(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_destroy) | Hooks before the virtual function.
The callback signature is `bool destroy(Entity self)`
Virtual function docs:
Completely removes the entity from existence
[CallbackId](#Aliases) | [set_post_destroy(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_destroy) | Hooks after the virtual function.
The callback signature is `nil destroy(Entity self)`
Virtual function docs:
Completely removes the entity from existence
+[CallbackId](#Aliases) | [set_pre_can_be_pushed(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_can_be_pushed) | Hooks before the virtual function.
The callback signature is `optional can_be_pushed(Entity self)`
+[CallbackId](#Aliases) | [set_post_can_be_pushed(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_can_be_pushed) | Hooks after the virtual function.
The callback signature is `nil can_be_pushed(Entity self)`
+[CallbackId](#Aliases) | [set_pre_is_in_liquid(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_is_in_liquid) | Hooks before the virtual function.
The callback signature is `optional is_in_liquid(Entity self)`
Virtual function docs:
Returns true if entity is in water/lava
+[CallbackId](#Aliases) | [set_post_is_in_liquid(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_is_in_liquid) | Hooks after the virtual function.
The callback signature is `nil is_in_liquid(Entity self)`
Virtual function docs:
Returns true if entity is in water/lava
+[CallbackId](#Aliases) | [set_pre_set_invisible(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_set_invisible) | Hooks before the virtual function.
The callback signature is `bool set_invisible(Entity self, bool value)`
+[CallbackId](#Aliases) | [set_post_set_invisible(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_set_invisible) | Hooks after the virtual function.
The callback signature is `nil set_invisible(Entity self, bool value)`
+[CallbackId](#Aliases) | [set_pre_friction(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_friction) | Hooks before the virtual function.
The callback signature is `optional friction(Entity self)`
+[CallbackId](#Aliases) | [set_post_friction(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_friction) | Hooks after the virtual function.
The callback signature is `nil friction(Entity self)`
[CallbackId](#Aliases) | [set_pre_get_held_entity(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_get_held_entity) | Hooks before the virtual function.
The callback signature is `optional get_held_entity(Entity self)`
[CallbackId](#Aliases) | [set_post_get_held_entity(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_get_held_entity) | Hooks after the virtual function.
The callback signature is `nil get_held_entity(Entity self)`
[CallbackId](#Aliases) | [set_pre_trigger_action(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_trigger_action) | Hooks before the virtual function.
The callback signature is `optional trigger_action(Entity self, Entity user)`
Virtual function docs:
Triggers weapons and other held items like teleportter, mattock etc. You can check the [virtual-availability.md](https://github.com/spelunky-fyi/overlunky/blob/main/docs/virtual-availability.md), if entity has `open` in the `on_open` you can use this function, otherwise it does nothing. Returns false if action could not be performed (cooldown is not 0, no arrow loaded in etc. the animation could still be played thou)
[CallbackId](#Aliases) | [set_post_trigger_action(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_trigger_action) | Hooks after the virtual function.
The callback signature is `nil trigger_action(Entity self, Entity user)`
Virtual function docs:
Triggers weapons and other held items like teleportter, mattock etc. You can check the [virtual-availability.md](https://github.com/spelunky-fyi/overlunky/blob/main/docs/virtual-availability.md), if entity has `open` in the `on_open` you can use this function, otherwise it does nothing. Returns false if action could not be performed (cooldown is not 0, no arrow loaded in etc. the animation could still be played thou)
+[CallbackId](#Aliases) | [set_pre_activate(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_activate) | Hooks before the virtual function.
The callback signature is `bool activate(Entity self, Entity activator)`
Virtual function docs:
Activates a button prompt (with the Use door/Buy button), e.g. buy shop item, activate drill, read sign, interact in camp, ... `get_entity():activate(players[1])` (make sure player 1 has the udjat eye though)
+[CallbackId](#Aliases) | [set_post_activate(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_activate) | Hooks after the virtual function.
The callback signature is `nil activate(Entity self, Entity activator)`
Virtual function docs:
Activates a button prompt (with the Use door/Buy button), e.g. buy shop item, activate drill, read sign, interact in camp, ... `get_entity():activate(players[1])` (make sure player 1 has the udjat eye though)
[CallbackId](#Aliases) | [set_pre_on_collision2(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_on_collision2) | Hooks before the virtual function.
The callback signature is `bool on_collision2(Entity self, Entity other_entity)`
[CallbackId](#Aliases) | [set_post_on_collision2(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_on_collision2) | Hooks after the virtual function.
The callback signature is `nil on_collision2(Entity self, Entity other_entity)`
+[CallbackId](#Aliases) | [set_pre_walked_on(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_walked_on) | Hooks before the virtual function.
The callback signature is `bool walked_on(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_post_walked_on(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_walked_on) | Hooks after the virtual function.
The callback signature is `nil walked_on(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_pre_walked_off(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_walked_off) | Hooks before the virtual function.
The callback signature is `bool walked_off(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_post_walked_off(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_walked_off) | Hooks after the virtual function.
The callback signature is `nil walked_off(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_pre_ledge_grab(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_ledge_grab) | Hooks before the virtual function.
The callback signature is `bool ledge_grab(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_post_ledge_grab(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_ledge_grab) | Hooks after the virtual function.
The callback signature is `nil ledge_grab(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_pre_stood_on(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_stood_on) | Hooks before the virtual function.
The callback signature is `bool stood_on(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_post_stood_on(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_stood_on) | Hooks after the virtual function.
The callback signature is `nil stood_on(Entity self, Entity*)`
+[CallbackId](#Aliases) | [set_pre_init(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_init) | Hooks before the virtual function.
The callback signature is `bool init(Entity self)`
+[CallbackId](#Aliases) | [set_post_init(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_init) | Hooks after the virtual function.
The callback signature is `nil init(Entity self)`
### IceSlidingSound
@@ -6349,6 +6371,12 @@ nil | [generic_update_world(Vec2 move, float sprint_factor, bool disable_gravity
nil | [clear_virtual(CallbackId callback_id)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=clear_virtual) | Clears the hook given by `callback_id`, alternatively use `clear_callback()` inside the hook.
[CallbackId](#Aliases) | [set_pre_damage(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_damage) | Hooks before the virtual function.
The callback signature is `optional damage(Movable self, int damage_dealer_uid, int damage_amount, int stun_time, float velocity_x, float velocity_y, int iframes)`
Virtual function docs:
Damage the movable by the specified amount, stuns and gives it invincibility for the specified amount of frames and applies the velocities
Returns: true if entity was affected, damage_dealer should break etc. false if the event should be ignored by damage_dealer?
[CallbackId](#Aliases) | [set_post_damage(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_damage) | Hooks after the virtual function.
The callback signature is `nil damage(Movable self, int damage_dealer_uid, int damage_amount, int stun_time, float velocity_x, float velocity_y, int iframes)`
Virtual function docs:
Damage the movable by the specified amount, stuns and gives it invincibility for the specified amount of frames and applies the velocities
Returns: true if entity was affected, damage_dealer should break etc. false if the event should be ignored by damage_dealer?
+[CallbackId](#Aliases) | [set_pre_apply_movement(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_apply_movement) | Hooks before the virtual function.
The callback signature is `bool apply_movement(Movable self)`
+[CallbackId](#Aliases) | [set_post_apply_movement(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_apply_movement) | Hooks after the virtual function.
The callback signature is `nil apply_movement(Movable self)`
+[CallbackId](#Aliases) | [set_pre_check_is_falling(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_check_is_falling) | Hooks before the virtual function.
The callback signature is `bool check_is_falling(Movable self)`
+[CallbackId](#Aliases) | [set_post_check_is_falling(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_check_is_falling) | Hooks after the virtual function.
The callback signature is `nil check_is_falling(Movable self)`
+[CallbackId](#Aliases) | [set_pre_process_input(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_pre_process_input) | Hooks before the virtual function.
The callback signature is `bool process_input(Movable self)`
+[CallbackId](#Aliases) | [set_post_process_input(function fun)](https://github.com/spelunky-fyi/overlunky/search?l=Lua&q=set_post_process_input) | Hooks after the virtual function.
The callback signature is `nil process_input(Movable self)`
### MovingIcon