Skip to content

Wire Layout Reference ​

Float fields store unsigned f32 bits. Strings/opaque fields store hex bytes. Array count prefixes are regenerated by writers. Conditional fields follow the version and type expressions below. Parameters are not serialized.

material ​

FieldStorageCondition
diffuse"quat""always"
ambient"quat""always"
specular"quat""always"
emissive"quat""always"
power"f32""always"
colorOp"u32""always"
colorArg1"u32""always"
colorArg2"u32""always"
renderFlags"u32""always"
sourceBlend"u32""always"
destinationBlend"u32""always"

key ​

FieldStorageCondition
count"i32""always"
keyType"u32"{"gt":["count",0]}
samplingRate"f32"{"gt":["count",0]}
values{"kind":"array","count":"count","item":{"kind":"array","count":{"select":["keyType",3,4]},"item":"f32"}}"always"

transform ​

FieldStorageCondition
name"string""always"
position"vec3""always"
rotation"quat""always"
scale"vec3""always"
keys{"kind":"array","count":3,"item":"key"}"always"
collisionMesh"string""always"
climbMesh"string""always"

n3cpart ​

FieldStorageCondition
name"string""always"
reserved"u32""always"
material"material""always"
texture"string""always"
geometry"string""always"

n3cplug ​

FieldStorageCondition
name"string""always"
type"u32""always"
joint"i32""always"
position"vec3""always"
rotation{"kind":"array","count":16,"item":"f32"}"always"
scale"vec3""always"
material"material""always"
geometry"string""always"
texture"string""always"

shapePart ​

FieldStorageCondition
pivot"vec3""always"
mesh"string""always"
material"material""always"
textureCount"i32""always"
textureFps"f32""always"
textures{"kind":"array","count":"textureCount","item":"string"}"always"

n3shape ​

FieldStorageCondition
transform"transform""always"
partCount"i32""always"
parts{"kind":"array","count":"partCount","item":"shapePart"}"always"
metadata{"kind":"array","count":5,"item":"i32"}"always"

n3chr ​

FieldStorageCondition
transform"transform""always"
joint"string""always"
partCount"i32""always"
parts{"kind":"array","count":"partCount","item":"string"}"always"
plugCount"i32""always"
plugs{"kind":"array","count":"plugCount","item":"string"}"always"
animationControl"string""always"
jointPartStarts{"kind":"array","count":2,"item":"i32"}"always"
jointPartEnds{"kind":"array","count":2,"item":"i32"}"always"
fxPlug"string""optional tail"
collisionSkin"string""optional tail"

n3joint ​

FieldStorageCondition
name"string""always"
position"vec3""always"
rotation"quat""always"
scale"vec3""always"
keys{"kind":"array","count":4,"item":"key"}"always"
childCount"i32""always"
children{"kind":"array","count":"childCount","item":"n3joint"}"always"

binding ​

FieldStorageCondition
origin"vec3""always"
count"i32""always"
pointerPlaceholders{"kind":"bytes","count":8}"always"
joints{"kind":"array","count":"count","item":"i32"}"always"
weights{"kind":"array","count":"count","item":"f32"}{"gt":["count",1]}

n3cskin ​

FieldStorageCondition
name"string""always"
faceCount"i32""always"
vertexCount"i32""always"
uvCount"i32""always"
positionNormals{"kind":"array","count":{"product":["vertexCount",6]},"item":"f32"}"always"
vertexIndices{"kind":"array","count":{"product":["faceCount",3]},"item":"u16"}"always"
uvs{"kind":"array","count":{"product":["uvCount",2]},"item":"f32"}"always"
uvIndices{"kind":"array","count":{"product":["faceCount",3]},"item":"u16"}"always"
bindings{"kind":"array","count":"vertexCount","item":"binding"}"always"

n3cskins ​

FieldStorageCondition
name"string""always"
lods{"kind":"array","count":4,"item":"n3cskin"}"always"

fxPlugPart ​

FieldStorageCondition
name"string""always"
bundle"string""always"
jointIndex"i32""always"
offsetPosition"vec3""always"
offsetDirection"vec3""always"
extension{"kind":"bytes","count":8}"always"

n3fxplug ​

FieldStorageCondition
name"string""always"
partCount"i32""always"
parts{"kind":"array","count":"partCount","item":"fxPlugPart"}"always"

animation ​

FieldStorageCondition
recordId"i32""always"
start"f32""always"
end"f32""always"
fps"f32""always"
metadata{"kind":"array","count":5,"item":"f32"}"always"
flags"u32""always"
strikeValues{"kind":"array","count":2,"item":"f32"}"always"
name"string""always"

n3anim ​

FieldStorageCondition
count"i32""always"
clips{"kind":"array","count":"count","item":"animation"}"always"

