TSG Forge Wiki
  • Welcome
  • Forge
    • Forge Basics and UI
      • Loading Into Forge
        • Forge Canvases
        • Baked-In Map Data
      • Forge Interface
        • Object Browser
          • Forge Object List
        • Object Properties
        • Folders
          • Basic Folder Structure
          • Advanced Folder Structure
        • Map Options
        • Tool Settings
          • Debug Element Display Options
      • Controls and Shortcuts
      • Coordinate System and Spaces
      • Working with Objects
      • Editor Modes
      • Saving Assets
      • Forge Terminology
    • Layout
      • Level Design
        • Blockout Best Practices
        • Metrics
          • Level Geometry Metrics
          • Map Scaling
          • Movement and Player Character Info
        • Terrain
          • TI and Non-TI Terrain
          • Terrain Guidelines
        • Planning the Location and Orientation of Your Map
        • Designing For Halo
      • Level Art
        • Creating an Art Palette
        • Art Techniques
    • Spawning
      • Initial Spawning
        • Team Intro Spawns
        • Initial Spawn Points
        • Backup Spawn Points
      • Respawning
        • Respawn Points
          • Respawn Point Count Reference
        • Reviving a Player
      • Spawn Influence
        • Spawn Volumes
          • FFA & Spawn Volumes
          • Weighting Respawn Volumes (old)
        • Player-Based Spawn Influence
      • Spawn Order
    • Gameplay
      • Sandbox
        • Weapons
          • All Weapons
            • Weapon Classes
            • Variants (old)
          • Weapon Spawning
            • Weapon Racks
            • Weapon Pads
            • Weapon Trunks
            • Classic Weapon Spawns
            • Weapon Pods
            • Weapon Objects
          • Weapon Data
            • Weapon Time To Kill
            • Weapon Rate of Fire and Reload Speeds
            • Weapon Single Round Damage
            • Weapon Projectile Behavior and Leading Ranges
            • Weapon Aim Assist Cone Data
        • Equipment
          • All Equipment
            • Equipment Tiers
            • Fusion Coils (old)
          • Equipment Spawning
            • Equipment Dispensers
            • Power Equipment Dispensers
            • Classic Equipment Spawns
            • Equipment Pods
          • All Grenades
          • Grenade Spawning
            • Grenade Dispensers
            • Classic Grenade Spawns
            • Grenade Objects
        • Vehicles
          • All Vehicles
            • Vehicle Classes
          • Vehicle Spawning
            • Vehicle Spawners
            • Classic Vehicle Spawns
            • Vehicle Objects
          • Vehicle Data
            • Vehicle Repair Thresholds
            • Rounds Required to Pass Vehicle Repair Thresholds
            • Vehicle Damage Sections
        • Ordnance Pods
          • Ordnance Pod Count Reference
        • Spawn Properties
          • 343 Default Spawn Properties Reference
      • Cameras
        • Map Intro Cameras
          • Intro Cameras in Forge (old)
        • Winning Team Outro
      • Launchers and Lifts
      • Teleporters
      • Audio
        • Audio Emitters
        • 3D Audio
        • Optimizing Audio Generation
        • Building Audio
          • Audio Build Errors
      • Named Location Volumes
      • Containment
        • Blockers
        • Kill Zones
        • Safe Volumes
    • Modes
      • Slayer
      • Capture The Flag
        • Standard CTF
        • One Flag CTF
        • Neutral CTF
        • BTB:CTF
        • Husky Raid
        • Capture The Flag (old)
      • Strongholds
      • King of The Hill
      • Oddball
      • Firefight
        • Firefight KOTH
          • Mode Options
        • Firefight Custom
      • Infection
      • Land Grab
      • Attrition
        • Dodgeball
        • Elimination
      • Extraction
      • Total Control
      • Stockpile
      • Big Team Battle Heavies
      • Minigame
    • Nav Mesh
      • Nav Objects
        • Nav Seed Points
        • Nav Helpers
        • Nav Cutters
        • Bot Nav Markers
      • Nav Mesh Generation
        • Nav Mesh Generation Root Points
        • Optimizing Nav Mesh Generation
          • Hiding Objects During Nav Mesh Generation (old)
        • Building Nav Mesh
          • Fixing Nav Mesh Build Issues
          • How To Use Nav Mesh (old)
      • NPC Units
        • Bots
          • Bot Difficulties
          • Bot Spawning
        • AI
          • All AI Character Types
          • AI Spawning
            • AI Droppod Spawner
            • AI Phantom Spawner
            • AI Spawner
            • AI Vehicle Spawner
        • Behavior
        • Ambitions
        • Max Jump Heights and Distances
    • Lighting
      • Settings, Object-Based Lighting
        • Basic Light Settings
        • Minimal Roughness
        • Near/Far Begin
        • First Person Contact Shadows
        • Cone
        • Animation
        • Oriented Bounding Box (OBB)
        • Area Light
        • Light Group
        • Light Objects (old)
      • Settings, Global Lighting
        • Sun
        • Sky
        • Light Bounce
        • Fog
        • Fog (old)
        • Tool Settings (old)
        • Light Bounce (old)
        • Sunlight (old)
        • Sky Rendering (old)
        • Sunlight & Sun Direction (old)
      • Lighting Modifiers
        • Light Probes
        • Reflections
          • Reflection Volumes
            • Building Reflection Volumes
        • Light Probe Marker (old)
        • Level Bound Probes (old)
        • Reflection Volumes (old)
          • Cubemaps
      • Building Lighting
        • Light Probe Blending Issues
      • FX
        • Lighting FX Objects
        • FX-Emitting Objects
    • Standards
      • Mode Setup
        • Arena
        • Ranked
        • Big Team Battle
        • Squad Battle
        • Free For All
      • Map Requirements
  • Scripting
    • Scripting Basics and UI
      • Node Graph Interface
        • Node Browser
        • Graph Options
        • Global Log
        • Budget
      • Controls and Shortcuts
      • Working with Nodes
      • Script Brains and Mode Brains
      • Node Graph Properties
      • Scripting Terminology
    • Nodes
      • AI
        • Combine Squad Overrides
        • Get AI Units From Squad
        • Get All AI Units
        • Get All AI Units On Team
        • Get All Squads
        • Get All Squads On Team
        • Get Squad Definition From AI Spawner
        • Get Squad From AI Unit
        • Kill All Squads
        • Kill Squad
        • Spawn Squad Through Definition
        • Squad Overrides Behavior
        • Squad Overrides Identification
        • Squad Overrides Spawn Logic
        • Trigger AI Spawner
      • AI ADVANCED
        • Ally Squad With FFA Player
        • Assign AI Unit To Spawned Squad
        • Assign Squad To Team
        • Assign Squad To Zone
        • Get AI Character Type
        • Get All AI Spawners
        • Get Available AI Unit Count
        • Get Is AI
        • Get Squad AI Unit Count
        • Get Squad Combat State
        • Get Squad Definition AI Unit Count
        • Get Squad Has Squad Label
        • Get Squad Team
        • Get Squads From Spawner
        • Get Squads With Squad Label
        • Is AI Unit Of Species
      • AI MODIFIERS
        • Apply Undetectable To AI
        • Apply Valhalla
        • Get AI Targetable Object List
        • Modify AI Targetable List
        • Modify AI Targetable Object Methods
        • Set AI Difficulty
        • Set AI Unit Inactive
        • Set AI Unit Magic Sight
        • Set AI Unit Perception
        • Set All Healthbars Visible
        • Set Healthbar Visible
        • Set Squad Follow Object
        • Set Squad Stop Following
        • Trigger Grunt Hug
      • AI WAVES
        • Add Wave To Wave Manager
        • Compare Wave Manager
        • Compare Wave Type
        • Compare Wave Victory Reason
        • End Current Wave
        • Get Current Wave Status
        • Get Wave Manager Status
        • Remove Upcoming Waves
        • Wave
        • Wave Options
      • AUDIO
        • Fade Current Music Track For All Players
        • Fade Current Music Track For Player
        • Fade Current Music Track For Team
        • Play 3D Audio For All Players
        • Play 3D Audio For Opposing Teams
        • Play 3D Audio For Team
        • Play Announcer Voiceover For All Players
        • Play Announcer Voiceover For Player
        • Play Announcer Voiceover For Team
        • Play Music Track For All Players
        • Play Music Track For Player
        • Play Music Track For Team
        • Play Nearing Victory Audio For All Players
        • Register Audio Zone
        • Set Object 3D Audio Loop
        • Stop Music Track For All Players
        • Stop Music Track For Player
        • Stop Music Track For Team
        • Stop Object 3D Audio Loop
        • Unregister Audio Zone
      • BOTS
        • Add Bot
        • Add Bot Ambition To Object
        • Ambition Type: Deliver
        • Ambition Type: Guard
        • Ambition Type: Interact
        • Ambition Type: Pickup
        • Bot Ambition
        • Bot Difficulty
        • Get All Bots
        • Get All Bots On Team
        • Get Bot Is Difficulty
        • Get Is Bot
        • Remove All Bots
        • Remove Bot Ambitions From Object
        • Remove Specific Bot From Match
      • DEATH CONTEXT
        • Was AI Killer
        • Was Assisted Kill
        • Was Character Type
        • Was Grenade Kill
        • Was Last AI Unit In Squad
        • Was Melee Kill
        • Was Vehicle Kill
        • Was Weapon Kill
        • Was With Grenade Type
        • Was With Specific Vehicle
        • Was With Specific Weapon
        • Was With Vehicle Type
        • Was With Weapon Type
      • DEBUG
        • Print Boolean To Killfeed
        • Print Control State To Killfeed
        • Print Number To Killfeed
        • Print Player To Killfeed
        • Print Team To Killfeed
        • Print Vector3 To Killfeed
        • Print Victory Reason To Killfeed
      • EVENTS
        • On Game Start
        • On Gameplay Start
        • On Map Intro
        • On Object Damaged
        • On Object Destroyed
        • On Object Entered Area
        • On Object Exited Area
        • On Object Spawned
        • On Round End
        • On Round Start
        • On Vehicle Entered
        • On Vehicle Exited
        • On Vehicle Hijacked By AI
        • On Vehicle Hijacked By Player
        • On Vehicle Overturned
      • EVENTS AI
        • On AI Unit Killed
        • On Any Wave End
        • On Any Wave Start
        • On Squad Arrived
        • On Squad Arrived At Specific Zone
        • On Squad Remaining Percent
        • On Squad Spawned
        • On Squad Spawned With Squad Label
        • On Squad State Changed
        • On Wave End
        • On Wave Start
      • EVENTS CUSTOM
        • Every N Seconds
        • On Custom Equipment A Used
        • On Custom Equipment B Used
        • On Custom Equipment C Used
        • On Custom Equipment D Used
        • On Custom Event
        • On Custom Event, Global
        • On Custom Event, Global Async
        • On Object Interacted
        • On Stopwatch Reaches N Seconds
        • Trigger Custom Event
        • Trigger Custom Event, Global
        • Trigger Custom Event, Global Async
      • EVENTS GENERIC OBJECTIVES
        • On Generic Ball Dropped
        • On Generic Ball Pickup
        • On Generic Flag Carrier Killed
        • On Generic Flag Dropped
        • On Generic Flag Picked Up
        • On Generic Flag Reset
        • On Generic Flag Scored
        • On Generic Flag Spawned
        • On Generic Skull Dropped
        • On Generic Skull Pickup
        • On Generic Zone Capture Complete
        • On Generic Zone Capture Reset
        • On Generic Zone Capture Secured
        • On Generic Zone Capture Start
        • On Generic Zone Contested End
        • On Generic Zone Contested Start
        • On Generic Zone Entered
        • On Generic Zone Exited
        • On Generic Zone Expired
        • On Generic Zone Incoming
        • On Generic Zone Neutralize Reset
        • On Generic Zone Neutralize Start
        • On Generic Zone Neutralized
        • On Generic Zone Online
        • On Generic Zone Score End
        • On Generic Zone Score Start
        • On Generic Zone Score Tick
        • On Generic Zone State Changed
        • On Power Seed Dropped
        • On Power Seed Picked Up
        • On Shrinking Zone Start
        • On Shrinking Zone Stop
        • On Shrinking Zone Tick
        • On Socket Planted
        • On Socket Removed
      • EVENTS INVENTORY
        • On Equipment Pickup
        • On Equipment Used
        • On Grenade Pickup
        • On Grenade Throw
        • On Repair Field Healed
        • On Weapon Added
        • On Weapon Dropped
        • On Weapon Low Ammo
        • On Weapon No Ammo
        • On Weapon Pickup
        • On Weapon Refill Pickup
      • EVENTS MODES
        • On Capture Zone Capture Complete
        • On Capture Zone Capture Reset
        • On Capture Zone Capture Secured
        • On Capture Zone Capture Start
        • On Capture Zone Contested End
        • On Capture Zone Contested Start
        • On Capture Zone Entered
        • On Capture Zone Exited
        • On Capture Zone Incoming
        • On Capture Zone Lifetime Expired
        • On Capture Zone Neutralize Reset
        • On Capture Zone Neutralize Start
        • On Capture Zone Neutralized
        • On Capture Zone Online
        • On Capture Zone Score End
        • On Capture Zone Score Start
        • On Capture Zone Score Tick
        • On Capture Zone State Changed
        • On Extraction Zone Arming Completed
        • On Extraction Zone Arming Interrupted
        • On Extraction Zone Arming Started
        • On Extraction Zone Conversion Completed
        • On Extraction Zone Conversion Interrupted
        • On Extraction Zone Conversion Started
        • On Extraction Zone Extraction Completed
        • On Flag Captured
        • On Flag Carrier Killed
        • On Flag Carrier Spotted
        • On Flag Dropped
        • On Flag Incoming
        • On Flag Picked Up
        • On Flag Reset
        • On Flag Spawned
        • On New VIP
        • On Oddball Carrier Killed
        • On Oddball Carrier Spotted
        • On Oddball Dropped
        • On Oddball Incoming
        • On Oddball Picked Up
        • On Oddball Reset
        • On Oddball Score Tick
        • On Oddball Spawned
        • On Player Infected
        • On Player Level Up
        • On VIP Killed
      • EVENTS PLAYERS
        • On Medal Awarded
        • On Player Crouch
        • On Player Exited
        • On Player Joined
        • On Player Killed
        • On Player Mark
        • On Player Spawned
        • On Player Team Change
      • GAME MODE
        • Adjust Lifepool
        • Adjust Personal Score
        • Adjust Player Points
        • Adjust Team Points
        • Clear Team VIP
        • End Round
        • End Round - All Lose
        • End Round - All Tie
        • End Round - Winning Player
        • End Round - Winning Team
        • Get Current Round
        • Get Is Forge Mode
        • Get Is Game Mode
        • Get Is VIP
        • Get Lifepool Lives Remaining
        • Get Max Rounds
        • Get Personal Score
        • Get Player Points
        • Get Points To Win
        • Get Round Time
        • Get Team Points
        • Set Points To Win
        • Set Round Time
        • Set VIP
      • GAME MODE FIREFIGHT
        • End Firefight Custom Set
        • Fail Firefight Custom Perfect Set
        • Get Firefight Boss Spawners
        • Get Firefight Custom Set State
        • Get Firefight Wave Spawners
        • On Firefight Set End
        • On Firefight Set Start
        • Override AI Spawner
      • GENERIC OBJECTIVES
        • Activate Delivery Point
        • Activate Flag Spawn
        • Activate Generic Zone
        • Activate Shrinking Zone
        • Add Player To Allow List
        • Deactivate Delivery Point
        • Deactivate Flag Spawn
        • Deactive Generic Zone
        • Deactive Shrinking Zone
        • Get Generic Zone Control State
        • Get Generic Zone Progress
        • Get Players In Generic Zone
        • Remove Player From Allow List
      • INVENTORY
        • Add Player Ammo - Equipped
        • Add Player Ammo - Unequipped
        • Are Same Weapon Type
        • Drop Specific Weapon
        • Drop Weapon Of Type
        • Empty Player Ammo
        • Get Is Holding Specific Weapon
        • Get Is Holding Weapon Type
        • Get Is Weapon Type
        • Get Player Holding Item
        • Get Player Weapons
        • Get Unit Holding Item
        • Get Unit Weapons
        • Get Weapon Magazine Capacity
        • Get Weapon Magazine Rounds
        • Get Weapon Type
        • Give Player New Weapon
        • Give Player Specific Weapon
        • Give Unit New Weapon
        • Give Unit Specific Weapon
        • Refill Player Ammo
        • Set Player Weapon Lowered
        • Switch To First Weapon Of Type
      • INVENTORY EQUIPMENT
        • Adjust Player Equipment Charges
        • Adjust Player Grenades
        • Are Same Equipment Type
        • Empty Player Equipment
        • Empty Player Grenades
        • Get Equipment Type
        • Get Is Holding Any Equipment
        • Get Is Holding Equipment Type
        • Get Loadout Grenade Count
        • Get Player Equipment Charges
        • Get Player Grenade Count
        • Give Player New Equipment
        • Refill Default Grenades
        • Refill Player Equipment
        • Set Player Equipment Charges
      • LISTS
        • Add Item To Generic List
        • Combine Generic Lists
        • Declare Generic Item Variable
        • Declare Generic List Variable
        • For Each Generic Item
        • Generic List
        • Get Generic Item At Index
        • Get Generic Item Variable
        • Get Generic List Size
        • Get Generic List Variable
        • Get N Items In Generic List
        • Get Shared Items
        • Get Unshared Items
        • Item Is In Generic List
        • Remove Item From Generic List
        • Set Generic Item Variable
        • Set Generic List Variable
      • LISTS CASTS
        • Cast To Boolean
        • Cast To Equipment Type
        • Cast To Grenade Type
        • Cast To Nav Marker
        • Cast To Number
        • Cast To Object
        • Cast To Squad
        • Cast To Squad Definition
        • Cast To String
        • Cast To Team
        • Cast To UI Message
        • Cast To User Label
        • Cast To Vector3
        • Cast To Vehicle Type
        • Cast To Wave
        • Cast To Wave Manager
        • Cast To Weapon Type
      • LOGIC
        • Boolean Logic
        • Boolean NOT
        • Branch
        • For Each Bot
        • For Each Object
        • For Each Player
        • For N Iterations
        • Increment Number Variable
        • Toggle Boolean Variable
        • Wait For N Seconds
      • LOGIC COMPARE
        • Compare
        • Compare Character Type
        • Compare Control States
        • Compare Equipment Types
        • Compare Grenade Types
        • Compare Medals
        • Compare Squad State
        • Compare Squads
        • Compare Teams
        • Compare Vehicle Types
        • Compare Weapon Types
      • MATH
        • Absolute Value
        • Add
        • Add Vectors
        • Convert Degrees To Radians
        • Convert Radians To Degrees
        • Divide
        • Get Pi
        • Get Random Rotation
        • Get Vector Axis Value
        • Get Vector Length
        • Multiply
        • Normalize Vector
        • Random
        • Random Boolean
        • Round To Whole Number
        • Scale Vector
        • Square Root
        • Subtract
        • Subtract Vectors
        • Trigonometry - ArcSin/ArcCos
        • Trigonometry - ArcTan
        • Trigonometry - Cos/Sin/Tan
        • Vector Cross Product
        • Vector Dot Product
      • OBJECTS
        • Add Object To List
        • Are Same Object
        • Clone Object
        • Combine Object Lists
        • Damage Object
        • Delete Object
        • Get All Objects By Label And Spawn Order
        • Get All Objects By Spawn Order
        • Get All Players With Spawn Order
        • Get All Spawn Points
        • Get All Spawn Points For Team
        • Get First N Objects
        • Get First Object By Label
        • Get Is Dead
        • Get Is Valid Object
        • Get Last N Objects
        • Get List Size
        • Get Object Health
        • Get Object Shield
        • Get Object Spawn Order
        • Get Object Team
        • Get Object At Index
        • Get Objects By Label
        • Get Objects In Area Monitor
        • Get Objects In Prefab
        • Get Random N Objects
        • Get Shared Objects
        • Get Unique Objects
        • Object Is In List
        • Register Object For Kill Volume Events
        • Remove Object From List
        • Set Object Health
        • Set Object Health Percent
        • Set Object Physics Mode
        • Set Object Spawn Order
        • Set Object Team
        • Set Object Team To Neutral
        • Set Spawn Point Enabled
        • Spawn Object
      • OBJECTS FILTERS
        • Does Player Pass Object Filter
        • Remove All Filters On Object
        • Set Player Filter On Object
        • Set Team Filter On Object
      • OBJECTS TRANSFORM
        • Get Object Angular Velocity
        • Get Object Forward
        • Get Object Position
        • Get Object Rotation
        • Get Object Up
        • Get Object Velocity
        • Move Object To Transform
        • Reset Object
        • Rotate Object To Point
        • Set Object Angular Velocity
        • Set Object Position
        • Set Object Rotation
        • Set Object Velocity
        • Translate Object To Point
      • PLAYERS
        • Activate Spartan Tracking
        • Are Same Player
        • Block Player Spawns
        • Get All Players
        • Get All Players On Team
        • Get Is Crouching
        • Get Is Grappling
        • Get Is In Shroud Screen
        • Get Is Lunging
        • Get Is Mark Overridden
        • Get Is Overshield On
        • Get Is Player
        • Get Is Translocating
        • Get Is Zoomed
        • Get Number Of Teams
        • Get Number Of Players
        • Get Player Aiming Vector
        • Get Player FFA Allegiance
        • Get Player Overshield
        • Get Player Team
        • Get Random Player
        • Get Respawn Penalty
        • Revive All Players
        • Revive All Players On Team
        • Revive Player
        • Set Player Camo
        • Set Player FFA Allegiance
        • Set Player Mark Override
        • Set Player Overshield
        • Set Player Team
        • Set Player VFX
        • Set Respawn Penalty
        • Teleport Player
        • Unblock Respawns For Player
      • SKULLS
        • Cast To Skull
        • Compare Skulls
        • Declare Skull Variable
        • Get Skull Enabled
        • Get Skull Variable
        • Set Skull Enabled
        • Set Skull Variable
        • Skull
      • STOPWATCHES
        • Create Stopwatch
        • Get Stopwatch Elapsed Time
        • Pause Stopwatch
        • Reset Stopwatch
        • Restart Stopwatch
        • Start Stopwatch
      • TRAITS
        • Apply Trait Set
        • Apply Trait Set For Seconds
        • Apply Trait Set Until Death
        • Combine Trait Lists
        • Declare Trait Set
        • Get Random N Traits
        • Remove All Trait Sets
        • Remove Trait Set
        • Trait List
      • TRAITS AI
        • Trait AI: Bonus Health
        • Trait AI: Bottomless Clip
        • Trait AI: Damage Resistance
        • Trait AI: Health Recharge
        • Trait AI: Movement Speed
        • Trait AI: Movement Speed With Turret
        • Trait AI: Prevent Weapon Firing
        • Trait AI: Vampirism
        • Trait AI: Weapon Damage
      • TRAITS PLAYER
        • Apply Player Trait Set
        • Apply Player Trait Set For Seconds
        • Apply Player Trait Set Until Death
        • Remove All Player Trait Sets
        • Remove Player Trait Set
        • Trait: Bonus Health
        • Trait: Bonus Shield
        • Trait: Bottomless Clip
        • Trait: Clamber Enabled
        • Trait: Clamber Speed
        • Trait: Damage Resistance
        • Trait: Deathless
        • Trait: Equipment Pickup
        • Trait: Grenade Damage
        • Trait: Grenade Detonation Radius
        • Trait: Grenade Impulse
        • Trait: Grenade Pickup
        • Trait: Headshot Protection
        • Trait: Health Recharge
        • Trait: Infinite Ammo
        • Trait: Jump Height
        • Trait: Loadout Weapon Overrides
        • Trait: Melee Damage
        • Trait: Melee Impulse
        • Trait: Melee Recovery Speed
        • Trait: Motion Tracker Range
        • Trait: Motion Tracker Visible
        • Trait: Movement Speed
        • Trait: Movement Speed With Turret
        • Trait: Player Gravity
        • Trait: Prevent Grenade Throwing
        • Trait: Prevent Weapon Firing
        • Trait: Reload Speed
        • Trait: Shield HUD Visible
        • Trait: Shield Recharge
        • Trait: Slide Speed
        • Trait: Sprint Enabled
        • Trait: Sprint Reload Enabled
        • Trait: Sprint Resets Recharge
        • Trait: Sprint Speed
        • Trait: Third Person Gameplay
        • Trait: VFX - Active Camouflage
        • Trait: VFX - Overshield
        • Trait: Vampirism
        • Trait: Vehicle Passenger Only
        • Trait: Weapon Damage
        • Trait: Weapon Dropping
        • Trait: Weapon Pickup
        • Trait: Weapon Switch Speed
      • UI
        • Clear Splash For Player
        • Create UI Message
        • Create UI Message [B]
        • Create UI Message [C]
        • Push Splash To Player
        • Set Objective Banner For Player
      • UI NAV MARKERS
        • Add Trigger Volume Docking
        • Add Trigger Volume Visibility
        • Attach Nav Marker To Object
        • Clear All Visibility
        • Clear Distance Visibility
        • Clear Nav Marker Progress Team
        • Clear Nav Marker Text
        • Clear Nav Marker Team
        • Get Nav Marker Progress
        • Nav Marker
        • Nav Marker Global
        • Negate Line Of Sight To Object Center Visibility
        • Negate Line Of Sight To Player Visibility
        • Negate Player Distance Visibility
        • Negate Player Docking
        • Negate Player Visibility
        • Negate Sprinted Recently Visibility
        • Negate Team Distance Visibility
        • Negate Team Docking
        • Negate Team Visibility
        • Negate Trigger Volume Docking
        • Negate Trigger Volume Visibility
        • Remove All Docking
        • Remove All Player Filters
        • Remove All Team Filters
        • Remove All Trigger Volume Visibility
        • Remove Line Of Sight To Object Center Visibility
        • Remove Line Of Sight To Player Visibility
        • Remove Player Docking
        • Remove Player Visibility
        • Remove Sprinted Visibility
        • Remove Team Docking
        • Remove Team Offscreen Visibility
        • Remove Team Visibility
        • Remove Took Damage Visibility
        • Remove Trigger Volume Docking
        • Remove Trigger Volume From Docking
        • Remove Trigger Volume Visibility
        • Reset Distance Visibility Params
        • Set All Players Docking
        • Set Distance Visibility Params
        • Set Docking Order
        • Set Line Of Sight To Object Center Visibility
        • Set Line Of Sight To Player Visibility
        • Set Nav Marker Enabled
        • Set Nav Marker Icon
        • Set Nav Marker Message
        • Set Nav Marker Position
        • Set Nav Marker Progress
        • Set Nav Marker Progress Team
        • Set Nav Marker Team
        • Set Nav Marker Team Visibility
        • Set Nav Marker Text
        • Set Nav Marker Type
        • Set Player Distance Visibility
        • Set Player Distance Visibility Params
        • Set Player Docking
        • Set Player Visibility
        • Set Sprinted Visibility
        • Set Team Distance Visibility
        • Set Team Distance Visibility Params
        • Set Team Docking
        • Set Team Visibility
        • Set Team Offscreen Visibility
        • Set Took Damage Visibility
        • Set Visibility Filter Type
      • UNITS
        • Are Same Unit
        • Get All Units
        • Get All Units On Team
        • Get Is Airborne
        • Get Is Camouflaged
        • Get Is Detected
        • Get Is Detected By Team
        • Get Is In Knockback
        • Get Random Unit
        • Get Unit Aiming Vector
        • Get Unit FFA Allegiance
        • Get Unit Team
        • Set Unit Camo
        • Teleport Unit
      • VARIABLES ADVANCED
        • Boolean Variable
        • Equipment Type Variable
        • Grenade Type Variable
        • Number Variable
        • Object List Variable
        • Object Variable
        • Squad Definition Variable
        • Squad Variable
        • String Variable
        • Team Variable
        • UI Message Variable
        • User Label Variable
        • Vector3 Variable
        • Vehicle Type Variable
        • Wave Manager Variable
        • Wave Variable
        • Weapon Type Variable
      • VARIABLES BASIC
        • Area Monitor
        • Boolean
        • Equipment Type
        • Grenade Type
        • Identifier
        • Number
        • Object List
        • Object Reference
        • String
        • Team
        • User Label
        • Vector3
        • Vehicle Type
        • Weapon Type
        • Weapon Type, Combination
      • VARIABLES LITERALS
        • Audio Zone Effect
        • Character Type
        • Control State
        • Game Mode
        • Label
        • Medal
        • Movement Curve
        • Respawn Message
        • Scope
        • Species Type
        • Weapon Addition Method
      • VEHICLES
        • Are Same Vehicle Type
        • Attempt To Enter Vehicle
        • Detach Item From Razorback
        • Flip Vehicle
        • Get Is Boarding
        • Get Is Driving Vehicle
        • Get Is Gunner In Vehicle
        • Get Is In Vehicle
        • Get Is Overturned
        • Get Is Passenger In Vehicle
        • Get Is Vehicle Type
        • Get Player Vehicle
        • Get Squared Vehicle Speed
        • Get Unit Vehicle
        • Get Vehicle Driver
        • Get Vehicle Enterable By Player
        • Get Vehicle Gunner
        • Get Vehicle Occupants
        • Get Vehicle Type
        • Kick Player From Vehicle
        • Kick Unit From Vehicle
        • Scale And Destroy Vehicle
        • Set Spawn In Vehicle For All Players
        • Set Spawn In Vehicle For Player
        • Set Vehicle Enterable By Player
    • Node Terminology
      • Bot Ambition
      • Bot Difficulty
      • Character Type
      • Control State
      • Death Context
      • Equipment Type
      • Grenade Type
      • Group Index
      • Medal
      • Nav Marker Terms
      • Species
      • Vehicle Type
      • Weapon Type
    • Node Data
      • Connection Pins
        • Pin Data Reference
          • Action Nodes
          • AI Nodes
          • AI Toolkit Nodes
          • Data Type Nodes
          • Event Nodes
          • Generic Nodes
          • Manipulation Nodes
          • Math Nodes
          • Trait Nodes
          • Unit Nodes
    • Scriptable Objects
      • Interactable Objects
        • Switches
        • Power Sockets
      • Generic Game Mode Objects
  • UGC
    • Metadata and File Management
      • Content Interface and Controls
        • Play Interface
        • Maps Interface
        • Details Interface
      • Working with Files
        • File Name
        • File Description
        • File Tags
        • File Screenshots
        • File Collaborators
        • File Credits
          • Removing a User From the File Credits
        • Editing Mode Options
        • Version Management
          • Copy Protection and Saving a Copy
          • Publishing a File
          • Bookmarking a File
          • Rating a File
          • Locking File Versions
          • Deleting a File or Version
      • Prefabs
        • Object Prefabs
        • Mode Prefabs
    • Content Browser
      • Browse All
        • HaloWaypoint - Browse
        • Cylix Guide - Discovery
      • Recommended
      • Popular Files
    • Multiplayer
      • Custom Games
      • Customs Browser
      • Bot Backfill
      • Stat Tracking Services
        • Leafapp
        • Spartan Record
        • Halo Data Hive
        • Halo Tracker
    • Theater
      • Finding Films
      • Watching Films
        • Theater Controls and Menus
  • Guides and Knowledge
    • Forge Know-how
      • Forge Tips and Tricks
        • Letter A Decal as a Blocker Object
        • Colored Boundaries
        • Reserving Budget For Gameplay Objects
        • Volumetric Fog Affects Brightness of Light Cones
        • Chain Link Fences
        • A Chunk's Guide to Level Design
        • Using The Canvas Bounds as a Soft Containment Measure
        • Forging On a Controller
        • Forging On a Mouse and Keyboard
        • Map Performance Optimizations
        • Creating Realistic Lighting
        • Art Techniques, Brick
        • Art Techniques, Forerunner
        • MP vs Non-MP Objects
        • Object Level of Detail
        • Applying Identical Positional Data Between Objects
        • Fixed vs Phased Physics
        • Using Boundaries to Visualize Object Placement
        • Forge Workflow Tips
        • Mitigating Z-Fighting With Objects
      • Forge Bugs
        • 0.7 Degree Rotation Bug
        • Incorrect Object Visual Model Scaling Bug
        • Static Universal Blockers Have Inconsistent Collision With Gamemode Objects
        • Interaction With Small Objects That Have a Complex Collision Mesh Causes Performance Loss
        • Broken Precision Movement
        • Welded Prefab Bugs
      • Forge Exploits
        • Bypassing 150-Object Prefab Limit
        • Bypassing Object Scaling Limits
        • Bypassing Copy Protection
        • Forge via Custom Game (UCN)
        • Using "nan" as the Value Instead of a Number
        • Applying Inaccessible Object Properties
      • Forge Misc
        • Forge Data
        • Forge Kit Objects
        • Hidden Forge Objects
    • Scripting Know-how
      • Scripting Tips and Tricks
        • Patterns
          • Telefragging
          • Checking Object Types
          • Deleting Dropped Weapons Using Scripts
          • For N Iterations Stack
          • Sending Fusion Coils Directly to Player's Hands
          • How to kill Players With Scripts
          • Mutate vs. Non-Mutate
          • Object Duplication Exploit
          • Object Pools
          • Pub-Sub
          • Referencing Thrown Grenades
          • Removing Nav Markers
          • Spawning Players in Vehicles
          • Creating a Spherical Boundary
          • Linking Multiple Switches to the same On Interacted Event
          • Recursive Functions
          • Polling Player Health
          • Managing Nav Markers
          • Using Custom Events and Variables Across Mode and Script Brains
        • Variables
          • Object Lists
          • Understanding Scope
        • Transforms
          • Object Forward and Up Vectors
        • Traits - Players
          • Shields
          • Traits
        • Equipment
          • Cancelling Custom Equipment Animation
        • Area Monitors
        • Bots
        • Video Tutorials
        • Weapon Combinations
      • Scripting Bugs
        • Invisible Nodes or Connections
        • Unpredictable Node Selection Movement
      • Scripting Exploits
      • Scripting Misc
    • UGC Know-how
      • UGC Tips and Tricks
        • Gathering Players in Open Lobbies
        • Handling Level Files
        • Handling Seemingly Corrupt File Versions
        • Saving an Entire Map Using Prefabs
      • UGC Bugs
        • Session Timeout Required for Adding Prefab Screenshots
        • Bookmarked Films Do Not Fetch Info Correctly
        • Mode Option Changes Stay Cached Until Game Reset
        • Inability to Start a Session
        • Bookmarked Files Stay On The Latest Published Version At The Time Of Bookmark
      • UGC Exploits
        • Creating Single-Object Prefabs
        • Loading Into Unpublished Maps
        • Watching Any Film
      • UGC Misc
        • Getting a Map In Matchmaking
          • Matchmaking Forger Discord Server
        • Special Earnable Rewards
        • Invalid Flagged Strings
  • Community
    • Content
      • Map/Mode Setup
        • tsg gamemodes
        • tsg sandbox
        • tsg mapSetup
        • tsg infectionSetup
        • tsg globalReflection
        • tsg navCutters
        • tsg outroCameraRig
        • tsg hiddenNamedLocations
        • tsg init
      • Debug Tools
        • tsg botDebug
        • tsg mapDebug
        • tsg respawnDebug
        • tsg lightingDebug
        • tsg audioDebug
      • Scripting Tools
        • tsg ai totems and kill tokens
      • Assets and Kits
        • tsg botsDriveVehicles
        • tsg haloRing
        • tsg unarmedFists
        • All Placeable Objects Gallery
        • tsg hackSwitch
        • tsg lootCaves
      • Modes
        • TSG Modes
          • Fiesta++
            • Thicc Raid
          • Kill Confirmed
            • Tag-N-Bag
          • Headhunter
          • Havens
          • Conquest
          • Sportsball
          • Warzone Fiesta
            • Supported Maps
        • Bot Backfill Modes
        • Mode Functionality Test Modes
        • Multi-Team Modes
        • Slipspace Arena
        • 4v4 Stockpile
      • External Resources
        • Other Halo/Forge Wikis
      • Misc Content
        • Forge Map Lore
    • The Scripter's Guild
    • Contributing to TSG Forge Wiki
      • Submitting Content to the Wiki
      • Style Guide
      • Folder template
        • Article Template
        • Article Template (No Explanation Text)
        • Discord Message Article Template
      • Markdown Formatting Rules
      • Official GitBook Feature Docs
      • Emoji Cheat Sheet
      • TODO
        • Blank page
  • External Tools
    • Blender2Forge Printer (B2FP)
      • Installation
      • Tutorials
        • "Prefabs" via MACHIN3tools
      • Support Discord
    • InfiniteMITM
      • InfiniteMITM GitHub
    • InfiniteUGCTool
      • InfiniteUGCTool GitHub
    • Infinite Runtime Tag Viewer
      • IRTV GitHub
  • Legacy Halo
    • READ ME!
    • Halo 5
      • Forge
        • Cubemaps
      • Scripting
        • Conditions
        • Actions
        • Numbers
        • Selection Filters
      • Guides & Tutorials
        • Forge
          • Articles
          • Videos
        • Scripting
          • Articles
            • Game Mode Design
          • Videos
    • Halo 4
      • Forge
        • Lighting
      • Guides & Tutorials
        • Articles
          • Game Mode Set Up
        • Videos
    • Halo Reach
      • Forge
        • Spawning
        • Tagging
          • Unorthodox Tagging
        • Visual Aides
      • Guides & Tutorials
        • Articles
        • Videos
    • Halo 3
      • Forge
      • Guides & Tutorials
        • Articles
          • Budget Glitch
        • Videos
    • Halo 2: Anniversary
      • Forge
        • Static Weapon Spawns
      • Guides & Tutorials
        • Articles
          • Framerate
        • Videos
