Skip to main content

RPS SDK

The SDK contains header-only consumer contracts for ROCK, PAPER and RPS UI. The runtime DLL owns the behavior; your plugin owns registration, callbacks, feature policy and cleanup. SDK package versions, runtime releases and individual API versions are separate.

ModuleDiscovery and scopeBuild targets
ROCKROCKAPI_QueryInterfaceV1; 13 independently versioned families.RPS::ROCKCore, RPS::ROCKHands and the other explicit family targets.
PAPERPAPER V1 descriptor/table; 50 calls for reload, native pose, motion and development observation/control.RPS::PAPER
RPS UISeparate panel, input and cooperation exports.RPS::UI

ROCK's current interfaces all use major 1. Hands and WeaponParts use minor 1. Weapon 1.1 adds exact inventory equip and retained switching. Grab 1.1 adds held placement, and Input 1.1 exposes its click reservation. These compatible extensions preserve their released 1.0 contracts. FRIK API 2.3 is unrelated to that numbering. The ROCK migration guide explains the break from the old combined provider.

Choose only the contracts you use​

find_package(RPS_SDK CONFIG REQUIRED)
target_link_libraries(MyPlugin PRIVATE
RPS::ROCKCore RPS::ROCKHands RPS::PAPER RPS::UI)

This example exposes several modules; remove those your plugin does not use. Targets publish headers and language requirements, not DLL imports or runtime installation. RPS::SDK remains an aggregate of module include paths. The legacy RPS::ROCK target and monolithic headers remain for older consumers; they cannot discover the current ROCK runtime. New consumers should select the explicit family targets.

ROCK's Client.h can register one owner and acquire each typed interface. PAPER still negotiates its own capabilities and table extent. UI registers its own owners and panels. A token or permission from one provider is not valid in another.

Other integration surfaces​

PALM owns a separate native section API, with headers in its own checkout. SCISSORS exports a limited development table but has no SDK/SCISSORS package; actor-grab admission is disabled. Neither should be described as another ROCK family.

RPS Framework supplies statically linked native engine wrappers. Use it when your plugin owns a native operation; use the SDK when a runtime provider already owns the requested behavior. Both can be used by one plugin.

The ROCK additions on these pages follow merged ROCK main (ea9855b1) and published RPS SDK main (df02e89). Other provider guides retain their own verification scope. See runtime guides for component responsibilities and existing download links; negotiate the installed DLL rather than inferring support from a release label.