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 1.0.0.58–1.0.0.129
Movement takes the origin of a path from the ground.
In 1.0.0.58–1.0.0.96
The client has maps 1, 2, 3 and 4.
In 1.0.0.126
The client has maps 1, 2, 3, 4 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.
In 1.0.0.25–1.0.0.96
CreateTurretnames a building by its name alone, compared without regard to case, and one naming no building does nothing.
In 1.0.0.58–1.0.0.129
A word a name holds anywhere says what the object is, not only its opening, the first match winning: a minion spawner’s
Spawn_Barracksis tested beforeBarracks, which makes an inhibitor, andHQ_makes a nexus andTurreta turret.
In 1.0.0.58–1.0.0.96
room.dsclists each object as a.sco, but its file is a binary.SCB, holding its name within it rather than on aName=line.
In 1.0.0.126–1.0.0.129
Each object’s file is
.scoas text or.SCBas binary, and gives its name on itsName=line.
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.96
In the section’s name, n is how many players the side has plus the count
SpawnStartcarries, added on both sides alike.
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.
In 1.0.0.25–1.0.0.96
A champion’s spells and attacks are in
DATA/Spells/<Spell>.inibinwith all other spells.
In 1.0.0.25–1.0.0.96
Map 3 alone adds an
Items.inibin.DATA/Globals/holds figures for the whole game inUnitStats,bountyandColorSettings.
In 1.0.0.126–1.0.0.129
Map 1 adds
LEVELS/Map1/Items.inibinto the items, and figures for a whole mode are inDATA/Globals/, such asCLASSIC_Stats.inibinandHealthGain.inibin.
In 1.0.0.126
A champion’s spells and attacks are in
DATA/Characters/<Champion>/Spells/<Spell>.inibin.