Powered by GitBook
On this page
  • Features
  • Activation
  • Deactivation
  • Depletion
  • Completion
  • Adjustments
  • Hack time
  • Cooldown time
  • Boundary size
  • Completion audio location
  • Adding Multiple Switches
  • Variants
  • hackSwitch
  • hackSwitch, Invis
  • hackSwitch, Single-Use
  • hackSwitch, Invis, Single-Use
  • Trivia
  • Single Script Brain
  • Known issues
  • The idea
Edit on GitHub
Export as PDF
  1. Community
  2. Content
  3. Assets and Kits

tsg hackSwitch

Documentation about the features and usage of the tsg hackSwitch prefab variants.

PreviousAll Placeable Objects GalleryNexttsg lootCaves

Last updated 1 month ago

tsg hackSwitch is a recreation of the hacking terminal used to hack the loot caves in the dev-made BTB map Fragmentation. The user experience is nearly identical due to the user experience largely relying on nav markers that are accessible with Forge. The prefab has four variants.

Bookmark the prefabs with the or find the prefabs through the in-game UGC browser by searching with keywords or tags.

Features

A showcase of the hack switch features and how they are triggered.

Activation

A hack can be activated by interacting with the switch. The hack progress will be assigned to the team of the interacting unit. When a hack is started, a nav marker will appear that visualizes the progress of the hack around the outer edge of the nav marker. The nav marker progress will increase when the hack is active. A hacking audio loop will play during the hack.

