Skip to content

RigidBody and collision blockers

AnvilCollision and physicsApplies toRR

RigidBodyComponent (0xC177D702) attaches a shape through an owned RigidBody. The shape reference starts at component-body offset 748 in the checked profile and resolves to triangle, primitive or compound shapes. Registry names identify drive and character-interaction flags separately from filtering. Observed

RigidBodyComponent body (847 or 855 bytes)847 + h bytesRR48% known

Little-endian. Offsets are relative to this structure.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x01u8ManagedObject byteUnknown0 491,331, 1 641
0x11u8ActiveObservedComponent.Active (registry bool): 0 330,635, 1 161,337
0x21u8IsAnOptimizedComponentObservedComponent.IsAnOptimizedComponent: 0 481,177, 1 10,795
0x31u8IsPartiallyOptimizedObservedComponent.IsPartiallyOptimized: 0 491,716, 1 256
0x44u32DamageObservedPhysicComponent.Damage (enum): Medium 491,970, Light 2. Enumerators: 0 Damage_Light, 1 Damage_Medium, 2 Damage_Heavy, 3 Damage_Super_Heavy, 0xFFFFFFFF Damage_None
0x84u32CharacterInteractionModeObservedPhysicComponent.CharacterInteractionMode (enum): Blocking 491,958, Ignore 12, Debris 2. Enumerators: 0 Blocking, 1 Debris, 2 PushableAlways, 3 PushableIfMoving, 4 BlockingMobile, 5 PushableIfShoving, 6 Ignore (prefix CharacterInteraction_)
0xC1u8DriveEntityObservedPhysicComponent.DriveEntity (bool): 1 491,920, 0 52
0xD1u8EntityDrivenObservedPhysicComponent.EntityDriven (bool): 0 491,956, 1 16
0xE4u32ResistanceObservedInteractivePhysicComponent.Resistance (enum): Normal 491,968, Fragile 2, Indestructible 2. Enumerators: 0xFFFFFFFF FirstHit, 0 Fragile, 1 Normal, 2 Solid, 1000 Indestructible (prefix Resistance_)
0x128u64GPSurfaceNavType: object idObservedRigidBodyComponent.GPSurfaceNavType, an embedded object of a class with no fields (u64 id, u32 class id)
0x1A4u32 = 0x1C4B22AAGPSurfaceNavType: class idObserved= 0x1C4B22AA, the class GameplaySurfaceNavType
0x1E8u64RigidBody: object idObservedRigidBodyComponent.RigidBody, an owned object (kind 0x13: u64 id, u32 class id, body); the id is non-zero
0x264u32 = 0x228F402ARigidBody: class idObserved= 0x228F402A, the class RigidBody
0x2A8u64CollisionFilterInfo: object idObservedRigidBody.13963E14, an embedded CollisionFilterInfo (the same class as CollisionMaterial's, whose slots are named in that box); 0
0x324u32 = 0x43EF99C2CollisionFilterInfo: class idObserved= 0x43EF99C2
0x361u8642F141FUnknownCollisionFilterInfo bool (name not found): 1 491,936, 0 36
0x371u84A4D57A9UnknownCollisionFilterInfo bool (name not found): 1 491,936, 0 36
0x388u64QueryFlags: object idObserved0
0x404u32 = 0xA2FFD626QueryFlags: class idObserved= 0xA2FFD626, the class QueryLayerBits
0x44272u64·34QueryFlags slotsObserved34 u64 slots of QueryLayerBits; named slots include Static, Dynamic, CameraCollision and Raycast.
0x1548u64DAE8214F: object idUnknown0
0x15C4u32 = 0xF5EBC0BEDAE8214F: class idUnknown= 0xF5EBC0BE, the class CollisionLayerBits
0x160192u64·24DAE8214F slotsUnknownStored field; complete meaning is not established.
0x2208u64883E5FCA: object idUnknown0
0x2284u32 = 0xF5EBC0BE883E5FCA: class idUnknown= 0xF5EBC0BE
0x22C192u64·24883E5FCA slotsUnknownthe 24 bit slots of the second CollisionLayerBits. Set: Static 49,170; 89CA5860 49,170; Dynamic 2; Debris 1,168; DetectionZone 13; D0D6077F 11; 8025B1D3 11; WaterLevel 11; 901DDA28 2; TerrainLod0 4; 1F1A0AB5 797
0x2EC10refShapeObservedRigidBody.Shape (registry; a reference to an ObjectShape): MeshShape, SphereShape, ReferenceListShape, CapsuleShape or BoxShape. Tag 1 or 3 (null): 1 491,947, 3 25
0x2F64f32MassObservedRigidBody.Mass: 10.0 491,970, 0.2 2
0x2FA4f32LinearDampingObservedRigidBody.LinearDamping: 0.1 491,968, 0.8 2, 0.99 2
0x2FE4f32AngularDampingObservedRigidBody.AngularDamping: 0.1 491,968, 0.9 4
0x3024f32GravityFactorObservedRigidBody.GravityFactor: 1.0 491,972
0x3064u32DrivingModeObservedRigidBody.DrivingMode (enum RigidBody::DrivingMode): Fixed 491,948, 256 20, 513 2. Enumerators: 0 Fixed, 1 KeyFramed, 2 Dynamic
0x30A1u81AD9BC48UnknownRigidBody bool (name not found; the RigidBody's bit-field group is stored last): 0 491,972
0x30B10refImpactDataObservedRigidBodyComponent.ImpactData (a reference): tag 3 491,968, 1 4 (3 = null)
0x3154u32B99D101EUnknownRigidBodyComponent u32 (name not found): 0 491,968, 1 4
0x3191u8UseGravityWhenKeyFramedObservedRigidBodyComponent bool 1 of the 5 stored bools (registry order, after the other fields): 0 491,972
0x31A1u8FEB136EBUnknownbool 2 (name not found): 0 491,972
0x31B1u8AutoUpdatePhysicHierarchyObservedbool 3: 1 491,970, 0 2
0x31C1u8UpdateEntityBVObservedbool 4: 0 491,964, 1 8
0x31D1u8IsGroundObservedbool 5: 0 458,012, 1 33,960
0x31E8u64Sleeping: object idObservedRigidBodyComponent.Sleeping, an embedded RigidBodySleeping; the id is non-zero
0x3264u32 = 0x87BD5866Sleeping: class idObserved= 0x87BD5866, the class RigidBodySleeping
0x32A4f327A3F735DUnknownRigidBodySleeping f32 (name not found): 0.0 491,972
0x32E4f32D38E02CFUnknownRigidBodySleeping f32 (name not found): 0.0 491,972
0x3324f32E2C7281DUnknownRigidBodySleeping f32 (name not found): 0.0 491,972
0x3364u32967B0AFBUnknownRigidBodySleeping enum CB6326B3 (enumerators hash-only: 0 = 3F0755E0, 1 = 0D3657D0, 2 = 2E60A5CB): 0 491,972
0x33A1u8GuidanceSystemPtr: tagObserved
0x33Bhu64GuidanceSystemPtr: idObservedpresent when the tag is 05
827+h4u32SoundOcclusionLinks countObservedRigidBodyComponent.SoundOcclusionLinks (an array of Entity links): its count, 0 491,972
831+h8u64PhysicsActivityZone: object idObservedRigidBodyComponent.PhysicsActivityZone, an owned object (kind 0x13); non-zero
839+h4u32 = 0x18D528B6PhysicsActivityZone: class idObserved= 0x18D528B6, the class PhysicsActivityZone
843+h4u32Zones countObservedPhysicsActivityZone.Zones (an array of ActivityZoneDesc): its count, 0 491,971, 2 1

Usual body length is 847 or 855 bytes depending on a null/present handle. The final PhysicsActivityZone has a counted ActivityZoneDesc array, so these sizes are not universal: the high-resolution NPC puppet (MAD_Entity_NPC_HighResPuppet) carries two 27-byte items and totals 901 bytes. Each item is a u64 id, type 0x56F0AAEA (ActivityZoneDesc), a u32, two f32 and three bytes; every other body stores a zero count. Observed

Some MAD_COL_* Entities have only RigidBodyComponent and no Visual. A closed-gate owner references MAD_COL_GEN_MAM_Campus_ClosedGate_A; these are invisible collision blockers rather than missing render meshes. Checked Area 52 and The Deck listings contain 44 and 12 such owners respectively. Observed

What are unusual DrivingMode values?

Twenty-four measured bodies have values such as 256, 512 or 513 outside the ordinary named-mode profile. Their interpretation is unresolved. Unknown