Prefab
VIP Escort
A custom tactical objective mode for Battlefield 6 Portal SDK.
One team must protect and escort a randomly selected VIP to the extraction zone while the enemy team hunts them down. The mode is built around coordinated squad movement, defensive positioning, ambushes, team communication, and clutch extraction moments.
Play now
Experience Code: 1xz1m
Files, tutorial, and setup
The full file download and setup instructions are available through my YouTube video:
Please watch the video for the download link, setup instructions, and updates to the project files.
Mode summary
VIP Escort is a round-based attack/defend mode. At the start of each live round, one attacker is selected as the VIP. The attacking team must move with the VIP, protect them, and get them into the active extraction area. The defending team must stop the escort, eliminate the VIP, or prevent extraction until the timer expires.
The mode includes:
- Prematch ready-up lobby
- Team switch interact points
- Ready interact points
- Round-based attack/defend logic
- Automatic VIP selection
- VIP health bonus
- Extraction checkpoint logic
- Extraction hold timer
- Custom HUD
- Custom scoreboard
- World icons for VIP and extraction points
- Spectator flow for eliminated players
- Fixed spectator cameras
- Restricted-area logic
- Invisible wall / boundary safety triggers
- Role swap after round 3
- Overtime round logic
- First-to-4 scoring
Recommended player count
This mode is designed for squad-based gameplay. It can be tested with fewer players, but it plays best with coordinated teams.
Recommended: 5v5 Max per team in script: 8 players Best experience: voice chat, organized squads, and private/community servers
Round rules
- First team to 4 round wins wins the match.
- Maximum match length is 7 rounds.
- Rounds 1–3 use the starting attack/defend setup.
- Rounds 4–6 swap the attacking and defending sides.
- Round 7 is overtime match point.
- Each round has a short redeploy/reset phase.
- Each deploy phase gives players time to spawn and prepare.
- The live round timer is 180 seconds.
- The VIP must hold inside the extraction zone for 10 seconds to win the round.
- If the VIP dies, the defending team wins the round.
- If attackers are eliminated, defenders win.
- If defenders are eliminated, attackers win.
- If time expires before extraction, defenders win.
- If the VIP leaves or becomes invalid, defenders win by VIP lost/forfeit.
Gameplay flow
- Players start in the prematch ready area.
- Players can use interact points to switch teams.
- Players use ready interact points to mark themselves ready.
- When the lobby is ready, the match locks and begins.
- Players enter the deploy phase for the next round.
- When the live phase starts, the script selects a VIP from the attacking team.
- The VIP receives a health bonus and a VIP HUD callout.
- The extraction checkpoint becomes active.
- Attackers escort the VIP to the extraction zone.
- Defenders try to eliminate the VIP or stop the push.
- If the VIP enters extraction, a 10-second hold timer begins.
- If the VIP stays alive and remains in the extraction area, attackers win.
- If the VIP dies, leaves extraction, or time expires, the round resolves based on the win condition.
- The scoreboard updates and the next round begins.
Custom HUD
The mode includes a full custom HUD built for VIP Escort.
HUD elements include:
- Prematch roster and ready panel
- Top-center mode/round/timer bar
- Team role indicator: Attack / Defend
- Score line: Alpha vs Bravo, first to 4
- VIP announcement
- VIP extraction progress panel
- Alive teammate/enemy indicators
- Restricted area warning
- VIP spotted warning
- Spectator panel
- Spectator target display
- Overtime match point callout
- Round end and match end notifications
Custom scoreboard
The mode uses a custom two-team scoreboard with three columns:
- Kills
- Deaths
- Extracts
The VIP receives an extract point when they successfully complete the extraction. Deaths are tracked once per player per round, and kills are tracked during the live round.
VIP system
The VIP is selected from the attacking team at the start of the live phase.
VIP behavior:
- VIP is selected from eligible attacking players.
- VIP gets a health increase.
- VIP receives special HUD messaging.
- Attackers receive VIP and checkpoint guidance.
- Defenders receive timed VIP reveal information.
- VIP extraction only starts when the current VIP enters a valid extraction AreaTrigger.
- VIP extraction cancels if the VIP leaves the extraction area.
- VIP death instantly ends the round in favor of the defenders.
Extraction system
There are two configured extraction routes/checkpoint sets.
Extraction Set 1
- Sector ObjID:
9900 - Active extraction CapturePoint ObjID:
205 - Inactive CapturePoint ObjIDs:
201,202,203,204 - Extraction AreaTrigger ObjID:
9300
Extraction Set 2
- Sector ObjID:
300 - Active extraction CapturePoint ObjID:
305 - Inactive CapturePoint ObjIDs:
301,302,303,304 - Extraction AreaTrigger ObjID:
9800
Only the active extraction CapturePoints are used for the live objective. The inactive CapturePoints exist as helper/anchor objects for the script and should not be treated as normal objectives.
ObjID assignment
Prematch / ready-up objects
8888— Team 1 ready-up HQ spawner8889— Team 2 ready-up HQ spawner889— Ready-up AreaTrigger2001— Team 1 / side A switch-team interact point2002— Team 1 / side A ready interact point2003— Team 2 / side B switch-team interact point2004— Team 2 / side B ready interact point5001— WorldIcon for switch-team interact point 15002— WorldIcon for ready interact point 15003— WorldIcon for switch-team interact point 25004— WorldIcon for ready interact point 2
Live round HQ and PlayerSpawner IDs
Normal live spawn routing:
1— Team 1 attacking HQ spawn3— Team 1 attacking secondary HQ spawn2— Team 2 defending HQ spawn4— Team 2 defending secondary HQ spawn11— Team 1 live PlayerSpawner13— Team 1 secondary live PlayerSpawner12— Team 2 live PlayerSpawner14— Team 2 secondary live PlayerSpawner
Role-swap live spawn routing:
5— Team 1 defending HQ spawn7— Team 1 defending secondary HQ spawn6— Team 2 attacking HQ spawn8— Team 2 attacking secondary HQ spawn
SpawnPoint helper IDs
These SpawnPoints are linked to HQ/PlayerSpawner objects. The script does not use SpawnPoint IDs directly for live spawn routing; it uses HQ and PlayerSpawner IDs instead.
Team 1 grouped spawns:
515–520— Team 1 grouped SpawnPoints
Team 2 grouped spawns:
615–620— Team 2 grouped SpawnPoints
Extraction / objective IDs
Main extraction set:
9900— Sector201–204— inactive/helper CapturePoints205— active extraction CapturePoint9300— extraction AreaTrigger
Second extraction set:
300— Sector2301–304— inactive/helper CapturePoints305— active extraction CapturePoint9800— extraction AreaTrigger
Spectator camera IDs
9911— Team 1 fixed spectator camera9921— Team 2 fixed spectator camera
Restricted area / boundary IDs
5101— Team 1 restricted/protection AreaTrigger5102— Team 2 restricted/protection AreaTrigger5201— inner invisible wall AreaTrigger5202— outer invisible wall AreaTrigger
Extra AreaTrigger IDs
7002— additional AreaTrigger objects present in the spatial file
Godot project notes
The spatial file includes a VIP Components group containing the custom objective, spawn, extraction, spectator, and checkpoint objects used by the script.
Important Godot setup notes:
- Keep the
VIP Componentsobject paths intact when possible. - Keep ObjIDs consistent with the script constants.
- Do not use raw SpawnPoint IDs for main script routing.
- Use HQ spawner IDs and PlayerSpawner IDs for live spawn routing.
- Extraction CapturePoints
205and305are the main active objective anchors. - Extraction AreaTriggers
9300and9800are what actually start the VIP extraction hold. - FixedCamera objects
9911and9921are required for dead-player spectator behavior. - Invisible wall triggers
5201and5202are used by script logic to keep players inside the intended playable area. - Restricted triggers
5101and5102are used for team-based restricted area warnings.
What the bundle.ts script does
The dist/bundle.ts file is the compiled Portal script output. It bundles the VIP Escort game mode source files together with required helper utilities.
The bundle includes these major systems:
1. Prematch lobby
The prematch lobby controls the ready-up flow before the match starts.
It handles:
- Player ready state
- Team switching
- Ready area detection
- Ready interact points
- Team switch interact points
- Human player detection
- Lobby lock once the match begins
- Prematch HUD updates
2. Round state machine
The script manages the full match lifecycle with these phases:
prematchredeploydeployliveround-endgame-end
Each phase has its own timer, state, UI behavior, and transition logic.
3. Attack/defend role assignment
The script assigns Alpha and Bravo to attacker/defender roles by round.
- Early rounds use the starting attacker setup.
- Middle rounds swap roles.
- Final overtime returns to the original attacker setup.
This gives both teams a chance to attack and defend.
4. VIP selection
At live round start, the script selects an eligible player from the attacking team as the VIP.
The VIP is tracked by player ID and stored in game state. The script checks the VIP’s life state, extraction state, and server validity throughout the round.
5. VIP health bonus
The VIP receives an increased health value so the escort team has a chance to protect and move the VIP under fire.
Current VIP max health value in the script:
180
6. Extraction checkpoint system
The script enables the active extraction checkpoint and disables inactive helper CapturePoints. It then spawns checkpoint world icons and visual smoke/VFX markers for the active extraction locations.
The extraction system checks:
- Is the player the current VIP?
- Is the VIP alive?
- Is the VIP inside a valid extraction AreaTrigger?
- Has the VIP stayed inside extraction long enough?
- Did the VIP leave the area before the timer finished?
If the VIP holds the extraction for 10 seconds, the attackers win the round.
7. Win condition logic
The script supports these win conditions:
VIP EXTRACTEDVIP ELIMINATEDATTACKERS ELIMINATEDDEFENDERS ELIMINATEDTIME EXPIREDVIP LOST
The script determines whether the attackers or defenders win based on the condition, updates the round score, and either starts the next round or ends the match.
8. Custom HUD
The script builds a custom UI using the Portal UI utilities.
The HUD includes:
- Mode title
- Round number
- Round timer
- Score
- Role indicator
- VIP state
- Extraction progress
- Alive player dots
- Restricted area warning
- Spectator instructions
- Round start/end callouts
- Match end callouts
9. World icons
The script spawns and updates world icons for:
- VIP
- Extraction checkpoints
- Prematch switch-team interact points
- Prematch ready interact points
The VIP icon follows the VIP during the round. Attackers get friendly VIP information, while defenders get timed reveal behavior so the VIP is not permanently exposed.
10. Spectator system
When a player dies during the live round, they are moved into the spectator flow.
Spectator behavior includes:
- Dead players become pending spectators.
- The script waits for undeploy/deploy state before applying the spectator camera.
- Team 1 uses camera
9911. - Team 2 uses camera
9921. - Spectators can watch alive teammates.
- Jump cycles to the next alive teammate.
- Spectator inventory is stripped.
- The first dead human on a team can control the team spectator camera behavior.
11. Restricted area logic
The script handles restricted area triggers for each team.
If a player enters a restricted area:
- A warning appears.
- A countdown starts.
- The player must return to the playable combat area.
- The script clears the warning when the player leaves the restricted trigger.
12. Invisible wall / boundary logic
The script uses inner and outer invisible wall AreaTriggers to control player movement around the intended playable space.
The invisible wall system can:
- Detect entry/exit from wall triggers
- Temporarily restrict movement/fire inputs
- Backstep players away from the wall
- Clear locks when players return to a valid area
13. Scoreboard
The custom scoreboard tracks:
- Kills
- Deaths
- Extracts
It uses a custom two-team scoreboard layout and publishes player values during the match.
14. Safety / recovery logic
The script includes several supervisor and recovery systems:
- Ongoing global supervisor tick
- Phase deadline repair
- Timer reconciliation
- UI refresh queues
- Spawn state repair
- Spectator target refresh
- Game-end retry logic
- Runtime cleanup on game mode ending
These systems help keep the mode stable if players join, leave, die, switch teams, undeploy, or fail to deploy correctly.
File/package notes
The project is built with a Battlefield 6 Portal TypeScript workflow.
The important output files are:
vipescort.ts— compiled Portal scriptvipescort.strings.json— strings used by the mode- Spatial JSON / Godot project files — object placement, ObjIDs, capture points, spawns, triggers, and cameras
The uploaded bundle includes the VIP Escort script and bundled helper utilities such as logging, events, timers, UI components, spectator logic, checkpoint logic, world icons, scoreboard, and the main VIP Escort state machine.
Known setup requirements
Before running the mode, make sure the following objects exist with the correct ObjIDs:
- Ready-up HQs:
8888,8889 - Ready-up AreaTrigger:
889 - Interact points:
2001,2002,2003,2004 - Prematch WorldIcons:
5001,5002,5003,5004 - Live HQ spawns:
1–8 - Live PlayerSpawners:
11–14 - Extraction sectors:
9900,300 - Extraction CapturePoints:
205,305 - Extraction AreaTriggers:
9300,9800 - Fixed spectator cameras:
9911,9921 - Restricted triggers:
5101,5102 - Invisible wall triggers:
5201,5202
Creator notes
This mode is still a custom community project and may continue to receive updates. Feel free to test it, modify it, and build on it for your own servers or community events.
If you use this mode in a video, server, or modified experience, credit is appreciated.
Files and setup video:
Created by Mind Flexor. Credit to Nodone for creating the spectator mode!