Game ui

From Valve Developer Community
Revision as of 08:32, 26 July 2023 by Ficool2 (talk | contribs) (game_ui crash is fixed in TF2)
Jump to navigation Jump to search
Not to be confused with GameUI.

Template:Entity It redirects important player key presses to a series of outputs, and can be used to make the player control vehicles built in a map. It can be activated with I/O, or by the player looking at it.

Note.pngNote:You must have one instance of game_ui per player in multiplayer as each game_ui only activates for one player at a time.
Note.pngNote:Bots can use this entity and fire its outputs.

Keyvalues

FieldOfView (FieldOfView) <float>
The amount of tolerance in the view checking when determining whether the player's input is still under control.
  • 1.0 = straight ahead
  • 0.0 = +/- 90 degrees
  • -1.0 = all directions


Flags

  • 32 : Freeze Player - The player cannot move (they can still crouch though)
  • 64 : Hide Weapon - Disables all the player's weapons
Note.pngNote:This will cause the player to go into their reference (T) pose.
  • 128 : +Use Deactivates
  • 256 : Jump Deactivates

Inputs

Activate
The !activator will gain control upon this input being fired.
Deactivate
The entity will only test FieldOfView if it is active.
Icon-Bug.pngBug:The game will crash if the Deactivate input is fired on a game_ui that was activated by a player who has since disconnected. Fixed in Team Fortress 2 Team Fortress 2  [todo tested in ?]
PlacementTip.pngWorkaround:AddOutputing OnUsers to a player and using a logic_branch together can be sufficient to workaround this. If the game supports it, VScript can also be used to check if the player entity still exists before firing the input.


Outputs

The player is always the !activator.

PlayerOn
PlayerOff
Fired when the entity starts or stops controlling the player's input.
PressedMoveLeft
Template:EP2 add
Fired on +moveleft/-moveleft
PressedMoveRight
Template:EP2 add
Fired on +moveright/-moveright
Icon-Bug.pngBug:The left/right movement outputs do not fire when using a controller.  [todo tested in ?]
PressedForward
Template:EP2 add
Fired on +forward/-forward
PressedBack
Template:EP2 add
Fired on +back/-back
PressedAttack
Template:EP2 add
Fired on +attack/-attack
PressedAttack2
Template:EP2 add
Fired on +attack2/-attack2
XAxis <float>
YAxis <float>
Fired whenever the X/Y axis of the player's input changes.
  • -1.0 = +moveleft / +back at 100% speed
  • 0 = no movement in this axis
  • +1.0 = +moveright / +forward at 100% speed
AttackAxis <float>
Attack2Axis <float>
An output that fires whenever the state of the player's "attack" key changes.
  • 1.0 = trigger is 100% depressed
  • 0 = trigger is at rest
Note.pngNote:These do not actually output analog values, even when using an analog stick; it will only be 1, 0, or -1 depending on which keys are considered pressed. (Because of the above bug, this also means that XAxis never fires when using a controller.)