Skip to content

Takistan Oilfields Objective Reference

rayswaynl edited this page Jul 3, 2026 · 1 revision

Takistan Oilfields Objective Reference

Source-verified 2026-07-03 against origin/claude/build84-cmdcon36@5fca32390. Unless noted, paths are relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/; Server/Server_Oilfields.sqf is hash-identical in the maintained Chernarus, Takistan and Zargabad mission roots (53553692316586CF9852268E70518E669445D9E42D2875B8B731F767B3304210). This is a wiki-only lane-321 reference; no mission source, LoadoutManager output, package artifact, live server or runtime state changed.

The Takistan oilfield is a neutral, capturable resource node. It is deliberately not a town: it never enters the towns array, never runs a town FSM, and does not spawn a standing garrison in the base feature. It exists to give Takistan a fixed strategic resource fight that opens after the first hour, pays side supply while held, can be sabotaged, and can pull AI commander traffic toward the area.

Fast Route

Question Short answer Primary source
Does it run on Chernarus? No. Init_Server.sqf launches it only when worldName is Takistan, and the worker exits on non-Takistan worlds. Server/Init/Init_Server.sqf:1007-1013; Server/Server_Oilfields.sqf:71-80
When does it become live? Default unlock is 3600 in-game seconds. Before unlock, the premarker can show a countdown; after unlock, capture and income begin. Common/Init/Init_CommonConstants.sqf:349, :361-365; Server/Server_Oilfields.sqf:327-405
Where is it placed? Default dynamic placement waits for both HQs, searches open ground between them, then falls back to the legacy [4600,6200,0] oil/fuel-object anchor if needed. Common/Init/Init_CommonConstants.sqf:350-351, :381-388; Server/Server_Oilfields.sqf:88-156, :197-226
How do sides capture it? A real WEST or EAST unit inside radius controls the scan if the other main side has no unit there. Empty or contested scans preserve the current owner. GUER can sabotage but not own it. Server/Server_Oilfields.sqf:631-684
What does it pay? Default 25 side supply every 60 seconds while WEST/EAST owns it, it is not sabotaged, and the lifetime payout cap has not reached 15000. Common/Init/Init_CommonConstants.sqf:354-356; Server/Server_Oilfields.sqf:735-753
How does sabotage work? Enemy dwell with the owner cleared sabotages after 45 seconds. Owner dwell repairs after 40 seconds, with engineer or repair-truck presence accelerating repair. Common/Init/Init_CommonConstants.sqf:368-373; Server/Server_Oilfields.sqf:686-733
Does it add AI load? Base feature adds zero standing AI. AICOM pull is default-on and only weights the nearest real town. Optional GUER raids are default-off because they spawn units. Common/Init/Init_CommonConstants.sqf:374-379; Server/Server_Oilfields.sqf:490-591, :756-760
What should operators watch? Marker WFBE_OILFIELD, owner/sabotage/income missionNamespace state, and `OILFIELD ...` RPT telemetry lines.

Runtime Entry And Map Gate

Init_Server.sqf launches the worker only when WFBE_C_OILFIELD_ENABLE is 1 and toLower worldName == "takistan" (Server/Init/Init_Server.sqf:1007-1013). The worker repeats the safety gate internally: it exits on non-server locality, exits on non-Takistan worlds, and exits when WFBE_C_OILFIELD_ENABLE is off (Server/Server_Oilfields.sqf:71-80).

That double gate is why the same file can live in the source Chernarus tree and be mirrored into maintained Vanilla mission roots without creating a Chernarus or Zargabad oilfield. The constant can stay enabled globally while remaining inert off Takistan.

The worker waits for mission initialization signals before resolving placement and entering the objective lifecycle. It waits for townInit and time > 0, then resolves the node position, publishes WFBE_OILFIELD_POS_LIVE, and logs OILFIELD|v1|INIT once the final position is known (Server/Server_Oilfields.sqf:83-86, :224-277).

Placement And Marker Lifecycle

Default placement is dynamic:

