Skip to content

Warfare Web Tools

rayswaynl edited this page Jul 6, 2026 · 2 revisions

Warfare Web Tools

Scope. This page catalogs the browser-based Warfare tool suite: eight standalone public repos under github.com/rayswaynl, each a single-file offline web app deployed on GitHub Pages and embedded on the community site at https://miksuu.com/tools/<slug>. They are external tooling artifacts, not runtime mission SQF — nothing here ships in the mission or is read by the game. Their job is to author or patch specific a2waspwarfare source files with byte-stable round-trips, producing paste-ready output that still goes through the normal PR flow (see Current-Live-State). https://miksuu.com/llms.txt lists all eight with source links.

WDDM disambiguation. "WDDM" also names the in-mission commander-positions feature this tool authors layouts for (WDDM-authored commander-buildable defense positions, landed via the cmdcon44 chain) — the mission-side runtime is documented at Flak tower & WDDM anchor compositions; the historical branch audit is Commander-Positions-Branch-Audit. The browser tool below is the editor, not the runtime. When you see "WDDM" elsewhere in the wiki, check which of the two is meant before acting.

WDDM — Warfare Dynamic Defense Manager

Field Value
Repo https://github.com/rayswaynl/WDDM
Live URL https://rayswaynl.github.io/WDDM/
Embedded at https://miksuu.com/tools/wddm
Round-trips with missionNamespace setVariable ['WFBE_NEURODEF_*', ...] defense-composition blocks (e.g. WFBE_NEURODEF_HEADQUARTERS_WALLS) pasted into Server/Init/Init_Defenses.sqf, consumed by Server/Functions/Server_CreateDefenseTemplate.sqf; project JSON is the source of truth under the mission repo's docs/design/compositions/*.wddm.json, converted by Tools/WddmToSqf/wddm_to_sqf.py — the JSON schema and SQF shape are compatibility contracts
Data source arma2-co-config-reference (Config/CfgVehicles.txt + Images/) via tools/gen_assets.py; hand-curated top-down sprites
Mission-side runtime Flak tower & WDDM anchor compositions — the anchor ghost -> RequestDefense -> Server_ConstructPosition -> HandleDefense pipeline that consumes these compositions in-game
Agent docs AGENTS.md at repo root

Loadout Lab

Field Value
Repo https://github.com/rayswaynl/loadout-lab
Live URL https://rayswaynl.github.io/loadout-lab/
Embedded at https://miksuu.com/tools/loadout-lab
Round-trips with WFBE_%1_DefaultGear<Role> and WFBE_%1_AI_Loadout_<tier> setVariable blocks → the faction Root_*.sqf under Common/Config/Core_Root/; buy-menu presets → Loadout_<faction>.sqf (via Config_SetTemplates.sqf); gear-catalog shop registration lines → Gear_<faction>.sqf (via Config_Weapons.sqf / Config_Magazines.sqf). Import → re-export of a [weapons, magazines, muzzles] triple stays semantically identical (tested gate)
Data source arma2-co-config-reference (CfgWeapons/CfgMagazines/CfgVehicles.txt + Images/); seed loadouts extracted from the mission's Root_*.sqf
Agent docs AGENTS.md at repo root

Sector & Town Planner