skyChange ​

FieldStorageCondition
name"string""always"
type"i32""always"
when"u32""always"
param1"u32""always"
param2"u32""always"
howLong"f32""always"

n3sky ​

FieldStorageCondition
suns{"kind":"array","count":3,"item":"string"}"always"
clouds{"kind":"array","count":6,"item":"string"}"always"
moon"string""always"
count"i32""always"
dayChanges{"kind":"array","count":"count","item":"skyChange"}"always"

collapse ​

FieldStorageCondition
indicesToLose"i32""always"
indicesToChange"i32""always"
verticesToLose"i32""always"
indexChangesOffset"i32""always"
collapseTo"i32""always"
shouldCollapse"u8""always"
padding{"kind":"bytes","count":3}"always"

lod ​

FieldStorageCondition
distance"f32""always"
vertexCount"i32""always"

n3pmesh ​

FieldStorageCondition
name"string""always"
collapseCount"i32""always"
changeCount"i32""always"
vertexCount"i32""always"
indexCount"i32""always"
minVertexCount"i32""always"
minIndexCount"i32""always"
vertices{"kind":"array","count":{"product":["vertexCount",8]},"item":"f32"}"always"
indices{"kind":"array","count":"indexCount","item":"u16"}"always"
collapses{"kind":"array","count":"collapseCount","item":"collapse"}"always"
indexChanges{"kind":"array","count":"changeCount","item":"i32"}"always"
lodCount"i32""always"
lods{"kind":"array","count":"lodCount","item":"lod"}"always"

fxSlot ​

FieldStorageCondition
type"i32""always"
startTime"f32"{"and":[{"gt":["type",0]}]}
version"u8"{"and":[{"gt":["type",0]}]}
baseVersion"u8"{"and":[{"gt":["type",0]}]}
life"f32"{"and":[{"gt":["type",0]}]}
storedType"u8"{"and":[{"gt":["type",0]}]}
velocity"vec3"{"and":[{"gt":["type",0]}]}
acceleration"vec3"{"and":[{"gt":["type",0]}]}
rotVelocity"vec3"{"and":[{"gt":["type",0]}]}
onGround"u8"{"and":[{"gt":["type",0]}]}
position"vec3"{"and":[{"gt":["type",0]}]}
numTex"i32"{"and":[{"gt":["type",0]}]}
texFps"f32"{"and":[{"gt":["type",0]}]}
texBase{"kind":"bytes","count":260}{"and":[{"gt":["type",0]}]}
alpha"i32"{"and":[{"gt":["type",0]},{"gt":[2,"baseVersion"]}]}
sourceBlend"u32"{"and":[{"gt":["type",0]}]}
destinationBlend"u32"{"and":[{"gt":["type",0]}]}
fadeOut"f32"{"and":[{"gt":["type",0]}]}
fadeIn"f32"{"and":[{"gt":["type",0]}]}
renderFlag"u32"{"and":[{"gt":["type",0]},{"gt":["baseVersion",{"minus":[2,1]}]}]}
num"i32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]}]}]}
sizeX"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]}]}]}
sizeY"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]}]}]}
texLoop"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]}]}]}
radius"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]}]}]}
rotateOnlyY"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]},{"gt":["version",{"minus":[3,1]}]}]}]}
scaleVelX"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]},{"and":[{"gt":["version",{"minus":[4,1]}]}]}]}]}
scaleVelY"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]},{"and":[{"gt":["version",{"minus":[4,1]}]}]}]}]}
scaleAccelX"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]},{"and":[{"gt":["version",{"minus":[4,1]}]}]}]}]}
scaleAccelY"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]},{"and":[{"gt":["version",{"minus":[4,1]}]}]}]}]}
rotation{"kind":"array","count":16,"item":"f32"}{"and":[{"gt":["type",0]},{"and":[{"eq":["type",2]},{"gt":["version",{"minus":[5,1]}]}]}]}
numParticle"i32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
size0"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
size1"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"gt":["version",{"minus":[4,1]}]}]}]}
life0"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
life1"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
minCreateRange"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
maxCreateRange"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
createDelay"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
numCreate"i32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
emitType"u32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
emitAngle"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"eq":["emitType",1]}]}]}
gatherPoint"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"eq":["emitType",2]}]}]}
emitDirection"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
particleVelocity"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
particleAcceleration"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
particleRotationVelocity"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
particleGravity"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
changeColor"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
colorCount"i32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["changeColor",0]}]}]}]}
colors{"kind":"array","count":"colorCount","item":"u32"}{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["changeColor",0]}]}]}]}
animKey"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]}]}]}
meshFps"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["animKey",0]}]}]}]}
shapeFile{"kind":"bytes","count":260}{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["animKey",0]}]}]}]}
texRotateVelocity"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["version",{"minus":[5,1]}]}]}]}]}
scaleVelX"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["version",{"minus":[5,1]}]}]}]}]}
scaleVelY"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",1]},{"and":[{"gt":["version",{"minus":[5,1]}]}]}]}]}
shapeFile{"kind":"bytes","count":260}{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]}]}]}
textureMoveDir"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]}]}]}
textureU"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]}]}]}
textureV"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]}]}]}
scaleVelocity"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]}]}]}
texLoop"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]},{"gt":["version",{"minus":[2,1]}]}]}]}
scaleAcceleration"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]},{"gt":["version",{"minus":[3,1]}]}]}]}
meshFps"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]},{"gt":["version",{"minus":[4,1]}]}]}]}
unitScale"vec3"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",3]},{"gt":["version",{"minus":[5,1]}]}]}]}
sizeX"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",4]}]}]}
sizeZ"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",4]}]}]}
scaleVelX"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",4]}]}]}
scaleVelZ"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",4]}]}]}
texLoop"u8"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",4]}]}]}
gap"f32"{"and":[{"gt":["type",0]},{"and":[{"eq":["type",4]},{"gt":["version",{"minus":[1,1]}]}]}]}
extension{"kind":"bytes","count":2}{"and":[{"gt":["type",0]},{"gt":["version",{"minus":[6,1]}]}]}

