RPS Framework
Use the engine boundary without rebuilding the reverse engineering.
RPS Framework packages the native addresses, corrected VR layouts, checked calls, physics epochs, and ownership rules proven by ROCK, PAPER, PAPER_Toolkit, SCISSORS, and the ROCK addons. Mods call typed operations instead of scattering raw RVAs and guessed engine lifetimes through their own code.
What RPS provides
RPS has two layers:
RPS::Addressesis the versioned address and layout library. It records functions, globals, vtables, callsites, patch sites, source project, and runtime evidence without turning an RVA into an unchecked engine call.RPS::Runtimeis the checked function library. It validates the running executable, memory, native identity, thread/physics context, inputs, postconditions, and ownership before or after calling the engine.
The runtime layer covers body reads and writes, world access, ray and shape casts, collision filters, shapes, generated colliders, constraints, impacts, animation generator output, ragdolls, scene hierarchy, character state and movement, followed audio, and owned point lights.
RPS is not an F4SE plugin and does not load itself. Your DLL remains responsible for its F4SE bootstrap, lifecycle, engine object discovery, feature policy, and shutdown ordering. RPS gives that DLL reusable mechanics; it does not decide what your mod should do.
Choose the right integration
Detect the exact executable once and build a checked service boundary around borrowed engine objects.
02 / PhysicsRead and mutate safelyUse explicit read/write epochs, copied body snapshots, filters, impulses, gravity, raycasts, and shape casts.
03 / OwnCreate native objectsBuild shapes, generated colliders, stock constraints, motors, and deterministic retirement services.
04 / AnimateWork with ragdollsInspect generator tracks, copy or blend poses, tune motors, lease graph managers, and activate ragdolls.
05 / WorldUse game systemsMutate scene hierarchy, inspect actors and pathing, control followed sounds, and own registered point lights.
06 / ExtendOwn a native integrationResolve cataloged evidence and use transactional preflight when no stable high-level wrapper exists.
RPS Framework and ROCK SDK are different tools
Use RPS Framework when your plugin needs to call FO4VR engine mechanics inside its own DLL. The framework is statically linked and can expose native objects, so the consumer must obey engine threading, lifetime, and physics rules.
Use the ROCK SDK when your addon wants ROCK's live interaction state or wants ROCK to arbitrate hands, weapons, contacts, grabs, visual authority, or external bodies. That SDK is a cross-DLL provider contract; it deliberately does not grant arbitrary native memory access.
A plugin may use both. Link RPS for its own native mechanics and use the ROCK SDK for coordinated interaction with ROCK.
Compatibility boundary
The current package version is 0.1.0 and supports only the 64-bit
Fallout4VR.exe file version 1.2.72.0. RuntimeModule::detect() rejects a
missing module, the wrong executable, an invalid PE image, and every unsupported
runtime before an RPS wrapper resolves an address.
That check is separate from F4SEVR's query compatibility value. Your plugin must still implement a correct F4SEVR Query/Load gate and must not compare the query compatibility value with the VR executable version constant.
Next: install and link the package, then build the first integration.