Wardogs: Vehicle Spawns (deployment boards, vehicle yards and infantry spawn areas per map)

Source: the 61 world and World Partition cell packages that name the spawn volume class, plus the 5 further cells that hold a deployment board or spawn manager without a volume, the board Blueprint defaults, the experience configs under data/Wardogs/Config/Experiences and the VehicleUtility ini. Everything below is generated by _tools/vehicle_spawns.py into assets/data/vehicle-spawns.json; do not edit this page by hand. Evidence level: cooked data read, nothing run.

Round 42 found 110 spawn volumes in the world data (evidence). This page ties them to maps: each volume sits in a World Partition cell that belongs to a spawn data layer (for example DL_GranadaSpawn), and each King of the Hill entry in the experience configs enables one base layer plus three spawn layers, one per team slot (Experiences). So a match uses three spawn sites per map, and each site is one layer.

1. What a spawn layer holds

Every spawn layer holds the same kit for one team slot (Alpha, Bravo or Charlie in the data):

  • One deployment board (B_VehicleDeploymentBoard_<faction>_C). It carries 4 to 6 vehicle spots (VehicleSpawnLocations, target points) and spawns the faction’s APC (the M113 APC SV in the Lonestar, Valkyra or Manticore version, set by SpawnVehicleTag). Players deploy onto that vehicle. The board shows one reason at a time, the highest-priority one that applies (round 75, evidence): respawning, score required, no vehicle, radar destroyed, not in the control zone, vehicle moving (Interactive.Deployment.Rejection.Driving) and no free seat (.NoSeat); a player on cooldown or outside the zone sees those instead. The .LowHP tag exists but no rule uses it.
  • Three to six spawn volumes (WDSpawnVolume): normally an APC volume (the spots of the board), one to three ground-vehicle yards, one air yard and one light-vehicle (Bobcat) yard. A few layers lack one of these (section 3). Each lists the vehicle tags it allows and excludes. The TargetPoints of a volume are the vehicle spots; MaxSpawnPoints and the spacing fields are separate generation settings whose use was not traced (0 on many volumes).
  • One infantry spawn manager (B_SpawnManager_C) with a FactionTag and a grid of 46 to 81 spawn transforms (200 cm spacing, the nine-by-nine grid trimmed to the terrain). This is the infantry spawn area of that team slot. The spawn query asset (EQS_SpawnQuery_800_Bravo, an 800 cm search) is set on 13 of the 21 managers.

Totals per world are in section 6. The Kenya entry enables only its base layer (DL_Kenya) and has no world package under Maps/Worlds in the client (no Kenya or Africa map files at all); Sniper Showdown and the Tevza entry enable no spawn layer that holds a volume (Tevza names three spawn layers that no dumped cell contains; the three spawn managers without a layer are the PvE scenario spawn areas, round 75).

2. King of the Hill entries

Team slots: Alpha is paired with the Lonestar APC, Bravo with Valkyra and Charlie with Manticore (inferred: 17 of 20 APC volume tags and 18 of 20 linked board classes agree; the exceptions are listed in section 7).

Entry Map Alpha layer Bravo layer Charlie layer Vehicle volumes Vehicle spots Boards Infantry areas
Berlin_KOTH_01 Berlin DL_HanoverSpawn DL_BremenSpawn DL_StuttgartSpawn 15 72 3 3
Madrid_KOTH_01 Ozeti DL_GranadaSpawn DL_BarcelonaSpawn DL_MalagaSpawn 16 74 3 3
Paris_KOTH_01 Paris DL_GranadaSpawn DL_RennesSpawn DL_CalaisSpawn 15 70 3 3
Bakurani_KOTH_01 Bakurani DL_BaghiSpawn DL_KhevuliSpawn DL_ChutaSpawn 15 67 3 3
Bakurani_KOTH_02 Bakurani DL_SanaviSpawn DL_RachuriSpawn DL_TavarshiSpawn 15 72 3 3
Mindori_KOTH_01 Mindori DL_BaghiSpawn DL_KhevuliSpawn DL_LiknisiSpawn 13 70 3 3
ED_Detroit_KOTH_01 Zestafona DL_BostonSpawn DL_AustinSpawn DL_ChicagoSpawn 15 (+1 outside the layers) 61 (+7) 3 3
Moscow_KOTH_01 Saburtulo DL_KuzminkiSpawn DL_RostokinoSpawn DL_RamenkiSpawn 14 (+1 outside the layers) 68 (+9) 3 3

