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
Missionof the sectionHacks,Map1where 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
.scoas text or.SCBas binary, and gives its name on itsName=line.
In 0.8.13.26–0.9.22.13
A name’s opening says what the object is:
Turreta turret,Barracksan inhibitor,HQ_a nexus.CreateTurretnames 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
CreateTurretnames 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:Turreta turret,Barracksan 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 sectionOrder<n>orChaos<n>under the keysPos<i>andFacing<i>, where i is one more thanCreateChampion’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 inUnitStats,bountyandColorSettings.