A friendly nav marker "Guard" is shown to the activating unit's team, and an enemy nav marker "Disarm" is shown to all other teams.

Deactivation

The progression of a hack will stop if:

  • The activating unit exits the hack boundary during the hack

  • A unit from another team activates the switch during the hack

Upon a hack deactivating, the nav marker will turn neutral and the progress will start decreasing, shown by the progress bar of the nav marker, and a sound is played at the switch location. The progress bar color will be the color of the team that had ownership of the hack before it was deactivated.

Disarming

An ongoing hack can be disarmed by a unit of an opposing team from that of the current ongoing hack. This action turns the nav marker neutral and starts decreasing the hack progress. The hack can then be activated again to assign ownership of it to the activating unit.

Depletion

If the progress bar of the hack reaches empty, all nav markers from it will disappear and a failure sound is played at the location of the switch. The switch can be reactivated to start a new hack.

Completion

If the progress bar of the hack reaches full, the hack will complete. Upon completion, the switch will delete, an alert audio will play at the location of the Audio Emitter and:

  • The reset timer will begin counting down

After the reset timer reaches 0, the switch will spawn and the hack can be activated again.

  • The "Hack Completed" message will show

The message will show for a short period of time and then disappear. The switch will not spawn again.

hackCompleteEvent

A Custom Event, Global Async with the hackCompleteEvent identifier is fired upon hack completion, where the Object pin is connected to the Script Brain of the hackSwitch prefab.