“Vehicle volumes” counts the ground, air, light and APC volumes of the three layers; the infantry volume that sits in a Strike and Disarm layer is not counted. “Vehicle spots” sums the target points of those volumes. Entries with no row here: Kenya_KOTH_01 (base layer only), the three Sniper Showdown entries (data-layer set EDL_SniperShowdown, no spawn layer) and Tevza_KOTH_01 (its spawn layers DL_VostimiSpawn, DL_EdemiSpawn and DL_ShovliSpawn hold no cell in the client).

3. Spawn layers

Layer World Team Board APC APC volume Ground yards Air yards Light yards Vehicle spots Infantry spawn grid
DL_BarcelonaSpawn Europe Bravo Valkyra 1 2 1 1 25 61 pts
DL_BremenSpawn Europe Bravo Valkyra 1 2 1 1 24 69 pts
DL_CalaisSpawn Europe Charlie Manticore 1 2 1 1 24 69 pts
DL_GranadaSpawn Europe Alpha Lonestar 1 2 1 1 22 81 pts
DL_HanoverSpawn Europe Alpha Lonestar 1 2 1 1 24 65 pts
DL_MalagaSpawn Europe Charlie Manticore 1 3 1 1 27 72 pts
DL_RennesSpawn Europe Bravo Valkyra 1 2 1 1 24 69 pts
DL_StuttgartSpawn Europe Charlie Manticore 1 2 1 1 24 69 pts
DL_BaghiSpawn Kavkazi Alpha Lonestar 1 3 1 1 25 69 pts
DL_ChutaSpawn Kavkazi Charlie Manticore 1 3 1 1 21 81 pts
DL_KhevuliSpawn Kavkazi Bravo Valkyra 0 1 1 1 21 46 pts
DL_LiknisiSpawn Kavkazi Charlie Manticore 1 1 1 1 24 60 pts
DL_RachuriSpawn Kavkazi Bravo Valkyra 1 2 1 1 25 69 pts
DL_SanaviSpawn Kavkazi Alpha Lonestar 1 2 1 1 23 81 pts
DL_TavarshiSpawn Kavkazi Charlie Manticore 1 2 1 1 24 69 pts
DL_AustinSpawn NorthAmerica Bravo Valkyra 1 2 1 1 22 60 pts
DL_BostonSpawn NorthAmerica Alpha Lonestar 1 2 0 1 15 68 pts
DL_ChicagoSpawn NorthAmerica Charlie Manticore 1 3 1 1 24 81 pts
DL_KuzminkiSpawn Russia Alpha Manticore 1 2 0 1 17 81 pts
DL_RamenkiSpawn Russia Charlie Lonestar 1 2 1 1 26 76 pts
DL_RostokinoSpawn Russia Bravo Valkyra 1 2 1 1 25 69 pts

Layers also hold stray volumes of another team slot in one case: DL_RostokinoSpawn carries an extra Alpha air yard (9 spots). The Detroit map has one Alpha air yard in no data layer at all (7 spots, section 7).

4. What each layer allows

Tags are Vehicle.Variant.* gameplay tags; a parent tag stands for every vehicle under it. Names are from the Vehicles pages (see section 5 for the pairing, which is inferred).

Layer Team APC tag in the volume Allowed by the ground, air and light yards
DL_BarcelonaSpawn Bravo APC Valkyra any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_BremenSpawn Bravo APC Valkyra any air vehicle, any tracked vehicle, Azar (test), Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family
DL_CalaisSpawn Charlie APC Valkyra any air vehicle, any tracked vehicle, Azar (test), Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family
DL_GranadaSpawn Alpha APC Lonestar any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_HanoverSpawn Alpha APC Valkyra any air vehicle, any tracked vehicle, Azar (test), Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family
DL_MalagaSpawn Charlie APC Manticore any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_RennesSpawn Bravo APC Valkyra any air vehicle, any tracked vehicle, Azar (test), Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family
DL_StuttgartSpawn Charlie APC Valkyra any air vehicle, any tracked vehicle, Azar (test), Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family
DL_BaghiSpawn Alpha APC Lonestar any air vehicle, L2A6 family, T-72B3, Azar (test), Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_ChutaSpawn Charlie APC Manticore any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_KhevuliSpawn Bravo none any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_LiknisiSpawn Charlie APC Manticore any air vehicle, any land vehicle, Bobcat
DL_RachuriSpawn Bravo APC Valkyra any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_SanaviSpawn Alpha APC Lonestar any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_TavarshiSpawn Charlie APC Manticore any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_AustinSpawn Bravo APC Valkyra any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_BostonSpawn Alpha APC Lonestar L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_ChicagoSpawn Charlie APC Manticore any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_KuzminkiSpawn Alpha APC Lonestar L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_RamenkiSpawn Charlie APC Manticore any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family
DL_RostokinoSpawn Bravo APC Valkyra any air vehicle, L2A6 family, T-72B3, Bobcat, Dune Buggy, Humvee family, Kodiak family, Ural family, Wolf 110 family

