Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The client’s data

What a server needs that no message carries, and takes from the files a client installs: the buildings and spawn points of a map, the ground units walk on, and the figures of champions, items and spells. A server SHOULD take its figures from these files: a client draws a match from them, and figures from elsewhere disagree with what it shows.

What a server reads

  • The buildings of a map: the names a client knows its turrets, inhibitors and nexuses by, from which Objects and identifiers works out the identifier of each.
  • The spawn points: where each side’s champions begin.
  • The ground: the grid a map’s units walk on, which a server needs to find paths.
  • The figures: each champion’s base statistics, each item’s price and what it is built from, and each spell’s cooldowns, costs and ranges, which a server states through replication and SpellCast.

In 0.8.13.26–0.9.25.35

A path carries its points as they lie in the world, and takes no origin from the ground.

In 0.8.13.26–0.9.22.13

The client has map 1 alone. It loads the map its own game configuration names under the key Mission of the section Hacks, Map1 where that is absent, and no message names the map.

In 0.9.25.24–0.9.25.35

The client has maps 1, 2 and 3.

A client installs its files under one root, with the paths below; an install that packs them into archives keeps the same paths inside.

Buildings. LEVELS/Map1/Scene/room.dsc lists a map’s scene objects, one line each: a file name and a quality number. Each object’s own file sits beside it and gives its name. A client creates no object from a name holding _Destroyed or _FB. On map 1 the names run Turret_T<side>_<lane>_<number> for a lane turret, Barracks_T<side>_<lane>1 for an inhibitor and HQ_T<side> for a nexus, side 1 for Order and 2 for Chaos and lanes L, C and R, with a shrine turret for each side; the numbers differ between the sides, and a server MUST take the names from the files.

In 0.8.13.26–0.9.25.35

Each object’s file is .sco as text or .SCB as binary, and gives its name on its Name= line.

In 0.8.13.26–0.9.22.13

A name’s opening says what the object is: Turret a turret, Barracks an inhibitor, HQ_ a nexus. CreateTurret names no building of the map: it makes a new turret where it says, under the object and character names it carries.

In 0.9.25.24–1.0.0.24

CreateTurret names a building by its name alone, compared without regard to case, and one naming no building does nothing.

In 0.9.25.24–0.9.25.35

A name’s opening says what the object is, the first match winning and a minion spawner’s tested before Barracks: Turret a turret, Barracks an inhibitor, HQ_ a nexus.

Objects and spawn points. A champion begins at its side’s spawn point, __Spawn_T1 for Order and __Spawn_T2 for Chaos.

The spawn points, the navigation points and the marker of the level’s size are scene objects, listed in room.dsc like the buildings.

In 0.8.13.26–0.9.22.13

A champion begins on its side’s spawn point itself, or at (6000, 0, 6000) on a map with none.

In 0.9.25.24–1.0.0.24

A champion begins at its side’s spawn point moved by an offset from DATA/Characters/HeroSpawnOffsets.inibin, read from the section Order<n> or Chaos<n> under the keys Pos<i> and Facing<i>, where i is one more than CreateChampion’s spawn index. A spawn index of 6 or more begins the champion on the spawn point itself.

The ground. A client walks units on LEVELS/Map1/AIPath.aimesh_ngrid, a binary grid. Its layout is unspecified.

The grid’s name is the map’s own, AIPath.aimesh with _ngrid after it: no setting of the mode chooses it.

The figures. Each is an inibin file: a champion’s base statistics in DATA/Characters/<Champion>/<Champion>.inibin; an item, its price among its figures, in DATA/Items/<id>.inibin; and summoner, item and shared spells in DATA/Spells/<Spell>.inibin.

A champion’s spells and attacks are in DATA/Spells/<Spell>.inibin with all other spells.

In 0.8.13.26–0.9.22.13

No map adds items of its own, and there are no figures for a whole mode.

In 0.9.25.24–1.0.0.24

Map 3 alone adds an Items.inibin. DATA/Globals/ holds figures for the whole game in UnitStats, bounty and ColorSettings.