Step Behavior Source
HQ readiness Waits up to WFBE_C_OILFIELD_HQ_WAIT seconds for both side HQ objects. Common/Init/Init_CommonConstants.sqf:382; Server/Server_Oilfields.sqf:111-126
Midpoint Computes a 2D midpoint between WEST and EAST HQ positions. Server/Server_Oilfields.sqf:127-132
Candidate filter Rejects water, steep terrain, road-adjacent positions, town-near positions and house-near positions. Common/Init/Init_CommonConstants.sqf:385-388; Server/Server_Oilfields.sqf:133-156
Ring search Searches outward by WFBE_C_OILFIELD_RING_STEP up to WFBE_C_OILFIELD_RING_MAX. Common/Init/Init_CommonConstants.sqf:383-384; Server/Server_Oilfields.sqf:158-185
Legacy fallback If dynamic placement is disabled or fails, searches for oil/fuel objects around WFBE_C_OILFIELD_POS, else uses that anchor. Common/Init/Init_CommonConstants.sqf:350-351, :381; Server/Server_Oilfields.sqf:197-226
Derrick composition On dynamic success only, spawns a five-object EP1 oil/fuel composition and stores the objects in WFBE_OILFIELD_OBJS. Server/Server_Oilfields.sqf:228-274

Marker identity is one global marker, WFBE_OILFIELD (Server/Server_Oilfields.sqf:316-321). With WFBE_C_OILFIELD_PREMARK=1, the marker appears before unlock with a countdown label and a default 30-second text refresh cadence, floored at 10 seconds (Common/Init/Init_CommonConstants.sqf:361-365; Server/Server_Oilfields.sqf:327-379). At unlock, the same marker is reused, recolored neutral, relabeled to the base oilfield label, and announced through DashboardAnnounce (Server/Server_Oilfields.sqf:379-405).

After unlock, side-absolute colors are used for the global marker: WEST blue, EAST red, resistance green and neutral yellow (Server/Server_Oilfields.sqf:279-294). If WFBE_C_OILFIELD_MARKER_LIVE=1, the live label includes owner, income and sabotage status instead of staying static (Common/Init/Init_CommonConstants.sqf:367; Server/Server_Oilfields.sqf:31-33, :762-763).

Capture, Sabotage, Repair And Income

The live loop sleeps on WFBE_C_OILFIELD_SCAN_INTERVAL, floored to at least 5 seconds (Common/Init/Init_CommonConstants.sqf:353; Server/Server_Oilfields.sqf:593-608). Each scan checks living Man, Car and Tank entities in WFBE_C_OILFIELD_RADIUS, but only men count for capture ownership. Vehicles are only considered for repair-truck acceleration if crewed (Server/Server_Oilfields.sqf:631-653).

Capture state is persistent. A side flips ownership only when exactly one main side has units inside the radius and that side differs from the current owner. Empty scans and contested scans do not reset the field to neutral (Server/Server_Oilfields.sqf:655-684). Resistance units do not own the field, but they count as enemy presence for sabotage (Server/Server_Oilfields.sqf:686-692).

Sabotage and repair are default-on:

State Default Rule Source
Sabotage enabled 1 Enemy of holder dwells in radius while holder is cleared. Common/Init/Init_CommonConstants.sqf:368-369; Server/Server_Oilfields.sqf:686-710
Sabotage time 45 seconds Accumulates in scan-tick increments; owner presence resets progress. Common/Init/Init_CommonConstants.sqf:369; Server/Server_Oilfields.sqf:694-710
Repair time 40 seconds Holder dwells while enemy is absent; engineer or repair-truck doubles per-tick progress. Common/Init/Init_CommonConstants.sqf:370; Server/Server_Oilfields.sqf:711-733
FX cadence 18 seconds Burning field keeps fire/smoke alive until repair or game over. Common/Init/Init_CommonConstants.sqf:371; Server/Server_Oilfields.sqf:35-42

Income uses the normal side-supply path. While held by WEST or EAST and not sabotaged, the loop pays default 25 supply every default 60 seconds until the per-round cap reaches default 15000 (Common/Init/Init_CommonConstants.sqf:354-356; Server/Server_Oilfields.sqf:735-753). The call is:

[_owner, _pay, Format ["OILFIELD passive income (held by %1).", str _owner], true] Call ChangeSideSupply;

The fourth argument is true, so the same no-player stagnation coefficient path used by town supply income applies to oilfield income (Server/Server_Oilfields.sqf:745-747).

AICOM Pull And GUER Raids

