custom-obliteration-template

Share

Report
Custom Obliteration Template

Prefab

Custom Obliteration Template

A template for creating your own Custom Obliteration experience in Battlefield Portal / Portal SDK.

Can be edited for:

  • Obliteration 12v12
  • Squad Obliteration 5v5
  • Custom objective layouts on Portal SDK spatial maps

Package includes

  • Obliteration 12v12 code
  • Squad Obliteration 5v5 code
  • Spatial editor / Godot map examples
  • MCOM objective logic
  • Bomb spawn logic
  • Ready-up area logic
  • Team switch / team ready interact points
  • Dynamic HQ routing and safe-spawn logic
  • Objective SFX, VFX, world icons, and explosion/fire effects

Included example map files

  • MF_ContaminatedObliteration.spatial.json — Obliteration 12v12 example
  • MF_Hagental_BaseSQO.spatial.json — Squad Obliteration 5v5 example

You can add this template to your own custom maps by copying the required objects into your spatial map and keeping the ObjIds synced with the script configuration.

Tutorial

YouTube tutorial: https://www.youtube.com/watch?v=71jB-_2rZ-U

ObjID Assignment

Core HQ and player spawn IDs

  • 1 — Team 1 Initial HQ
  • 2 — Team 2 Initial HQ
  • 3 — Team 1 Live HQ
  • 4 — Team 2 Live HQ
  • 11 — PlayerSpawner for HQ 1
  • 12 — PlayerSpawner for HQ 2
  • 13 — PlayerSpawner for HQ 3
  • 14 — PlayerSpawner for HQ 4
  • 8888 — Team 1 Ready-Up HQ
  • 8889 — Team 2 Ready-Up HQ

Objective sectors and capture points

  • 200 — Team 1 objective sector
  • 201 — Objective A CapturePoint
  • 202 — Objective B CapturePoint
  • 203 — Objective C CapturePoint
  • 300 — Team 2 objective sector
  • 301 — Objective D CapturePoint
  • 302 — Objective E CapturePoint
  • 303 — Objective F CapturePoint
  • 400 — Disabled sector / helper sector

MCOM IDs

  • 7101 — MCOM for Objective A
  • 7102 — MCOM for Objective B
  • 7103 — MCOM for Objective C
  • 7201 — MCOM for Objective D
  • 7202 — MCOM for Objective E
  • 7203 — MCOM for Objective F

Objective interact points

  • 2101 — Objective A interact point
  • 2102 — Objective B interact point
  • 2103 — Objective C interact point
  • 2104 — Objective D interact point
  • 2105 — Objective E interact point
  • 2106 — Objective F interact point

Objective area triggers

  • 401 — Objective A area trigger
  • 402 — Objective B area trigger
  • 403 — Objective C area trigger
  • 501 — Objective D area trigger
  • 502 — Objective E area trigger
  • 503 — Objective F area trigger

Bomb spawn system

  • 3100 — Bomb spawn sector
  • 3101 — BombSpawn1
  • 3102 — BombSpawn2
  • 3103 — BombSpawn3
  • 3104 — BombSpawn4
  • 3105 — BombSpawn5
  • 3111 — Bomb pickup trigger used by the script

Ready-up and team switching

  • 889 — Ready-up area trigger
  • 890 — Ready-up world icon
  • 891 — Ready-up world icon 2
  • 2001 — Team switch interact point
  • 2002 — Ready interact point
  • 2003 — Team switch interact point
  • 2004 — Ready interact point
  • 5001 — World icon for team switch / ready-up UI
  • 5002 — World icon for team ready UI
  • 5003 — World icon for team switch / ready-up UI
  • 5004 — World icon for team ready UI
  • 8808 — Ready area sector

Area triggers and protection

  • 5101 — Team 1 HQ protection area trigger
  • 5102 — Team 2 HQ protection area trigger
  • 7001 — Damage area trigger used by the script config
  • 7002 — Restricted area trigger in the 12v12 spatial file
  • 7003 — Restricted area trigger configured in the 5v5 Squad Obliteration script
  • 9999 — Combat boundary trigger / combat area trigger

Important note:

  • The Hagental Base 5v5 spatial file currently contains ObjId 7002 for restricted area triggers, while the 5v5 script config points to 7003. If users copy that setup, they should either change the map ObjId to 7003 or change restricted: 7003 in the script to match the map.

Objective visual helpers

  • 221 — Objective A world icon
  • 222 — Objective B world icon
  • 223 — Objective C world icon
  • 321 — Objective D world icon
  • 322 — Objective E world icon
  • 323 — Objective F world icon

Objective fire / explosion FX

Persistent fire FX:

  • 211 — Objective A fire FX
  • 212 — Objective B fire FX
  • 213 — Objective C fire FX
  • 311 — Objective D fire FX
  • 312 — Objective E fire FX
  • 313 — Objective F fire FX

