Complete API index
This page is the map of the entire public callable surface. Slots are shown in zero-based ABI order. ROCK may append to V1 during pre-launch, but existing slots are not reordered or repurposed.
Capability names apply after consumer registration. A dash means the call has no per-owner capability check, though its feature/extent and runtime preconditions still apply.
Slots 0–17 · identity, frames, evidence
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 0 | getVersion | Return provider ABI version. | — | Core |
| 1 | getModVersion | Return diagnostic ROCK mod version string. | — | Core |
| 2 | isProviderReady | Report live provider initialization. | — | Core |
| 3 | registerFrameCallback | Register an unowned legacy frame callback. | — | Frames |
| 4 | unregisterFrameCallback | Remove a legacy callback token. | — | Frames |
| 5 | getFrameSnapshot | Copy the latest coherent aggregate frame. | — | Frames |
| 6 | queryWeaponContactAtPoint | Resolve weapon evidence near a game-space point. | — | Weapon parts |
| 7 | clearExternalBodies | Clear legacy owner-level body registrations. | ExternalBodies | External bodies |
| 8 | setOffhandInteractionReservation | Set/release the legacy offhand reservation. | OffhandReservation | Input & offhand |
| 9 | registerExternalBodiesV1 | Replace legacy owner-level body registrations. | ExternalBodies | External bodies |
| 10 | getWeaponEvidenceDetailCountV1 | Get current generated weapon evidence row count. | — | Weapon data |
| 11 | copyWeaponEvidenceDetailsV1 | Copy semantic weapon evidence rows. | — | Weapon data |
| 12 | getWeaponEvidenceDetailPointCountV1 | Get one evidence body's local point count. | — | Weapon data |
| 13 | copyWeaponEvidenceDetailPointsV1 | Copy one evidence body's local mesh points. | — | Weapon data |
| 14 | getBodyContactSnapshotV1 | Copy bounded semantic player-body contacts. | — | Contacts |
| 15 | getPrimaryHandV1 | Return ROCK's current primary/firing hand role. | — | Frames |
| 16 | getOffhandHandV1 | Return the opposite hand role. | — | Frames |
| 17 | getHandFrameV1 | Copy a root-flattened physics-authority hand frame. | — | Frames |
Slots 18–36 · ownership, commands, input, weapon parts
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 18 | registerConsumerV1 | Create a named owner and grant supported requested capabilities. | — | Core |
| 19 | unregisterConsumerV1 | Revoke an owner and all owner-bound resources. | Registered owner | Core |
| 20 | getGrantedCapabilitiesV1 | Read the current capability mask for an owner. | Registered owner | Core |
| 21 | getProviderLimitsV1 | Copy base feature and capacity limits. | — | Core |
| 22 | getExternalContactSnapshotForOwnerV1 | Copy retained legacy contacts for an owner. | ExternalContacts | External bodies |
| 23 | requestForceGrabV1 | Queue a near force grab. | InteractionCommands | Commands |
| 24 | getInteractionCommandResultV1 | Read command lifecycle and terminal outcome. | InteractionCommands | Commands |
| 25 | requestForceReleaseV1 | Queue a gentle or velocity-authored release. | InteractionCommands | Commands |
| 26 | requestThrownDropV1 | Queue captured-motion or explicit-velocity thrown drop. | InteractionCommands | Commands |
| 27 | setHandInputSuppressionV1 | Publish/refresh a bounded per-hand suppression lease. | HandInputSuppression | Input & offhand |
| 28 | clearHandInputSuppressionV1 | Clear one or both caller suppression leases. | HandInputSuppression | Input & offhand |
| 29 | setWeaponPartTargetsV1 | Replace declarative weapon-part grip targets. | WeaponPartInteraction | Weapon parts |
| 30 | clearWeaponPartTargetsV1 | Clear caller part targets. | WeaponPartInteraction | Weapon parts |
| 31 | setWeaponPartDriveTargetsV1 | Replace leased weapon-part transform drives. | WeaponPartInteraction | Weapon parts |
| 32 | clearWeaponPartDriveTargetsV1 | Clear caller part drives. | WeaponPartInteraction | Weapon parts |
| 33 | queryEquippedWeaponClassificationV1 | Read class, keyword evidence, confidence, and provenance. | — | Weapon data |
| 34 | getWeaponPartGripStateV1 | Read per-hand semantic weapon grip state. | — | Weapon parts |
| 35 | getRawWandButtonStateV1 | Read sampled button level, availability, age, and sequence. | — | Input & offhand |
| 36 | isNativePipboyInputSuppressedV1 | Read effective native Pip-Boy action suppression. | — | Input & offhand |
Slots 37–53 · emitters, animation, handling, diagnostics
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 37 | getWeaponEmitterCountV1 | Get flashlight/laser/reticle emitter count. | — | Weapon data |
| 38 | copyWeaponEmittersV1 | Copy weapon-local emitter state and provenance. | — | Weapon data |
| 39 | setNativeAnimationAuthorityV1 | Acquire/refresh selective native animation authority. | NativeAnimationAuthority | Animation |
| 40 | clearNativeAnimationAuthorityV1 | Release caller native animation authority. | NativeAnimationAuthority | Animation |
| 41 | getNativeAnimationAuthorityStateV1 | Read effective authority and runtime capture health. | — | Animation |
| 42 | registerAnimationPhaseCallbackV1 | Register one owner animation-phase callback. | AnimationPhases | Animation |
| 43 | unregisterAnimationPhaseCallbackV1 | Remove an owner animation-phase callback. | AnimationPhases | Animation |
| 44 | getEquippedWeaponGripStateV1 | Read exact weapon and hand-in-weapon baselines. | EquippedWeaponGripState | Animation |
| 45 | setHandVisualAuthorityV1 | Publish/refresh a hand-root and/or finger pose. | HandVisualAuthority | Animation |
| 46 | clearHandVisualAuthorityV1 | Clear caller visual authority for one/both hands. | HandVisualAuthority | Animation |
| 47 | publishNativeAnimationRuntimeV1 | Publish native hook/capture runtime health lease. | NativeAnimationRuntimeProvider | Animation |
| 48 | setEquippedWeaponHandlingAuthorityV1 | Acquire/refresh weapon handling policy authority. | EquippedWeaponHandlingAuthority | Handling |
| 49 | clearEquippedWeaponHandlingAuthorityV1 | Release caller handling authority. | EquippedWeaponHandlingAuthority | Handling |
| 50 | getEquippedWeaponHandlingStateV1 | Read effective owner, flags, expiry, and hand roles. | — | Handling |
| 51 | publishDebugOverlayV1 | Copy an expiring owner line/text publication. | DebugOverlayPublication | Debug overlay |
| 52 | clearDebugOverlayV1 | Remove caller overlay content. | DebugOverlayPublication | Debug overlay |
| 53 | getPresentedHandFrameV1 | Read final presented hand-root transform. | — | Frames |
Slots 54–63 · safe discovery, owner state, scoped contacts
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 54 | getProviderLimitsExtV1 | Copy the complete feature/capacity/lease contract. | — | Core |
| 55 | getPublicStructureSizeV1 | Return provider size for a public structure ID. | — | Core |
| 56 | registerFrameCallbackForOwnerV1 | Register a frame callback bound to a consumer. | FrameSnapshots | Frames |
| 57 | unregisterFrameCallbackForOwnerV1 | Remove one owner callback. | FrameSnapshots | Frames |
| 58 | getHandInteractionStateV1 | Read pointer-free per-hand selection/hold/release and surface-anchor state. | HandInteractionState | Frames |
| 59 | copyProviderEventsSinceV1 | Read owner/global provider events through a loss-aware cursor. | ProviderEvents | Frames |
| 60 | getEquippedWeaponStateV1 | Read coherent weapon identity and transition outcome. | FrameSnapshots | Frames |
| 61 | registerExternalBodiesForScopeV1 | Transactionally replace one authenticated child scope. | ExternalBodyScopes | External bodies |
| 62 | clearExternalBodiesForScopeV1 | Clear one authenticated child scope. | ExternalBodyScopes | External bodies |
| 63 | copyExternalContactsSinceV1 | Read enriched scoped/wildcard contacts with loss metadata. | ExternalBodyScopes + ExternalContacts | External bodies |
Slots 64–74 · part, optic, pose, contact, collider readback
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 64 | queryWeaponPartTargetResolutionV1 | Explain whitelist match, winning group/priority/owner. | WeaponPartObservability | Weapon parts |
| 65 | copyWeaponPartPoseSnapshotV1 | Copy value-only current weapon-part poses. | WeaponPartObservability | Weapon parts |
| 66 | copyWeaponPartDriveApplicationResultsV1 | Copy caller drive application outcomes. | WeaponPartObservability | Weapon parts |
| 67 | getScopeSightStateV1 | Read scope/sight activation, anchor, bounds, and identity. | ScopeSightState | Weapon data |
| 68 | getWeaponCompositionStateV1 | Read composition signature and semantic coverage. | WeaponComposition | Weapon data |
| 69 | copyWeaponCompositionEntriesV1 | Copy active/disabled OMOD and attach-point rows. | WeaponComposition | Weapon data |
| 70 | getSelectedAuthoredGripPoseV1 | Read selected authored hand/finger pose. | PoseReadback | Animation |
| 71 | getPresentedHandPoseV1 | Read final hand root plus 15 finger locals. | PoseReadback | Animation |
| 72 | copySemanticHandContactsV1 | Copy begin/continued/end per-hand contacts. | SemanticHandContacts | Contacts |
| 73 | copyPlayerColliderDescriptorsV1 | Copy typed player hand/body collider descriptions. | PlayerColliderDescriptors | Contacts |
| 74 | getHandCollisionAvailabilityV1 | Explain current hand collision usability. | PlayerColliderDescriptors | Contacts |
Slots 75–81 · cancellation, observability, leases, cleanup
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 75 | cancelInteractionCommandV1 | Cancel a still-queued command. | InteractionCommands | Commands |
| 76 | getHandInputSuppressionStateV1 | Read effective/caller flags, expiry, and invalidation. | InputObservability | Input & offhand |
| 77 | acquireOffhandReservationV1 | Acquire a generation-guarded offhand lease. | OffhandReservation | Input & offhand |
| 78 | renewOffhandReservationV1 | Refresh the caller's existing lease. | OffhandReservation | Input & offhand |
| 79 | releaseOffhandReservationV1 | Explicitly release the caller's lease. | OffhandReservation | Input & offhand |
| 80 | getOffhandReservationStateV1 | Read effective owner, mode, expiry, and generations. | OffhandReservation | Input & offhand |
| 81 | clearNativeAnimationRuntimeV1 | Explicitly clear caller runtime-health publication. | NativeAnimationRuntimeProvider | Animation |
Slots 82–89 · touch mechanisms, exact-hand control, world tools
| Slot | Function | Purpose | Capability | Details |
|---|---|---|---|---|
| 82 | setTouchGrabTargetsForScopeV1 | Replace one scope of fixed-anchor, hinge, or prismatic touch targets. | TouchGrabTargets | Touch & world tools |
| 83 | clearTouchGrabTargetsForScopeV1 | Clear one caller-owned touch-target scope. | TouchGrabTargets | Touch & world tools |
| 84 | copyTouchGrabStatesForScopeV1 | Copy owner-scoped target phase, body, hand, mesh/collision anchor, and coordinate state. | TouchGrabTargets | Touch & world tools |
| 85 | requestTouchGrabYieldV1 | Stop acquisition and asynchronously yield a target to another motion owner. | TouchGrabTargets | Touch & world tools |
| 86 | requestEquippedWeaponHandV1 | Arm canonical right/left carry for the current weapon under handling authority. | EquippedWeaponHandlingAuthority | Handling |
| 87 | queryWorldRaycastV1 | Run one bounded provider-filtered closest-hit world raycast. | WorldRaycasts | Touch & world tools |
| 88 | setColliderVisualizationOverrideV1 | Focus ROCK's complete collider overlay on one current weapon body. | ColliderVisualizationOverride | Debug overlay |
| 89 | clearColliderVisualizationOverrideV1 | Restore the unchanged config-driven collider overlay. | ColliderVisualizationOverride | Debug overlay |
DLL exports
| Export | Use |
|---|---|
ROCKAPI_GetDescriptorV1 | Preferred immutable descriptor-first entry point. RockProviderApi::initialize uses it automatically. |
ROCKAPI_GetProviderApi | Legacy direct table accessor. Safe only when no appended extent is required. |
ROCKAPI_GetApi | Compatibility alias declared by ROCKApi.h; returns the same table. |
Normal consumers should call RockProviderApi::initialize, not resolve these
exports themselves.
Header-only callables
The public header also provides these consumer-side functions:
- initialization:
RockProviderApi::initialize; - safe limit queries:
queryProviderLimitsV1,queryProviderLimitsExtV1; - extent/feature primitives:
providerApiTableSupportsV1,providerSupportsFeature2V1; - bit tests:
hasLifecycleFlag,hasConsumerCapabilityV1,hasFeatureBitV1,hasFeatureBit2V1,hasHandInputSuppressionFlagV1,hasWeaponPartTargetFlagV1,hasWeaponKeywordFlagV1,hasNativeAnimationAuthorityFlagV1, andhasEquippedWeaponHandlingFlagV1; - named
supports…V1helpers listed in Discovery and capabilities.
The helpers execute in the consumer DLL. The 90 slots above execute through the ROCK-owned table.