Skip to main content

RPS Framework

FO4VR 1.2.72 · C++23 · static libraries

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.

RuntimeFO4VR 1.2.72 only
Linkage2 static libraries
Surface32 runtime headers
PolicyFail closed

What RPS provides

RPS has two layers:

  • RPS::Addresses is 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::Runtime is 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

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.