Frame crawl fire FX:

  • 611 — Objective A frame-crawl fire FX
  • 612 — Objective B frame-crawl fire FX
  • 613 — Objective C frame-crawl fire FX
  • 711 — Objective D frame-crawl fire FX
  • 712 — Objective E frame-crawl fire FX
  • 713 — Objective F frame-crawl fire FX

Objective award explosion FX:

  • 8101 — Objective A explosion FX
  • 8102 — Objective B explosion FX
  • 8103 — Objective C explosion FX
  • 8201 — Objective D explosion FX
  • 8202 — Objective E explosion FX
  • 8203 — Objective F explosion FX

MCOM SFX anchors

Objective A:

  • 4501 — Rush alarm simple loop
  • 4502 — Rush alarm leadout loop
  • 4503 — Rush arm loop
  • 4504 — Rush defused one-shot
  • 4505 — Rush defusing loop

Objective B:

  • 4506 — Rush alarm simple loop
  • 4507 — Rush alarm leadout loop
  • 4508 — Rush arm loop
  • 4509 — Rush defused one-shot
  • 4510 — Rush defusing loop

Objective C:

  • 4511 — Rush alarm simple loop
  • 4512 — Rush alarm leadout loop
  • 4513 — Rush arm loop
  • 4514 — Rush defused one-shot
  • 4515 — Rush defusing loop

Objective D:

  • 4601 — Rush alarm simple loop
  • 4602 — Rush alarm leadout loop
  • 4603 — Rush arm loop
  • 4604 — Rush defused one-shot
  • 4605 — Rush defusing loop

Objective E:

  • 4606 — Rush alarm simple loop
  • 4607 — Rush alarm leadout loop
  • 4608 — Rush arm loop
  • 4609 — Rush defused one-shot
  • 4610 — Rush defusing loop

Objective F:

  • 4611 — Rush alarm simple loop
  • 4612 — Rush alarm leadout loop
  • 4613 — Rush arm loop
  • 4614 — Rush defused one-shot
  • 4615 — Rush defusing loop

Initial grouped spawn points

Team 1 grouped spawn points:

  • 515-520 — Team 1 grouped initial spawn points

Team 2 grouped spawn points:

  • 615-620 — Team 2 grouped initial spawn points

Dynamic route spawners used by the script

Team 1 route spawners:

  • 9101 — Route A
  • 9102 — Route B
  • 9103 — Route C
  • 9104 — Route AB
  • 9105 — Route AC
  • 9106 — Route BC
  • 9107 — Route ABC
  • 9108 — Route NO / fallback route

Team 2 route spawners:

  • 9201 — Route A
  • 9202 — Route B
  • 9203 — Route C
  • 9204 — Route AB
  • 9205 — Route AC
  • 9206 — Route BC
  • 9207 — Route ABC
  • 9208 — Route NO / fallback route

Note: these route spawner IDs are referenced by the script. If they are not present in your copied spatial map, either add matching PlayerSpawner objects or update the arrays in TEAM1_SPAWNERS_BY_ROUTE and TEAM2_SPAWNERS_BY_ROUTE.

Dirt bike / vehicle spawners in the 12v12 Contaminated example

Team 1 dirt bike spawners:

  • 9301-9305

Team 2 dirt bike spawners:

  • 9401-9405

The Hagental Base 5v5 example does not include these 9301-9405 vehicle spawners.

Map editing checklist

When adding this template to another map:

  1. Copy the core HQs, sectors, capture points, MCOMs, interact points, triggers, icons, SFX, and FX objects.
  2. Keep the ObjIds exactly the same unless you also update the script config.
  3. Make sure each CapturePoint has its matching MCOM, AreaTrigger, InteractPoint, WorldIcon, SFX anchors, and FX objects.
  4. Make sure Team 1 objectives use 201-203 and Team 2 objectives use 301-303.
  5. Make sure MCOM IDs stay synced with OBLITERATION_OBJECTIVE_CONFIGS.
  6. Make sure the bomb sector uses 3100 and bomb spawn capture points use 3101-3105.
  7. Check restricted-area IDs: 12v12 uses 7002, while the 5v5 script currently points to 7003.
  8. If using dynamic route spawns, add 9101-9108 and 9201-9208 or edit the route arrays in the script.
  9. If using ziplines or dirt bikes, check for ObjId conflicts around 9301.
  10. Test the experience locally and then on a hosted server, because some spawn, UI, or AI behavior can differ between local hosting and server hosting.

Credits

Template and mode implementation by Enoc Bernal / Mind Flexor.

Credits and inspiration: ViperStudiosAndy, BattlefieldDad, Mancour, uberdubersoldat, dfk_7677, and Michael De Luca.

Notes

This template uses specific ObjIds to connect the Portal SDK script to objects placed in the spatial map. If an object is renamed, moved, or copied, the name does not matter as much as the ObjId. The script logic depends on the ObjIds staying consistent.

ZU3J4
Edit

Created by

pfp

mindflexor

on

May 6, 2026, 11:53 a.m.

last updated at

May 6, 2026, 11:57 a.m.

40