A simple method to determine which hackCompleteEvent is fired can be done by comparing if the Object of the custom event is the same object as the desired hackSwitch's Script Brain.

Adjustments

Hack time

The hack time of a switch can be adjusted with a single Number node inside the Script Brain. The Number node is found on the left side of the script. The default value is 20.00 and the value translates to how many seconds the hack time will be.

Cooldown time

The cooldown time of a switch can be adjusted inside the hackCooldown Custom Event trigger with the Number value inside the Script Brain. The hackCooldown Custom Event Trigger is found on the right side of the script. The default value is 120.00 and the value translates how many to seconds the cooldown time will be.

Boundary size

The boundary size where the hacking unit has to stay inside during the hack can be adjusted in a two-step process. The boundary is made up of an invisible boundary that the trigger logic ties into and a visual boundary for the players to see where the boundary limits are. Both of these boundaries should be adjusted for the ideal experience.

Adjust the invisible trigger boundary from the Object Properties of the Script Brain. Adjust the visible boundary from the Object Properties of the Hacking Terminal located under the switch. Match the boundary sizes to be identical for the ideal user experience.

Why two boundaries?

The Sandbox > Hacking Terminal object is the only object with an identical visual boundary to the real hacking terminal used in the BTB map Fragmentation. Sadly this object is broken in multiple ways and pretty much the only use for this object is to act as a dummy object for showing its unique visual boundary.

