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 4.1–4.17

The client has maps 1, 8, 10 and 12, and no map 11.

In 4.18–4.19

The client has maps 1, 8, 10, 11 and 12. Map 11’s buildings are not scene objects: its MapObjects.mob holds them, named by the same rules, with Turret_OrderTurretShrine and Turret_ChaosTurretShrine for its shrine turrets, and the client creates them from it as it does scene objects. Map 11 has no ground grid.

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 4.1–4.19

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

In 4.1–4.19

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

In 4.1–4.19

A CreateTurret naming no building does nothing.

In 4.1–4.19

A name’s opening says what the object is: Turret a turret, Barracks without Spawn an inhibitor, HQ_ a nexus. A client creates no object the map’s object list below already holds.

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

In 4.1–4.19

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 4.1–4.19

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.

In 4.1–4.19

LEVELS/Map1/Scene/MapObjects.mob holds the objects that are not buildings: each side’s spawn point, the minion spawners, navigation points, the marker of the level’s size and the props. It opens with 16 bytes: a fixed tag, a 32-bit version (2), a 32-bit count and 4 reserved bytes. A record of 128 bytes follows for each object: its name, 62 bytes padded with zeros; a byte for its kind; a byte that lets it be placed regardless of collision; 32-bit floats for its position, rotation and scale (three each) and its bounding box (six); and a 32-bit skin.

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

In 4.1–4.19

The grid’s name is the one the mode’s navigation setting gives.

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.

In 4.1–4.19

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 4.1–4.19

A champion’s spells and attacks are in DATA/Characters/<Champion>/Spells/<Spell>.inibin.