Skip to content

Map blocks and block models

GameBox (Nadeo)World and streamingApplies toTMNF

A map is a list of blocks on a grid of squares. Each block names a block model, the square it stands on, which way it faces and a word of flags; the flags pick which of the model’s prepared shapes is drawn, so the map stores the road’s connection shape and the game needs no neighbour logic to draw it. Observed · the 65 campaign maps, every block placed

Positions are metres in a right-handed frame with +Y up, the grid along X and Z, stored as they are with no axis negated. Read as left-handed (Z negated), the world is mirrored: the start banner’s lettering reads backwards; read as stored it reads the right way. Triangles wind counter-clockwise seen from the front in this frame. Observed · renders of campaign map A01

The square size comes from the collection’s zones (CollectionZones): Stadium’s squares are 32 m wide and 8 m high. Observed · the Stadium collection GBX.NET’s block size for Stadium is the same, 32 × 8 × 32. Sourced · GBX.NET

A block model is built in a block-local frame that spans 0 to 32 m in X and Z per square, with the Stadium grass ground at local height 1.0; ground blocks stand at map height 1. Observed · the stock and downloaded maps

Field Meaning Confidence
Name The block model’s collector ident Observed · the 65 campaign maps
Direction 0 to 3, quarter turns about +Y; each step takes +X to +Z, so (x, y, z) becomes (−z, y, x) Observed
Coordinate The square of the turned footprint’s least corner; block data version 6 and later store the coordinate plus (1, 0, 1) Observed
Flags Below Observed

The sense of the turn is measured on road: over the stock maps and the 2026 and all-time top downloads, the open sides of neighbouring StadiumRoadMain blocks meet 4,400 times with 11 mismatches when a step takes +X to +Z, against 2,578 and 765 the other way. Observed · the stock maps and 200 downloaded maps With the least corner of the turned footprint at the coordinate, 300 squares of the stock maps are claimed twice, mostly the dirt-hill terrain under the dirt-hill road blocks; with the model’s first unit as the pivot, 1,682 are. Observed · the stock maps The turned footprint’s least corner is at the coordinate times (32, 8, 32) m. Observed · the 65 campaign maps

Bits Meaning Confidence
0–5 Variant: the outer index of the model’s mobil lists Observed
6–11 Sub-variant: the inner index Observed
12 Ground: use the model’s ground mobils; otherwise its air mobils Observed
13 Clip: the sub-variant is always 63 Observed
14 Pillar: the pillar is a block stored in the map; the game generates none Observed

Over the 65 campaign maps every block resolves this way; a block whose list is empty draws nothing. Observed[the 65 campaign maps] A clip shows the first mobil of its variant’s list; this is reasoned from Stadium’s clip models, which have one mobil per ground list and empty air lists. Inferred

StadiumRoadMain’s variants 0 to 5 are Base, Deadend, Corner, Straight, TShaped and Cross; the ground Straight has four sub-variants (Straight, A, B and C). Observed · the Stadium block model

A ground block draws the terrain of only the squares of its units at relative height 0 (a unit’s offset y of 0), not of its whole footprint: a bridge arch stands on 2 of the 6 squares it spans, and the others show the zone’s grass. Filling the whole footprint leaves visible holes in the grass. Observed · campaign map A01 A square of the map area that no ground block covers shows the collection’s default zone’s flat block (StadiumGrass, the first block info of ZoneFlat) at height 0. Observed · the 65 campaign maps

A spawn faces its local +Z. Of the 25 campaign start blocks (way point 0 or 4) with road on one side only, 23 have it ahead along local +Z; 36 have road on both sides and 4 on neither. Observed · the start blocks of the 65 campaign maps

The block-info files (CGameCtnBlockInfoClassic, Flat, RectAsym, Road, Clip, Frontier and Pylon) keep their units and mobils in the legacy chunk 0x0304E005, never in 0x0304E01D or 0x0304E01E. Proven[every block-info file of the install’s packs]

Order Field Type Confidence
1 Name ident Observed
2 Size three i32 Observed
3 Is pillar bool Observed
4 Selection i32 Unknown
5 Unknown i32 Unknown
6 Pillar node reference Observed
7 Ground units counted node references Observed
8 Air units counted node references Observed
9 Ground mobils counted lists of counted node references Observed
10 Air mobils counted lists of counted node references Observed
11 Unknown u8 Unknown
12 Unknown i32 Unknown
13 Unknown two i16 Unknown

The layout reads every block-info file of the packs to its end. Proven · every block-info file of the install’s packs A real block has no ground units: all its units are in the air list. The mobils are one list per variant, holding the variant’s sub-variants, not one list per unit. Observed · every block-info file of the install’s packs

A unit (CGameCtnBlockUnitInfo, 0x03036000) holds its offset within the block, four clips and a surface ID. Observed · every block-info file of the install’s packs

A mobil’s solid places its parts through CPlugTree locations; see solids and visuals.

The thumbnail of header chunk 0x03043007 is a JPEG stored bottom row first. Observed · campaign map A01

What do the block-info fields 4, 5 and 11 to 13 mean?

They are read and accounted for, but nothing yet ties them to the game’s behaviour.

Sources

  • GBX.NET — version 2.5.0; the block data chunk, Id.GetBlockSize and the block-info classes