Even scripting events like "On Area Entered" don't work when entering the boundary of this object. Thus a secondary object is required to mirror the same boundary, but with an object that can have it's boundary actions be detected with scripting. This is what the Script Brain boundary is used for.

Why the Hacking Terminal is upside down and much lower than the real switch is because otherwise players could interact with the switch by looking at the ground, leading to unwanted actions. A complication of having the switch have this position and rotation is that it makes mirroring a new boundary size more difficult, but that's just something we have to live with for now.

Completion audio location

When a hack completes, an alert sound will be played at the position of the Audio Emitter that comes with the prefab. This Audio Emitter can freely be moved anywhere, and it's recommended to position it in an area where players should pay attention to after the hack completes.

The Audio Emitter object itself has no sound coming from it, but the object is used due to it's visual communication in Forge, as opposed to any other invisible object.

Adding Multiple Switches

To add multiple switches to your map, spawn a new prefab of the desired tsg hackSwitch variant. This way the object references used in the script are correctly linked to the newly created objects from the new prefab.

Variants

The tsg hackSwitch prefab has four variants:

hackSwitch

Standard variant with a Scriptable Switch Forerunner Terminal as the interactable object. An adjustable cooldown will commence after a successful hack, during which the switch cannot be interacted with. The switch will become active again after the cooldown period.

