Skip to content

CVR Parameter Stream

The Parameter Stream writes real-time game-state values (time, input, eye tracking, rigidbody velocity, damage, and more) into Animator parameters you choose.

Some of the types may require the Parameter Stream to be place on a certain spot within the hierarchy. Check the description on each category for more information.

ReferenceType enum: World, Avatar, Spawnable. Selects which enclosing component the stream looks for (e.g. a CVRAvatar or CVRSpawnable in parents). On Start, matching components are cached so per-entry dispatch is cheap.

List<CVRParameterStreamEntry>. Each entry describes one source -> target mapping.

Only Update When Held / Attached / Controlled / Owner
Section titled “Only Update When Held / Attached / Controlled / Owner”

bool. Gates stream updates for Spawnable/World references. If none are set the stream always ticks.

  • onlyUpdateWhenHeld — require the enclosing CVRPickupObject to be grabbed by you.
  • onlyUpdateWhenAttached — require a CVRAttachment in the hierarchy to be attached.
  • onlyUpdateWhenControlled — require a CVRSeat with lockControls to be occupied by you.
  • onlyUpdateWhenOwner — require the enclosing CVRSpawnable to be owned by you (IsMine()).

Each CVRParameterStreamEntry has:

  • type — the source Type enum (tables below).
  • targetTypeTargetType enum: Animator, VariableBuffer, AvatarAnimator, CustomFloat (spawnable sync value).
  • applicationTypeApplicationType enum (see Value Application Expressions below).
  • targetGameObject hosting an Animator or CVRVariableBuffer.
  • parameterName — animator parameter, variable buffer, or spawnable sync-value name.
  • parameterType — resolved at Start; used for animator writes (Float/Int/Bool/Trigger).
  • staticValue, staticValue2, staticValue3, staticValue4 — constants used by math / clamp / remap operations.

Since there is a significant amount of parameters, they were split into several categories. For better navigation use the links on the right panel of the window.

The general types represent general information about the game.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Time SecondsFloat[0.0]The current System time in seconds since midnight including milliseconds
Time Seconds UtcFloat[0.0]The current System UTC time in seconds since midnight
Device ModeBool[false, true]Checks if you are currently in VR. true = VR
Headset On HeadBool[false, true]Checks if your headset is currently on your head
Game FocusedBool[false, true]Checks if your game is currently focused.
Only available in nightly builds atm
Zoom FactorFloat[0.01.0]Zoom input level (desktop only). 0 = max zoom
Zoom Factor Curve deprecatedFloat[0.01.0]Use Zoom Factor
Time Since Headset RemovedFloat[0.0]Time in seconds since the headset was removed
Time Since Game UnfocusedFloat[0.0]Time in seconds since game was unfocused.
Only available in nightly builds atm
Time Since Local Avatar LoadedFloat[0.0]Time in seconds since local avatar loaded
Local World Download PercentageFloat[0.01.0]Download progress for the next world
Local FPSFloat[0.0]Local player’s current FPS
Local PingInt[0]Local player’s ping to server
Local Player CountInt[0]Number of players in current instance
Local Time Since First World JoinFloat[0.0]Time since first world joined after game start
Local Time Since World JoinFloat[0.0]Time since last world joined
Local Player MutedBool[false, true]Whether the local player is muted
Local Player Hud EnabledBool[false, true]Whether the HUD is enabled for the player
Local Player Nameplates EnabledBool[false, true]Whether nameplates are visible
Local Player HeightFloat[0.0]Height of player in centimeters
Local Player Left Controller TypeInt[09]Type of left VR controller Controller Values
Local Player Right Controller TypeInt[09]Type of right VR controller Controller Values
Local Player Full Body EnabledBool[false, true]Whether full body tracking is enabled
Current Instance TypeInt[06]Current instance type Instance Values
Controller TypeInt Value
None0
Other1
Vive2
MixedReality3
HpMotion4
Index5
Oculus6
Pico7
XRHand8
ViveCosmos9
Instance TypeInt Value
Public0
FriendsOfFriends1
Friends2
Group (Only)3
EveryoneCanInvite4
OwnerMustInvite5
GroupPlus (FriendsOfGroup)6
GroupPublic7

The Eye Tracking types represent information about the avatar eye movement and blinking.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Eye Movement Left XFloat[-1.01.0]Horizontal movement of the left eye
Eye Movement Left YFloat[-1.01.0]Vertical movement of the left eye
Eye Movement Right XFloat[-1.01.0]Horizontal movement of the right eye
Eye Movement Right YFloat[-1.01.0]Vertical movement of the right eye
Eye Blinking LeftFloat[0.01.0]Blink progress of the left eye. 0:open, 1:closed
Eye Blinking RightFloat[0.01.0]Blink progress of the right eye. 0:open, 1:closed

The Lip Sync types represent information about the avatar lip sync, which is driven by the oculus lipsync SDK.

If you want to access the current viseme index, check the VisemeIdx core animator parameter.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Viseme LevelFloat[0.01.0]Voice loudness