Each yard also lists tags it excludes, which is how a generic tag such as the air tag is narrowed: air yards exclude Land; light yards exclude the other wheeled families, the tanks, the APCs and the air tags; APC volumes exclude every other APC tag. The full allowed and excluded lists are in the JSON (volumes).

5. Tag to vehicle names

Tag Vehicles (display names) Basis
Air any air vehicle (every helicopter and the airplane, minus anything the volume excludes) inferred
Air.Rotary.Havoc Havoc inferred
Air.Rotary.Littlebird MH-6; AH-6M [Miniguns]; AH-6R [Rockets] inferred
Air.Rotary.ROT_01 Huey inferred
Air.Rotary.ROT_04 Z20 Lakota; Z20 Lakota [Miniguns] inferred
Land any land vehicle inferred
Land.Tracked any tracked vehicle (minus the excluded faction APCs) inferred
Land.Tracked.TNK_01 L2A6; Flakpanzer Gepard; SPH-2 inferred
Land.Tracked.TNK_04 T-72B3 inferred
Land.Tracked.SpawnVehicle.Lonestar M113 APC SV (Lonestar version) inferred
Land.Tracked.SpawnVehicle.Manticore M113 APC SV (Manticore version) inferred
Land.Tracked.SpawnVehicle.Valkyra M113 APC SV (Valkyra version) inferred
Land.Wheeled.Azar Azar (test vehicle, no wiki article) inferred
Land.Wheeled.Bobcat Bobcat inferred
Land.Wheeled.DuneBuggy Dune Buggy inferred
Land.Wheeled.Humvee Humvee; Humvee [M249]; Humvee [Minigun] inferred
Land.Wheeled.Kodiak Kodiak; Kodiak [M249]; Kodiak [Pickup] inferred
Land.Wheeled.Ural Ural; Ural Defender; Ural Defender [M249] inferred
Land.Wheeled.WHL_08 Wolf 110; Wolf 110 [M2 Browning] inferred

Basis: the internal-name rows of the vehicle articles (TNK_01, TNK_04, WHL_02, WHL_05, WHL_07 and WHL_08 are the family codes) and the spotting and explosion tables for the helicopters. The data lists no vehicle by display name in the volumes, and the tags do not say which variant of a family (for example Humvee with or without a gun) a yard produces. The airplane is under the generic air tag; whether a yard ever places it was not traced. The test vehicle Azar has no wiki article.

6. Per-world totals

World Map Volumes Boards Infantry spawn managers Vehicle spots Spawn layers
Europe Ozeti 41 8 8 194 DL_BarcelonaSpawn, DL_BremenSpawn, DL_CalaisSpawn, DL_GranadaSpawn, DL_HanoverSpawn, DL_MalagaSpawn, DL_RennesSpawn, DL_StuttgartSpawn
Gym_Minimal Gym (test area) 3 3 0 0  
Kavkazi Bakurani 35 7 8 163 (no data layer), DL_BaghiSpawn, DL_ChutaSpawn, DL_KhevuliSpawn, DL_LiknisiSpawn, DL_RachuriSpawn, DL_SanaviSpawn, DL_TavarshiSpawn
NorthAmerica Zestafona 16 3 3 68 (no data layer), DL_AustinSpawn, DL_BostonSpawn, DL_ChicagoSpawn
Russia Saburtulo 15 3 3 77 DL_KuzminkiSpawn, DL_RamenkiSpawn, DL_RostokinoSpawn

The totals include every layer a world has, not only those one entry enables (a world has 3 to 8 spawn layers and an entry uses 3). Gym_Minimal is a test area with its own three infantry volumes and three boards.

