gem
v0.13.0

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

NameTypeDefault
event_idint-
namestr-
fieldsdict[str, tuple[int, int]]field(...)