Field Value
Repo https://github.com/rayswaynl/sector-planner
Live URL https://rayswaynl.github.io/sector-planner/
Embedded at https://miksuu.com/tools/sector-planner
Round-trips with mission.sqm — loaded-file mode edits a pasted mission.sqm in place (no-op download is byte-for-byte identical; only touched towns' position[]= / init= lines and presets change); can also generate a complete playable mission.sqm + [NN-2hc]warfarev2_073v48co.<world> folder. Towns are LocationLogicDepot logics whose init= calls Common\Init\Init_Town.sqf; WF_Logic carries totalTowns + the Towns_Removed* preset arrays
Data source Seed campaigns extracted from the mission's Chernarus/Takistan mission.sqm; world sizes + named locations from arma2-co-config-reference Config/CfgWorlds.txt
Agent docs AGENTS.md at repo root

Strategy & Economy

Field Value
Repo https://github.com/rayswaynl/strategy-economy
Live URL https://rayswaynl.github.io/strategy-economy/
Embedded at https://miksuu.com/tools/strategy-economy
Round-trips with Paste-and-patch of Common/Config/Core_Upgrades/Upgrades_<F>.sqf (only the six WFBE_C_UPGRADES_%1_{ENABLED,LEVELS,COSTS,TIMES,LINKS,AI_ORDER} setVariable arrays you changed are rewritten) and Common/Init/Init_CommonConstants.sqf (economy WFBE_C_ECONOMY_* + AI WFBE_C_AI* constants). No-op export is byte-for-byte identical (tested gate)
Data source Seed JSONs extracted from the mission by tools/extract_strategy.py (Init_CommonConstants.sqf, Upgrades_<F>.sqf, Labels_Upgrades.sqf); the committed seeds snapshot an older mission state — read the repo AGENTS.md staleness note before regenerating
Agent docs AGENTS.md at repo root

Garrison & AI Groups Editor

Field Value
Repo https://github.com/rayswaynl/garrison-editor
Live URL https://rayswaynl.github.io/garrison-editor/
Embedded at https://miksuu.com/tools/garrison-editor
Round-trips with Common/Config/Groups/Groups_<F>.sqf (the _k/_u/_l triplet blocks per template variant) and Server/Functions/Server_GetTownGroupsDefender.sqf (the per-town-type case "<TownType>": { _units=...; _percentage_inf=N; _groups_max=M; }; blocks + default). Patch mode: a no-op export is byte-identical including CRLF/LF (tested gate)
Data source Mission Groups_*.sqf + Server_GetTownGroupsDefender.sqf via extractors; unit catalog + thumbnails from arma2-co-config-reference
Agent docs AGENTS.md at repo root

Faction Builder

Field Value
Repo https://github.com/rayswaynl/faction-builder
Live URL https://rayswaynl.github.io/faction-builder/
Embedded at https://miksuu.com/tools/faction-builder
Round-trips with Emits a full new-faction file set zipped under mission paths: Common\Config\Core\Core_<TOK>.sqf, Core_Root\Root_<TOK>.sqf, Core_Structures\Structures_<TOK>.sqf, Core_Units\Units_<TOK>.sqf (the WFBE_%1{BARRACKS,LIGHT,HEAVY,AIRCRAFT,DEPOT,DEFENSE}UNITS buy lists), GUE-cloned defaults (Upgrades_/Squad_/Artillery_/Defenses_/Gear_/Groups_/Loadout_<TOK>.sqf), plus a README with the two manual registration patches for Init\Init_CommonConstants.sqf (WFBE_C_UNITS_FACTIONS_<SIDE>) and Init\Init_Common.sqf (#include lines). Hands off to the sibling tools via the shared wasp-faction-handoff localStorage key
Data source Faction template extracted from the mission's GUE faction SQF; ~1300-entry unit catalog + thumbnails from arma2-co-config-reference
Agent docs AGENTS.md at repo root

EASA Loadouts

Field Value
Repo https://github.com/rayswaynl/easa-loadouts
Live URL https://rayswaynl.github.io/easa-loadouts/
Embedded at https://miksuu.com/tools/easa-loadouts
Round-trips with The mission's EASA aircraft/helicopter/vehicle weapon-loadout table (the EASA module data under Client/Module/EASA/, e.g. EASA_Init.sqf) — the tool registry promises byte-identical import → re-export of the EASA table. Exact file/variable contract is not yet pinned down in agent docs; verify against the repo README before relying on it
Data source Not documented in an AGENTS.md yet; check the repo README
Agent docs None yet — the only suite repo without a root AGENTS.md

WF Menu / HUD Designer

Field Value
Repo https://github.com/rayswaynl/wf-menu-designer
Live URL https://rayswaynl.github.io/wf-menu-designer/
Embedded at https://miksuu.com/tools/wf-menu-designer
Round-trips with Exports a <DisplayName>.hpp class block that is a drop-in replacement for the same class inside the mission's Rsc/Dialogs.hpp (full-screen dialogs) or Rsc/Titles.hpp (HUD RscTitles). Fidelity contract: each control emits : BaseClass with only the delta props, keeps WFBE_* macro names (never expanded to RGBA), preserves sub-class blocks verbatim; import accepts any pasted display block and round-trips it
Data source ui.json parsed from the mission's Rsc/Styles.hpp, Rsc/Ressources.hpp, Rsc/Dialogs.hpp, Rsc/Titles.hpp by tools/extract_dialogs.py
Agent docs AGENTS.md at repo root

When to use a tool vs editing source directly

Use a tool when the change is data-shaped and lands in a file the tool round-trips: defense compositions, infantry loadouts, town layout and supply values, upgrade costs and economy constants, garrison tables and squad rosters, faction scaffolding, EASA loadout rows, dialog geometry. The byte-stable round-trip means the resulting mission diff touches only the intended lines. Edit mission source directly for logic changes, new systems, or any file outside the tables above — and never hand-mimic a tool's generated output format, since the shapes are parsed downstream (e.g. Tools/WddmToSqf). Either way the output reaches the mission only as a normal PR against the base branch; the tools deploy nothing.

Tool deploy model: every push to main in a tool repo is a production deploy — GitHub Pages rebuilds within ~1-2 minutes, index.html IS production (no build step, no CI gate), and the miksuu.com iframe embed picks the new version up automatically. Read the repo's AGENTS.md before touching anything: single-file rule, generated-artifact rules (never hand-edit assets/data/*.json), and export byte-compatibility promises are hard rules in every documented repo.

Sidebar

Clone this wiki locally