W3 / DevelopersSDK 4.6.0Source & examples ↗

SDK data models

Start with MatchState, then follow its fields to Player, Hero, Building and the other models. Model names in the overview and guides link to their full reference. Search here also finds individual models by name.

For hero damage, follow HeroHeroCombatTotalsHeroDamageSummary. The summary contains total, breakdown and complete. Each HeroDamageContribution in the breakdown contains damageDealt and a list of HeroDamageUnitType values (typeId and isIllusion). A shared contribution is counted once for the whole group. An incomplete total is marked complete: false.

For item charges, Hero.inventoryCharges contains remaining counts aligned with Hero.inventory. Join each slot's rawcode to catalog ItemType.initialCharges for the standard starting capacity. Zero is an observed count; missing arrays and null slots remain unavailable. See the JSON and charge indicator example.

Native hero-bar space

GameContext.heroBarLastOccupiedSlot describes the actual native HUD rail, including shared allied portraits and empty gaps. For one owned hero in slot 1 and a shared hero in slot 4, the value is 4, not 2:

{ "gameContext": { "hudScale": 1, "heroBarLastOccupiedSlot": 4 } }

Zero means an observed empty bar; an absent field means unavailable. Dead portraits can still occupy a slot. This shared context requires no hero scope and does not add allied heroes or their statistics to Player.heroes. Consumers choose their placement policy; Match Vision reserves at least three rows and extends its left production/construction column through the observed last slot during self-play. Older recorders retain the three-row fallback.

This index is generated from the installed SDK's public interfaces, type aliases, enums and classes. Open a model for its complete declaration and linked field types. Optional fields may be unavailable because of permissions, game mode or missing observations; see the data access overview.

Statistics and observations

PlayerStatistics groups cumulative economy, item, hero, ability and retained-unit observations. PlayerLosses reports sampled deaths; MatchOutcomes contains explicit participant results. Analytics explains the grants and meanings; data availability covers self-play, replays and custom maps.

185 public models from the installed SDK. Each model links to its complete definition, including inherited fields and related types.

@w3booster/sdk

HeroCombatTotals

Interface

Engine lifetime totals for this hero instance, in actual HP after mitigation and overkill/overheal caps. Damage includes neutral targets and friendly fire. Engine summon attribution varies by ability. Survives death/revival; replay seeks replace observations. Missing means unavailable.

damage? · damageDealt · damageReceived · healingDealt · selfDamage

HeroDamageContribution

Interface

A measured contribution, grouped by unit type. Multiple unit types mean Warcraft merged their counters; their individual amounts cannot be separated.

damageDealt · units

InventorySlot

TypeAlias

Inventory is ordered by slot, including empty strings and repeated item types.

JsonObjectInput

TypeAlias

Call-site constraint for JSON-compatible root records. Nested arrays remain valid JSON values.

OverlayExtensionsInput

TypeAlias

Call-site constraint for JSON-compatible overlay extensions that cannot shadow SDK-owned branches.

OverlayState

TypeAlias

Extension branches are deeply immutable; normalization-owned overlay keys cannot be extensions.

Point

Interface

Warcraft III map coordinates. They are useful for relative map placement/order and are not screen pixels.

x · y

PointOfInterestKind

TypeAlias

Neutral map services and strategic sites. IDs are opaque and scoped to match.id.

W3BoosterClient

TypeAlias

Runtime class identity for `instanceof`; clients are created through the factory functions.

@w3booster/sdk/analytics

@w3booster/sdk/app

@w3booster/sdk/assets

BnetDivision

TypeAlias

Warcraft's Battle.net division ID, independent of W3Champions league IDs.

@w3booster/sdk/compositor

@w3booster/sdk/game-data

@w3booster/sdk/overlay-input

@w3booster/sdk/react

@w3booster/sdk/selectors

@w3booster/sdk/settings

@w3booster/sdk/standard-game

@w3booster/sdk/store

@w3booster/sdk/testing