hackSwitch, Invis

Invisible variant with a Scriptable Switch (Invisible) as the interactable object. An adjustable cooldown will commence after a successful hack, during which the switch cannot be interacted with. The switch will become active again after the cooldown period.

The UI nav marker location of the hack progress appears at the origin point of the Projectile Blocker 1x1x1 and can easily be adjusted by repositioning the object.

hackSwitch, Single-Use

Standard variant with a Scriptable Switch Forerunner Terminal as the interactable object. The message "Hack Complete" will show after a successful hack, disappearing shortly after and removing the ability to interact with the switch again.

hackSwitch, Invis, Single-Use

Invisible variant with a Scriptable Switch (Invisible) as the interactable object. The message "Hack Complete" will show after a successful hack, disappearing shortly after and removing the ability to interact with the switch again.

The UI nav marker location of the hack progress appears at the origin point of the Projectile Blocker 1x1x1 and can easily be adjusted by repositioning the object.

Trivia

Single Script Brain

The code just about fits within the 128 node limit of a Script Brain, and it was chosen not to split the code in to two brains because:

  • The Nav Marker nodes used in the script only work in the brain they appear in, and is a fundamental feature of supporting multiple hack switches with little code.

  • One Script Brain is more neat and simple.

  • There has been no proven performance or execution -related issues regarding high node count in a single Script Brain.

