Skip to content
mfajer edited this page Sep 19, 2013 · 24 revisions

A note on proxies

While the data about gamerules follows the DT_DOTAGamerules schema, to access it, you will need to use the dt DT_DOTAGamerulesProxy, which should follow the same schema as DT_DOTAGamerules.

Time properties

All time properties are given in seconds since the game instance started on the server. This should not be confused with the in-game clock, though. For everything except m_fGameTime these values are zero until they are set, and then the value does not change.

m_fGameTime

  • The current game time. This value does not increment when the game is paused.

m_flGameLoadTime

  • The game time at which the game instance loads (always zero?).

m_flGameStartTime

  • The game time at which the pre-game to game transition occurs (creeps spawning). This can be used to convert m_fGameTime to the in-game clock.

m_flGameEndTime

  • The game time when the ancient dies and the game ends.

m_flPreGameStartTime

  • The game time when the heroes are loaded in and the pre-game begins.

m_flHeroPickStateTransitionTime

m_flStateTransitionTime

  • Not sure about this one. It does actually change value and may be related to animation changes between different m_nGameState.

Game state properties

m_unMatchID

  • The match ID.

m_nGameState

  • 1: Players loading in
  • 2: Pick/ban in CM (not sure about other modes)
  • 4: Pre-game (heroes selected but no creeps)
  • 5: Game clock hits 0:00 (creeps spawn)
  • 6: Game has ended (scoreboard)

m_iGameMode

  • 0: None
  • 1: All Pick
  • 2: Captain's Mode
  • 3: Random Draft
  • 4: Single Draft
  • 5: All Random
  • 6: Intro
  • 7: Diretide
  • 8: Reverse Captain's Mode
  • 9: The Greeviling
  • 10: Tutorial
  • 11: Mid Only
  • 12: Least Played
  • 13: New Player Pool
  • 14: Compendium Matchmaking

m_iPauseTeam

  • 2: Radiant has paused.
  • 3: Dire has paused.

m_nGameWinner

  • 5: No winner yet (spectator team index).
  • 2: Radiant wins.
  • 3: Dire wins.

m_iNetTimeOfDay

Varies from 3(most likely 1, but I couldn't confirm)-65536.

It looks like night starts at ~49300:

  • 5.99853515625 : 49225
  • 6.01519775391 : 49316

and night ends at ~ 16500:

  • 11.9970703125 : 16464
  • 12.0137329102 : 16555

time_of_day

m_bIsNightstalkerNight

Goes from 0-1. 1 when NS's ult is active. This also causes m_iNetTimeOfDay to go to 3 (basically 0), and then when the NS ult is finished, it jumps back to the level it was at when NS ult was activated. (See above)

m_nGGTeam

  • Guesswork, does not actually appear to be the case.
  • 2: Radiant called gg and the gg-timer is counting down.
  • 3: Dire called gg and the gg-timer is counting down.

m_flGGEndsAtTime

  • Guesswork, does not actually appear to be the case.
  • The replay time at which the gg-timer expires and m_nGGTeam forefits.

Draft specific

m_iStartingTeam

  • 0: Not a CM or reverse-CM game.
  • 2: Radiant has first pick.
  • 3: Dire has first pick.

m_iActiveTeam

  • 2: Radiant is currently picking/banning.
  • 3: Dire is currently picking/banning.

m_nHeroPickState

  • 1: All pick picking
  • 2: Single draft picking
  • 4: Random draft picking
  • 27: All random picking
  • CM relevant value shown below in the current chronological order (patch 6.78c).
  • The order of these may change between patches, but the mapping is always the same.
  • The team that is banning/picking is determined by m_iActiveTeam.
  • 6: Ban 1
  • 7: Ban 2
  • 8: Ban 3
  • 9: Ban 4
  • 16: Pick 1
  • 17: Pick 2
  • 18: Pick 3
  • 19: Pick 4
  • 10: Ban 5
  • 11: Ban 6
  • 12: Ban 7
  • 13: Ban 8
  • 20: Pick 5
  • 21: Pick 6
  • 22: Pick 7
  • 23: Pick 8
  • 14: Ban 9
  • 15: Ban 10
  • 24: Pick 9
  • 25: Pick 10
  • 26: Bans/picks completed

m_fExtraTimeRemaining

  • Seconds of reserve/bonus time remaining (0000 for Radiant, 0001 for Dire)

m_BannedHeroes

m_SelectedHeroes