The oilfield does not become a town. Instead, when WFBE_C_OILFIELD_AICOM_PULL=1, the worker finds the nearest real town and adds a temporary wfbe_aicom_town_weight bonus for each AI side that does not currently hold the field (Common/Init/Init_CommonConstants.sqf:374-375; Server/Server_Oilfields.sqf:490-547, :756-760). The script records the exact town and delta in WFBE_OILFIELD_PULL_<side> so it can subtract that same delta later and avoid leaving permanent town-weight drift (Server/Server_Oilfields.sqf:505-547, :770-773).

Optional GUER raids are intentionally default-off:

Constant Default Meaning Source
WFBE_C_OILFIELD_GUER_RAID 0 Enables occasional resistance foot raids while the field is paying. Common/Init/Init_CommonConstants.sqf:376; Server/Server_Oilfields.sqf:556-559
WFBE_C_OILFIELD_GUER_RAID_INTERVAL 1500 Minimum seconds between raid spawns. Common/Init/Init_CommonConstants.sqf:377; Server/Server_Oilfields.sqf:559-561
WFBE_C_OILFIELD_GUER_RAID_SIZE 4 Foot raiders per party. Common/Init/Init_CommonConstants.sqf:378; Server/Server_Oilfields.sqf:572-583
WFBE_C_OILFIELD_GUER_RAID_GRPCAP 120 Skip raid when resistance group count is at or above this cap. Common/Init/Init_CommonConstants.sqf:379; Server/Server_Oilfields.sqf:562-567

When enabled, the raid helper uses the shared group/unit creation idioms, spawns around the field rather than on top of it, assigns an AIPatrol loop centered on the field, and emits an OILFIELD|v2|GUERRAID RPT line (Server/Server_Oilfields.sqf:568-590).

State Variables And Telemetry

Name or prefix Producer Purpose Source
WFBE_OILFIELD_POS_LIVE Placement resolver Final node position after dynamic/fallback resolution. Server/Server_Oilfields.sqf:224-226
WFBE_OILFIELD_OBJS Derrick composition Dynamic-placement object list. Server/Server_Oilfields.sqf:228-274
WFBE_OILFIELD_DERRICK_OBJ Derrick composition Pumpjack object used as the FX anchor. Server/Server_Oilfields.sqf:264-268
WFBE_OILFIELD_OWNER Unlock and live loop Current owner, starting as sideLogic neutral sentinel. Server/Server_Oilfields.sqf:394-397, :667, :765-767
WFBE_OILFIELD_SABOTAGED Unlock and sabotage loop Healthy/paying vs burning/not-paying state. Server/Server_Oilfields.sqf:394-397, :701-728
WFBE_OILFIELD_INCOME_ACCRUED Income loop Lifetime supply paid this round. Server/Server_Oilfields.sqf:735-753, :765-767
WFBE_OILFIELD_PULL_<side> AICOM pull helper Server-local record of nearest-town weight delta to clean up later. Server/Server_Oilfields.sqf:505-547
WFBE_OILFIELD_GUER_LAST GUER raid helper Last raid timestamp for interval gating. Server/Server_Oilfields.sqf:556-589
`OILFIELD ...` RPT lines Worker phases Init, premarker, unlock, capture, sabotage, repair, income, composition and GUER raid observability.

Tunables

These values are constants in Common/Init/Init_CommonConstants.sqf, not lobby-visible Rsc/Parameters.hpp rows in this snapshot.

