Game Events
Handles Source 1 style game events: the event schema, and named field access for each event. Current replays send only broadcast camera hints and version info this way; the combat log arrives separately.
See also: gameevents.proto
and How Proto Parsing Works.
Generated API
gem.state.game_events.GameEventManager
GameEventManager
class GameEventManager
Manages game event schema registration and handler dispatch.
Source: src/gem/state/game_events.py:217
Methods
register_schema
Signature: def GameEventManager.register_schema(self, schema_dict: dict[str, Any]) -> None
Register an event schema from a dict (e.g. from CSVCMsg_GameEventList).
Source: src/gem/state/game_events.py:231
has_event
Signature: def GameEventManager.has_event(self, name: str) -> bool
Return True if an event schema with the given name is registered.
Source: src/gem/state/game_events.py:249
get_schema
Signature: def GameEventManager.get_schema(self, event_id: int) -> GameEventSchema | None
Return the registered schema for an event id, or None.
Source: src/gem/state/game_events.py:257
on_game_event
Signature: def GameEventManager.on_game_event(self, name: str, handler: GameEventHandler) -> None
Register a handler for the named event.
Source: src/gem/state/game_events.py:268
dispatch
Signature: def GameEventManager.dispatch(self, raw_event: Any) -> None
Dispatch a raw CMsgSource1LegacyGameEvent message to registered handlers.
Source: src/gem/state/game_events.py:277
gem.state.game_events.GameEvent
GameEvent
class GameEvent
A decoded game event instance.
Source: src/gem/state/game_events.py:65
Properties
name
Signature: def GameEvent.name(self) -> str
The event's name, e.g. "dota_combatlog".
Source: src/gem/state/game_events.py:82
Methods
get
Signature: def GameEvent.get(self, name: str, default: Any = None) -> Any
Return the value of field name, or default if it is missing.
Source: src/gem/state/game_events.py:86
to_dict
Signature: def GameEvent.to_dict(self) -> dict[str, Any]
Return every field present in this event, by name.
Source: src/gem/state/game_events.py:113
get_string
Signature: def GameEvent.get_string(self, name: str) -> tuple[str, str | None]
Return (value, None) as str, or ('', error) on failure.
Source: src/gem/state/game_events.py:131
get_float
Signature: def GameEvent.get_float(self, name: str) -> tuple[float, str | None]
Return (value, None) as float, or (0.0, error) on failure.
Source: src/gem/state/game_events.py:146
get_int32
Signature: def GameEvent.get_int32(self, name: str) -> tuple[int, str | None]
Return (value, None) as an integer, or (0, error).
Source: src/gem/state/game_events.py:160
get_bool
Signature: def GameEvent.get_bool(self, name: str) -> tuple[bool, str | None]
Return (value, None) as bool, or (False, error) on failure.
Source: src/gem/state/game_events.py:177
get_uint64
Signature: def GameEvent.get_uint64(self, name: str) -> tuple[int, str | None]
Return (value, None) as uint64, or (0, error) on failure.
Source: src/gem/state/game_events.py:191
gem.state.game_events.GameEventSchema
GameEventSchema
class GameEventSchema
Schema for a single game event type.
Source: src/gem/state/game_events.py:51
Dataclass fields
| Name | Type | Default |
|---|---|---|
event_id | int | - |
name | str | - |
fields | dict[str, tuple[int, int]] | field(...) |