Skip to content

CollisionMaterial and surfaces

AnvilCollision and physicsApplies toRRSWS

CollisionMaterial (0x74F7311D) identifies a physical surface, separately from render Material. Its 778-byte profile contains a debug color, ContactType, reaction and fluid references and collision filters. Every one of the 263 resources in all six installed archives is exactly 778 bytes and is byte-accounted by this profile; no body is excluded. Proven

The field names are corroborated by the inspected runtime registry; enum spellings and runtime physics semantics have their own confidence below. Observed

CollisionMaterial body778 bytesRR26% known

Little-endian. Every one of the 263 CollisionMaterial bodies across all six installed forges is byte-accounted in the 778-byte profile; no bodies are excluded. Enum spelling evidence and runtime friction behavior are separate.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x01u8 = 01ManagedObject byteUnknownStored bytes; meaning is not established.
0x11u8NoWeatherExposedProvenregistry bool: 1 on 249 of 263, 0 on 14
0x28u64DebugColor: object idProven
0xA4u32 = 0xA79767EDDebugColor: class idProven= 0xA79767ED, the class Color
0xE16vec4DebugColor: R G B AProvenregistry DebugColor (Color.R, G, B, A; alpha 1.0 on all)
0x1E4u32ContactTypeProvenContactMaterial enum; confirmed and candidate names are distinguished in the surface table.
0x2210refsurface material (AC9E437F)Provenregistry AC9E437F, a CollisionReactionEntryBase reference: 253 bodies point to a 0xEDFC54A6 entry (Syn_Plastic_GEN, Grounds_Dirt_GEN, Wood_Hard_GEN ...), 10 are null
0x2C10reffluid characteristics (C8DB4746)Provenregistry C8DB4746, a MoldedFluidCharacteristics reference: 247 point to a 0xC13A9A56 entry, 16 are null
0x361u8DEC061D8Unknownregistry bool (name not found), the first of the two bit fields: 1 on 21 of 263
0x371u85107A4E0Unknownregistry bool (name not found): 1 on 2 of 263
0x388u64CollisionFilterInfo: object idProven0
0x404u32 = 0x43EF99C2CollisionFilterInfo: class idProven= 0x43EF99C2
0x441u8642F141FUnknownCollisionFilterInfo bool (name not found): 1 on all 263
0x451u84A4D57A9UnknownCollisionFilterInfo bool (name not found): 1 on 259 of 263
0x468u64QueryFlags: object idProven0
0x4E4u32 = 0xA2FFD626QueryFlags: class idProven= 0xA2FFD626, the class QueryLayerBits (the field is named QueryFlags)
0x528u64QueryFlags.StaticProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 241 of 263
0x5A8u64QueryFlags.89CA5860Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 242 of 263 (name not found)
0x628u64QueryFlags.DynamicProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x6A8u64QueryFlags.CameraCollisionProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 249 of 263
0x728u64QueryFlags.4ADD89ECUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x7A8u64QueryFlags.CameraOcclusionProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 247 of 263
0x828u64QueryFlags.18E32EB8Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 247 of 263 (name not found)
0x8A8u64QueryFlags.742A8CFDUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x928u64QueryFlags.33242F07Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x9A8u64QueryFlags.CharacterProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 1 of 263
0xA28u64QueryFlags.WaterLevelProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263
0xAA8u64QueryFlags.ParticleProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0xB28u64QueryFlags.409BC772Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 1 of 263 (name not found)
0xBA8u64QueryFlags.5A43CF09Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0xC28u64QueryFlags.1B600894Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0xCA8u64QueryFlags.BFA8CC30Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 21 of 263 (name not found)
0xD28u64QueryFlags.CD19DFD6Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263 (name not found)
0xDA8u64QueryFlags.27A1301DUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263 (name not found)
0xE28u64QueryFlags.A34FF649Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263 (name not found)
0xEA8u64QueryFlags.RaycastProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 263 of 263
0xF28u64QueryFlags.OcclusionHeightTestProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0xFA8u64QueryFlags.TargetingProvenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x1028u64QueryFlags.92EF3F19Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 1 of 263 (name not found)
0x10A8u64QueryFlags.D527A7C3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x1128u64QueryFlags.901DDA28Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 213 of 263 (name not found)
0x11A8u64QueryFlags.TerrainLod0Provenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 213 of 263
0x1228u64QueryFlags.TerrainLod1Provenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 213 of 263
0x12A8u64QueryFlags.TerrainLod2Provenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 213 of 263
0x1328u64QueryFlags.TerrainLod3Provenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 213 of 263
0x13A8u64QueryFlags.TerrainLod4Provenbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 213 of 263
0x1428u64QueryFlags.D45E6F42Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x14A8u64QueryFlags.1F1A0AB5Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263 (name not found)
0x1528u64QueryFlags.E2332913Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x15A8u64QueryFlags.50FF8AA5Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x1628u64DAE8214F: object idUnknown0
0x16A4u32 = 0xF5EBC0BEDAE8214F: class idUnknown= 0xF5EBC0BE, the class CollisionLayerBits (the field DAE8214F)
0x16E8u64DAE8214F.StaticUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 241 of 263
0x1768u64DAE8214F.89CA5860Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 243 of 263 (name not found)
0x17E8u64DAE8214F.DynamicUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x1868u64DAE8214F.DebrisUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 1 of 263
0x18E8u64DAE8214F.DetectionZoneUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x1968u64DAE8214F.MainCharacterUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263
0x19E8u64DAE8214F.CharacterUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263
0x1A68u64DAE8214F.CharacterNoInteractiveUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x1AE8u64DAE8214F.909F75B2Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x1B68u64DAE8214F.42C286DCUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x1BE8u64DAE8214F.D0D6077FUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x1C68u64DAE8214F.8025B1D3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x1CE8u64DAE8214F.33242F07Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x1D68u64DAE8214F.WaterLevelUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x1DE8u64DAE8214F.TargetableUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x1E68u64DAE8214F.901DDA28Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 212 of 263 (name not found)
0x1EE8u64DAE8214F.TerrainLod0Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 212 of 263
0x1F68u64DAE8214F.TerrainLod1Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 212 of 263
0x1FE8u64DAE8214F.TerrainLod2Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 212 of 263
0x2068u64DAE8214F.TerrainLod3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 212 of 263
0x20E8u64DAE8214F.TerrainLod4Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 212 of 263
0x2168u64DAE8214F.1F1A0AB5Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263 (name not found)
0x21E8u64DAE8214F.DF5300A3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x2268u64DAE8214F.50FF8AA5Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x22E8u64883E5FCA: object idUnknown0
0x2364u32 = 0xF5EBC0BE883E5FCA: class idUnknown= 0xF5EBC0BE (the field 883E5FCA)
0x23A8u64883E5FCA.StaticUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263
0x2428u64883E5FCA.89CA5860Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263 (name not found)
0x24A8u64883E5FCA.DynamicUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263
0x2528u64883E5FCA.DebrisUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 7 of 263
0x25A8u64883E5FCA.DetectionZoneUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 7 of 263
0x2628u64883E5FCA.MainCharacterUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 1 of 263
0x26A8u64883E5FCA.CharacterUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x2728u64883E5FCA.CharacterNoInteractiveUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x27A8u64883E5FCA.909F75B2Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 4 of 263 (name not found)
0x2828u64883E5FCA.42C286DCUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x28A8u64883E5FCA.D0D6077FUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 5 of 263 (name not found)
0x2928u64883E5FCA.8025B1D3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 4 of 263 (name not found)
0x29A8u64883E5FCA.33242F07Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x2A28u64883E5FCA.WaterLevelUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263
0x2AA8u64883E5FCA.TargetableUnknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x2B28u64883E5FCA.901DDA28Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 2 of 263 (name not found)
0x2BA8u64883E5FCA.TerrainLod0Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 3 of 263
0x2C28u64883E5FCA.TerrainLod1Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x2CA8u64883E5FCA.TerrainLod2Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x2D28u64883E5FCA.TerrainLod3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263
0x2DA8u64883E5FCA.TerrainLod4Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 21 of 263
0x2E28u64883E5FCA.1F1A0AB5Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x2EA8u64883E5FCA.DF5300A3Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x2F28u64883E5FCA.50FF8AA5Unknownbit field of the embedded object, stored as a u64 (kind 0x09): 1 on 0 of 263 (name not found)
0x2FA4f32FrictionProvenregistry Friction: 10.0 (203), 2.5 (15), 5.0 (10), 0.0 (5)
0x2FE4f32RestitutionProvenregistry Restitution: 0.05 (249), 0.1, 0.01, 0.001
0x3028bytesunaccountedUnknown8 bytes: 0x5368D4A5 then a zero u32, on all 263. The class lists Stiffness and Damping after Restitution (their values in the live objects are 1e12 and 0, the class defaults); these 8 bytes are not them, and 0x5368D4A5 is a CRC-32 with no known name
ContactType Runtime enumerator Confidence
0 Dirt Observed
1 Mud Observed
2 Grass Observed
3 Forest (CRC candidate) Inferred
4 Stone Observed
5 Asphalt Observed
6 Metal_Hard Observed
7 Metal_Thin Observed
25 Snow_Deep Observed
27 Ice Observed
31 Snow_Groomed (CRC candidate) Inferred
54 Stairs Observed

