Skip to content

MapGrid.GridX.GridZ

These leaves define the ground of the map.

type UIntArray hash 0x78e32e1c Documented

Per-cell terrain map of the player’s island, stored as a flat row-major UInt32 array of GridX × GridZ cells (9600 entries, 120 × 80). Each value is the murmur3_x86_32 hash of a type of floor.

HashFloorDefine row
0xFF4AE68AGrass
0xD21B65B6Water
0xB6D76A62Beach
0xB53F5F3DSeaside
0xA27341EDClover
0xCF83CF1FConcrete
0x318904D8Concrete_Road
0x9999D173Soil

The full vocabulary is enumerated by romfs/RSDB/FloorDefine.Product.[ver].rstbl.byml. Cells whose key is UGC (0x69FFF2F1) pair with a matching entry in the UgcIndex array, which holds the UGC slot index for that cell, non-UGC cells leave UgcIndex as -1.

In-game

murmur3_x86_32 of any FloorDefine row name (e.g. Grass, Water, Asphalt_Road, UGC).

Accepted

any UInt32, values that aren’t in FloorDefine fallback to Soil in game.

type IntArray hash 0x6b552914 Documented

Companion to FloorKeyHash: same shape (flat row-major Int32, 9600 entries for GridX × GridZ), one slot per island cell. Whenever a cell’s FloorKeyHash is UGC (0x69FFF2F1), UgcIndex holds the index of the Ugc/UgcMapFloor%03d.{canvas,ugctex}.zs slot to use. Every other cell have the value -1.

In-game

-1 for cells with no UGC floor, otherwise 0..99, matching the UGC index.

Accepted

any signed Int32. If there is no match, it will fallback to Soil in game.