Skip to content

Factory paints (ManufacturerColors)

ForzaTechGameplay dataApplies toFH6

Each car archive holds ManufacturerColors.bin, a Grub bundle with one MNCL blob (the bytes LCNM in the file, blob version 2.0) listing the car’s factory paints. Walking it ends exactly at the blob end on 682 of 682 cars (3,890 colour entries in all). str7 below is a 7-bit varint length plus ASCII. Observed

Counts come from a recorded census of the install’s media\Cars; the install is no longer available. Observed

MNCL blob (ManufacturerColors.bin)variableFH6100% known

Little-endian.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x01u8colour countObserved0 on NUL_CAR_00
0x11u8layer countObservedper colour; 1 to 6, the same for every colour of a car (240SX 2: primary, secondary)
nextvariablelayer[]layersObservedper layer { u32 nSlots; nSlots × str7 slot name (Body, Hood, Mirror, Wing, p_WingEndPlates, Stripes, Body_SecondaryColor, Wheel1, Trim1, Override1, ...); f32 rgb[3]; str7 material path }
nextvariable3 × { u8 present, f32 rgb[3] }extra coloursUnknownmeaning not decoded

The layer’s rgb is a display colour and not the shader’s PaintColor. Observed The material path is a paint material under game:\Media\cars\_library\materials\_fmnext\CarPaint_Calibrated\<paint>.materialbin with PaintColor, FlakeColor, FlakeCoverage, FlakeRoughness and ClearCoatRoughness on the car_automotive_paint family (Car materials). Observed

The u64 slot of a carbin material (Cars) is the FNV-1a-64 of the slot name (offset basis 0xCBF29CE484222325, prime 0x100000001B3, ASCII): fnv1a64("Body") = 0xF7DBE8A7C839A675, "Hood" 0x6AC1E9D87FE5D953, "WindowTint" 0x9582FD1BA2FFF9A4, "Rims" 0xDCE6592BFA0DFA78, "u_WingStruts" 0xB0C163FF8ADE48FD. Over all cars, 16,760 carbin material slots resolve to a slot name of their own car’s colour list (Body 10,509, Stripes 1,402, Hood 1,388, …); the rest (WindowTint, Rims, wing and caliper slots) are customisation slots no factory colour paints. A factory colour therefore paints every material whose slot hashes to one of its layers’ slot names, with that layer’s paint material. Observed

Which colour a stock car wears is not in the files: the player chooses at purchase and the database is encrypted. Unknown How the runtime applies the paint material (replacing the slot’s material or merging over it) is not traced. Unknown The same hash is used by livery paint-slot records (Liveries). Observed