π ChangelogΒΆ
3.0.0 (unreleased)ΒΆ
A full rewrite: a Rust core parser for Counter-Strike 2 (Source 2) demo files
with a Python Demo class that returns Polars DataFrames.
Combat datasets:
rounds,kills,damages,bomb,shots,stats.Grenade datasets:
grenades(trajectories),fires,smokes, andblinds(flash events β who was blinded, by whom, and for how long).item_eventsβ weapon-item transactions (purchases, pickups, and drops), reconstructed from inventory state so they work on demos without theitem_purchaseevent.Player datasets:
players(roster);snapshots(...)for per-player state β position, health, armor, economy, and loadout β at a tick, a list of ticks, a contiguous range (start_tick/end_tick), or sampled across the match by a stride and/or event ticks.statsalso reports utility (grenade damage, flashes thrown, enemies flashed, blind duration dealt);round_economyclassifies each teamβs buy per round (eco/force/full).Metadata:
chat,convars.awpy.SNAPSHOT_PROPERTIESandawpy.GAME_EVENTSβ discoverable catalogs of the per-player snapshot features (mapped to engine properties) and common events.Generic access:
header, theeventsmapping, andticks()β one natively typed row per player per tick, with default props and friendly aliases (X/Y/Z,health,armor,team_num,name,money).Fast by default: the headline datasets decode together in one parallel pass on first access;
ticksandsnapshotsdecode in parallel across keyframes.awpy.plotfor radars, frames, heatmaps, and GIFs (awpy[plot]extra).awpy.VisibilityCheckerfor line-of-sight queries against map meshes, andawpy.NavMeshfor navigation-mesh area lookups and pathfinding.awpy.dataβ map-data cache (mesh / nav / radar assets, versioned releases).awpycommand-line tool;awpy-devdeveloper CLI for parser internals.