info_hlvr_holo_hacking_plug is a point entity available in
Half-Life: Alyx.
The info_hlvr_holo_hacking_plug is the starting point of a hologram puzzle. When a player interacts with this item using the multi-tool it can cause a simple activation to occur or more commonly can be used to create small puzzles of various types. It often has an associated info_hlvr_holo_hacking_spawn_target which is used to ensure the puzzles created will be spawned in an area the player has full access to.
Properties
- Puzzle Spawn Target (PuzzleSpawnTarget) <string>
- targets an associated info_hlvr_holo_hacking_spawn_target
- PuzzleType (PuzzleType) <choices>
- The type of hacking puzzle for this plug. See Hack Types ↓ for more information.
- 0: Sphere trace (default)
- 1: Point search
- 2: Core search (Non-Functional)
- 3: Rod pull (No difficulty parameters)
- 4: Point match
- 5: Simple Activate
- 6: Point drag
Warning: This puzzle will crash if used outside of a crafting station port
- 7: Toner interact
- Intro Variation (IntroVariation) <integer>
- The variation of the intro animation to use. Set to 1 to override the default VFX of various combine props that appears. (0: Default)
- Hack Difficulty Name (HackDifficultyName) <string>
- The name for this hack that matches the difficulty values specified in holo_hacking_difficulty.txt.
- Start Hacked (StartHacked) <boolean>
- The plug will start in a state where it has already been hacked.
- Start Disabled (StartDisabled) <boolean>
- Stay dormant until activated (with the
Enableinput).
Source 2 Targetname
- Name (targetname) <string>
- The targetname that other entities refer to this entity by.
- Entity Scripts (vscripts) <scriptlist>
- Space delimited list of VScript files (without file extension) that are executed after all entities have spawned. The scripts are all executed in the same script scope, later ones overwriting any identical variables and functions.
- Create Client-Only Entity (clientSideEntity) <choices>
- No
- Yes
|
Source 2 Hierarchy
- Parent (parentname) <targetname>
- Specifies a movement parent. An entity will maintain its initial offset from its parent.
- Parent Model Bone/Attachment Name (parentAttachmentName) <string>
- The name of the bone or attachment to attach to on the entity's parent in the movement hierarchy. Use !bonemerge to use bone-merge style attachment.
- Model Attachment position offset (local.origin) <coordinates>
- Offset in the local space of the parent model's attachment/bone to use in hierarchy. Not used if you are not using parent attachment.
- Model Attachment angular offset (local.angles) <angles>
- Angular offset in the local space of the parent model's attachment/bone to use in hierarchy. Not used if you are not using parent attachment.
- Model Attachment scale (local.scales) <vector>
- Scale in the local space of the parent model's attachment/bone to use in hierarchy. Not used if you are not using parent attachment.
- Use Model Attachment Offset (useLocalOffset) <boolean>
- Whether to respect the specified local offset when doing the initial hierarchical attachment to its parent.
|
Source 2 Transform
Note: These are "Embedded Properties" which are hard-coded to appear on every entity in Hammer, regardless of their presence in any FGD files.
- Origin (origin) <coordinates>
- The world space origin of the entity.
- Angles (angles) <angles>
- The pitch, yaw, roll orientation of the entity.
- Scale (scales) <vector>
- The x, y, z scales of the entity. Not all entities can use this.
- Transform Locked (transformLocked) <boolean>
- Lock the transform at its current value, preventing the transform of the node from being modified. Only applies within Hammer.
- Force Hidden (force_hidden) <boolean>
- Visually hides the entity from the viewports. The Outliner pane will still list hidden entities.
- Editor Only (editorOnly) <boolean>
- Entity is only displayed in Hammer and will not appear in game.
|
Inputs
- BeginHack
- Begins the hack.
- EndHack
- Ends the hack.
EnableDisable:
- Enable / Disable <void>
- Enable/disable this entity from performing its task. It might also disappear from view.
Source 2 Targetname
- Kill
- Removes this entity from the world.
- KillHierarchy
- Removes this entity and all 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 <stringRedirectInput/string>
- Evaluates a keyvalue/output on 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.
- RunScriptFile <stringRedirectInput/string>
- Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
- RunScriptCode <stringRedirectInput/string>
- 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 <stringRedirectInput/string>
- Execute a VScript function in the scope of the receiving entity.
- CallPrivateScriptFunction <stringRedirectInput/string>
- Calls a script function from this entity's private script scope.
- CallGlobalScriptFunction <stringRedirectInput/string>
- Calls a script function in the global script scope.
|
Source 2 Hierarchy
- SetParent <stringRedirectInput/string>
- Changes the entity's parent in the movement hierarchy.
- SetParentAttachment <stringRedirectInput/string>
- Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment.
- SetParentAttachmentMaintainOffset <stringRedirectInput/string>
- Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached.
- ClearParent
- Removes this entity from the the movement hierarchy, leaving it free to move independently.
|
Outputs
- OnHackStarted
- Fires when the hack has been started.
- OnHackStopped
- Fires when the hack has been stopped.
- OnHackSuccess
- Fires when the hack has been successfully completed.
- OnHackFailed
- Fires when the hack has failed.
- OnHackSuccessAnimationComplete
- Fires when the hack has been successfully completed and the hacking plug has returned back to its idle position.
- OnPuzzleCompleted
- Fires as soon as the puzzle completes. The hack is still active at this point and has yet to play its outro.
- OnPuzzleSuccess
- Fires as soon as the puzzle completes. The hack is still active at this point and has yet to play its outro.
- OnPuzzleFailed
- Fires as soon as the puzzle completes. The hack is still active at this point and has yet to play its outro.
Source 2 Targetname
- OnUser1 to OnUser4
- These Outputs each fire in response to the firing of the like-numbered
FireUser1 to FireUser4 Input; see User Inputs and Outputs.
- OnKilled
- This Output fires when the entity is killed and removed from the game.
|
Hack Types
| Type
|
Image
|
Description
|
| Sphere Trace |
 |
The player must connect two blue points together by moving one or both, while avoiding red dots. Difficulty determines how many times it must be done, the speed of the red dots and the length of the trails they leave behind.
|
| Point Search |
 |
The player must move a central core such that the lasers leading to the core also pass through several points arranged around an area. Difficulty determines the number of connection points and cores needed to align.
|
| Point Match |
 |
The player must connect colored pairs of nodes by memory, while also contending with a dividing barrier. Difficulty determines the number of pairs and allowed failures.
|
| Rod Pull |
 |
The player must rotate a wedge such that it passes through a small opening in three partial circles. Difficulty has not been implemented on this puzzle. The basic puzzle allows for collisions by adding additional circles to the end of the rod.
|
| Point Drag |
 |
The Player must drag a point through several circles while a "fuse" burns down along the same path. Difficulty will reduce the visibility of future circles and increase the fuse speed.
|
| Simple Activate / Toner interact |
 |
No puzzle interaction. Basically a variation of a button for electronics.
|
See also