The Input types represent information about the current input you’re providing to the game.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Trigger Left ValueFloat[0.01.0]Left trigger pressure
Trigger Right ValueFloat[0.01.0]Right trigger pressure / Left mouse button
Grip Left ValueFloat[0.01.0]Left grip pressure
Grip Right ValueFloat[0.01.0]Right grip pressure / Right mouse button
Gripped Object LeftBool[false, true]Whether object is grabbed in left hand
Gripped Object RightBool[false, true]Whether object is grabbed in right hand or desktop
Input Movement XFloat[-1.01.0]Horizontal movement input. -1:left
Input Movement YFloat[-1.01.0]Vertical movement input. -1:down
Input Look XFloat[-1.01.0]Horizontal look input. -1:left
Input Look YFloat[-1.01.0]Vertical look input. -1:down
Input JumpBool[false, true]Jump input

The Avatar types represent information about the avatar you’re currently wearing.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Avatar HeightFloat[0.0]The viewpoint height of the current avatar in meters
Avatar UprightFloat[0.01.0]How upright the avatar stands. 0: flat, 1: fully upright

The Menu types represent information about the state of the in-game menus.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Is Any Menu OpenBool[false, true]Any menu currently open
Is Main Menu OpenBool[false, true]Whether the main menu is open
Is Quick Menu OpenBool[false, true]Whether the quick menu is open

The Seed types represent information that allows deterministically get values depending on another value.

Requirements:

  • ⚠️ Only works on Avatars and Props
Stream TypeParam TypeValue RangeDescription
Seed OwnerInt[-2,147,483,6482,147,483,647]Deterministic seed value from prop spawner or avatar wearer
Seed InstanceInt[-2,147,483,6482,147,483,647]Deterministic seed value from a prop instance ID

The User types allows to get information about the current user related to a prop/avatar

Requirements:

  • ⚠️ Only works on Avatars and Props
Stream TypeParam TypeValue RangeDescription
is OwnerBool[false, true]Whether the observer is the spawner/wearer of a prop/avatar

The Transform types represent information about the transform where the Parameter Stream component is placed

Requirements:

  • ⚠️ This will provide the information about the transform where the Parameter Stream was added to
Stream TypeParam TypeValue RangeDescription
Transform Global Position XFloat[-∞]Global X position
Transform Global Position YFloat[-∞]Global Y position
Transform Global Position ZFloat[-∞]Global Z position
Transform Global Rotation XFloat[??]Global X rotation (Euler angle)
Transform Global Rotation YFloat[??]Global Y rotation (Euler angle)
Transform Global Rotation ZFloat[??]Global Z rotation (Euler angle)
Transform Local Position XFloat[-∞]Local X position
Transform Local Position YFloat[-∞]Local Y position
Transform Local Position ZFloat[-∞]Local Z position
Transform Local Rotation XFloat[??]Local X rotation (Euler angle)
Transform Local Rotation YFloat[??]Local Y rotation (Euler angle)
Transform Local Rotation ZFloat[??]Local Z rotation (Euler angle)

The Fluid Volume types represent information about the fluid volume interactions with your avatar or PhysicsInfluencer

Requirements on Avatar:

  • None

Requirements on Physics Influencer (Worlds/Props):

  • ⚠️ This will provide the information about the PhysicsInfluencer that is on the same or on a parent GameObject as the Parameter Stream.
Stream TypeParam TypeValue RangeDescription
Fluid Volume SubmergedBool[false, true]Whether player/influencer is submerged in fluid
Fluid Volume DepthFloat[0.01.0]Degree of submersion. 1.0 = completely submerged
Fluid Volume Time Since EnteredFloat[0.0]Time since fluid was entered (seconds)
Fluid Volume Time Since ExitFloat[0.0]Time since fluid was exited (seconds)

The Input Car types represent information about the inputs that are used for driving cars. Even without being in a car these inputs set the values.

Requirements:

  • None
Stream TypeParam TypeValue RangeDescription
Input Car SteeringFloat[-1.01.0]Steering input from VR, keyboard, or gamepad
Input Car AccelerateFloat[0.01.0]Acceleration input
Input Car BrakeFloat[0.01.0]Brake input
Input Car HandbrakeFloat[0.01.0]Handbrake input
Input Car BoostFloat[0.01.0]Boost input

The Rigidbody types represent information about a Rigidbody

Requirements:

  • ⚠️ This will provide the information about the Rigidbody that is on the same or in a parent GameObject relative to the Parameter Stream component
