Files
horizon/native-hooks.json
T
rison1337andCodex GPT-6 8de55d4548 Register merged client overlay and Host services as APIs 410 and 411
Generated with tools/stamp_native_hooks.py --only gui_render_post client_services. Leave the other 18 fragments pending while their contracts are reviewed.

Co-Authored-By: Codex GPT-6 <[email protected]>
2026-11-05 15:11:17 +05:00

5086 lines
144 KiB
JSON

{
"helpers": [
{
"name": "draw_quad",
"target": "horizon_client::game::native_block_entity_draw::Game<'_>::native_draw_quad"
},
{
"name": "draw_cube",
"target": "horizon_client::game::native_block_entity_draw::Game<'_>::native_draw_cube"
},
{
"name": "draw_block",
"target": "horizon_client::game::native_block_entity_draw::Game<'_>::native_draw_block"
},
{
"name": "draw_item",
"target": "horizon_client::game::native_block_entity_draw::Game<'_>::native_draw_item"
},
{
"name": "attachments",
"target": "horizon_client::game::native_hooks::Game<'_>::native_attachments"
},
{
"name": "teleport_mob",
"target": "horizon_client::game::native_mobs::Game<'_>::native_teleport_mob"
},
{
"name": "push_mob",
"target": "horizon_client::game::native_mobs::Game<'_>::native_push_mob"
},
{
"name": "set_mob_health",
"target": "horizon_client::game::native_mobs::Game<'_>::native_set_mob_health"
},
{
"name": "kill_mob",
"target": "horizon_client::game::native_mobs::Game<'_>::native_kill_mob"
},
{
"name": "remove_mob",
"target": "horizon_client::game::native_mobs::Game<'_>::native_remove_mob"
},
{
"name": "summon",
"target": "horizon_client::game::native_entities::Game<'_>::native_summon"
},
{
"name": "move_entity",
"target": "horizon_client::game::native_entities::Game<'_>::native_move_entity"
},
{
"name": "remove_entity",
"target": "horizon_client::game::native_entities::Game<'_>::native_remove_entity"
},
{
"name": "server_players",
"target": "horizon_client::game::native_server::Game<'_>::native_server_players"
},
{
"name": "tell",
"target": "horizon_client::game::native_server::Game<'_>::native_tell"
},
{
"name": "action_bar",
"target": "horizon_client::game::native_server::Game<'_>::native_action_bar"
},
{
"name": "tab_list",
"target": "horizon_client::game::native_server::Game<'_>::native_tab_list"
},
{
"name": "tick_stats",
"target": "horizon_client::game::native_server::Game<'_>::native_tick_stats"
},
{
"name": "sleep_ignored",
"target": "horizon_client::game::native_server::Game<'_>::native_sleep_ignored"
},
{
"name": "set_nickname",
"target": "horizon_client::game::native_server::Game<'_>::native_set_nickname"
},
{
"name": "text_allowed",
"target": "horizon_client::game::native_server::Game<'_>::native_text_allowed"
},
{
"name": "broadcast",
"target": "horizon_client::game::native_server::Game<'_>::native_broadcast"
},
{
"name": "feedback",
"target": "horizon_client::game::native_server::Game<'_>::native_feedback"
},
{
"name": "acting_player",
"target": "horizon_client::game::native_server::Game<'_>::native_acting_player"
},
{
"name": "run_command",
"target": "horizon_client::game::native_server::Game<'_>::native_run_command"
},
{
"name": "world_dir",
"target": "horizon_client::game::native_server::Game<'_>::native_world_dir"
},
{
"name": "held",
"target": "horizon_client::game::native_server::Game<'_>::native_held"
},
{
"name": "count_items",
"target": "horizon_client::game::native_server::Game<'_>::native_count_items"
},
{
"name": "carried_items",
"target": "horizon_client::game::native_server::Game<'_>::native_carried_items"
},
{
"name": "take_items",
"target": "horizon_client::game::native_server::Game<'_>::native_take_items"
},
{
"name": "room_for",
"target": "horizon_client::game::native_server::Game<'_>::native_room_for"
},
{
"name": "give_items",
"target": "horizon_client::game::native_server::Game<'_>::native_give_items"
},
{
"name": "give_stack",
"target": "horizon_client::game::native_server::Game<'_>::native_give_stack"
},
{
"name": "give_experience",
"target": "horizon_client::game::native_server::Game<'_>::native_give_experience"
},
{
"name": "give_levels",
"target": "horizon_client::game::native_server::Game<'_>::native_give_levels"
},
{
"name": "lit_block_name",
"target": "horizon_client::game::native_hooks::Game<'_>::native_lit_block_name"
},
{
"name": "flame_particle",
"target": "horizon_client::game::native_hooks::Game<'_>::native_flame_particle"
},
{
"name": "carried_stack",
"target": "horizon_client::game::native_hooks::Game<'_>::native_carried_stack"
},
{
"name": "set_block",
"target": "horizon_client::game::native_hooks::Game<'_>::native_set_block"
},
{
"name": "edit_blocks",
"target": "horizon_client::game::native_world_edit::Game<'_>::native_edit_blocks"
},
{
"name": "surface_heights",
"target": "horizon_client::game::native_world_columns::Game<'_>::native_surface_heights"
},
{
"name": "read_columns",
"target": "horizon_client::game::native_world_columns::Game<'_>::native_read_columns"
},
{
"name": "refresh_biome_colors",
"target": "horizon_client::game::native_biome_colors::Game<'_>::native_refresh_biome_colors"
},
{
"name": "neighbor_signal",
"target": "horizon_client::game::native_hooks::Game<'_>::native_neighbor_signal"
},
{
"name": "light",
"target": "horizon_client::game::native_hooks::Game<'_>::native_light"
},
{
"name": "weather",
"target": "horizon_client::game::native_hooks::Game<'_>::native_weather"
},
{
"name": "day_time",
"target": "horizon_client::game::native_hooks::Game<'_>::native_day_time"
},
{
"name": "world_height",
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_height"
},
{
"name": "max_stack_size",
"target": "horizon_client::game::native_hooks::Game<'_>::native_max_stack_size"
},
{
"name": "item_model",
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_model"
},
{
"name": "quad",
"target": "horizon_client::game::native_hooks::Game<'_>::native_quad"
},
{
"name": "mod_screen_open",
"target": "horizon_client::game::native_hooks::Game<'_>::native_mod_screen_open"
},
{
"name": "mod_screen_close",
"target": "horizon_client::game::native_hooks::Game<'_>::native_mod_screen_close"
},
{
"name": "mod_screen",
"target": "horizon_client::game::native_hooks::Game<'_>::native_mod_screen"
},
{
"name": "set_experience_orb",
"target": "horizon_client::game::native_server::Game<'_>::native_set_experience_orb"
},
{
"name": "experience_orbs",
"target": "horizon_client::game::native_server::Game<'_>::native_experience_orbs"
},
{
"name": "clock",
"target": "horizon_client::game::native_hooks::Game<'_>::native_clock"
},
{
"name": "spawn_falling_block",
"target": "horizon_client::game::native_falling::Game<'_>::native_spawn_falling_block"
},
{
"name": "block_state_property",
"target": "horizon_client::game::native_block_entity_draw::Game<'_>::native_block_state_property"
},
{
"name": "raycast",
"target": "horizon_client::game::native_claimed_items::Game<'_>::native_raycast"
},
{
"name": "view_hit",
"target": "horizon_client::game::native_claimed_items::Game<'_>::native_view_hit"
},
{
"name": "claim_items",
"target": "horizon_client::game::native_claimed_items::Game<'_>::native_claim_items"
},
{
"name": "poll",
"target": "horizon_client::game::native_claimed_items::Game<'_>::native_poll"
},
{
"name": "set_item_entity",
"target": "horizon_client::game::native_hooks::Game<'_>::native_set_item_entity"
},
{
"name": "update_output_neighbors",
"target": "horizon_client::game::native_hooks::Game<'_>::native_update_output_neighbors"
},
{
"name": "update_signal_neighbors",
"target": "horizon_client::game::native_hooks::Game<'_>::native_update_signal_neighbors"
},
{
"name": "block_entity_sync",
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_sync"
},
{
"name": "play_local_sound",
"target": "horizon_client::game::native_hooks::Game<'_>::native_play_local_sound"
},
{
"name": "fill",
"target": "horizon_client::game::native_hooks::Game<'_>::native_fill"
},
{
"name": "sprite",
"target": "horizon_client::game::native_hooks::Game<'_>::native_sprite"
},
{
"name": "item",
"target": "horizon_client::game::native_hooks::Game<'_>::native_item"
},
{
"name": "screen_title",
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_title"
},
{
"name": "data",
"target": "horizon_client::game::native_hooks::Game<'_>::native_data"
},
{
"name": "block",
"target": "horizon_client::game::native_hooks::Game<'_>::native_block"
},
{
"name": "block_property",
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_property"
},
{
"name": "insert_item",
"target": "horizon_client::game::native_hooks::Game<'_>::native_insert_item"
},
{
"name": "cursor",
"target": "horizon_client::game::native_hooks::Game<'_>::native_cursor"
},
{
"name": "text",
"target": "horizon_client::game::native_hooks::Game<'_>::native_text"
},
{
"name": "built_data",
"target": "horizon_client::game::native_hooks::Game<'_>::native_built_data"
},
{
"name": "on",
"target": "horizon_client::game::native_hooks::Game<'_>::native_on"
},
{
"name": "mod_key",
"target": "horizon_client::game::native_hooks::Game<'_>::native_mod_key"
},
{
"name": "setting",
"target": "horizon_client::game::native_hooks::Game<'_>::native_setting"
},
{
"name": "set_setting",
"target": "horizon_client::game::native_hooks::Game<'_>::native_set_setting"
},
{
"name": "set_block_property",
"target": "horizon_client::game::native_hooks::Game<'_>::native_set_block_property"
},
{
"name": "set_block_property_with",
"target": "horizon_client::game::native_hooks::Game<'_>::native_set_block_property_with"
},
{
"name": "config_dir",
"target": "horizon_client::game::native_hooks::Game<'_>::native_config_dir"
},
{
"name": "panel_items",
"target": "horizon_client::game::native_hooks::Game<'_>::native_panel_items"
},
{
"name": "recipes_of_type",
"target": "horizon_client::game::native_hooks::Game<'_>::native_recipes_of_type"
},
{
"name": "recipe_ingredient",
"target": "horizon_client::game::native_hooks::Game<'_>::native_recipe_ingredient"
},
{
"name": "recipe_result",
"target": "horizon_client::game::native_hooks::Game<'_>::native_recipe_result"
},
{
"name": "known_recipes",
"target": "horizon_client::game::native_hooks::Game<'_>::native_known_recipes"
},
{
"name": "place_recipe",
"target": "horizon_client::game::native_hooks::Game<'_>::native_place_recipe"
},
{
"name": "give",
"target": "horizon_client::game::native_hooks::Game<'_>::native_give"
},
{
"name": "push_player",
"target": "horizon_client::game::native_motion::Game<'_>::native_push_player"
},
{
"name": "set_flying_speed",
"target": "horizon_client::game::native_motion::Game<'_>::native_set_flying_speed"
},
{
"name": "net_send_to_player",
"target": "horizon_client::game::native_net::Game<'_>::native_net_send_to_player"
},
{
"name": "net_send_to_server",
"target": "horizon_client::game::native_net::Game<'_>::native_net_send_to_server"
},
{
"name": "dispense_default",
"target": "horizon_client::game::dispenser::Game<'_>::native_dispense_default"
},
{
"name": "open_menu",
"target": "horizon_client::game::native_menus::Game<'_>::native_open_menu"
},
{
"name": "set_menu_items",
"target": "horizon_client::game::native_menus::Game<'_>::native_set_menu_items"
},
{
"name": "close_menu",
"target": "horizon_client::game::native_menus::Game<'_>::native_close_menu"
},
{
"name": "player_stacks",
"target": "horizon_client::game::native_menus::Game<'_>::native_player_stacks"
},
{
"name": "exchange_items",
"target": "horizon_client::game::native_menus::Game<'_>::native_exchange_items"
},
{
"name": "fluid_insert",
"target": "horizon_client::game::machines::native_fluids::Game<'_>::native_fluid_insert"
},
{
"name": "fluid_extract",
"target": "horizon_client::game::machines::native_fluids::Game<'_>::native_fluid_extract"
},
{
"name": "move_fluids",
"target": "horizon_client::game::machines::native_fluids::Game<'_>::native_move_fluids"
},
{
"name": "dimension",
"target": "horizon_client::game::machines::native_items::Game<'_>::native_dimension"
},
{
"name": "extract_item",
"target": "horizon_client::game::machines::native_items::Game<'_>::native_extract_item"
},
{
"name": "move_items",
"target": "horizon_client::game::machines::native_items::Game<'_>::native_move_items"
},
{
"name": "hide_player",
"target": "horizon_client::game::native_server::Game<'_>::native_hide_player"
},
{
"name": "item_stack",
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_stack"
},
{
"name": "mod_image",
"target": "horizon_client::game::native_hooks::Game<'_>::native_mod_image"
},
{
"name": "instance_dir",
"target": "horizon_client::game::native_hooks::Game<'_>::native_instance_dir"
},
{
"name": "camera",
"target": "horizon_client::game::native_hooks::Game<'_>::native_camera",
"mod_api": {}
},
{
"name": "block_collision",
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_collision",
"mod_api": {}
},
{
"name": "entity_nbt",
"target": "horizon_client::game::native_entity_data::Game<'_>::native_entity_nbt",
"receiver": "entity"
},
{
"name": "entity_merge_nbt",
"target": "horizon_client::game::native_entity_data::Game<'_>::native_entity_merge_nbt",
"receiver": "entity"
},
{
"name": "entity_tags",
"target": "horizon_client::game::native_entity_data::Game<'_>::native_entity_tags",
"receiver": "entity"
},
{
"name": "entity_add_tag",
"target": "horizon_client::game::native_entity_data::Game<'_>::native_entity_add_tag",
"receiver": "entity"
},
{
"name": "entity_remove_tag",
"target": "horizon_client::game::native_entity_data::Game<'_>::native_entity_remove_tag",
"receiver": "entity"
},
{
"name": "entity_name",
"target": "horizon_client::game::native_entity_data::Game<'_>::native_entity_name",
"receiver": "entity"
},
{
"name": "entity",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity"
},
{
"name": "level",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_level"
},
{
"name": "entity_position",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity_position",
"receiver": "entity"
},
{
"name": "entity_block_position",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity_block_position",
"receiver": "entity"
},
{
"name": "entity_rotation",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity_rotation",
"receiver": "entity"
},
{
"name": "entity_kind",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity_kind",
"receiver": "entity"
},
{
"name": "entity_uuid",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity_uuid",
"receiver": "entity"
},
{
"name": "entity_level",
"target": "horizon_client::game::native_entity_refs::Game<'_>::native_entity_level",
"receiver": "entity"
},
{
"name": "entity_velocity",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_velocity",
"receiver": "entity"
},
{
"name": "entity_set_velocity",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_set_velocity",
"receiver": "entity"
},
{
"name": "entity_on_ground",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_on_ground",
"receiver": "entity"
},
{
"name": "entity_bounding_box",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_bounding_box",
"receiver": "entity"
},
{
"name": "entity_eye_height",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_eye_height",
"receiver": "entity"
},
{
"name": "entity_eye_position",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_eye_position",
"receiver": "entity"
},
{
"name": "entity_view_vector",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_view_vector",
"receiver": "entity"
},
{
"name": "entity_distance_to_sqr",
"target": "horizon_client::game::native_entity_motion::Game<'_>::native_entity_distance_to_sqr",
"receiver": "entity"
},
{
"name": "item_container_slots",
"target": "horizon_client::game::native_item_container::Game<'_>::native_item_container_slots",
"mod_api": {}
},
{
"name": "item_container_insert",
"target": "horizon_client::game::native_item_container::Game<'_>::native_item_container_insert",
"mod_api": {}
},
{
"name": "item_container_extract",
"target": "horizon_client::game::native_item_container::Game<'_>::native_item_container_extract",
"mod_api": {}
},
{
"name": "level_block_state",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_block_state",
"receiver": "level"
},
{
"name": "level_block",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_block",
"receiver": "level"
},
{
"name": "level_block_property",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_block_property",
"receiver": "level"
},
{
"name": "level_is_loaded",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_is_loaded",
"receiver": "level"
},
{
"name": "level_height",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_height",
"receiver": "level"
},
{
"name": "level_game_time",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_game_time",
"receiver": "level"
},
{
"name": "level_day_time",
"target": "horizon_client::game::native_level_refs::Game<'_>::native_level_day_time",
"receiver": "level"
},
{
"name": "living",
"target": "horizon_client::game::native_living_refs::Game<'_>::native_living"
},
{
"name": "living_equipment",
"target": "horizon_client::game::native_living_refs::Game<'_>::native_living_equipment",
"receiver": "living"
},
{
"name": "living_hand_item",
"target": "horizon_client::game::native_living_refs::Game<'_>::native_living_hand_item",
"receiver": "living"
},
{
"name": "living_set_equipment",
"target": "horizon_client::game::native_living_refs::Game<'_>::native_living_set_equipment",
"receiver": "living"
},
{
"name": "block_sprites",
"target": "horizon_client::game::native_block_sprites::Game<'_>::native_block_sprites"
},
{
"name": "texture_sprites",
"target": "horizon_client::game::native_block_sprites::Game<'_>::native_texture_sprites"
},
{
"name": "block_sprites_version",
"target": "horizon_client::game::native_block_sprites::Game<'_>::native_block_sprites_version"
},
{
"name": "recipe_book_category",
"target": "horizon_client::game::native_hooks::Game<'_>::native_recipe_book_category",
"mod_api": {}
},
{
"name": "screen_pos",
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_pos",
"mod_api": {}
},
{
"name": "screen_extra_data",
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_extra_data",
"mod_api": {}
},
{
"name": "send_chat",
"target": "horizon_client::game::native_net::Game<'_>::native_send_chat"
},
{
"name": "send_packet",
"target": "horizon_client::game::native_net::Game<'_>::native_send_packet"
},
{
"name": "client_state",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_state"
},
{
"name": "client_entities",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_entities"
},
{
"name": "client_heads",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_heads"
},
{
"name": "client_profiles",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_profiles"
},
{
"name": "client_visual_clear",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_visual_clear"
},
{
"name": "client_block_obstruction",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_block_obstruction"
},
{
"name": "gui_paint",
"target": "horizon_client::game::native_client_services::Game<'_>::native_gui_paint"
},
{
"name": "gui_nine_slice",
"target": "horizon_client::game::native_client_services::Game<'_>::native_gui_nine_slice"
},
{
"name": "gui_tooltip",
"target": "horizon_client::game::native_client_services::Game<'_>::native_gui_tooltip"
},
{
"name": "set_mod_key",
"target": "horizon_client::game::native_client_services::Game<'_>::native_set_mod_key"
},
{
"name": "client_action_bar",
"target": "horizon_client::game::native_client_services::Game<'_>::native_client_action_bar"
},
{
"name": "text_width",
"target": "horizon_client::game::native_hooks::Game<'_>::native_text_width"
},
{
"name": "playing",
"target": "horizon_client::game::native_hooks::Game<'_>::native_playing"
},
{
"name": "window",
"target": "horizon_client::game::native_hooks::Game<'_>::native_window"
},
{
"name": "player",
"target": "horizon_client::game::native_hooks::Game<'_>::native_player"
}
],
"hooks": [
{
"name": "frame",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_frame",
"mod_api": {
"contract": "listen"
}
},
{
"name": "tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "visuals",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_visuals",
"mod_api": {
"contract": "listen"
}
},
{
"name": "emissive",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_emissive",
"mod_api": {
"contract": "collect",
"out": "layers"
}
},
{
"name": "world_lifecycle",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_lifecycle",
"mod_api": {
"contract": "listen"
}
},
{
"name": "server_about_to_start",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_server_about_to_start",
"neoforge": "ServerAboutToStartEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "server_stopping",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_server_stopping",
"neoforge": "ServerStoppingEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "server_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_server_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "level_tick_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_level_tick_pre",
"mod_api": {
"contract": "listen"
}
},
{
"name": "level_tick_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_level_tick_post",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_changed",
"mod_api": {
"contract": "listen"
}
},
{
"name": "neighbor_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_neighbor_changed",
"mod_api": {
"contract": "listen"
}
},
{
"name": "random_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_random_tick",
"mod_api": {
"contract": "cancel",
"out": "handled"
}
},
{
"name": "tick_block",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_tick_block",
"mod_api": {
"contract": "cancel",
"out": "handled"
}
},
{
"name": "update_shape",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_update_shape",
"mod_api": {
"contract": "replace",
"out": "new"
}
},
{
"name": "hud",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_hud",
"mod_api": {
"contract": "listen"
}
},
{
"name": "key",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_key",
"mod_api": {
"contract": "listen"
}
},
{
"name": "wheel",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_wheel",
"mod_api": {
"contract": "cancel",
"out": "claimed"
}
},
{
"name": "command",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_command",
"mod_api": {
"contract": "cancel",
"out": "ran"
}
},
{
"name": "commands",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_commands",
"mod_api": {
"contract": "collect",
"out": "commands"
}
},
{
"name": "zoom",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_zoom",
"mod_api": {
"contract": "replace",
"out": "zoom"
}
},
{
"name": "minimap",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_minimap",
"mod_api": {
"contract": "replace",
"out": "minimap"
}
},
{
"name": "mods",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mods",
"mod_api": {
"contract": "collect",
"out": "mods"
}
},
{
"name": "settings",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_settings",
"mod_api": {
"contract": "collect",
"out": "buttons"
}
},
{
"name": "settings_click",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_settings_click",
"mod_api": {
"contract": "listen"
}
},
{
"name": "panel_event",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_panel_event",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity",
"mod_api": {
"contract": "replace",
"out": "entity"
}
},
{
"name": "block_entity_ticks",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_ticks",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity_update_tag",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_update_tag",
"mod_api": {
"contract": "replace",
"out": "tag"
}
},
{
"name": "block_entity_container",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_container",
"mod_api": {
"contract": "replace",
"out": "container"
}
},
{
"name": "screen",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen",
"mod_api": {
"contract": "replace",
"out": "screen"
}
},
{
"name": "screen_draw",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_draw",
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_click",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_click",
"mod_api": {
"contract": "replace",
"out": "button"
}
},
{
"name": "screen_tooltip",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_tooltip",
"mod_api": {
"contract": "collect",
"out": "lines"
}
},
{
"name": "menu_button",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_button",
"mod_api": {
"contract": "listen"
}
},
{
"name": "register_commands",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_register_commands",
"mod_api": {
"contract": "collect",
"out": "commands"
}
},
{
"name": "perform_command",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_perform_command",
"mod_api": {
"contract": "cancel",
"out": "ran"
}
},
{
"name": "menu_clicked",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_clicked",
"mod_api": {
"contract": "listen"
}
},
{
"name": "menu_closed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_closed",
"mod_api": {
"contract": "listen"
}
},
{
"name": "tooltip",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tooltip",
"mod_api": {
"contract": "collect",
"out": "lines"
}
},
{
"name": "use_item_on",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_use_item_on",
"mod_api": {
"contract": "cancel",
"out": "claimed"
}
},
{
"name": "use_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_use_item",
"mod_api": {
"contract": "cancel",
"out": "claimed"
}
},
{
"name": "destroy_block",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_destroy_block",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "place_block",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_place_block",
"mod_api": {
"contract": "listen"
}
},
{
"name": "right_click_block",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_right_click_block",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "block_spread",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_spread",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "piston_move",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_piston_move",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "explosion_detonate",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_explosion_detonate",
"mod_api": {
"contract": "collect",
"out": "blocks"
}
},
{
"name": "fill_bucket",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_fill_bucket",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "attack_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_attack_entity",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "net_from_client",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_net_from_client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "net_from_server",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_net_from_server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_died",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_died",
"mod_api": {
"contract": "listen"
}
},
{
"name": "mob_spawned",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mob_spawned",
"mod_api": {
"contract": "listen"
}
},
{
"name": "mob_killed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mob_killed",
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_dropped",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_dropped",
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_picked_up",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_picked_up",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "hurt_enemy",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_hurt_enemy",
"mod_api": {
"contract": "listen"
}
},
{
"name": "inventory_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_inventory_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "on_equip",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_on_equip",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_signal",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_signal",
"mod_api": {
"contract": "listen"
}
},
{
"name": "is_signal_source",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_is_signal_source",
"mod_api": {
"contract": "listen"
}
},
{
"name": "health_hud",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_health_hud",
"mod_api": {
"contract": "replace",
"out": "draws"
}
},
{
"name": "interact_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_interact_entity",
"mod_api": {
"contract": "cancel",
"out": "claimed"
}
},
{
"name": "left_click_block",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_left_click_block",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "player_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_join_level",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_join_level",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "living_incoming_damage",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_incoming_damage",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "menu_button_v2",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_button_v2",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_leave_level",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_leave_level",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity_fluids",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_fluids",
"mod_api": {
"contract": "replace",
"out": "fluids"
}
},
{
"name": "should_apply_effect_tick_this_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_should_apply_effect_tick_this_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "apply_effect_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_apply_effect_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "on_effect_added",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_on_effect_added",
"mod_api": {
"contract": "listen"
}
},
{
"name": "mob_effect_added",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mob_effect_added",
"mod_api": {
"contract": "listen"
}
},
{
"name": "chunk_load",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_chunk_load",
"mod_api": {
"contract": "listen"
}
},
{
"name": "chunk_unload",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_chunk_unload",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_logged_in",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_logged_in",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_logged_out",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_logged_out",
"mod_api": {
"contract": "listen"
}
},
{
"name": "world_drawn",
"version": 1,
"target": "horizon_client_render::gfx::native_render::native_world_drawn",
"mod_api": {
"contract": "listen"
}
},
{
"name": "render_needs",
"version": 1,
"target": "horizon_client_render::gfx::native_render::native_render_needs",
"mod_api": {
"contract": "collect",
"out": "needs"
}
},
{
"name": "item_bar",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_bar",
"mod_api": {
"contract": "listen"
}
},
{
"name": "has_analog_output",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_has_analog_output",
"mod_api": {
"contract": "collect",
"out": "output"
}
},
{
"name": "analog_output",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_analog_output",
"mod_api": {
"contract": "collect",
"out": "output"
}
},
{
"name": "component_types",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_component_types",
"mod_api": {
"contract": "collect",
"out": "types"
}
},
{
"name": "dispense_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_dispense_item",
"side": "server",
"mod_api": {
"contract": "replace",
"out": "answer"
}
},
{
"name": "tooltip_component",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tooltip_component",
"side": "client",
"mod_api": {
"contract": "replace",
"out": "size"
}
},
{
"name": "tooltip_component_draw",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tooltip_component_draw",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "can_survive",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_can_survive",
"mod_api": {
"contract": "replace",
"out": "survives"
}
},
{
"name": "may_place_on",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_may_place_on",
"mod_api": {
"contract": "replace",
"out": "may"
}
},
{
"name": "block_entity_submit",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_submit",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity_render_bounding_box",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_render_bounding_box",
"mod_api": {
"contract": "collect",
"out": "bounds"
}
},
{
"name": "is_valid_bonemeal_target",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_is_valid_bonemeal_target",
"mod_api": {
"contract": "replace",
"out": "valid"
}
},
{
"name": "is_bonemeal_success",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_is_bonemeal_success",
"mod_api": {
"contract": "collect",
"out": "success"
}
},
{
"name": "perform_bonemeal",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_perform_bonemeal",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_step_on",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_step_on",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity_inside",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_inside",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_fall_on",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_fall_on",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "damage"
}
},
{
"name": "consume_effect",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_consume_effect",
"mod_api": {
"contract": "listen"
}
},
{
"name": "loot_table_load",
"version": 1,
"target": "horizon_world::loot::native_loot_table_load",
"mod_api": {
"contract": "collect",
"out": "table"
}
},
{
"name": "loot_drops",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_loot_drops",
"mod_api": {
"contract": "collect",
"out": "drops"
}
},
{
"name": "state_for_placement",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_state_for_placement",
"mod_api": {
"contract": "replace",
"out": "answer"
}
},
{
"name": "enchant_effect",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_enchant_effect",
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_render_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_render_post",
"mod_api": {
"contract": "listen"
}
},
{
"name": "modify_default_components",
"version": 1,
"target": "horizon_world::item_defaults::native_modify_default_components",
"mod_api": {
"contract": "collect",
"out": "components"
}
},
{
"name": "screen_mouse_button_pressed_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_mouse_button_pressed_pre",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "screen_mouse_button_released_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_mouse_button_released_pre",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "camera_shake",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_camera_shake",
"mod_api": {
"contract": "listen"
}
},
{
"name": "shader_params",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_shader_params",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_highlight",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_highlight",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "render_hand",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_render_hand",
"neoforge": "RenderHandEvent",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "client_resources_reloaded",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_resources_reloaded",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_decorations",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_decorations",
"neoforge": "RegisterItemDecorationsEvent",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "use_duration",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_use_duration",
"mod_api": {
"contract": "listen"
}
},
{
"name": "use_animation",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_use_animation",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "can_eat",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_can_eat",
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_entity_use_item_start",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_entity_use_item_start",
"neoforge": "LivingEntityUseItemEvent.Start",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "living_entity_use_item_finish",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_entity_use_item_finish",
"neoforge": "LivingEntityUseItemEvent.Finish",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_mouse_scrolled_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_mouse_scrolled_pre",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "player_command",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_command",
"neoforge": "CommandEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "perform_console_command",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_perform_console_command",
"mod_api": {
"contract": "cancel",
"out": "ran"
}
},
{
"name": "screen_key_pressed_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_key_pressed_pre",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "screen_char_typed_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_char_typed_pre",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "data_pack_files",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_data_pack_files",
"mod_api": {
"contract": "collect",
"out": "files"
}
},
{
"name": "biome_colors",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_biome_colors",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "server_data_loaded",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_server_data_loaded",
"mod_api": {
"contract": "listen"
}
},
{
"name": "compute_fov",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_compute_fov",
"neoforge": "ViewportEvent.ComputeFov",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "mob_submit",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mob_submit",
"neoforge": "RenderLivingEvent.Pre",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "drawn"
}
},
{
"name": "camera_distance",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_camera_distance",
"neoforge": "CalculateDetachedCameraDistanceEvent",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "compute_fog_color",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_compute_fog_color",
"neoforge": "ViewportEvent.ComputeFogColor",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "mouse_button_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mouse_button_pre",
"neoforge": "InputEvent.MouseButton.Pre",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "mouse_button_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mouse_button_post",
"neoforge": "InputEvent.MouseButton.Post",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_respawned",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_respawned",
"neoforge": "PlayerEvent.PlayerRespawnEvent",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "render_fog",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_render_fog",
"neoforge": "ViewportEvent.RenderFog",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_key_released_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_key_released_pre",
"neoforge": "ScreenEvent.KeyReleased.Pre",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "music",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_music",
"neoforge": "SelectMusicEvent",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "music_layers",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_music_layers",
"side": "client",
"mod_api": {
"contract": "collect",
"out": "layers"
}
},
{
"name": "datapack_sync",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_datapack_sync",
"neoforge": "OnDatapackSyncEvent",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "recipe_types"
}
},
{
"name": "recipes_received",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_recipes_received",
"neoforge": "RecipesReceivedEvent",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "input_key",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_input_key",
"neoforge": "InputEvent.Key",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "mouse_scrolling",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mouse_scrolling",
"neoforge": "InputEvent.MouseScrollingEvent",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "screen_mouse_dragged_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_mouse_dragged_pre",
"neoforge": "ScreenEvent.MouseDragged.Pre",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "mod_container_viewers",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mod_container_viewers",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_knockback",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_knockback",
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "experience_orb_can_merge",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_experience_orb_can_merge",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "experience_orb_merge",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_experience_orb_merge",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "menu_slot_rules",
"version": 1,
"target": "horizon_client_lib::menu::native_menu_slot_rules",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_entity_use_item_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_entity_use_item_tick",
"neoforge": "LivingEntityUseItemEvent.Tick",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "on_use_tick",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_on_use_tick",
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_entity_use_item_stop",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_entity_use_item_stop",
"neoforge": "LivingEntityUseItemEvent.Stop",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "release_using",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_release_using",
"mod_api": {
"contract": "listen"
}
},
{
"name": "loot_function",
"version": 1,
"target": "horizon_world::loot::native_loot_function",
"mod_api": {
"contract": "collect",
"out": "stack"
}
},
{
"name": "loot_condition",
"version": 1,
"target": "horizon_world::loot::native_loot_condition",
"mod_api": {
"contract": "collect",
"out": "holds"
}
},
{
"name": "level_load",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_level_load",
"neoforge": "LevelEvent.Load",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "level_unload",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_level_unload",
"neoforge": "LevelEvent.Unload",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "client_level_load",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_level_load",
"neoforge": "LevelEvent.Load",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "client_level_unload",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_level_unload",
"neoforge": "LevelEvent.Unload",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "hears_projectile_impacts",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_hears_projectile_impacts",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "hears"
}
},
{
"name": "projectile_impact",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_projectile_impact",
"neoforge": "ProjectileImpactEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "entity_mount",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_mount",
"neoforge": "EntityMountEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "interaction_key",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_interaction_key",
"neoforge": "InputEvent.InteractionKeyMappingTriggered",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "gui_layer_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_gui_layer_pre",
"neoforge": "RenderGuiLayerEvent.Pre",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "gui_layer_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_gui_layer_post",
"neoforge": "RenderGuiLayerEvent.Post",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "map_decorations",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_map_decorations",
"neoforge": "MapDecorationType",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "collect",
"out": "decorations"
}
},
{
"name": "player_start_tracking",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_start_tracking",
"neoforge": "PlayerEvent.StartTracking",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_stop_tracking",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_stop_tracking",
"neoforge": "PlayerEvent.StopTracking",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_entity_energy",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_entity_energy",
"neoforge": "Capabilities.Energy.BLOCK",
"side": "server",
"mod_api": {
"contract": "replace",
"out": "energy"
}
},
{
"name": "data_map_types",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_data_map_types",
"neoforge": "RegisterDataMapTypesEvent",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "types"
}
},
{
"name": "living_breathe",
"version": 1,
"target": "horizon_client_lib::breathing::native_living_breathe",
"neoforge": "LivingBreatheEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "blocks",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_blocks",
"neoforge": "RegisterEvent",
"mod_api": {
"contract": "collect",
"out": "blocks"
}
},
{
"name": "items",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_items",
"neoforge": "RegisterEvent",
"mod_api": {
"contract": "collect",
"out": "items"
}
},
{
"name": "entity_tick_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_tick_pre",
"neoforge": "EntityTickEvent.Pre",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "entity_tick_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_tick_post",
"neoforge": "EntityTickEvent.Post",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_tick_listened",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_tick_listened",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "collect",
"out": "listened"
}
},
{
"name": "item_fluid_tank",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_fluid_tank",
"neoforge": "Capabilities.FluidHandler.ITEM",
"mod_api": {
"contract": "replace",
"out": "capacity"
}
},
{
"name": "living_equipment_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_equipment_change",
"neoforge": "LivingEquipmentChangeEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_equipment_listened",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_equipment_listened",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "collect",
"out": "listened"
}
},
{
"name": "player_submit",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_submit",
"neoforge": "RenderPlayerEvent.Pre",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "drawn"
}
},
{
"name": "mob_layer",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mob_layer",
"neoforge": "EntityRenderersEvent.AddLayers",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_render_listened",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_render_listened",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "collect",
"out": "listened"
}
},
{
"name": "sign_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_sign_changed",
"neoforge": "none (NeoForge has no sign-editing event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "standalone_models",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_standalone_models",
"neoforge": "ModelEvent.RegisterStandalone",
"side": "client",
"mod_api": {
"contract": "collect",
"out": "models"
}
},
{
"name": "player_container_open",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_container_open",
"neoforge": "PlayerContainerEvent.Open",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_container_close",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_container_close",
"neoforge": "PlayerContainerEvent.Close",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_toggle_flight",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_toggle_flight",
"neoforge": "none (NeoForge has no flight toggle event; Bukkit's PlayerToggleFlightEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "anvil_damaged",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_anvil_damaged",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "arrow_loose",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_arrow_loose",
"neoforge": "ArrowLooseEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "beacon_state_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_beacon_state_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "bell_ring",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_bell_ring",
"neoforge": "none (NeoForge has no such event; Bukkit's BellRingEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "block_break_progress_update",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_break_progress_update",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_burn",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_burn",
"neoforge": "none (NeoForge has no such event; Bukkit's BlockBurnEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "block_cook",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_cook",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_damage_abort",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_damage_abort",
"neoforge": "none (NeoForge has no such event; Bukkit's BlockDamageAbortEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_dispense_armor",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_dispense_armor",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_exp",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_exp",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_fade",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_fade",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "block_failed_dispense",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_failed_dispense",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "block_form",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_form",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "block_ignite",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_block_ignite",
"neoforge": "none (NeoForge has no such event; Bukkit's BlockIgniteEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "block_lock_check",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_lock_check",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "cancel",
"out": "locked"
}
},
{
"name": "block_receive_game",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_receive_game",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "block_shear_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_block_shear_entity",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "brewing_complete",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_brewing_complete",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "brewing_fuel",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_brewing_fuel",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "brewing_start",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_brewing_start",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "broadcast_message",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_broadcast_message",
"neoforge": "none (NeoForge has no such event; Bukkit's BroadcastMessageEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "campfire_start",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_campfire_start",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "cauldron_level_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_cauldron_level_changed",
"neoforge": "none (NeoForge has no such event; Bukkit's CauldronLevelChangeEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "chorus_fruit_teleport",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_chorus_fruit_teleport",
"neoforge": "EntityTeleportEvent.ChorusFruit",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "compost_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_compost_item",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "crafter_craft",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_crafter_craft",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "creeper_ignite",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_creeper_ignite",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "creeper_power",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_creeper_power",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "critical_hit",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_critical_hit",
"neoforge": "CriticalHitEvent",
"side": "both",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "difficulty_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_difficulty_changed",
"neoforge": "DifficultyChangeEvent",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "dragon_egg_form",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_dragon_egg_form",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "enchant_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_enchant_item",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "ender_pearl_teleport",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_ender_pearl_teleport",
"neoforge": "EntityTeleportEvent.EnderPearl",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "entities_load",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entities_load",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entities_unload",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entities_unload",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_break_door",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_break_door",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_breed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_breed",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_change_block",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_change_block",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_drop_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_drop_item",
"neoforge": "none (NeoForge has no such event; Bukkit's EntityDropItemEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_enter_block",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_enter_block",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_enter_love_mode",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_enter_love_mode",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_portal",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_portal",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_pose_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_pose_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_shoot_bow",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_shoot_bow",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_tame",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_tame",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_teleport",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_teleport",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_toggle_glide",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_toggle_glide",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_transform",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_transform",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "entity_unleash",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_entity_unleash",
"neoforge": "none (NeoForge has no such event; Bukkit's EntityUnleashEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "exp_bottle",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_exp_bottle",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "experience_orb_pickup_listened",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_experience_orb_pickup_listened",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "listened"
}
},
{
"name": "experience_orb_pickup",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_experience_orb_pickup",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "mending_repair",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mending_repair",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "explosion_prime",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_explosion_prime",
"neoforge": "none (NeoForge has no such event; Bukkit's ExplosionPrimeEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "fire_odds",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_fire_odds",
"mod_api": {
"contract": "replace",
"out": "odds"
}
},
{
"name": "smoke_source",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_smoke_source",
"mod_api": {
"contract": "replace",
"out": "smoke"
}
},
{
"name": "firework_explode",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_firework_explode",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "fluid_level_change",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_fluid_level_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "framerate_limit",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_framerate_limit",
"neoforge": "none (vanilla FramerateLimitTracker.getFramerateLimit fires no event)",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "furnace_burn",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_furnace_burn",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "furnace_extract",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_furnace_extract",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "furnace_smelt",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_furnace_smelt",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "furnace_start_smelt",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_furnace_start_smelt",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "game_event",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_game_event",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "hopper_inventory_search",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_hopper_inventory_search",
"neoforge": "none (NeoForge has no such event; Bukkit's InventoryMoveItemEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "hopper_pickup_item",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_hopper_pickup_item",
"neoforge": "none (NeoForge has no direct equivalent; Bukkit's InventoryPickupItemEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "ingredient",
"version": 1,
"target": "horizon_client_lib::crafting::native_ingredient",
"mod_api": {
"contract": "collect",
"out": "items"
}
},
{
"name": "inventory_block_start",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_inventory_block_start",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "inventory_move_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_inventory_move_item",
"neoforge": "none (NeoForge has no such event; Bukkit's InventoryMoveItemEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "item_crafted",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_crafted",
"neoforge": "PlayerEvent.ItemCraftedEvent",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_despawn",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_despawn",
"neoforge": "none (NeoForge has no such event; Bukkit's ItemDespawnEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_energy_buffer",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_energy_buffer",
"neoforge": "Capabilities.Energy.ITEM",
"mod_api": {
"contract": "replace",
"out": "buffer"
}
},
{
"name": "item_expire",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_expire",
"neoforge": "ItemExpireEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_spawn",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_spawn",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "leaves_decay",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_leaves_decay",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "lightning_strike",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_lightning_strike",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "menu_quick_move",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_quick_move",
"neoforge": "none (a Java menu overrides AbstractContainerMenu.quickMoveStack; no event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "handled"
}
},
{
"name": "moisture_change",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_moisture_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "anvil_craft_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_anvil_craft_post",
"neoforge": "AnvilCraftEvent.Post",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "anvil_craft_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_anvil_craft_pre",
"neoforge": "AnvilCraftEvent.Pre",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "armor_stand_manipulate",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_armor_stand_manipulate",
"neoforge": "none (Bukkit's PlayerArmorStandManipulateEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "bucket_empty",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_bucket_empty",
"neoforge": "none (vanilla BucketItem.emptyContents; NeoForge has no matching event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "container_opened",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_container_opened",
"neoforge": "none (NeoForge's PlayerContainerEvent.Open fires after the menu is open and is not cancellable)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "creative_slot",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_creative_slot",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "food_level_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_food_level_changed",
"neoforge": "none (vanilla: FoodData; Bukkit's FoodLevelChangeEvent)",
"side": "server",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "hanging_break",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_hanging_break",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "hanging_place",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_hanging_place",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "item_damaged",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_damaged",
"neoforge": "none (vanilla: ItemStack.hurtAndBreak; PlayerDestroyItemEvent is only the break)",
"side": "server",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_changed_dimension",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_changed_dimension",
"neoforge": "PlayerEvent.PlayerChangedDimensionEvent",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_clone",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_clone",
"neoforge": "PlayerEvent.Clone (not cancellable)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_commands_sent",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_commands_sent",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "names"
}
},
{
"name": "player_destroy_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_destroy_item",
"neoforge": "none (NeoForge's PlayerDestroyItemEvent carries the original stack and a hand, which armour has not; this hook only listens and names the slot instead. Bukkit's PlayerItemBreakEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_fish",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_fish",
"neoforge": "none (NeoForge's ItemFishedEvent fires after the loot roll, in FishingHook.retrieve; Bukkit's PlayerFishEvent)",
"side": "server",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_flower_pot_manipulate",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_flower_pot_manipulate",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_game_mode_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_game_mode_changed",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_insert_lectern_book",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_insert_lectern_book",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_item_frame_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_item_frame_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_item_mend",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_item_mend",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_lectern_page_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_lectern_page_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_load_from_file",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_load_from_file",
"neoforge": "PlayerEvent.LoadFromFile (not cancellable)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_login",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_login",
"neoforge": "none (Bukkit's PlayerLoginEvent; NeoForge's PlayerNegotiationEvent is not cancellable)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_save_to_file",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_save_to_file",
"neoforge": "PlayerEvent.SaveToFile (not cancellable)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_sprint",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_sprint",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_swap_hands",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_swap_hands",
"neoforge": "LivingSwapItemsEvent.Hands",
"side": "server",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_take_lectern_book",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_take_lectern_book",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_teleported",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_teleported",
"neoforge": "none (EntityTeleportEvent.TeleportCommand fires before the move and can cancel it; this hook is told after the move)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_totem",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_totem",
"neoforge": "none (NeoForge's LivingUseTotemEvent can cancel the save; this hook only listens. Bukkit's EntityResurrectEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "resource_pack_status",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_resource_pack_status",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "spawn_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_spawn_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "tnt_primed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tnt_primed",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "vehicle_create",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_vehicle_create",
"neoforge": "none (NeoForge has no such event; Bukkit's VehicleCreateEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "vehicle_damage",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_vehicle_damage",
"neoforge": "none (NeoForge has no such event; Bukkit's VehicleDamageEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "vehicle_destroy",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_vehicle_destroy",
"neoforge": "none (NeoForge has no such event; Bukkit's VehicleDestroyEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "vehicle_moved",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_vehicle_moved",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "world_border_bounds_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_border_bounds_changed",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "world_border_center_changed",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_border_center_changed",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "world_game_rule_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_game_rule_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "note_play",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_note_play",
"neoforge": "none (NeoForge has no such event; Bukkit's NotePlayEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_advancement_criterion_grant",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_advancement_criterion_grant",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerAdvancementCriterionGrant)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_advancement_done",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_advancement_done",
"neoforge": "AdvancementEvent.AdvancementEarnEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_advancement_progress",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_advancement_progress",
"neoforge": "AdvancementEvent.AdvancementProgressEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_arm_swing",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_arm_swing",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerAnimationEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_attack_cooldown_reset",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_attack_cooldown_reset",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_bed_enter",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_bed_enter",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerBedEnterEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_bed_leave",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_bed_leave",
"neoforge": "PlayerWakeUpEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_bucket_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_bucket_entity",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_bundle_item_select",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_bundle_item_select",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerBundleItemSelect)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_change_beacon_effect",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_change_beacon_effect",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_change_main_hand",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_change_main_hand",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_client_loaded_world",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_client_loaded_world",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerClientLoadedWorld)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_deep_sleep",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_deep_sleep",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_edit_book",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_edit_book",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerEditBookEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_egg_throw",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_egg_throw",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_elytra_boost",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_elytra_boost",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_exp_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_exp_change",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerExpChangeEvent)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_exp_cooldown_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_exp_cooldown_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_input",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_input",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerInputEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_item_cooldown",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_item_cooldown",
"neoforge": "none (NeoForge has no such event; Paper's PlayerItemCooldownEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_item_held",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_item_held",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerItemHeldEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_jump",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_jump",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerJumpEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_kicked",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_kicked",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerKickEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_launch_projectile",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_launch_projectile",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerLaunchProjectile)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_level_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_level_change",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerLevelChangeEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_locale_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_locale_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_loom_pattern_select",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_loom_pattern_select",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_map_filled",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_map_filled",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_name_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_name_entity",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_open_sign",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_open_sign",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_pick_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_pick_item",
"neoforge": "none (NeoForge has no such event; Paper's PlayerPickItemEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_pickup_arrow",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_pickup_arrow",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_portal",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_portal",
"neoforge": "EntityTravelToDimensionEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_ready_arrow",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_ready_arrow",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerReadyArrow)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_recipe_book_click",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_recipe_book_click",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_recipe_book_settings_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_recipe_book_settings_change",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerRecipeBookSettingsChange)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_recipe_discovered",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_recipe_discovered",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerRecipeDiscoverEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_riptide",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_riptide",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerRiptideEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_shear_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_shear_entity",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerShearEntityEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_shield_disable",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_shield_disable",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_spawn_point_set",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_spawn_point_set",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerSpawnChangeEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_stat_award",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_stat_award",
"neoforge": "StatAwardEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_stonecutter_recipe_select",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_stonecutter_recipe_select",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_stop_spectating_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_stop_spectating_entity",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_stop_using_item",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_stop_using_item",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerStopUsingItem)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_swap_with_equipment_slot",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_swap_with_equipment_slot",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_teleport_end_gateway",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_teleport_end_gateway",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_toggle_entity_age_lock",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_toggle_entity_age_lock",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_toggle_sneak",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_toggle_sneak",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerToggleSneakEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_trade",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_trade",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_unleash_entity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_unleash_entity",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "player_velocity",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_velocity",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "portal_create",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_portal_create",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "potion_splash",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_potion_splash",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "prepare_anvil",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_prepare_anvil",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "replace",
"out": "result"
}
},
{
"name": "prepare_grindstone",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_prepare_grindstone",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "replace",
"out": "result"
}
},
{
"name": "prepare_hopper_transfer",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_prepare_hopper_transfer",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "prepare_item_craft",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_prepare_item_craft",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "replace",
"out": "result"
}
},
{
"name": "prepare_item_enchant",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_prepare_item_enchant",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "prepare_smithing",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_prepare_smithing",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "replace",
"out": "result"
}
},
{
"name": "projectile_launch",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_projectile_launch",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "raid_spawn_wave",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_raid_spawn_wave",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "raid_state_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_raid_state_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "sculk_bloom",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_sculk_bloom",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "sleep_finished_time",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_sleep_finished_time",
"neoforge": "SleepFinishedTimeEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "sponge_absorb",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_sponge_absorb",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "tab_complete",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tab_complete",
"neoforge": "none (NeoForge has no generic tab completion event)",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "suggestions"
}
},
{
"name": "target_hit",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_target_hit",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "thunder_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_thunder_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "time_skip",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_time_skip",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "trade_select",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_trade_select",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "trade_with_villager",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_trade_with_villager",
"neoforge": "TradeWithVillagerEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "vault_change_state",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_vault_change_state",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "vault_loot",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_vault_loot",
"neoforge": "none (NeoForge has no such event; Bukkit's BlockDispenseLoot)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "weather_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_weather_change",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "whitelist_state_update",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_whitelist_state_update",
"neoforge": "none (NeoForge has no such event; Bukkit's WhitelistToggleEvent)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "world_border_bounds_change_finish",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_border_bounds_change_finish",
"neoforge": "none (NeoForge has no such event; Bukkit's WorldBorderBoundsChangeFinish)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "world_saved",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_world_saved",
"neoforge": "none (NeoForge has no such event)",
"side": "server",
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_drown",
"version": 1,
"target": "horizon_client_lib::breathing::native_living_drown",
"neoforge": "LivingDrownEvent",
"side": "server",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "living_fall",
"version": 1,
"target": "horizon_client_lib::landing::native_living_fall",
"neoforge": "LivingFallEvent",
"side": "both",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "living_heal",
"version": 1,
"target": "horizon_client_lib::hunger::native_living_heal",
"neoforge": "LivingHealEvent",
"side": "both",
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "living_jump",
"version": 1,
"target": "horizon_client_lib::motion::native_living_jump",
"neoforge": "LivingEvent.LivingJumpEvent",
"side": "both",
"mod_api": {
"contract": "listen"
}
},
{
"name": "arrow_nock",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_arrow_nock",
"neoforge": "net.neoforged.neoforge.event.entity.player.ArrowNockEvent (NeoForge.EVENT_BUS, ICancellableEvent)",
"side": "both",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "baby_entity_spawn",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_baby_entity_spawn",
"neoforge": "BabyEntitySpawnEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "can_player_sleep",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_can_player_sleep",
"neoforge": "CanPlayerSleepEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "compute_fov_modifier",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_compute_fov_modifier",
"neoforge": "ComputeFovModifierEvent",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "explosion_knockback",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_explosion_knockback",
"neoforge": "ExplosionKnockbackEvent",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "collect",
"out": "knockback_velocity"
}
},
{
"name": "hand_drawn",
"version": 1,
"target": "horizon_client_render::gfx::native_render::native_hand_drawn",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "ingredient_test",
"version": 1,
"target": "horizon_client_lib::crafting::native_ingredient_test",
"mod_api": {
"contract": "listen"
}
},
{
"name": "item_container",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_container",
"neoforge": "Capabilities.Item.ITEM",
"mod_api": {
"contract": "replace",
"out": "slots"
}
},
{
"name": "item_model_property",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_item_model_property",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_conversion_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_conversion_post",
"neoforge": "LivingConversionEvent.Post",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "living_conversion_pre",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_conversion_pre",
"neoforge": "LivingConversionEvent.Pre",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "living_death",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_death",
"neoforge": "LivingDeathEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "living_get_projectile",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_get_projectile",
"neoforge": "net.neoforged.neoforge.event.entity.living.LivingGetProjectileEvent (NeoForge.EVENT_BUS, not cancellable)",
"side": "both",
"mod_api": {
"contract": "collect",
"out": "projectile"
}
},
{
"name": "living_incoming_damage_v2",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_incoming_damage_v2",
"neoforge": "LivingIncomingDamageEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "living_knockback_v2",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_living_knockback_v2",
"neoforge": "LivingKnockBackEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "mob_split",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_mob_split",
"neoforge": "MobSplitEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "register_configs",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_register_configs",
"neoforge": "ModContainer.registerConfig",
"side": "both",
"mod_api": {
"contract": "collect",
"out": "configs"
}
},
{
"name": "config_loading",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_config_loading",
"neoforge": "ModConfigEvent.Loading",
"side": "both",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "config_reloading",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_config_reloading",
"neoforge": "ModConfigEvent.Reloading",
"side": "both",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "config_unloading",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_config_unloading",
"neoforge": "ModConfigEvent.Unloading",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "movement_input",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_movement_input",
"neoforge": "MovementInputUpdateEvent",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "note_block_change",
"version": 1,
"target": "horizon_client::game::native_hooks::GameLevel<'_>::native_note_block_change",
"neoforge": "NoteBlockEvent.Change",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "potential_spawns",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_potential_spawns",
"neoforge": "LevelEvent.PotentialSpawns",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "village_siege",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_village_siege",
"neoforge": "VillageSiegeEvent",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "player_chat",
"version": 1,
"target": "horizon_client_lib::lan::hub::chat::native_player_chat",
"neoforge": "net.neoforged.neoforge.event.ServerChatEvent (ICancellableEvent)",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "player_xp_change",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_player_xp_change",
"neoforge": "PlayerXpEvent.XpChange",
"side": "server",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "recipe_book_categories",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_recipe_book_categories",
"mod_api": {
"contract": "listen"
}
},
{
"name": "render_hand_pose",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_render_hand_pose",
"neoforge": "RenderHandEvent (PoseStack) / RenderArmEvent",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "render_item_in_frame",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_render_item_in_frame",
"neoforge": "RenderItemInFrameEvent",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "canceled"
}
},
{
"name": "render_name_tag",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_render_name_tag",
"neoforge": "RenderNameTagEvent",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_closing",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_closing",
"neoforge": "ScreenEvent.Closing",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_init_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_init_post",
"neoforge": "ScreenEvent.Init.Post",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "screen_opening",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_screen_opening",
"neoforge": "ScreenEvent.Opening",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "tooltip_color",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_tooltip_color",
"neoforge": "RenderTooltipEvent.Texture",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "camera_pose",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_camera_pose",
"neoforge": "ViewportEvent.ComputeCameraAngles",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "client_chat_received",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_chat_received",
"neoforge": "ClientChatReceivedEvent",
"side": "client",
"cancellable": true,
"mod_api": {
"contract": "cancel",
"out": "cancel"
}
},
{
"name": "client_packet",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_packet",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "menu_extra_data",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_extra_data",
"neoforge": "IPlayerExtension.openMenu(MenuProvider, Consumer<RegistryFriendlyByteBuf>)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "replace",
"out": "data"
}
},
{
"name": "merchant_offer_traded",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_merchant_offer_traded",
"neoforge": "none (NeoForge has no such event; Bukkit's PlayerTradeEvent#getTrade is mutable)",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "collect",
"out": "offer"
}
},
{
"name": "add_server_reload_listeners",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_add_server_reload_listeners",
"neoforge": "AddServerReloadListenersEvent",
"side": "server",
"mod_api": {
"contract": "collect",
"out": "listeners"
}
},
{
"name": "server_reload_listener_apply",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_server_reload_listener_apply",
"neoforge": "SimpleJsonResourceReloadListener.apply",
"side": "server",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
},
{
"name": "client_start",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_start",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "client_disconnecting",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_disconnecting",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "client_stopping",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_client_stopping",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "menu_background",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_menu_background",
"side": "client",
"mod_api": {
"contract": "listen"
}
},
{
"name": "gui_render_post",
"version": 1,
"target": "horizon_client::game::native_hooks::Game<'_>::native_gui_render_post",
"side": "client",
"cancellable": false,
"mod_api": {
"contract": "listen"
}
}
]
}