Skip to main content

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

HeaderSurface
RPS/Addresses/RuntimeVersion.hTyped runtime version and the supported Fallout4Vr_1_2_72 constant.
RPS/Addresses/Catalog.hSymbol, evidence/source/subsystem metadata, catalog(), record(), find(), and findByRva().
RPS/Addresses/Layouts.hCorrected FO4VR offsets, sizes, limits, flags, slots, and native-layout constants.
RPS/Addresses/Fallout4Vr_1_2_72.incGenerated symbol records consumed by the catalog; include Catalog.h rather than including this file directly.

Runtime foundation

Namespace: RPS::Runtime

HeaderSurfaceContract
RuntimeModule.hPE/executable detection, RVA/function resolution, masked byte matchingDetect once; every unsupported runtime fails closed.
Memory.hRead/write/execute region checks and guarded memory copiesSynchronous borrowed memory only.
NativeReference.hHavok, Bethesda, and full-width intrusive reference operations; NativeIntrusivePtrReference domains are separate; move-only intrusive owner releases on engine thread.

Physics and collision

Namespace: RPS::Runtime::Physics unless shown otherwise.

HeaderSurfaceContract
PhysicsTypes.hBodyId, aligned Vector4, hknp TransformValue types; body IDs require generation context.
WorldAccess.hPhysics-step TLS state, WorldReadGuard, WorldWriteGuardGuard must match exact world and remain synchronous.
BodyAccess.hBody/motion snapshots and collision-object body resolutionCopied output; caller supplies safe epoch/current owner/world witnesses.
PhysicsApi.hBody filters, velocity/transform, keyframe, activation, flags, mass, impulse, hard-keyframeMatching WorldWriteGuard for mutations.
PhysicsScale.hGame/Havok/VR/raycast scale snapshot and conversionCheck whether values are runtime-backed.
PhysicsTiming.hSubstep timing/phase snapshotUse driveDeltaSeconds() and inspect fallback/validity.
BodyGravity.hMotion-properties gravity inspection and self-locking setterRead uses guard; write runs outside physics without external write guard.
WorldQuery.hClosest Bethesda ray and fixed-capacity hknp shape castRay self-synchronizes; shape cast requires read guard.
Impact.hImpact geometry, native impact damage, Actor::HitMe deliveryHit delivery is owning game thread only and can be irreversible.
CollisionFilter.hRPS::Runtime::Collision::FilterInfo, 64-layer matrix, ROCK layer constantsPure/caller-owned values.
CollisionPairPolicy.hFixed-capacity immutable suppression publicationConsumer owns engine hook and quiescence; readers fail open.

Shapes, bodies, and constraints

Namespace: RPS::Runtime::Physics

HeaderSurfaceContract
HavokAllocator.hCurrent-thread Havok allocation/deallocation/array reserveLow-level; use a higher-level owned factory when available.
Shape.hSphere, convex, static/dynamic compound shapesMove-only shape refs; dynamic updates require write guard.
GeneratedBody.hStatic/dynamic/keyframed Bethesda collider graphOwner-thread service plus eight completed-step retirement.
Constraint.hBall/socket, limited hinge, prismatic, owned service, position motorMatching world/write guard and ordered retirement.
ScenePhysics.hRecursive scene motion/collision commandsOwning game thread outside physics; borrowed scene root.

Animation and ragdolls

HeaderNamespaceSurfaceContract
GeneratorOutput.hRPS::Runtime::AnimationBounded generator tracks/palettesCallback-only non-owning views.
AnimationPose.hRPS::Runtime::AnimationCapture, copy, blend pose/world-from-modelCaller storage; finite transforms.
AnimationMotor.hRPS::Runtime::AnimationInspect/tune keyframed, powered, WFM-mode controlsMutable callback storage only.
Ragdoll.hRPS::Runtime::PhysicsGraph lease/lock, ragdoll collection, add/remove/sync/cacheLock for graph pointers; write guard for world state.
RootPose.hRPS::Runtime::AnimationSkeleton mapping/scaling/local-world, body anchors, root mathDriver/context are callback-borrowed; no live WFM mutation.

Characters

Namespace: RPS::Runtime::Character

HeaderSurfaceContract
MovementController.hCopied controller state, native mode transitions, planner target yawOwning game thread outside physics; controller rechecked.
CharacterController.hNative controller resolution and locked world-manager insertionSelf-locking call; no external write guard; false is ambiguous.
ActorState.hCorrected VR life/knock/movement state and narrow clearsBorrowed actor; ownership/arbitration remains consumer policy.
ActorPathing.hPathing/direct-movement/current-request queriesCurrent request owns one retained native reference.

Scene, audio, and rendering

HeaderNamespaceSurfaceContract
Scene.hRPS::Runtime::SceneNi transform math, object commands, hierarchy attach/detachCaller owns live scene refs; commands run outside physics.
Audio.hRPS::Runtime::AudioFollow descriptor, volume, fade/play/releaseMove-only native handle; explicit game-thread release.
PointLight.hRPS::Runtime::RenderingCreate/configure/register/attach/place/reset point lightMove-only creation-thread owner; ordered renderer teardown.

Hook utilities

Namespace: RPS::Runtime::Hooks

HeaderSurfaceContract
HookPatch.hDirect E8 and vtable inspection/replacement, transactional groups, entry-pattern inspectionConsumer owns trampoline, thread quiescence, callback storage, and shutdown.

Choosing the correct layer

  1. Use a checked runtime wrapper when it exists.
  2. Use pure value helpers for transforms, filters, policy, pose, and timing calculations that do not require a native call.
  3. Use the address catalog only when your component genuinely owns a native integration the runtime library cannot own for it.
  4. 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.