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
Edit on GitHub
Export as PDF
  1. Legacy Halo
  2. Halo 5

Scripting

Scripting is a type of user-level object manipulation, first featured in Halo 2: Anniversary, and included with Forge in the Infinity's Armory update to Halo 5: Guardians. It reappeared in the Windows

This information was compiled for your use as a reference and learning resource. Please keep in mind that Halo 5 Forge updates over the years, including but not limited to the huge Monitor's Bounty update, means you may find information that is no longer relevant or was modified in an update. We're working to get this info up-to-date. Feel free to contact staff if you find deprecated information, when they can forward your concern to the appropriate team for correction.


Scripting In Halo 5: Guardians

In Halo 5: Guardians, scripting is used by Forgers to manipulate objects. Much like the game dev counterpart, scripting involves sequences of "When" (Conditions) and "Do" (Actions). With the scripting interface, players input "When" Condition(s), which upon validation, triggers "Do" Action(s). Scripts allow Forgers to make their maps function dynamically by tracking events, moving and rotating object(s), sending message(s), and more.

Most of the objects in Forge can be given scripts, up to 8. Each Script is created with one Condition and one Action, and additional Actions can be added, up to four. The Conditions check if certain events occur in the game. Some events are specific to the object, such as spawning or taking damage. Other events are observed by all objects in the game, such as message broadcasts or timer events.

When the Condition of a Script is met, it executes its Actions. Some Actions are universal (sending messages or power changes), but most are object specific and do things like move the object or change its color.