Relocatable nodes

A small amount of nodes can be relocated to a separate Script Brain:

  • The Variable declaration nodes in the top left.

  • The initial event triggers on the top left, but some of the Object Reference nodes need to stay.

Known issues

There are some issues that were found during development and testing, but were ultimately ignored as workarounds for them would compromise some major benefits of the current product such as node count. Also some issues just weren't tackled at all due to them being rare to encounter and them only having a minor negative visual impact on the user experience.

List of known issues:

  • Hack- and cooldown progress can be continued across rounds.

  • The "Resetting: x" nav marker text can be shown on the neutral nav marker on a second round if the cooldown was initiated during the previous round.

  • Disarming a hack right as it's about to complete can cause the progress bar to show up on the "Resetting: x" or "Hack Complete" nav marker.

  • Z-fighting may occasionally be seen on the top of the Scriptable Switch Forerunner Terminal object. This is caused by the nearly identical dummy switch object underneath it having it's location be slightly altered sometimes when the dynamic match objects are loaded. An attempted workaround for this was to move the dummy switch object 0.02 units lower and 0.01 units behind the real switch so they don't overlap, but sometimes the game moves them closer together anyways. Why the dummy object isn't deleted when not needed is to save on node count.

The idea

From Okom, the prefab creator:

Limited by Forge's capabilities at the time and mostly by my scripting knowledge, I didn't get very far efficiently, but still got a working loot cave! – with some bugs. Now attempting the project again nearly two years after and I'm glad about how it turned out with how close to the original, and how efficiently I was able to make it.


Contributors

Okom

I had the idea to recreate the Fragmentation loot caves in Forge already in late December 2022, and it was my first scripting project in Halo Infinite. My question post about it in the TSG Discord is here:

https://discord.com/channels/220766496635224065/1057368234464120983/1057368234464120983
filter link here
The "Guard" nav marker shows for the allied team
The "Disarm" nav marker shows for the opposing teams
The neutral nav marker shows for all teams
The "Resetting: x" message displaying the remaining cooldown time
The "Hack Complete" message
Code pattern to filter the hackCompleteEvent
The node for adjusting the hack time can be found on the left side of the script
The default hack time is 20 seconds
The node for adjusting the hack cooldown time can be found on the right side of the script
The default cooldown time is 120 seconds
The logic trigger boundary is adjusted from the Script Brain
The visual boundary is adjusted from the Hacking Terminal under the switch
Standard hack switch objects
Invisible hack switch objects
Standard single-use hack switch objects
Invisible single-use hack switch objects
The tsg hackSwitch prefab and all of the included objects