-
Notifications
You must be signed in to change notification settings - Fork 0
Server Init Deadspawn And Airfield Probe
Source-verified 2026-06-21 against master 0139a346. Paths relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/ unless noted. Arma 2 OA 1.64.
Two custom claude-gaming server-only one-shots run back-to-back near the end of server init: Init_DeadspawnWall.sqf and Init_AirfieldProbe.sqf. Both are fired once from Server/Init/Init_Server.sqf immediately after serverInitFull = true (Server/Init/Init_Server.sqf:649): the deadspawn wall at Server/Init/Init_Server.sqf:657 and the airfield probe at :664. The first is a physical protection pass that rings the three per-side temporary-respawn markers with an indestructible H-barrier wall so an enemy-side AI bot cannot shoot a human parked on an adjacent side's holding marker during join. The second is a diagnostic-only probe that spawns nothing and instead logs a 5x5 grid of candidate airfield-camp positions to the RPT so blind coordinate guesses can be refuted with real surfaceIsWater/nearRoads data.
"Deadspawn" disambiguation (cmdcon30, 2026-06-30). This page owns the physical deadspawn only: the H-barrier wall ringing the per-side respawn markers so an adjacent-marker bot cannot shoot a parked, joining human. cmdcon30 introduced a second, unrelated meaning. The cmdcon30 "player stuck in deadspawn — no team / no HUD / no markers" bug is an enrollment-resolver failure, not a physical-protection issue: the PR#122 editor-slot reaper
deleteGroup'd a JIP-selectable slot's group, the joiner landed in a group with nowfbe_side, and the enrollment self-heal exhausted its retries. If you arrived here chasing that report, go to JIP-Enrollment-And-Client-Data-Delivery and the group-GC reaper page — this page does not cover it.
This page is distinct from Server-Init-Bind-Cleanup, which covers duplicate compile/bind hygiene in Init_Server.sqf and touches neither of these scripts.
| Script | Call site | Form | Gate | Side-effect class |
|---|---|---|---|---|
Server/Init/Init_DeadspawnWall.sqf |
Server/Init/Init_Server.sqf:657 |
[] execVM "..." |
if (!isServer) exitWith {} (Init_DeadspawnWall.sqf:41) |
Spawns persistent global objects (H-barriers) |
Server/Init/Init_AirfieldProbe.sqf |
Server/Init/Init_Server.sqf:664 |
[] execVM "..." |
if (!isServer) exitWith {} (Init_AirfieldProbe.sqf:25) plus wfbe_airfield_probe_done one-shot guard (:29-30) |
None — diagnostic diag_log only |
Both are placed after the world/logic init completes (serverInitFull = true at Init_Server.sqf:649) and before the town/economy server FSMs are spawned (server_town.sqf at :667).
The three per-side holding markers — WestTempRespawnMarker, EastTempRespawnMarker, GuerTempRespawnMarker (Init_DeadspawnWall.sqf:58) — sit only 64–128m apart on a bare NE-Chernarus mountaintop (all three are static in mission.sqm; a TempRespawnMarker grep returns 3 entries). AI-slot bots respawn exactly onto their own side's marker: Server/AI/AI_AdvancedRespawn.sqf:29 does _respawnedUnit setPos getMarkerPos Format["%1TempRespawnMarker",_sideText]. Because the markers are so close, an enemy-side bot has clear line-of-fire onto a HUMAN parked on an adjacent side's marker during join (the "AI killed in the deadspawn" / Smarty kill). The header records the worst sightlines as GUER↔EAST ~44.5m and GUER↔WEST ~52m (Init_DeadspawnWall.sqf:5-12).
The fix is purely additive: it rings each marker with a closed wall and touches no protected file. It deliberately does not trap players, because the joiner is teleported to base by the client-side join handshake and never walks out of the ring, and a 120s client watchdog re-enables damage even if the move stalls (Client/Init/Init_Client.sqf:21-26, the WFBE_Client_DeadspawnEscaped / 120s timeout block). It never calls setCaptive or disableAI, keeping the standing hard guardrail intact (Init_DeadspawnWall.sqf:14-23).
| Tunable | Value | Source | Meaning |
|---|---|---|---|
_wallCls |
"Land_HBarrier_large" |
Init_DeadspawnWall.sqf:47 |
Tall LoS/line-of-fire blocker, confirmed-present class on this CO+EP1 box (reused from Server/Init/Init_Defenses.sqf wall templates) |
_radius |
12 (m) |
:52 |
Half-width of the ring → ~24m box; nearest neighbour marker is 64.5m so rings never overlap |
_segLen |
5 (m) |
:56 |
Approx footprint of one H-barrier section; drives segment count |
_perim |
2 * 3.14159 * _radius |
:78 |
Ring circumference |
_count |
ceil (_perim / _segLen), floored to min 8 |
:79-80 |
Number of barrier segments; min-8 floor guarantees even a tiny ring is sealed |
_step |
360 / _count |
:81 |
Angular spacing between segments |
For _radius = 12, _perim ≈ 75.4m and _count = ceil(75.4/5) = 16 segments per marker (above the 8 floor), so a full run spawns ~48 barriers across the three markers.
The script forEach-iterates the three markers (:62-116):
-
Resolve centre.
_c = getMarkerPos _mk(:64).getMarkerPosreturns[0,0,0]for an unknown name, so if both X and Y are 0 (:70) it logs aWARNINGviaWFBE_CO_FNC_LogContentand skips only this marker using a guardedelseblock rather thanexitWith—exitWithwould abort the wholeforEachand skip the remaining sides (:66-72). -
Walk the circle. For each segment
_ifrom 0 to_count-1(:84): bearing_ang = _i * _step(:85), point on the ring at_px = (_c select 0) + _radius * sin _ang,_py = (_c select 1) + _radius * cos _ang(:88-89). -
Spawn the barrier.
_prop = createVehicle [_wallCls, _pos, [], 0, "NONE"](:93) —createVehicle(GLOBAL) is used deliberately so the wall is server-authoritative and AI LoS/collision sees it on a dedicated server, per the standing rule againstcreateVehicleLocalhere (:28-30). -
Graceful class-miss handling. If
isNull _prop(:94), log oneWARNINGand keep going — modelled onServer/Functions/Server_SpawnStructureDressing.sqf:48-51(:36-38, verified: sameisNull/WARNINGpattern). -
Orient and pin.
setDir (_ang + 90)orients the long face TANGENT to the ring so consecutive barriers overlap into a continuous wall instead of radial spokes (:98-100);setPosATL [_px,_py,0]pins each barrier to the marker's own terrain elevation (the three markers differ by up to ~12m, so no height is hardcoded —:34-35,:101-102);setVectorUp [0,0,1](:103). -
Make it cheap and permanent.
enableSimulation false(no physics cost) andallowDamage false(bots can't shoot the wall down) —:104-106.
Each surviving prop is appended to _allProps (:107), and a per-marker INITIALIZATION line reports the marker, position, segment count, and radius (:112).
After the loop, the prop list is stored non-broadcast for debugging / potential teardown: missionNamespace setVariable ["WFBE_DEADSPAWN_WALL_PROPS", _allProps] (:119) — the 2-argument setVariable form (no true publish flag), so it stays server-local. A closing INITIALIZATION line reports the total barrier count across the side markers (:121). The variable is set in exactly one place and read nowhere else in the mission (verified).
Init_AirfieldProbe.sqf changes NO coordinates and spawns NO objects (:1-4). Its purpose is to settle where the airfield capture camps should be placed: the airfield camps (mission.sqm LocationLogicCamp id=308 NWAF / id=310 Balota) sit ~300m south of the real airfields, and blind coordinate guesses were refuted, so instead of guessing it probes (:6-8).
| Aspect | Detail | Source |
|---|---|---|
| Side gate | if (!isServer) exitWith {} |
Init_AirfieldProbe.sqf:25 |
| Async body | [] spawn { ... } |
:27 |
| One-shot guard |
if (!isNil "wfbe_airfield_probe_done") exitWith {} then wfbe_airfield_probe_done = true
|
:29-30 |
| Settle delay |
uiSleep 20 (so world/roads are loaded before sampling) |
:32 |
| Offsets per axis |
_offsets = [-120, -40, 0, 40, 120] (5 samples → 5x5 = 25 candidates/field) |
:34-36 |
| Airport anchors |
["Balota", 4550, 2280], ["NWAF", 4479.3252, 10618.404] (from mission.sqm LocationLogicAirport, Balota id=7 / NWAF id=8) |
:38-42 |
For every candidate it builds _pos = [_ax + _px, _ay + _py, 0] (:57) and samples two on-land validity signals:
-
_water = surfaceIsWater _pos(:59) — true means in the sea, reject. -
_roads = count (_pos nearRoads 8)(:61) — a non-empty list means on/at a road, reject for an apron.
It then emits one greppable pipe line per candidate via diag_log (:63-70):
AIRFIELD_PROBE|v1|field:<NWAF|Balota>|x:..|y:..|water:<bool>|roads:<count>
The run is bracketed by AIRFIELD_PROBE|v1|begin|grid:5x5|offsets:-120,-40,0,40,120 (:44) and AIRFIELD_PROBE|v1|end (:75), so an operator can isolate the whole block in the RPT and pick a verified on-land, off-road apron. The nested forEach/forEach/forEach structure (fields → X offsets → Y offsets) reuses the _x iterator name at each level (:48, :53, :55), which is valid A2-OA scoping.
Both scripts are written to A2-OA-only command rules. The probe header explicitly notes it uses surfaceIsWater, nearRoads, getPosASL/getPosATL and NO isOnRoad / A3 commands (Init_AirfieldProbe.sqf:22). The wall uses createVehicle (not createVehicleLocal), setDir, setPosATL, setVectorUp, enableSimulation, allowDamage, capitalized Private/Format, and Call WFBE_CO_FNC_LogContent — all valid A2-OA forms. Neither script uses remoteExec, BIS_fnc_MP, isEqualTo, or any A3-only construct.
Home | Agent Guide | Current live state | Release 1.2.2 (B91) | Quickstart | Progress | Lifecycle wait-chain | Join/disconnect | Parameters/build | Assets/config | SQF atlas | PV index | Modules | Support/specials | Commander/HQ | Commander vote/reassign | Construction/CoIn | Construction cleanup | WDDM compositions | Factory/purchase | Upgrades/research | Towns/camps/capture | Victory/endgame | Markers/cleanup | Server runtime | AI runtime/HC | AI commander audit | HC delegation | Town AI safety | Commander reassignment | Resistance supply | Player UI workflow | UI atlas | Respawn/death | Gear template filter | Vehicle cargo loop | Service guards | UI IDD repair | UI design inspiration | WASP overlay | Feature status | Source propagation | release readiness | Tooling readiness | Integration trust | AntiStack DB | Owner decisions | Shelved registry | Abandoned feature revival | Hardening roadmap | PVF dispatch | Server authority | ICBM authority | Attack-wave authority | Telemetry families | AICOM V2 cutover | Consumer port map | Testing workflow | Server ops | Web tools | Ecosystem repos | Arma 2 OA refs | A2 traps | OA compatibility audit | Coverage ledger | Navigation inventory | Pruning ledger | Knowledge roadmap | Agent context | Collab protocol | Worklog | Audit archive 2026-07 | Briefing reference | Utes invasion concept
- Shelved AICOM concepts - revivable someday ideas (owner-shelved 2026-07-03)
Docs rule: source-backed claims only; Arma 2 OA scripting docs only; gameplay edits start in Missions/[55-2hc]warfarev2_073v48co.chernarus.
- Getting started
- Status and coordination
- Agent context
- Agent collaboration protocol
- Agent worklog
- Agent worklog archive
- Progress dashboard
- PR cleanup and integration lab
- Shelved PR #169: gear price double-count
- Shelved PR #194: Chernarus no-trees
- Coordination board
- Codebase coverage ledger
- Bottleneck removal queue
- Current source status
- Wiki mirror reconciliation
- Navigation inventory
- Registers
- Agent orchestration
- Architecture
- Architecture overview
- Mission entrypoints and lifecycle
- Lifecycle wait chain
- Player join/disconnect and AntiStack lifecycle
- Mission parameters/localization/build inputs
- Stringtable localization key-family catalog
- Source inventory
- Content structure and maps
- Assets/config/localization/parameters
- Mission start parameters index
- Code and networking
- Gameplay systems
- Core systems index
- Gameplay systems atlas
- Commander/HQ lifecycle atlas
- Economy, towns and supply
- Economy system reference
- Balance asymmetries
- Anti-stack skill-balance mechanic
- Empty-side supply income stagnation
- Towns, camps and capture atlas
- Victory and endgame atlas
- Victory conditions reference
- Territorial victory reference
- Marker cleanup and restoration
- Marker loop engine and registries
- Map marker families content catalog
- Marker subsystem function reference
- Client marker FSM updater map
- Support specials and tactical modules
- SCUD TEL tactical munitions
- Naval HVT objectives (carriers/SCUD)
- SCUD saturation strike mechanic
- Takistan airfield FPV drone design
- Construction and CoIn systems
- Structure damage reduction & friendly-fire
- Construction logic list cleanup
- Flak tower & WDDM anchor compositions
- Resistance supply scaffold
- GUER Insurgents faction overview
- GUER Insurgents branch audit
- GUER insurgent player economy
- GUER air-defense loop (Ka-137/Mi-24)
- Upgrades and research atlas
- Supply mission architecture
- Supply mission authority cleanup
- Current supply helicopters PR1
- Respawn and death-loop lifecycle
- Vehicle theft economy pitch
- GUER tunnel network pitch
- Content, reference and catalogs
- Faction unit/vehicle roster catalog
- Auxiliary/SF/civilian unit catalog
- Gear store loadout route catalog
- Upgrade research (cross-faction)
- Gear store price and upgrade catalog
- Gear store catalog (complete, per faction)
- Defense structures catalog
- Artillery reference per faction
- AI squad team templates catalog
- Town AI lifecycle reference
- Town AI group composition catalog
- Class-skill system reference
- Player skill abilities reference
- Default gear template content catalog
- Chernarus map content reference
- Takistan map content reference
- Takistan features
- Takistan parity reference
- Takistan oilfields objective reference
- IRS IR-smoke countermeasure
- Arty module special munitions
- Zeta cargo sling-load reference
- Spawn primitive function reference
- Kill and score pipeline
- Waypoint helper function reference
- Position and proximity function reference
- Side/team state function reference
- Player AI watchdog and recovery
- AICOM stuck-recovery v2
- LoadoutManager data-model contributor guide
- Discord status bot setup and reference
- GLOBALGAMESTATS extension reference
- New player quickstart (player guide)
- Optional client mods (player guide)
- Earning funds and score (player guide)
- Vehicle service and logistics (player guide)
- Commander's handbook (player guide)
- Tactical support menu
- Paradrop player experience
- Supply missions (player guide)
- In-game briefing & Diary field manual
- Playable maps catalog
- Faction root variables reference
- Faction base structures catalog
- Counter-battery radar system
- Bank, Reserve and Artillery Radar structures
- Map ruleset model and object config
- Countermeasures module reference
- Vehicle countermeasure (flares/spoofing)
- UAV terminal and spotter system
- Artillery firing function reference
- Service Point pricing model
- Medic redeployment truck (forward spawn)
- Side-patrol runtime and convoy mechanics
- Day/night cycle and weather system
- Config lookup helper reference
- CIPHER sort utilities reference
- Modded maps status and content
- BattlEye filter setup and OA taxonomy
- Player squad/group join protocol
- AutoFlip vehicle recovery
- Engine stealth fuel toggle
- Valhalla vehicle climbing-assist
- Missile and ordnance Fired-EH reference
- Vehicle equip and rearm reference
- Array and collection utilities
- Server composition spawner reference
- Upgrade queue server loop
- Map boundaries and off-map enforcement
- Namespace/profile/diagnostic utilities
- Group bool getVariable A2-OA trap
- Vehicle weapon balance init
- View distance auto-throttle
- Camp & respawn-camp getters
- Performance audit writer
- Site clearance (bulldozer)
- Factory queue cancel & refund
- AI commander tunable constants
- Experimental feature-flag constants
- Flag system quick reference
- Mission tunable constants catalog
- Gear parsing & cargo capacity
- Structure dressing function
- Paradrop delivery functions
- ICBM nuke client VFX & radiation
- Server HandleSpecial router
- LocalizeMessage chat router
- Gear buy-menu render & price functions
- Server broadcast & telemetry loops
- Per-unit client init pipeline
- Vehicle marking & texture pipeline
- Defense category & budget
- Legacy AI order primitives
- Commander-team driver
- AICOM command verbs
- AICOM behavior fix taxonomy
- AI commander wildcard deck reference
- AICOM aircraft and airfield system
- Static-defense manning
- End-of-game stats screen
- AI commander execution loop
- Deployable bipod / weapon resting
- Town-economy getters
- Server-init deadspawn & airfield probe
- GUER VBIED detonate action
- Resource income-tick engine
- AI commander treasury accessors
- PVF send-helper contracts
- AICOM logging & AICOMSTAT telemetry
- AICOMSTAT v2 event census
- WASPSCALE v2 telemetry
- WASPSCALE v2-ext coverage audit
- Telemetry families reference
- Group lifecycle & entity reaping
- Batch AI spawner orchestrator
- Client funds/income HUD readout
- Server group GC & cap warning
- Town runtime tuning constants
- Client input/hotkey handler
- WASP base-repair system
- WASP DropRPG launcher/ordnance
- CoIn construction-interface client engine
- Town-capture garrison & airfield rebuild
- Map-control & minimap templates
- Client FPS & state telemetry
- Client service-proximity getters
- Airfield-exclusive roster & unit hints
- Unit-camera spectator system
- Town-garrison patrol/defense worker
- RequestTeamUpdate squad-discipline
- Arma2Warfare GPT assistant
- LoadoutManager build configs & defines
- GLOBALGAMESTATS extension logging
- Discord bot instrumented logging
- Eden/Everon & Taviana map content
- Cruise missile strike asset
- AI / HC
- AI headless and performance
- AI mods and pathfinding reference
- Headless client scaling and topology
- AI runtime/HC loop map
- Headless client init and stat loop
- HC delegation target selection
- Player AI caps and role balance
- Old WarfareBE FPS comparison
- AI commander autonomy audit
- Upstream BE 2073 AICOM delta
- Parent 2.073 divergence audit
- AI commander capture & fun plan
- AI commander B69 improvement roadmap
- AI commander B69 implementation sketches
- AICOM V2 cutover status
- Headless delegation and failover
- Commander reassignment call shape
- GUER Director living-resistance pitch
- Quality and operations
- Foundation perf findings & Tier-3 dead-ends
- Dead/stale code register
- Commander vote/reassignment
- Attack-wave authority
- Server runtime and operations
- Server ops runbook
- JIP enrollment & client data delivery (b74.2 lessons)
- Server gameplay runtime atlas
- PerformanceAuditAnalyzer
- Performance opportunity sweep
- Documentation plan
- Knowledge platform roadmap
- Wiki quality audit
- Wiki pruning and relevance ledger
- Audit findings queue (2026-06-03)
- Deep review findings
- Client UI / server-loop perf findings
- Performance gain simulation
- Self-host testing field notes
- Cleanup and work lanes
- Hardening and authority
- UI / player workflows
- Client UI, HUD and menus
- UI HUD and dialogs
- Player UI workflow map
- Client UI systems atlas
- UI IDD collision repair
- UI control class library reference
- UI theme palette and style macros
- UI design inspiration 2026-07
- Available-actions client gate FSM
- Gear/loadout/EASA atlas
- Gear template profile filter
- Vehicle cargo equip loop bounds
- Factory and purchase systems atlas
- Service menu affordability guards
- WASP overlay
- Class-skill system reference
- Skin selector and class swap
- Earplugs audio toggle
- Mission audio catalog
- HQ radio knowledge-base catalog
- QoL trio player hints
- Player vehicle/travel actions
- Tooling / release / integrations
- Tools and build workflow
- Warfare web tools
- Ecosystem & companion repos
- Zargabad tooling parity
- July 2026 release readiness
- Operator monitor and CPU affinity tools
- Tooling release readiness audit
- Source fix propagation queue
- Agent release readiness ledger
- Release source intake map
- Testing/debugging/release workflow
- Current RPT release gate
- RPT telemetry consumer port map
- External integrations
- Integration trust boundary audit
- AntiStack database extension audit
- Community & Dev
- Community & Dev
- Miksuu upstream wiki import / archive index
- Upstream changelog feature leads
- Developer history and upstream lessons
- Upstream Miksuu commit intel
- Upstream mining ledger
- Archive script mining v2
- Upstream BE 2073 AICOM delta
- Parent 2.073 divergence audit
- PR8 and Drone upstream lesson match
- Development lessons learned
- External research reports
- Audit archive 2026-07
- Briefing reference
- Utes invasion concept
- Miksuu archive: Home
- Miksuu archive: Welcome
- Miksuu archive: Big announcements
- Miksuu archive: Changelog
- Miksuu archive: Development process
- Miksuu archive: Discord bot
- Miksuu archive: Gameplay videos
- Miksuu archive: LoadoutManager
- Miksuu archive: Chernarus script architecture
- Base-game visual catalogs
- Compatibility and references
- HC upstream history and lessons
- Player stats branch audit
- BuyMenu EASA QoL branch audit
- Perf quick wins branch audit
- Commander positions branch audit
- Zargabad branch audit
- Quad AI Commander concept
- Arma 2 OA external reference guide
- Base-game config & image reference
- Arma 2 OA compatibility audit
- Arma 2 OA agent traps reference
- Arma 2 OA command versions
- Wiki source consistency
- External Arma 2 OA reference index