Skip to content

Extractors

Extractors are stateful objects that attach to a ReplayParser, accumulate data during parsing, and expose structured output when parsing is complete.

Each extractor subscribes to one or more events (entity events, combat log entries, or user messages) via the parser's callback system. After parser.parse() completes, the extractor's output properties are ready to read.

ExtractorModuleWhat it collects
PlayerExtractorgem.extractors.playersHero/player state snapshots, time series, rune pickups
ObjectivesExtractorgem.extractors.objectivesTower kills, barracks, Roshan kills, Tormentor kills
WardsExtractorgem.extractors.wardsWard placements with coordinates
CourierExtractorgem.extractors.courierCourier state per tick
DraftExtractorgem.extractors.draftPick and ban events
TeamfightsExtractorgem.extractors.teamfightsTeamfight window detection
classify_lane()gem.extractors.laneLane role from 10-min position heatmap

When using gem.parse(), all extractors are attached and run automatically. classify_lane() is a pure function called internally by match_builder — it can also be called directly on any lane_pos dict.