Skip to content

Takistan Parity Reference

rayswaynl edited this page Jul 3, 2026 · 1 revision

Takistan Parity Reference

Source-verified 2026-07-03 against origin/claude/build84-cmdcon36@5fca32390. Unless noted, paths are relative to Missions/[55-2hc]warfarev2_073v48co.chernarus/; paths prefixed Missions_Vanilla/[61-2hc]...takistan/ are the maintained Takistan target. This is a wiki-only lane-315 reference; no mission source, LoadoutManager output, package artifact, live server or runtime state changed.

This page separates three ideas that are easy to mix together:

  • Legitimate divergence: files or constants that must differ because Chernarus and Takistan use different factions, map flags, airports, towns, artillery sets or database ids.
  • Mirror-maintained parity: shared SQF that should stay byte-identical through the LoadoutManager path, with worldName or preprocessor branches where behavior needs to differ.
  • Parity hazards: places that look shared but carry Chernarus assumptions into Takistan.

The older docs/design/TK-DEEP-PARITY.md audit named several hazards. Current source at 5fca32390 has already implemented many of them, so treat this page as the current-head routing layer before opening a source lane.

Fast Route

Question Current answer Primary source
Is Takistan still just a generated copy of Chernarus? No. Most shared SQF remains mirror-maintained, but map flags, mission.sqm, artillery/help/config files, Config_GUE.sqf, Init_Server.sqf DB id and version.sqf.template legitimately differ. version.sqf.template:7-13; Takistan version.sqf.template:7-13; Server/Init/Init_Server.sqf:1214-1217; Takistan Server/Init/Init_Server.sqf:1214-1217; Takistan mission.sqm:60-61
How does the code know it is on Takistan? Takistan leaves IS_CHERNARUS_MAP_DEPENDENT and IS_NAVAL_MAP commented, so runtime booleans select the Takistan/non-naval branch. Takistan version.sqf.template:7-9; initJIPCompatible.sqf:15-17, :128-131, :380-397
Is STARTING_DISTANCE 7500 still proportionally too tight on Takistan? The template is still 7500, but runtime now rewrites the default to 6300 on Takistan to match Chernarus's map-width ratio. version.sqf.template:13; Takistan version.sqf.template:13; initJIPCompatible.sqf:22-28
Are the old AICOM slope/recovery-Z hazards still unbranched? No. Recovery slope, recovery road radius and careful-gear slope now branch for Takistan. Common/Init/Init_CommonConstants.sqf:937-938, :1218-1223; Common/Functions/Common_RunCommanderTeam.sqf:1072-1083, :1312-1316
Is the SCUD/TEL range still map-blind at 10350? No. Conventional TEL range is now 10350 on Chernarus and 8240 on Takistan. Common/Init/Init_CommonConstants.sqf:940-950; Server/Init/Init_IcbmTel.sqf:378-382
Are Takistan airfields still thin and Balota-only-special? No. The generic Takistan pool is still small, but Rasman and Loy Manara now get Takistan EASA exclusive rows through WFBE_AIRFIELD_UNITS_SPECIAL. Common/Init/Init_Common.sqf:410-422, :424-445
What still deserves attention? Base-egress map bounds are implemented but default-off; GUER fallback classnames still use GUE_*; a capturable land SCUD-site HVT remains a design lane rather than current source. Common/Init/Init_CommonConstants.sqf:1162; Server/Init/Init_Server.sqf:382-389; Takistan Server/Config/Config_GUE.sqf:86-88; Server/Init/Init_IcbmTel.sqf:78-95; Client/Functions/Client_BuildUnit.sqf:410-418

Map Flags And Faction Branches

version.sqf.template is the first map split. Chernarus defines both IS_CHERNARUS_MAP_DEPENDENT and IS_NAVAL_MAP, sets WF_MAXPLAYERS 34, and names [55] Warfare V48 Chernarus (version.sqf.template:7-13). Takistan comments both map flags, sets WF_MAXPLAYERS 61, and names [61] Warfare V48 Takistan (Takistan version.sqf.template:7-13).

At runtime, initJIPCompatible.sqf initializes IS_naval_map = false and only flips it inside #ifdef IS_NAVAL_MAP (initJIPCompatible.sqf:15-17). It also initializes IS_chernarus_map_dependent = false and flips that inside #ifdef IS_CHERNARUS_MAP_DEPENDENT (initJIPCompatible.sqf:128-131). The later faction booleans follow that flag: Chernarus sets Russian/Takistan to true/false, while Takistan sets false/true; the American faction flag stays true on both maps (initJIPCompatible.sqf:380-397).

That makes the preprocessor branch a content/faction switch, not a numeric tuning mechanism. Numeric tuning should use explicit worldName or WFBE_BOUNDARIESXY branches so the reason for the split is visible.

Legitimate Divergence

These differences should not be "fixed" by copying Chernarus over Takistan:

