API index
RPS exposes four installed address files and 32 runtime headers. Include the narrowest header that owns the operation you need.
Address library
Namespace: RPS::Addresses
| Header | Surface |
|---|---|
RPS/Addresses/RuntimeVersion.h | Typed runtime version and the supported Fallout4Vr_1_2_72 constant. |
RPS/Addresses/Catalog.h | Symbol, evidence/source/subsystem metadata, catalog(), record(), find(), and findByRva(). |
RPS/Addresses/Layouts.h | Corrected FO4VR offsets, sizes, limits, flags, slots, and native-layout constants. |
RPS/Addresses/Fallout4Vr_1_2_72.inc | Generated symbol records consumed by the catalog; include Catalog.h rather than including this file directly. |
Runtime foundation
Namespace: RPS::Runtime
| Header | Surface | Contract |
|---|---|---|
RuntimeModule.h | PE/executable detection, RVA/function resolution, masked byte matching | Detect once; every unsupported runtime fails closed. |
Memory.h | Read/write/execute region checks and guarded memory copies | Synchronous borrowed memory only. |
NativeReference.h | Havok, Bethesda, and full-width intrusive reference operations; NativeIntrusivePtr | Reference domains are separate; move-only intrusive owner releases on engine thread. |
Physics and collision
Namespace: RPS::Runtime::Physics unless shown otherwise.
| Header | Surface | Contract |
|---|---|---|
PhysicsTypes.h | BodyId, aligned Vector4, hknp Transform | Value types; body IDs require generation context. |
WorldAccess.h | Physics-step TLS state, WorldReadGuard, WorldWriteGuard | Guard must match exact world and remain synchronous. |
BodyAccess.h | Body/motion snapshots and collision-object body resolution | Copied output; caller supplies safe epoch/current owner/world witnesses. |
PhysicsApi.h | Body filters, velocity/transform, keyframe, activation, flags, mass, impulse, hard-keyframe | Matching WorldWriteGuard for mutations. |
PhysicsScale.h | Game/Havok/VR/raycast scale snapshot and conversion | Check whether values are runtime-backed. |
PhysicsTiming.h | Substep timing/phase snapshot | Use driveDeltaSeconds() and inspect fallback/validity. |
BodyGravity.h | Motion-properties gravity inspection and self-locking setter | Read uses guard; write runs outside physics without external write guard. |
WorldQuery.h | Closest Bethesda ray and fixed-capacity hknp shape cast | Ray self-synchronizes; shape cast requires read guard. |
Impact.h | Impact geometry, native impact damage, Actor::HitMe delivery | Hit delivery is owning game thread only and can be irreversible. |
CollisionFilter.h | RPS::Runtime::Collision::FilterInfo, 64-layer matrix, ROCK layer constants | Pure/caller-owned values. |
CollisionPairPolicy.h | Fixed-capacity immutable suppression publication | Consumer owns engine hook and quiescence; readers fail open. |
Shapes, bodies, and constraints
Namespace: RPS::Runtime::Physics
| Header | Surface | Contract |
|---|---|---|
HavokAllocator.h | Current-thread Havok allocation/deallocation/array reserve | Low-level; use a higher-level owned factory when available. |
Shape.h | Sphere, convex, static/dynamic compound shapes | Move-only shape refs; dynamic updates require write guard. |
GeneratedBody.h | Static/dynamic/keyframed Bethesda collider graph | Owner-thread service plus eight completed-step retirement. |
Constraint.h | Ball/socket, limited hinge, prismatic, owned service, position motor | Matching world/write guard and ordered retirement. |
ScenePhysics.h | Recursive scene motion/collision commands | Owning game thread outside physics; borrowed scene root. |
Animation and ragdolls
| Header | Namespace | Surface | Contract |
|---|---|---|---|
GeneratorOutput.h | RPS::Runtime::Animation | Bounded generator tracks/palettes | Callback-only non-owning views. |
AnimationPose.h | RPS::Runtime::Animation | Capture, copy, blend pose/world-from-model | Caller storage; finite transforms. |
AnimationMotor.h | RPS::Runtime::Animation | Inspect/tune keyframed, powered, WFM-mode controls | Mutable callback storage only. |
Ragdoll.h | RPS::Runtime::Physics | Graph lease/lock, ragdoll collection, add/remove/sync/cache | Lock for graph pointers; write guard for world state. |
RootPose.h | RPS::Runtime::Animation | Skeleton mapping/scaling/local-world, body anchors, root math | Driver/context are callback-borrowed; no live WFM mutation. |
Characters
Namespace: RPS::Runtime::Character
| Header | Surface | Contract |
|---|---|---|
MovementController.h | Copied controller state, native mode transitions, planner target yaw | Owning game thread outside physics; controller rechecked. |
CharacterController.h | Native controller resolution and locked world-manager insertion | Self-locking call; no external write guard; false is ambiguous. |
ActorState.h | Corrected VR life/knock/movement state and narrow clears | Borrowed actor; ownership/arbitration remains consumer policy. |
ActorPathing.h | Pathing/direct-movement/current-request queries | Current request owns one retained native reference. |
Scene, audio, and rendering
| Header | Namespace | Surface | Contract |
|---|---|---|---|
Scene.h | RPS::Runtime::Scene | Ni transform math, object commands, hierarchy attach/detach | Caller owns live scene refs; commands run outside physics. |
Audio.h | RPS::Runtime::Audio | Follow descriptor, volume, fade/play/release | Move-only native handle; explicit game-thread release. |
PointLight.h | RPS::Runtime::Rendering | Create/configure/register/attach/place/reset point light | Move-only creation-thread owner; ordered renderer teardown. |
Hook utilities
Namespace: RPS::Runtime::Hooks
| Header | Surface | Contract |
|---|---|---|
HookPatch.h | Direct E8 and vtable inspection/replacement, transactional groups, entry-pattern inspection | Consumer owns trampoline, thread quiescence, callback storage, and shutdown. |
Choosing the correct layer
- Use a checked runtime wrapper when it exists.
- Use pure value helpers for transforms, filters, policy, pose, and timing calculations that do not require a native call.
- Use the address catalog only when your component genuinely owns a native integration the runtime library cannot own for it.
- Keep product-specific arbitration and behavior in the product, not in a copied framework helper.
See addresses versus runtime wrappers before resolving a catalog symbol directly.