fxb ​

FieldStorageCondition
version"i32""always"
life"f32""always"
velocity"f32""always"
dependScale"u8""always"
slots{"kind":"array","count":{"choose":[{"gt":["version",{"minus":[1,1]}]},16,8]},"item":"fxSlot"}"always"
static"u8"{"gt":["version",{"minus":[2,1]}]}
trailer{"kind":"tail"}{"gt":["version",{"minus":[3,1]}]}

terrainPoint ​

FieldStorageCondition
height"f32""always"
tile"u32""always"

terrainPatch ​

FieldStorageCondition
middleHeight"f32""always"
radius"f32""always"

terrainTile ​

FieldStorageCondition
source"i16""always"
index"i16""always"

terrainTiles ​

FieldStorageCondition
tileCount"i32""always"
sourceCount"i32"{"and":[{"gt":["tileCount",0]}]}
sources{"kind":"array","count":"sourceCount","item":{"kind":"bytes","count":260}}{"and":[{"gt":["tileCount",0]}]}
tiles{"kind":"array","count":"tileCount","item":"terrainTile"}{"and":[{"gt":["tileCount",0]}]}

terrainLightmap ​

FieldStorageCondition
x"i16""always"
z"i16""always"
texture"ntf""always"

river ​

FieldStorageCondition
vertexCount"i32""always"
vertices{"kind":"array","count":"vertexCount","item":{"kind":"array","count":11,"item":"f32"}}"always"
indexCount"i32""always"
texture"string""always"

pond ​

FieldStorageCondition
vertexCount"i32""always"
columns"i32"{"and":[{"gt":["vertexCount",0]}]}
texture"string"{"and":[{"gt":["vertexCount",0]}]}
vertices{"kind":"array","count":"vertexCount","item":{"kind":"array","count":11,"item":"f32"}}{"and":[{"gt":["vertexCount",0]}]}
reserved"i32"{"and":[{"gt":["vertexCount",0]},{"gt":["version",{"minus":[2,1]}]}]}
indexCount"i32"{"and":[{"gt":["vertexCount",0]}]}

gtd ​

FieldStorageCondition
version"i32""always"
name"string""always"
mapSize"i32""always"
points{"kind":"array","count":{"product":["mapSize","mapSize"]},"item":"terrainPoint"}"always"
patches{"kind":"array","count":{"product":[{"divide":[{"minus":["mapSize",1]},8]},{"divide":[{"minus":["mapSize",1]},8]}]},"item":"terrainPatch"}"always"
grass{"kind":"bytes","count":{"product":["mapSize","mapSize"]}}"always"
zoneName{"kind":"bytes","count":260}"always"
tileInfo"terrainTiles""optional tail"
lightmapCount"i32""optional tail"
lightmaps{"kind":"array","count":"lightmapCount","item":"terrainLightmap"}"optional tail"
riverCount"i32""optional tail"
rivers{"kind":"array","count":"riverCount","item":"river"}"optional tail"
pondCount"i32""optional tail"
ponds{"kind":"array","count":"pondCount","item":"pond"}"optional tail"

subcell ​

FieldStorageCondition
count"i32""always"
triangles{"kind":"array","count":"count","item":{"kind":"array","count":3,"item":"u32"}}"always"

maincell ​