Scripts seem to be processed for every game cycle, which is each round of calculations and graphics generation done by the game. In testing, scripts ran 60 times a second (which matches Halo 5's targeted frame rate), though it might vary a little.

Script Execution Order

During gameplay, events happen: objects spawn, timers occur, objects take damage, players interact with switches, etc. When these happen, the game “broadcasts” events that our script Conditions listen for. In each cycle, the Conditions are first checked to see if their events happened, and the Actions of those scripts are run one script at a time in a fixed order.

Scripts are evaluated in order by earliest to latest Generally, the first/earliest scripts added to the map are evaluated first. It seems to actually have an array that contains the scripts and the lowest-numbered available slot is where a new script gets added. Think of the scripts as having a hidden number (1 to max 512) that doesn't change & removing a script leaves its array slot open. If there are no open slots from deleted scripts, a new script gets the number = the current script count +1.

There are exceptions, here is one of the biggest GOTCHAS! in Halo 5 Scripting! Deleting a script in one object (Tommy) can cause the next script added to another object (Olive) to run earlier than that (Olive) object's lower-numbered scripts because that next added script will take the deleted script's place in the order Conditions run. This will effectively change the order your Conditions run, so they will no longer run in the order they were created.

Scripts with Conditions that pass their test then have their Actions executed.

Actions are executed in order Once a Script's Condition is triggered, its Actions are executed in the order they were created, so top #1 to bottom #4. If any Actions have a Time interval, later Actions are executed after the Timed one completes.

When Actions execute (or begin if they're timed) on the same object during the same game tick, it seems the conflict is handled by the following behavior:

  • The highest number Power Set action wins

  • The lowest number Move or Rotate action wins

  • Damage: Ratio actions accumulate, so the assigned numbers don't matter

  • The highest number Spawn or Despawn script wins

Message and Power Channels Intro

Messages and Power State changes send broadcasts that all objects on your map can detect. This broadcast system is completely under your control and is the main way to have objects and their Scripts communicate with each other. (There are other ways to have some objects interact with each other, but these are workarounds that are difficult to use and less reliable.)

Forge provides us with 26 message and 26 power channels, both named like the NATO phonetic alphabet (alpha to zulu). Message and power channels of the same name don't affect each other.

Messages and Power State broadcasts are simply that: messages. They contain no information or options. When you use the Message: Send action, the broadcast is instantly sent for the selected channel and only lasts for that instant (one game tick). Every script that contains the Message: Received, Power: Check, or Message/Power: Multi Conditions will listen and activate their Actions when appropriate.

  • These broadcasts are for your customization; the game doesn’t automatically create any broadcasts.

  • There are 26 channels to send these broadcasts over. They are named like the NATO radio message standard for spelling the alphabet: alpha, bravo, charlie… zulu.

  • Both messages and power channel changes behave like events that will be detected by script conditions on the next script cycle check.

Messages

Messages are simple events that you can broadcast from any object that can contain scripts. Any Script that has 'Message: Received' Conditions will listen for a message broadcast being sent over the channel it is listening to (alpha-zulu).

Power States

You can use the Power: Set Action to attempt to set a State to On or Off or to Toggle it from whatever its current value is. When a Script Action attempts to set a Channel that's On to On, or Off to Off, then no change occurs and no broadcast is sent. When Toggle is used, or anytime the State switches between On and Off in either direction, a broadcast is sent.

At the start of a match or Forge session, every channel's Power state seems to behave as if it’s Off.

  • Setting it to Off doesn't trigger any scripts.

  • Using the Toggle or On options turn it On, and conditions that listen for On events trigger.

  • Conditions that listen for Off events don't trigger at match start, so the behavior doesn’t seem like the channels are switched to Off right when the game starts. It's like they were already turned Off before the game started.

  • A Multi condition with an On Power condition set to Off will trigger without changing that power state as long as it has another condition that broadcasts and causes it to be evaluated.

Message/Power: Multi

The Message/Power: Multi Condition includes checks for the current States of Power channels. If a Condition checks for a power channel state to be On or Off, then that Condition is true even if the power was set previously. It doesn't have to act like an event that just triggered. Note that at least one of a Multi's conditions needs to be triggered during the previous cycle for the script to activate.

[Spoiler="Detecting Power State"] Detecting Power State Broadcasts

Power broadcasts can be detected by either the Message: Received or Message/Power: Multi conditions. Power: Check simply detects broadcasts for On or Off States. It is only triggered when a Power State changes to the State it's set to listen for (On or Off). It will not detect when an action attempts to set a channel to its current state (no broadcast).

Message/Power: Multi can be quite complicated, but it detects Power change broadcasts just like the Power: Check condition does. It also has a Toggle option which detects a Power broadcast whether it's changed to On or Off. A Multi condition with Minimum of 1 with only one Power condition set to On or Off works exactly like the equivalent Power: Check condition. If the same script is changed to the Toggle setting, it detects both On and Off broadcasts.

Testing Power State On/Off Values With Multi

Message/Power: Multi is the only way to test the value of a Power State outside the moments it gets changed and broadcasts. The Power State On and Off conditions within Multi conditions evaluate to true (and count as 1 for the Minimum to trigger setting) whenever that Power State currently has that value. It's not limited to when Power channels broadcast when they change. However, at least one of the conditions set in Multi must be broadcast to trigger the Multi condition.

The Power State Trigger and Message Send conditions within Multi can only trigger as a result of broadcasts. [/Spoiler]

Additional Notes on Scripting in Halo 5

Grouped objects have their own individual scripts. Scripts added to a group are added to each object within. Welding a group does not change this. Welding is, however, necessary to rotate an entire group as if it is a single object. Otherwise, each piece of the group will rotate on its own axis.

General Script GOTCHAS!

Following are some general scripting seeming glitches or Gotchas!. You will find other more specific Gotchas! in their respective sections.

  • Normally, Conditions will run in the order they are created. However, deleting a script in one object (Timmy) can cause the next script added to another object (Olive) to run earlier than that (Olive) object's lower-numbered scripts because that next added script will take the deleted script's place in the order Conditions run.

  • Number Changes for a currently dirty number can affect any Number Checks for that number that run later (have a higher Map Script Slot number).

  • There are three known things that will cause pieces on your map to load crooked in Halo 5 custom games on the Xbox One (they'll work fine in Forge and on PC).

    1. Placing any label on the object, whether via its Properties menu or via the Label Change Action, even if the Action hasn't run. If the label is added via a script, simply removing the script fixes the crooked glitch, but if it was added directly to the piece in Properties the piece must be deleted.

    2. Setting a Spawn Order in the object's Properties menu.

    3. Putting any scripts on the piece.

PreviousCubemapsNextConditions

Last updated 1 month ago