Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Named hook points

Implement catalog hooks as methods of mod_api::Hooks. An injection does not select a hook by hook or hook_version: the manifest schema accepts [[inject]] with a target in at, a crate-root listener in with, and the pinned function hash. See Injections.

Raw frame functions are native escape hatches, not methods on Hooks. For example, an internals injection at horizon_mod_render::render::world_drawn names its listener with with; use the current catalog hash and kind = "head". The launcher supplies the checked raw listener signature, and the ordinary registry owns its priority and lifetime.

Teleport hooks

ender_pearl_teleport version 2 covers player-owned and mob-owned pearls. Its owner is an EntityRef; listeners can cancel or redirect target. Player owners retain the acting-player context and mutable fall damage. Mob owners take no pearl damage and make no endermite roll. Pearl placement does not emit the command-only entity_teleport notification. The pearl is consumed even when teleportation is canceled.

item_consumption_teleport version 2 covers players and foxes with the random-teleport consume effect. Its consumer is a LivingRef, and consumed is the stack captured before use, including count and components. Cancellation ends further teleport attempts, not consumption. Fox callbacks run before that fox's living AI/movement and before the next mob ticks, with the full server host. Listener changes to an actor's item, position or eligibility survive rather than being overwritten by a stale teleport decision. Command and Ender-entity teleport hooks are unchanged.

Both version-2 contracts replace version 1's player UUID/name fields: use owner or consumer.entity() to address the actor, and the acting-player context for player-only operations. Named injections must request hook_version = 2 and bind the new parameter names; version 1 is not an alias for these contracts.