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 Hero → HeroCombatTotals → HeroDamageSummary.
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
AbilityStatistics
Interfacecooldown? · damageDealt · healingDone · isHeroAbility? · level?
AbortError
InterfaceActiveUpgrade
InterfaceApplicationState
InterfaceclientId · data? · development? · settings · surface?
AppSurface
TypeAliasBuilding
InterfaceAn observed unit instance. IDs are opaque strings scoped to match.id.
construction? · hitpoints? · id · isIllusion · mana? · position? · production? · typeId · upgrade?
Capability
TypeAliasClientLifecycleSnapshot
Interfaceerror · isSynchronized · retry · state · status
ClientLifecycleStore
InterfaceClientOptionsInput
TypeAliasCompletedUpgrade
InterfaceConnectionError
TypeAliasConnectionErrorCode
TypeAliasConnectionRetrySnapshot
Interfaceattempt · lastError · maxAttempts · nextDelay
ConnectionStatus
TypeAliasConnectOptions
InterfaceapplicationRevision? · autoResize? · backend? · backendUrl? · clientId · demo? · localRecorder? · reconnect? · retry? · scopes? · signal? · tokenProvider?
ControlGroup
InterfaceDeepReadonly
TypeAliasDiagnostics
InterfaceGameContext
InterfaceShared game context, delivered without a scope to every authorized application.
chatbarOpen? · heroBarLastOccupiedSlot? · hudScale · menuOpen? · teamColors?
Hero
InterfaceAn observed unit instance. IDs are opaque strings scoped to match.id.
abilities? · combat? · experience? · heroOrder? · hitpoints? · id · inventory? · inventoryCharges? · inventoryCooldowns? · isIllusion · level? · mana? · position? · typeId
HeroAbility
Interfaceid · lastActivation? · level · typeId
HeroChangedEvent
InterfacechangedFields · hero · heroId · player · playerId · previousHero? · previousPlayer? · state
HeroCombatTotals
InterfaceEngine 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
InterfaceA measured contribution, grouped by unit type. Multiple unit types mean Warcraft merged their counters; their individual amounts cannot be separated.
HeroDamageSummary
InterfaceRecorder-owned damage accounting for a hero and its attributed summons.
HeroDamageUnitType
InterfaceUnit type contributing to damage. Illusions are distinct from real units of the same type.
HeroEvent
Interfacehero · heroId · player · playerId · previousHero? · previousPlayer? · state
HeroStatistics
Interfaceabilities? · buildingKills · deaths · heroKills · level? · nextLevelExperience? · selfKills · timeAliveMs · totalKills · typeId
HostActionError
TypeAliasHostActionOptions
InterfaceHostCapability
TypeAliasHostCapabilityStatus
TypeAliasHostCommandOptions
InterfaceHostLifecycleSnapshot
InterfaceHostLifecycleStore
InterfaceInventorySlot
TypeAliasInventory is ordered by slot, including empty strings and repeated item types.
ItemStatistics
Interfacecollected · damageDealt? · destroyed · healingDone? · purchased · sold · used
JsonCompatible
TypeAliasJsonObject
InterfaceJsonObjectInput
TypeAliasCall-site constraint for JSON-compatible root records. Nested arrays remain valid JSON values.
JsonPatchAdd
InterfaceJsonPatchOperation
TypeAliasJsonPatchRemove
InterfaceJsonPatchReplace
InterfaceJsonPrimitive
TypeAliasJsonValue
TypeAliasKnownCapability
TypeAliasMainAccount
InterfaceMatch
InterfacebroadcasterPlayerId? · endedAt? · gameDataId? · gameName? · gameTime · gameVersion? · id · isObserver? · isReforged? · isReplay? · map? · mode · outcomes? · paused? · realBroadcasterPlayerId? · realm? · result? · startedAt? · status
MatchChangedEvent
InterfacechangedFields · match · previousMatch · state
MatchLifecycleEvent
Interfacematch · nextMatch? · observedAt · previousMatch? · state
MatchLifecycleObservationEvent
Interfaceinitial · match · nextMatch? · observedAt · phase · previousMatch? · state
MatchLifecycleSubscriptionOptions
InterfaceMatchOutcomes
TypeAliasMatchState
Interfaceapplication? · capabilities · gameContext · match · overlay? · players · poiMode? · pois?
MatchStatus
TypeAliasOpenWindowOptions
InterfaceOverlayExtensionReservedKey
TypeAliasOverlayExtensionsInput
TypeAliasCall-site constraint for JSON-compatible overlay extensions that cannot shadow SDK-owned branches.
OverlayState
TypeAliasExtension branches are deeply immutable; normalization-owned overlay keys cannot be extensions.
OverlaySurface
TypeAliasPatchMessage
TypeAliasPermissionRequiredError
TypeAliasRuntime error constructors exposed for `instanceof` and explicit error creation.
Player
Interfaceapm? · buildings? · colorId? · controlgroups? · heroes? · id · isAI? · losses? · mainAccount? · name? · race? · resources? · startPosition? · statistics? · stats? · team? · units? · upgrades?
PlayerChangedEvent
InterfacechangedFields · player · playerId · previousPlayer? · state
PlayerEvent
Interfaceplayer · playerId · previousPlayer? · state
PlayerLosses
InterfaceCumulative sampled deaths, excluding heroes and illusions. Disappearance is not death.
buildings? · complete · gameTime · units?
PlayerStatistics
InterfaceCumulative engine player counters (own player in self-play). Missing is unavailable, never zero.
aiDifficulty? · gameTime · goldCredited? · goldDiversionTax? · goldMined? · goldUpkeepLost? · handicapPercent? · heroes? · items? · lumberCredited? · lumberDiversionTax? · lumberUpkeepLost? · playerRace? · racePreference? · realTimeApm? · slotState? · timeInUpkeepMs? · units?
PlayerStats
InterfacegameMode · isPlaced? · league? · level? · losses · mmr? · provider · queue · race? · rank? · season? · team? · winRate · wins · xp?
PlayerStatsCollection
InterfaceobservedAt? · records · source? · status
Point
InterfaceWarcraft III map coordinates. They are useful for relative map placement/order and are not screen pixels.
PointOfInterest
Interfacecamp? · fountain? · guardCampId? · id · kind · mine? · nextStockUpdate? · observedAtGameTime · offers? · ownerSlot? · position · typeId? · wayGate?
PointOfInterestKind
TypeAliasNeutral map services and strategic sites. IDs are opaque and scoped to match.id.
PoiOffer
Interfacecooldown? · cost? · eligibility? · id · initialAvailability? · kind · restock? · stock? · stockPoolId? · typeId
ProductionQueueItem
InterfaceA game-time snapshot. Null means unobserved/uninitialized; never advance on a wall clock.
buildType? · position · progress · remainingSeconds · totalSeconds · typeId
ProtocolEnvelope
InterfaceProtocolError
TypeAliasRace
TypeAliasReadyOptions
InterfaceReconnectOptions
InterfaceResearchingUpgrade
InterfaceA game-time snapshot. Null means unobserved/uninitialized; never advance on a wall clock.
gametime · level · progress · remainingSeconds · totalSeconds · typeId
Resources
InterfacePlayer-facing resource and supply values; recorder-specific fixed-point units are already normalized.
gold · lumber · supply · supplyCap · workerSupply?
RetryOptions
InterfaceScope
TypeAliasSettingsPath
TypeAliasSettingsPathValue
TypeAliasSnapshotMessage
TypeAliasStartupOptions
InterfaceStateChangedEvent
InterfaceStateStore
InterfaceSubscriptionOptions
InterfaceTimedProgress
InterfaceA game-time snapshot. Null means unobserved/uninitialized; never advance on a wall clock.
Unit
InterfaceAn observed unit instance. IDs are opaque strings scoped to match.id.
hitpoints? · id · isIllusion · mana? · position? · typeId
UnitTypeStatistics
InterfacecurrentAmount · damageDealt · damageReceived · healingDone · isFunctionalPeon · isPeon · totalAmount
UpgradeState
InterfaceValuePool
InterfaceW3BoosterClient
TypeAliasRuntime class identity for `instanceof`; clients are created through the factory functions.
W3BoosterErrorInfo
TypeAliasW3BoosterErrorKind
TypeAliasW3BoosterEvent
TypeAliasW3BoosterEventEmitter
InterfaceW3BoosterEventMap
Interfaceapplication.settings.changed · hero.abilities.changed · hero.added · hero.changed · hero.inventory.changed · hero.removed · issue · match.changed · match.ended · match.started · player.added · player.apm.changed · player.changed · player.removed · player.resources.changed · player.stats.changed · player.upgrades.changed · state.changed · state.ready · status · stream.gap
W3BoosterHost
InterfaceW3BoosterIssue
Interfaceerror · recoverable · severity · source
W3BoosterIssueSeverity
TypeAliasW3BoosterIssueSource
TypeAliasWatchOptions
Interface@w3booster/sdk/analytics
EconomySample
InterfaceLossEvent
InterfaceThe counter changed in (fromGameTime, gameTime]; timestamps are observation times.
LossKind
TypeAliasLossWindow
InterfaceboundaryUncertain · complete · cost · counts · covered · events · fromGameTime · toGameTime
LossWindowOptions
InterfaceMatchHistory
InterfaceMatchHistoryOptions
Interface@w3booster/sdk/app
ApplicationConnectArguments
TypeAliasApplicationConnectOptions
TypeAliasApplicationDefinition
InterfaceApplicationRuntime
InterfaceApplicationRuntimeSnapshot
Interfaceclient · error · host · isSynchronized · retry · settings · state · status
ApplicationRuntimeStartOptions
InterfaceApplicationRuntimeStore
InterfaceDeepPartial
TypeAliasDefinedApplication
Interface@w3booster/sdk/assets
AssetLaunchLocation
InterfaceAssetUrlOptions
InterfaceBnetDivision
TypeAliasWarcraft's Battle.net division ID, independent of W3Champions league IDs.
BnetLeagueIconOptions
InterfaceResolveAssetBaseUrlOptions
Interface@w3booster/sdk/compositor
BrowserSourceCredentials
InterfaceOverlayCompositionApp
InterfaceappId · clientId · colorScheme · development? · expiresAt · launchKey · name · url
OverlayCompositionOptions
Interfacebackend? · backendUrl? · browserSource? · onError? · signal? · surface? · tokenProvider?
OverlayCompositionWatcher
Interface@w3booster/sdk/game-data
AbilityCooldownState
InterfaceA game-time snapshot. Null means unobserved/uninitialized; never advance on a wall clock.
AbilityType
InterfaceisHeroAbility · levels · maxLevel · name? · race? · requiredHeroLevel · typeId
Cost
InterfaceGameData
Interfaceabilities · assets · gameVersion · id · items · ruleset · units · upgrades
GameDataLoadOptions
InterfaceGraphics
TypeAliasIconOptions
InterfaceItemType
Interfaceabilities · cost · initialCharges? · level? · name? · race? · stock? · typeId
ObjectKind
TypeAliasObjectType
InterfaceStockDefaults
InterfacePublic object configuration, not current stock. Maps may override these defaults.
firstAvailableSeconds? · initial? · maximum? · replenishSeconds?
TypeCatalog
InterfaceUnitType
Interfaceabilities · baseStats · builds · buildTimeSeconds? · cost · heroAbilities · isBuilding · name? · race? · sellsItems? · sellsUnits? · stock? · supply · trains · typeId · upgrades
UpgradeType
Interface@w3booster/sdk/overlay-input
OverlayInputOptions
InterfaceOverlayInputRegistration
Interface@w3booster/sdk/react
@w3booster/sdk/selectors
PlayerDisplayIdentity
InterfacePlayerRelationship
TypeAliasPlayerTeam
InterfaceTeamAssignable
InterfaceUnitSelectionOptions
InterfaceUnit selectors exclude illusions unless explicitly requested; raw collections retain all instances.
@w3booster/sdk/settings
ApplicationSettingsDefinition
InterfaceAppSettingCondition
TypeAliasAppSettingField
TypeAliasAppSettingOption
InterfaceAppSettingsGroup
Interfacedescription? · id · title
AppSettingsSchema
InterfaceAppSettingsSection
Interfacedescription? · fields · groups? · id · title
DeepPartial
TypeAliasFieldBase
Interfacedefault? · defaultHotkey? · description? · enabledWhen? · group? · internal? · key · label · options? · requiresPlan? · type · visibleWhen?
GenerateSettingsBindingOptions
InterfaceSettingsPath
TypeAlias@w3booster/sdk/standard-game
DayNightState
InterfaceHeroExperienceState
Interfaceexperience · experienceForNextLevel · experienceIntoLevel · level · levelStartExperience · nextLevelExperience? · progress
StandardGameMode
TypeAliasStandardGameModeMetadata
Interfaceid · kind · ladderMode · playerCount · teamSize
StandardGameRaceMetadata
InterfaceUpkeepState
TypeAlias@w3booster/sdk/store
ImmediateStore
InterfaceObserver
InterfaceSelectorStoreOptions
InterfaceSubscribable
InterfaceUnsubscribable
Interface@w3booster/sdk/testing
DemoArguments
TypeAliasDemoStateOptions
TypeAliasDemoTransportOptions
TypeAliasinterval? · overlayExtensions? · settings? · state? · surface?
TestingConnectOptions
InterfaceapplicationRevision? · autoResize? · backend? · backendUrl? · clientId · demo? · localRecorder? · reconnect? · retry? · scopes? · signal? · tokenProvider? · transport
Transport
InterfaceTransportContext
InterfaceapplicationRevision? · clientId · onError · onMessage · onStatus · protocolVersions · scopes · signal