Stream TypeParam TypeValue RangeDescription
SpeedFloat[0]Speed of the Rigidbody in m/s
Velocity XFloat[-∞]Rigidbody velocity X (world space)
Velocity YFloat[-∞]Rigidbody velocity Y (world space)
Velocity ZFloat[-∞]Rigidbody velocity Z (world space)
Local Velocity XFloat[-∞]Rigidbody velocity X (local space)
Local Velocity YFloat[-∞]Rigidbody velocity Y (local space)
Local Velocity ZFloat[-∞]Rigidbody velocity Z (local space)
AccelerationFloat[0]Magnitude of Rigidbody acceleration in m/s²
Acceleration XFloat[-∞]Rigidbody acceleration X (world space)
Acceleration YFloat[-∞]Rigidbody acceleration Y (world space)
Acceleration ZFloat[-∞]Rigidbody acceleration Z (world space)
Local Acceleration XFloat[-∞]Rigidbody acceleration X (local space)
Local Acceleration YFloat[-∞]Rigidbody acceleration Y (local space)
Local Acceleration ZFloat[-∞]Rigidbody acceleration Z (local space)

The WheelHubController types represent information about a WheelHubController

Requirements:

  • ⚠️ This will provide the information about the WheelHubController that is on the same or in a parent GameObject relative to the Parameter Stream component
Stream TypeParam TypeValue RangeDescription
Current SpeedFloat[-∞]Forward speed of the wheel hub in m/s; negative means reversing
Speed FactorFloat[0.0?]Normalized speed (0 to max speed)
Is GroundedBool[false, true]Whether any wheel is grounded

The WheelController types represent information about a WheelHubController

Requirements:

  • ⚠️ This will provide the information about the WheelController that is on the same or in a parent GameObject relative to the Parameter Stream component
Stream TypeParam TypeValue RangeDescription
Is GroundedBool[false, true]Whether this wheel is grounded
RPMFloat[??]Current wheel RPM

The Damage System types represent information relative to the ObjectHealth.

Requirements:

  • ⚠️ Only works on Avatars and Props

Requirements for Props:

  • ⚠️ This will provide the information about the ObjectHealth that is on the same or in a parent GameObject relative to the Parameter Stream component
Stream TypeParam TypeValue RangeDescription
Current HealthFloat[0*]Health value
Current ArmorFloat[0*]Armor value
Current ShieldFloat[0*]Shield value

* The max value is configured by the world’s combat system


The NavMeshAgent types represent information about a NavMeshAgent.

Requirements:

  • ⚠️ This will provide the information about the NavMeshAgent that is on the same or in a parent GameObject relative to the Parameter Stream component
Stream TypeParam TypeValue RangeDescription
SpeedFloat[0.0]NavMeshAgent’s current speed
Remaining DistanceFloat[0.0]Remaining distance to the path target
Has PathBool[false, true]Whether a path to the target exists
On OffMeshLinkBool[false, true]Whether the agent is on an OffMeshLink
OffMeshLink TypeInt[0, 1, 2]0: Manual, 1: DropDown, 2: JumpAcross

The Leg types represent information about the CVRLeg component

Requirements:

  • ⚠️ This will provide the information about the CVRLeg that is on the same or in a parent GameObject relative to the Parameter Stream component
Stream TypeParam TypeValue RangeDescription
Is on groundBool[false, true]Whether the leg is in contact with the ground

These define how the streamed value is applied to the animator parameter (result is final value written):

ExpressionResultDescription
Overrideresult = valueReplace current result with value
Add To Currentresult = curr_value + valueAdd value to current parameter
Add To Staticresult = static_value + valueAdd value to a fixed static value
Subtract from Currentresult = curr_value - valueSubtract value from current parameter
Subtract from Staticresult = static_value - valueSubtract value from static value
Subtract with Currentresult = value - curr_valueSubtract current parameter from value
Subtract with Staticresult = value - static_valueSubtract static value from value
Multiply with Currentresult = value * curr_valueMultiply value with current parameter
Multiply with Staticresult = value * static_valueMultiply value with static value
Modresult = value % static_valueModulo operation
Powresult = value ^ static_valueExponentiation (power)
ExpressionResultDescription
Compare Less Thanresult = 1.0 if (value < static_value) else 0.0Is value less than static?
Compare Less Than Equalsresult = 1.0 if (value <= static_value) else 0.0Is value less or equal static?
Compare Equalsresult = 1.0 if (value == static_value) else 0.0Is value equal to static?
Compare More Than Equalsresult = 1.0 if (value >= static_value) else 0.0Is value greater or equal static?
Compare More Thanresult = 1.0 if (value > static_value) else 0.0Is value greater than static?
ExpressionResultDescription
Clampresult = clamp(value, static_value, static_value2)Clamp to [staticValue, staticValue2].
Remapresult = remap(value, 0, 1, static_value, static_value2)Linear remap from [0, 1] to [staticValue, staticValue2].
ClampRemapresult = remap(clamp(value, s, s2), s, s2, s3, s4)Clamp to [staticValue, staticValue2] then remap into [staticValue3, staticValue4].

  • Parameter names are case sensitive.
  • Streamed parameters update every frame; manual changes will be overwritten.

CVR-GameFiles/ABI.CCK.Components/CVRParameterStream.cs, CVR-GameFiles/ABI.CCK.Components/CVRParameterStreamEntry.cs