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.

Movement takes the origin of a path from the ground.

In 1.0.0.140

The client has maps 1, 2, 3, 4, 6 and 8.

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.

A word a name holds anywhere says what the object is, not only its opening, the first match winning: a minion spawner’s Spawn_Barracks is tested before Barracks, which makes an inhibitor, and HQ_ makes a nexus and Turret a turret.

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

In 1.0.0.140–3.1.0.0

CreateTurret names a building by its name with _A after it.

In 1.0.0.140

A client fails on a CreateTurret naming no building, and a server MUST NOT send one.

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.

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.

In 1.0.0.140–3.1.0.0

In the section’s name, n is how many players and bots the side has. A champion begun on the spawn point itself faces along +X.

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.

Map 1 adds LEVELS/Map1/Items.inibin to the items, and figures for a whole mode are in DATA/Globals/, such as CLASSIC_Stats.inibin and HealthGain.inibin.

In 1.0.0.140

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