7. Limits, timers and data quirks

  • Per-player vehicle limit. WDVehicleUtilityComponent.MaxVehiclesPerPlayer = 2 (DefaultVehicleUtility.ini); the plugin text says it caps vehicle ownership per player on the session game mode.
  • Deploy cooldown. PlayerDeployCooldown is 600.0 s in the board Blueprint default and no map board overrides it. It is written per player when a deployment seats the player on the board’s APC (round 75) and shown as the cooldown reason. RadarRestoreHealthThreshold is 0.55: the radar is flagged destroyed when the APC’s radar health reaches 0 and cleared when it is back at that share of its maximum.
  • Vehicle respawn timer: a native class default. The board class has VehicleRespawnTimer, LosingVehicleRespawnTimer, VehicleHealthThreshold and VehicleSpeedThreshold (SDK 0x3F8..0x40C). Neither the Blueprint default nor any of the 18 map boards sets them, so the live maps use the values the native constructor writes (round 53, evidence): respawn timer 300 s, losing-side respawn timer 60 s, health threshold 0.3, speed threshold 10, plus a minimum score of 20 and a losing score threshold of 15. The Gym test boards override the respawn timer to 240 s. Round 75 (evidence) read the consumers: when the APC is lost the board takes the 60 s timer if the best other side leads the board’s side by 15 score points or more, otherwise 300 s (scaled by a server value that defaults to 1); the timers time that APC only, not the yard vehicles. No APC is put out until one side has a score of 20 (the board shows the score-required text until then). The speed threshold is 10 km/h (the vehicle-moving reason). The health threshold 0.3 has no reader.
  • Native cooldown default. The board constructor sets PlayerDeployCooldown to 120 s; the Blueprint raises it to 600 s, so 600 s is what the live maps use. The Gym boards set 120 s explicitly, which equals the native default. RadarRestoreHealthThreshold is 0.5 natively and 0.55 in the Blueprint. MaxVehiclesPerPlayer is 2 in the native constructor as well as in the ini.
  • No per-yard vehicle count or per-vehicle respawn timer. A volume lists allowed tags and spots; how many of each vehicle exist and a per-yard or per-vehicle respawn time is not in the cooked data (the spawn logic is native; see the round 42 note on the open volume route). The board-level respawn timer is in the previous two bullets.
  • Boards and APC tags disagree in places. Board classes against the team slot of their layer: Lonestar 5 of 6 on Alpha, Manticore 7 of 8 on Charlie, Valkyra 6 of 6 on Bravo (one Valkyra board has no APC volume to compare). The exceptions are in Russia, where the Kuzminki layer (Alpha) has a Manticore board and the Ramenki layer (Charlie) a Lonestar board. Volumes carry a different APC tag from their team slot in three places (all in Europe, all the Valkyra tag: DL_StuttgartSpawn, DL_CalaisSpawn, DL_HanoverSpawn). Which side of the pair wins at run time is not known.
  • One Detroit air yard belongs to no spawn layer. An Alpha air yard with four explicit helicopter families (Havoc, Little Bird family, Huey, Z20 Lakota family) sits in a cell with no data layer, so it is part of the base world for every Detroit entry (inferred from the empty layer list of its cell).
  • Strike and Disarm. One infantry volume (Charlie, 15 max points) and one spawn manager sit in the Strike and Disarm external layer on Kavkazi; they are not part of the King of the Hill spawns. Further spawn managers sit in the PvE scenario layers (ScenarioExample, VIP Escort, Strike and Disarm); they were not dumped.

8. Reproduce

WdExtract <Paks> <key> <usmap> <out> <Paks>\oo2core_9_win64.dll findname Wardogs WDSpawnVolume      -> findname.txt (61 packages)
WdExtract ... <out>\sv dump <those package paths>
WdExtract ... findname Wardogs B_SpawnManager_C   (and B_VehicleDeploymentBoard_Lonestar_C / _Manticore_C / _Valkrya_C)
WdExtract ... <out>\sv_extra dump <the cells not already in sv>
WdExtract ... list B_VehicleDeploymentBoard, then dump it plus .../Gamemode/Objects/B_SpawnManager into <out>\bd
python -I _tools/vehicle_spawns.py [--check] <round42 dir with sv> <dir bd>   (sv_extra is read next to bd)

Extractor arguments are in tools/cue4parse_extractor/README.md. The wiki articles for each map summarise this page.