Constant Default Operational meaning Source
WFBE_C_OILFIELD_ENABLE 1 Master enable; still inert off Takistan because of world gates. Common/Init/Init_CommonConstants.sqf:348
WFBE_C_OILFIELD_UNLOCK_TIME 3600 In-game seconds before live capture and income. :349
WFBE_C_OILFIELD_POS [4600, 6200, 0] Legacy fallback anchor. :350
WFBE_C_OILFIELD_ANCHOR_SEARCH 1200 Radius for fallback oil/fuel object search. :351
WFBE_C_OILFIELD_RADIUS 120 Capture, sabotage and repair radius. :352
WFBE_C_OILFIELD_SCAN_INTERVAL 15 Live loop scan cadence, floored to 5 seconds. :353; Server/Server_Oilfields.sqf:607
WFBE_C_OILFIELD_INCOME_INTERVAL 60 Pay cadence while held and healthy. :354
WFBE_C_OILFIELD_INCOME_SUPPLY 25 Side supply per pay tick. :355
WFBE_C_OILFIELD_INCOME_CAP 15000 Lifetime per-round payout cap. :356
WFBE_C_OILFIELD_MARKER_TYPE mil_circle Global marker shape. :357
WFBE_C_OILFIELD_MARKER_TEXT OILFIELD Base marker label. :358
WFBE_C_OILFIELD_OPEN_MSG text Unlock announcement. :359
WFBE_C_OILFIELD_PREMARK 1 Pre-unlock countdown marker. :361
WFBE_C_OILFIELD_PREMARK_UPDATE 30 Countdown label cadence, floored to 10 seconds. :362; Server/Server_Oilfields.sqf:344-345
WFBE_C_OILFIELD_PREMARK_COLOR ColorYellow Countdown marker color. :363
WFBE_C_OILFIELD_PREMARK_LABEL OILFIELD - opens in %1 Countdown text format. :364
WFBE_C_OILFIELD_PREMARK_T5_MSG text One-shot 5-minute warning. :365
WFBE_C_OILFIELD_MARKER_LIVE 1 Live owner/income/sabotage marker label. :367
WFBE_C_OILFIELD_SABOTAGE 1 Sabotage and repair loop. :368
WFBE_C_OILFIELD_SABOTAGE_SECS 45 Enemy dwell seconds to sabotage. :369
WFBE_C_OILFIELD_REPAIR_SECS 40 Owner dwell seconds to repair. :370
WFBE_C_OILFIELD_SMOKE_INTERVAL 18 Smoke refresh cadence while sabotaged. :371
WFBE_C_OILFIELD_SABOTAGE_MSG text Sabotage announcement. :372
WFBE_C_OILFIELD_REPAIR_MSG text Repair announcement. :373
WFBE_C_OILFIELD_AICOM_PULL 1 Nearest-town weight pull for AI sides that do not hold the field. :374
WFBE_C_OILFIELD_AICOM_WEIGHT 600 Temporary town-weight bonus magnitude. :375
WFBE_C_OILFIELD_GUER_RAID 0 Optional resistance raid party spawns. :376
WFBE_C_OILFIELD_GUER_RAID_INTERVAL 1500 Minimum seconds between GUER raids. :377
WFBE_C_OILFIELD_GUER_RAID_SIZE 4 GUER raiders per party. :378
WFBE_C_OILFIELD_GUER_RAID_GRPCAP 120 Resistance group cap guard. :379
WFBE_C_OILFIELD_DYNAMIC 1 HQ-midpoint dynamic placement vs legacy fallback. :381
WFBE_C_OILFIELD_HQ_WAIT 600 Max HQ wait before fallback. :382
WFBE_C_OILFIELD_RING_STEP 100 Dynamic ring-search step. :383
WFBE_C_OILFIELD_RING_MAX 2000 Dynamic ring-search max radius. :384
WFBE_C_OILFIELD_FLAT_Z 0.90 Minimum surface-normal Z for placement. :385
WFBE_C_OILFIELD_ROAD_CLEAR 60 Candidate road clearance. :386
WFBE_C_OILFIELD_TOWN_CLEAR 500 Candidate town-center clearance. :387
WFBE_C_OILFIELD_HOUSE_CLEAR 80 Candidate building clearance. :388

Operational Notes

  • This is a Takistan identity feature, not a Chernarus feature. WFBE_C_OILFIELD_ENABLE=1 alone is not enough to run it off Takistan because both the server launcher and worker have world gates.
  • The base feature is intentionally light: one server-side loop, no standing guards, one marker, and no town FSM. Turning on GUER raids changes that footprint by adding resistance groups.
  • The live label and RPT telemetry are the fastest smoke-test clues. Expected markers include OILFIELD|v1|INIT, OILFIELD|v1|UNLOCK, OILFIELD|v1|CAPTURE, OILFIELD|v1|INCOME, plus OILFIELD|v2|SABOTAGE and OILFIELD|v2|REPAIR when sabotage is exercised.
  • No WFBE_C_OILFIELD_* lobby parameter rows were found in either maintained Rsc/Parameters.hpp file during this refresh, so host-level tuning currently means changing constants rather than using the mission lobby.

Continue Reading

Sidebar

Clone this wiki locally