The numeric values and name hashes come from the inspected ContactMaterial enum table. Forest and Snow_Groomed are candidate spellings recovered by CRC matching; the other listed names are resolved from identifier strings. This is not a friction model. QueryLayerBits stores 34 u64 slots and CollisionLayerBits 24 u64 slots in this profile. Static rocks also set Dynamic, so that filter name does not imply moving geometry. Observed

What do the remaining hashed flags control?

Stored values are readable but lack semantic names. Reaction and fluid references alone do not establish runtime response. Unknown

only in SWS

A collision triangle’s surface is one of the objects of class SWCollisionMaterial (0xEF0C7E58, 188 bytes each) named by a MeshShape’s Materials list. The names include Concrete, ConcreteVert, ConcreteNonRidable, ConcreteStairs, Metal, Wood, WoodDeck, Asphalt, Glass, Grass, Dirt, Water and InvisibleWall; the bail and robot-bail surfaces are separate from the non-ridable ones. Observed · SWS[level 01]

The class id equals the CRC-32 of SWCollisionMaterial. Proven · computed from the name

Surface id 0 is a default whose meaning is unknown. The parameters of a surface, including grind flags, are not read from its object; only its name is. The NonRidable, Unsafe and InvisibleWall names do not imply water or a death zone. A death-zone scene (01A_DeathZoneSafety) has no visual mesh and its scripted behaviour is not decoded. Observed