FieldStorageCondition
present"i32""always"
shapeCount"i32"{"and":[{"gt":["present",0]}]}
shapes{"kind":"array","count":"shapeCount","item":"u16"}{"and":[{"gt":["present",0]}]}
subcells{"kind":"array","count":16,"item":"subcell"}{"and":[{"gt":["present",0]}]}

placedShape ​

FieldStorageCondition
shapeType"u32""always"
transform"transform""always"
partCount"i32""always"
parts{"kind":"array","count":"partCount","item":"shapePart"}"always"
metadata{"kind":"array","count":5,"item":"i32"}"always"

opd ​

FieldStorageCondition
gridCell{"kind":"parameter","name":"gridCell","default":16}"always"
version"i32""always"
name"string""always"
width"f32""always"
height"f32""always"
triangleCount"i32""always"
triangles{"kind":"array","count":"triangleCount","item":{"kind":"array","count":9,"item":"f32"}}"always"
cells{"kind":"array","count":{"product":[{"divide":[{"float":"width"},"gridCell"]},{"divide":[{"float":"height"},"gridCell"]}]},"item":"maincell"}"always"
objectCount"i32""always"
objects{"kind":"array","count":"objectCount","item":"placedShape"}"always"

uifChild ​

FieldStorageCondition
type"u32""always"
node"uifNode""always"

uifNode ​

FieldStorageCondition
name"string""always"
childCount{"kind":"choice","condition":{"gt":["fileVersion",{"minus":[1264,1]}]},"yes":"i16","no":"i32"}"always"
versionWord"i16"{"gt":["fileVersion",{"minus":[1264,1]}]}
children{"kind":"array","count":"childCount","item":"uifChild"}"always"
id"string""always"
region"rect""always"
movable"rect""always"
style"u32""always"
reserved"u32""always"
tooltip"string""always"
soundOpen"string""always"
soundClose"string""always"
baseExtra"i16"{"and":[{"gt":["fileVersion",{"minus":[1264,1]}]},{"gt":["versionWord",{"minus":[2,1]}]}]}
clickRect"rect"{"or":[{"eq":[{"mask":["type",65535]},1]}]}
soundOn"string"{"or":[{"eq":[{"mask":["type",65535]},1]}]}
soundClick"string"{"or":[{"eq":[{"mask":["type",65535]},1]},{"eq":[{"mask":["type",65535]},2]},{"eq":[{"mask":["type",65535]},8]}]}
texture"string"{"and":[{"or":[{"eq":[{"mask":["type",65535]},4]}]}]}
uv{"kind":"array","count":4,"item":"f32"}{"and":[{"or":[{"eq":[{"mask":["type",65535]},4]}]}]}
animationFrame"f32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},4]}]}]}
fontName"string"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]},{"eq":[{"mask":["type",65535]},14]}]}]}
fontHeight"u32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]},{"eq":[{"mask":["type",65535]},14]}]},{"and":[{"length":"fontName"}]}]}
fontFlags"u32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]},{"eq":[{"mask":["type",65535]},14]}]},{"and":[{"length":"fontName"},{"or":[{"eq":[{"mask":["type",65535]},6]}]}]}]}
fontColor"u32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]},{"eq":[{"mask":["type",65535]},14]}]},{"and":[{"length":"fontName"},{"and":[{"or":[{"eq":[{"mask":["type",65535]},14]}]}]}]}]}
fontBold"u32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]},{"eq":[{"mask":["type",65535]},14]}]},{"and":[{"length":"fontName"},{"and":[{"or":[{"eq":[{"mask":["type",65535]},14]}]}]}]}]}
fontItalic"u32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]},{"eq":[{"mask":["type",65535]},14]}]},{"and":[{"length":"fontName"},{"and":[{"or":[{"eq":[{"mask":["type",65535]},14]}]}]}]}]}
color"u32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]}]}]}
text"string"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]}]}]}
lineSpacing"i32"{"and":[{"or":[{"eq":[{"mask":["type",65535]},6]}]},{"and":[{"gt":["fileVersion",{"minus":[1264,1]}]},{"or":[{"gt":["versionWord",{"minus":[1,1]}]},{"gt":["spacingPresent",0]}]}]}]}
soundTyping"string"{"or":[{"eq":[{"mask":["type",65535]},8]}]}
areaType"i32"{"or":[{"eq":[{"mask":["type",65535]},9]}]}

uif ​

FieldStorageCondition
fileVersion{"kind":"parameter","name":"fileVersion","default":1264}"always"
spacingPresent{"kind":"parameter","name":"spacingPresent","default":1}"always"
type{"kind":"parameter","name":"type","default":0}"always"
root"uifNode""always"

MIT licensed. Game assets are not distributed.