haptic_relay

From Valve Developer Community
Jump to: navigation, search

haptic_relay is a point entity available in the following Source 2 engine games: <Half-Life: Alyx> Half-Life: Alyx.

Entity description

The haptic_relay is an entity which ostensibly has the power to trigger force-feedback in VR controllers based on its properties being similar to env_shake. It appears to share some attributes with logic_relay but requires additional testing for use.


To do: Test this entity for its intended uses and update this page with use-cases

Investigate: .hpt files in scripts/haptics, audio2haptic_inputkv.txt, and OnHandEvent input.

Properties

Source 2 Transform:

origin <coordinates>
The world space origin of the entity.
angles <angles>
The pitch, yaw, roll orientation of the entity.
scales <vector>
The x, y, z scales of the entity. Not all entities can use this.
Transform Locked <boolean>
Lock the transform at its current value, preveting the transform of the node from being modified.
Force Hidden <boolean>
Visually hides the entity from the viewports. The Outliner pane will still list hidden entities.
Editor Only <boolean>
Entity is only displayed in Hammer and will not appear in game.


Name <string>
The name that other entities refer to this entity by.
Misc Entity Scripts <string>
Name(s) of script files that are executed after all entities have spawned.
Frequency <integer>
Frequency of the haptic pulse (0 - 100) Default (50)
Amplitude <float>
Amplitude of haptic pulse (0.0 - 1.0) Default (0.5)
Duration <float>
Duration of the haptic pulse in seconds Default (0.1)

Outputs

OnUser1
Fired in response to FireUser1 input
OnUser2
Fired in response to FireUser2 input
OnUser3
Fired in response to FireUser3 input
OnUser4
Fired in response to FireUser4 input
OnKilled
Fire when the entity is killed and removed from the game.

Inputs

AlyxTargetName:

RunScriptFile
Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
RunScriptCode
Execute a string of VScript source code in the scope of the entity receiving the input. String quotation may be needed when fired via console.
CallScriptFunction
Execute a VScript function in the scope of the receiving entity.
CallPrivateScriptFunction
Execute a VScript function from this entity's private script scope
CallGlobalScriptFunction
Execute a VScript function from the global script scope
Kill
Removes this entity from the world.
KillHierarchy
Removes this entity and its children from the world.
Note:Entities already remove orphaned children upon being removed, but this input removes all children on the same frame, being marginally faster than Kill.
AddOutput <string>
Adds a keyvalue/output to this entity. It can be potentially very dangerous, use with care.
KV Format: <key> <value>
I/O Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
FireUser1 to FireUser4
Fire the OnUser outputs; see User Inputs and Outputs.
OnHandEvent
Trigger the relay with an input that has the player as activator and HandID as value