Skip to main content

on_entity

Attribute Macro on_entity 

Source
#[on_entity]
Expand description

Marks a method as an entity event handler.

This handler is called when entities are created, updated, or deleted. Optionally filter to specific entity class names.

§Parameters

The handler can receive:

  • ctx: &Context (optional) - Current replay state
  • event: EntityEvents or event: &EntityEvents (optional) - Type of entity event
  • entity: &Entity (optional) - The entity that changed

Parameters can appear in any order. Return ObserverResult.

§Filtering

Pass a class name to only handle entities of that type:

#[on_entity("CDOTA_Unit_Hero_Axe")]
fn on_axe(&mut self, entity: &Entity) -> ObserverResult {
    // Only called for Axe hero entity
    Ok(())
}

§Examples

§Track all entity changes

#[on_entity]
fn on_entity(&mut self, event: EntityEvents, entity: &Entity) -> ObserverResult {
    if event == EntityEvents::Created {
        self.created += 1;
    }
    Ok(())
}

§Track specific entity type

#[on_entity("CDOTA_PlayerResource")]
fn on_player_resource(&mut self, ctx: &Context, entity: &Entity) -> ObserverResult {
    // Only called when player resource entity updates
    Ok(())
}