Changelog¶
0.18.0¶
Update
boon-prototo0.4.11132425+6785(Deadlock 6785).Reduce combat and
ability_ticksparse time with property filtering. Use pbdems2 0.4.1.Add Rust
Parser::run_to_end_with_properties()for selected entity fields.
0.17.0¶
Add current
upgrade_idsand optional recordedboon_countto player snapshots.Add
enemy_minimap_ticks()for each team’s recorded enemy hero icons and last-seen positions.Add objective
entity_serial. Keep health records separate when an entity slot is used again.Decode signed entity indices. Cache field keys in shared Rust readers.
Support Python 3.15.
0.16.0¶
Update protobufs to Deadlock 6774 (
boon-proto 0.4.11112755+6774).Correct ability history after entity-slot reuse and owner, ability, or slot changes.
Validate full ability-owner handles in Python and
boon-dev.Rust API change: Use pbdems2 0.4.0. Resolve cached field keys again after an upgrade.
Correct large field indices and cleared child values. Cache class baselines.
Reduce work during field-path and player entity parsing.
0.15.0¶
Add bounded exact replay checkpoints for repeated Rust stat batches.
Preserve adapter configuration across checkpoints.
Use pbdems2 0.3.6.
0.14.0¶
Share modifier lifetime rules across stat queries, modifier events, and
boon-dev. Keep raw modifier data.Preserve ordered modifier changes. Exclude table snapshots from events.
Remove the six-player filter from
demo.active_modifiers.Validate full entity handles. Use pbdems2 0.3.5.
Correct Urn carrier events. Confirm returns from channel completion and delivery-point closure.
Remove corruption-specific stat detection.
Update protobufs to Deadlock 6759 (
boon-proto 0.4.11094174+6759).
0.13.0¶
Add Rust catalog loading from JSON bytes and single-pass stat batches.
Add the target stat to hero-stat contributions.
0.12.0¶
Fix world coordinates for current Deadlock demos.
Use pbdems2 0.3.4.
0.11.0¶
Support City Never Sleeps demos (September 29, 2026) and later. Use Boon 0.10.0 or earlier for older demos.
Add hero and ability stat queries with
currentandbaselinemodes, boon-data inputs, and source explanations.Add
player_states()andimbues()for recorded states and item selections.Add snapshot
steam_idandammo_fraction. Withdata_version, addammo,max_ammo, andunlimited_ammo.Add item-purchase
steam_id,upgraded_from_ability_ids, andget_item_purchases(data_version=...).Add summary
barrier_absorption. Keep recorded healing in its own column.Use Steam IDs in stat, state, imbue, and summary results. Remove player slots from public results.
Correct modifier lifetimes and barrier snapshots across seeks and full passes.
Use catalog weapon data, shop thresholds, scaling defaults, effect bindings, and recorded bonus types.
Correct spirit scope and multiplier order, movement bonus addition, and light/heavy melee labels.
Remove old-format fallbacks and
stat_modifier_*snapshot columns. Share dataset caches and test inputs.Use pbdems2 0.3.3. Update protobufs to Deadlock 6746 (
boon-proto 0.4.11080740+6746). The direct protobuf API has changed fields and types, including map fields.Include MIT license files in packages. Do not include Python caches. Use
--lockedfor all release wheel builds.
Hero stat strings:
Weapon:
clip_size,bullet_velocity,weapon_damage,fire_rate,reload_time,falloff_start,falloff_end,light_melee_damage,heavy_melee_damage,melee_distance.Movement:
move_speed,sprint_speed,slide_distance,gravity_scale,stamina,stamina_cooldown,dash_speed,dash_duration,air_dash_speed,air_dash_duration.Resistance and evasion:
bullet_resist,spirit_resist,melee_resist,debuff_resist,bullet_evasion.Lifesteal:
bullet_lifesteal,spirit_lifesteal,melee_lifesteal.
Ability stat strings: cooldown_reduction, item_cooldown_reduction, duration_bonus, range_bonus, radius_bonus.
See Examples for queries and Known Issues for calculation limits.
0.10.0¶
API change: Remove
demo.healing,load("healing"),demo.barriers(), andboon.barriers.Keep recorded healing, regeneration, soul sources, and damage histories in
summary().Read hero, ability, item, modifier, and breakable names from boon-data. Download missing catalogs.
Add name-function
version=selection andbreakable_names().Rust API change: Replace static name functions with
CatalogNames::load(version)and its lookup methods.Add
boon get,boon versions,boon remove, andboon.datafor verified local catalogs.Preload kills, damage, and abilities in
Demo(path). Usepreload=Falseto defer dataset loads.Correct hero IDs after hero changes, including chat, damage, and item purchases.
Add damage absorption, victim shield values, and server ticks. Remove
is_secondary_stat.Read permanent spirit-power modifier ID 159 in client 6698.
Reduce snapshot allocations. Add Python/Rust benchmarks, Ruff, ty, and CI checks.
Use pbdems2 0.3.2 and
boon-proto 0.3.11038876+6701.
Past entries describe APIs at each release. Some APIs below are no longer available.
0.9.0¶
Remove Rust
resistances,stat_catalog, andstatsmodules and generated gameplay tables.API change: Remove Python
stat_ticks()andstat_effects().Add
EffectiveModifierStatefor effective modifiers alongside replicated rows.Replace calculated resistance snapshot columns with recorded
stat_modifier_*contributions and availability flags.Add
demo.barriers()for inferred barrier grants, absorption, expiry, and hits.Add
demo.healingwith events inferred from negative damage messages.Add
pregame_seconds,game_start_tick,tick_to_match_seconds(), andtick_to_match_clock().Add
damage.victim_entity_idand correct finite modifier expiry against recorded game time.Reduce snapshot allocations and parser passes. Group compatible dataset loads and event selectors.
0.8.0¶
Add Python
ability_display_names()and Rust ability-display-name and breakable-name lookups.Add damage source IDs, types, flags, and light/heavy/other melee classification.
Add
sinners_sacrificeandbreakablesdatasets with stable entity identity and exact hit records.Add
stat_ticks()andstat_effects()for calculated stat values and contributions.Add barrier and calculated baseline resistance snapshot columns.
Add modifier serials and duration/application changes. Keep partial updates and order simultaneous effects by serial.
Correct regulation time against the HUD clock. Cache the post-match message and summary frames.
Reduce teamfight and snapshot parser passes. Process only changed controllers for change-only datasets.
Use pbdems2 0.3.0. Export
EntityId,EntityChange, andEntityChangeKind.Add
ModifierState, stat blocks, masks, operations, and modifier-type decoding across game builds.Update protobufs to
0.3.10933105+6684; removeMatch.not_scoredand add server/rank metadata.Add manual release workflows for each package. Create tags after successful uploads.
Add concise technical writing guidance. See Contributors for community work on this release.
0.7.0¶
Add Python
riftand the Rust CLIriftcommand, with capture/expiry, winner, lane, and position.Read the Rift winner from game-rule scoring. Unobserved expiry behavior stays unverified.
Restore
banned_heroes; a missing message gives an empty frame.Add player
rank, with zero for missing rank metadata.Filter event messages before payload allocation. Release the Python interpreter during parsing and snapshots.
Add
Entity::get_vector3for whole-coordinate fields.Update protobufs and name tables to Deadlock 6668, source revision 10879761.
0.6.2¶
Add modifier
changedevents for stack updates. Removed rows retain the final stack count.Permit demos without a match ID. Use
match_id=Noneand game mode zero when unavailable.
0.6.1¶
Correct bare
charfields to unsigned varints. Keepchar[N]string buffers unchanged.Prevent field-type errors from shifting later entity data. Add a regression test.
0.6.0¶
Add the Python
boonCLI and Python 3.11-3.14 support.Rename the Rust CLI to
boon-dev; stop publication of its release binaries.Read the player roster at game over, before controller removal.
Add parallel player/world/trooper snapshots and selected-tick
snapshots()queries.Add spatial and temporal
teamfights()detection.Return parse errors for corrupt field paths, indices, entity updates, and string-table sizes.
Add missing Source 2 field decoders and correct wide unaligned bit reads.
Add indexed entity storage.
EntityContainer::iter()returns(i32, &Entity).Add
full_packet_offsets()anddecode_segment()for keyframe segments.Update protobufs to
0.2.10822189+6635. Rename post-matchurn_captures/UrnCapturetokoth_captures/KothCapture.
0.5.0¶
Add
in_combat(),player_ticks.in_item_shop, and change-onlyability_ticks.Add the Rust CLI
ability-tickscommand.Add
EntityContainer::updated_indices()andclear_updated().Process changed entities for ability, objective, neutral, and urn records. Reduce serializer and field-map allocations.
0.4.0¶
Add
boon.stats,kill_participation(), andtime_dead(), with matchingDemomethods.Add Python/Rust hitgroup and life-state name lookups.
Change patron phase 2 from
shields_downtotransforming; retain the numeric ID.
0.3.0¶
Correct duplicate modifier and urn events. Process string-table deltas instead of all entries at each tick.
Include nested VData modifier definitions in name tables.
Read effective
max_healthfrom the controller, with a pawn fallback.Skip unused message payloads before allocation.
Refresh names for build 6557, including Raven/Opera hero IDs.
Update protobufs to
0.2.10717574+6557and add post-match urn records.
0.2.0¶
Add Python/Rust CLI post-match summaries, damage matrices, and soul-source breakdowns.
Add regulation time properties and pause-aware tick conversions.
Correct missing player snapshots caused by handle-index decoding.
Read full world positions for players, objectives, troopers, neutrals, and urns.
Add
patron_phase_names()and correct lane-color labels.Version protobufs independently as
MAJOR.MINOR.SourceRevision+GameBuild, starting with0.2.10691905+6536.
0.1.0¶
Add Python
Demo, metadata, player/world snapshots, combat, shop, ability, chat, objective, modifier, and Street Brawl datasets.Add
load(),available_datasets(), game-over properties, name functions, and parser exceptions.Add the Rust CLI for raw messages, entities, send tables, string tables, and gameplay records.
API change: Remove
heroandteamstring columns,teams,winning_team, and unreliable bans from the pre-release API.Move
hero_names()andteam_names()from static methods to module functions.Combine
purchasesandshop_eventsasitem_purchases. Remove duplicated ability/modifier name columns from event datasets.