Skip to main content

Equipped-weapon handling policy

Bind Weapon Read + Write and use setEquippedWeaponHandlingAuthorityV1, getEquippedWeaponHandlingStateV1 and clearEquippedWeaponHandlingAuthorityV1. Handling is an owner-bound singleton lease; conflicting ownership returns OwnerConflict. Read Grab for actual occupancy, Hands for physical firing/support roles, and Weapon for captured grips and equipped identity.

Supported flags​

FlagBehavior
FiringGripOwnershipPhysical firing-grip ownership policy.
PrimaryDetachDetach the current firing hand under valid ownership.
AmbidextrousHandoffPermit physical transfer to the opposite firing hand.
GripZoneEquipEquip/claim through the physical firing-grip zone.
GripZoneHoverHapticsBounded equip-zone hover feedback policy.
FiringGripProximitySupportLeased firing-grip proximity support tuning.

These are the six implemented bits. Primary detach, handoff and grip-zone equip depend on firing-grip ownership. Retired shoulder-stash, Pip-Boy hand-equip and visual-bridge enable flags are absent from the current enum. Bridge correctness stays owned by ROCK. Weapon 1.0 has no exact-hand equip request; physical handoff changes firing roles without changing controller identities.

Publish a nonzero bounded lease with finite tuning and current guards. Renew only while the activity owns the feature. Explicit clear, expiry, generation loss, owner loss and fault cleanup retire the policy. Inspect live state rather than treating a historical accepted publication as current authority.

Tuning ranges​

Out-of-range or non-finite values reject the entire transaction.

FieldValid rangeUnit / purpose
gripZoneEquipRadiusGameUnits0.25–30.0Equip-zone radius
gripZoneEquipSettleSeconds0.0–5.0Time inside the zone before equip
firingGripReattachRadiusGameUnits0.25–30.0Reattach distance
gripZoneHoverHapticIntensity0.0–1.0Hover feedback strength
firingGripProximitySupportRadiusGameUnits0.25–30.0Visual support proximity
weaponGripHapticDurationSeconds0.01–0.50Grip pulse duration
firingGripAttachHapticIntensity0.0–1.0Attach feedback strength
firingGripDetachHapticIntensity0.0–1.0Detach feedback strength
supportGripHapticIntensity0.0–1.0Support-grip feedback strength
firingGripPromotionRadiusGameUnits0.25–30.0Lateral handoff-cylinder reach
leftFiringAimYawDegrees-30.0–30.0Left-firing aim correction
leftFiringAimPitchDegrees-30.0–30.0Left-firing aim correction
each leftFiringAimOffsetGameUnits axis-15.0–15.0Left-firing position correction
equipVisualBridgeTimeoutSeconds0.25–5.0Native render recovery timeout
equipVisualBridgeBlendSeconds0.0–1.0Visual handoff blend

Exact request defaults and fields are in the Weapon declarations. Initialize the request with {} and set a valid flag/lease explicitly; a default zero lease is not an active publication.

Explicit inventory-to-hand equip and retained switching use the separately negotiated Weapon 1.1 extension; the handling lease above remains unchanged.