Divergence Why it is legitimate Source
version.sqf.template flags, max players and mission name Per-map generated/runtime identity. version.sqf.template:7-13; Takistan version.sqf.template:7-13
mission.sqm Terrain object graph, towns, airports, starts and editor-only map data are not mirrored by LoadoutManager. Takistan mission.sqm:43-61, :665-672, :847-854
Server/Init/Init_Server.sqf database map id AntiStack DB map id is 1 for Chernarus and 2 for Takistan. Server/Init/Init_Server.sqf:1214-1217; Takistan Server/Init/Init_Server.sqf:1214-1217
Server/Config/Config_GUE.sqf resistance templates Chernarus uses GUE_*; Takistan uses TK_GUE_*_EP1 and PMC infantry in its hand-authored templates. Server/Config/Config_GUE.sqf:9-17, :27-35, :63-71; Takistan Server/Config/Config_GUE.sqf:9-17, :27-35, :63-71
Artillery/help/map asset files They are faction/map content, not shared behavior logic. Common/Config/Core_Artillery/*; Client/GUI/GUI_Menu_Help.sqf

The current Takistan mission.sqm also carries parity fixes that are supposed to stay Takistan-local: all seven TownMode removal arrays exist on WF_Logic (mission.sqm:60-61), and both Takistan airport logics set wfbe_skip_auto_hangar before disabling simulation (mission.sqm:665-672, :847-854). Init_TownMode.sqf consumes the three optional arrays at cases 5, 6 and 7, then falls back to all towns if the selected array is nil (Common/Init/Init_TownMode.sqf:6-16).

Current World-Branched Fixes

These were previously parity hazards in the deep audit, but current source has map branches or Takistan-specific wiring:

Area Current Chernarus / Takistan behavior Source
Map boundaries WFBE_BOUNDARIESXY is 15360 on Chernarus and 12800 on Takistan. Common/Init/Init_Boundaries.sqf:4-9
Starting distance Template stays 7500; Takistan runtime changes default 7500 to 6300 for map-fraction parity. initJIPCompatible.sqf:22-28
AICOM road standoff Takistan uses 40, non-Takistan 24. Common/Init/Init_CommonConstants.sqf:338
AICOM road-route lane offset Takistan uses 60, non-Takistan 120; AssignTowns and command-execute paths read the tunable. Common/Init/Init_CommonConstants.sqf:342; Server/AI/Commander/AI_Commander_AssignTowns.sqf:714-719; Server/AI/Commander/AI_Commander_Execute.sqf:86-112
Road-route snap radius Shared 250 snap radius keeps long legs from silently dropping into beeline gaps. Common/Init/Init_CommonConstants.sqf:341; Common/Functions/Common_BuildRoadRoute.sqf:47-58
AICOM recovery slope and road radius Takistan recovery uses 0.80 and 300; non-Takistan uses 0.85 and 200. Common/Init/Init_CommonConstants.sqf:937-938; Common/Functions/Common_RunCommanderTeam.sqf:1072-1083
AICOM careful-gear slope Takistan uses 0.80, non-Takistan 0.86. Common/Init/Init_CommonConstants.sqf:1218-1223; Common/Functions/Common_RunCommanderTeam.sqf:1312-1316
SCUD/TEL conventional range Takistan uses 8240; non-Takistan uses 10350. Common/Init/Init_CommonConstants.sqf:940-950; Server/Init/Init_IcbmTel.sqf:378-382
Takistan bought SCUD Takistan can expose a Heavy Factory MAZ_543_SCUD_TK_EP1 conventional platform when the flag is on. Common/Init/Init_CommonConstants.sqf:971-981; Client/Functions/Client_BuildUnit.sqf:410-418
Takistan airfield specials Rasman and Loy Manara receive Takistan EASA-exclusive rows; Balota remains the Chernarus special. Common/Init/Init_Common.sqf:424-445
Takistan oilfields Server launches the oilfield worker only on Takistan with the enable flag on. Server/Init/Init_Server.sqf:1007-1012

Current Watch Items

Item Current state Next safe action
Base-egress map bounds The egress guard can read WFBE_BOUNDARIESXY, but WFBE_C_BASE_EGRESS_MAP_BOUNDS defaults 0, so the legacy 15360 box remains active unless an owner enables it. If Takistan starts still hug the true north/east edges, claim a narrow source lane to default this on or branch the default by worldName; smoke random start candidate logs.
GUER fallback classnames Takistan resistance squad templates are correct, but WFBE_GUERRESCREW, WFBE_GUERRESSOLDIER and WFBE_GUERRESPILOT still point at GUE_* fallbacks in both roots. Audit individual fallback consumers before changing them; do not rewrite the hand-authored Takistan templates.
Land SCUD-site HVT Current source has research TEL and bought SCUD platforms, but no capturable Takistan town/HVT site equivalent to the carrier-HVT objective. Use Shelved PR #309: TK SCUD site objective as prior art; keep it distinct from the shipped TEL/bought-SCUD paths.
Airfield roster growth The old "Balota-only special" issue is fixed, but the generic Takistan pool remains intentionally small. Future content lanes should extend WFBE_AIRFIELD_UNITS or the EASA-exclusive roster with source-backed balance notes, not duplicate Chernarus blindly.

Editing Rules

  • Shared behavior changes start in Missions/[55-2hc]warfarev2_073v48co.chernarus/ and propagate through LoadoutManager.
  • Takistan mission.sqm changes are hand-edits by nature. Validate quotes/braces, array names and object counts; the mirror will not carry them.
  • Config_GUE.sqf, artillery files, help text and version templates are legitimate per-map content. Compare intent before copying.
  • When an old TK-DEEP-PARITY action appears in a prompt, recheck this page and current source first; several old action labels are now implemented.

Continue Reading

Sidebar

Clone this wiki locally