Arma Reforger · Online Manual

STW Stronghold

A Game Master and server-side stronghold generator for Arma Reforger. Turn a suitable building or area into a faction-aligned AI position with garrisons, elevated shooters, patrols, a fist marker, and a controlled lifecycle.

Game Master draftsFaction AI garrisonsPatrols and shootersTimed lifecycleOptional auto-spawn

What STW Stronghold adds

STW Stronghold analyzes a selected building or location for viable interior garrison positions, elevated firing positions, and patrol routes. It generates faction-aligned AI that is owned by the stronghold, so the whole encounter can be managed through its marker and cleaned up safely.

Garrison

Populate eligible buildings with a limited number of faction soldiers, avoiding unsuitable specialist roles for ordinary garrison slots.

Defensive patrols

Create nearby and surrounding patrol groups which cycle through inner and outer routes around the defended area.

Lifecycle control

Use a time to live, player protection, optional lifetime refresh on entry, and soldier-loss cleanup to keep active encounters alive without leaving AI behind forever.

Defeated strongholds: the server checks every five minutes whether the configured share of a stronghold's originally spawned soldiers has been lost. At the default soldierLossRemovalPercentage of 85, it removes the stronghold and its remaining STW-owned AI. Set the value from 1 to 100 in STWStrongholdConfig.json; only generated soldiers count.

Game Master: create and manage a stronghold

Quick workflow

  1. Open Game Master and use the STW Stronghold placement/context workflow to create a draft fist marker at the building or location to defend.
  2. Open the draft's STW Generate Stronghold dialog. Select a faction from the available choices.
  3. Set the desired garrison, patrol, shooter, area, lifetime, and room-guard values.
  4. Select GENERATE. The authoritative server analyzes the area and creates the stronghold only if it finds eligible positions.
  5. Use the resulting fist marker for management. Deleting it removes STW-owned AI and the marker, but preserves any entity a player controls.
Placement tip: multi-storey buildings, towers, and sites with usable interior space normally yield the best results. A draft can fail if there are no eligible garrison or shooter positions; move it to a more suitable building and try again.

Dialog settings

ControlWhat it changes
FactionThe loaded, configured faction used for generated AI.
Max buildings / units per buildingHow many suitable buildings are occupied and each building's garrison density.
Room guards (%)The percentage of each building's interior garrison assigned to hold its room/post. Room guards are selected from the highest available interior posts first.
Room guard radius (m)How far a room guard may move autonomously from its defend anchor while fighting. A tight radius keeps defenders from chasing attackers out of the building.
Nearby / surrounding patrolsPatrol groups on inner and outer routes around the defended location.
Roof / high-position shootersWhether elevated positions are used when the area supports them.
Max shooters / total unitsCaps elevated defenders and the total generated force.
Covering radiusThe area used for analysis and patrol generation.
Time to liveWhen normal cleanup can begin; player-protection settings can defer or refresh expiry.

Requests are validated: 1–10 buildings, 1–12 units per building, 0–8 nearby/surrounding patrols, 0–12 shooters, 0–100% room guards, a 1–30 m room-guard radius, 1–80 total units, a 50–1000 m radius, and a 0.25–168 hour lifetime. The server-wide total-unit cap can reduce a request further.

Supported factions

The default configuration supports US, USSR, FIA, RHS_USAF, and RHS_AFRF. A faction appears in the Game Master selector only when its key is in supportedFactionKeys and that faction is loaded in the active scenario. RHS selections therefore appear only when their content is present.

PLASTICBANDIT support: STW Stronghold supports PLASTICBANDIT when the Plastic Bandits faction mod is loaded. It uses explicit vetted pools for garrison soldiers and high-position shooters, so the supplied RPG asset is not selected. It is not in the default allow-list: add it to supportedFactionKeys in STWStrongholdConfig.json and restart the server.

For other configured factions, Stronghold selects combat-capable characters from the faction's loaded character catalog. Regular garrisons exclude AT/RPG, engineer, medic, grenadier, pilot, driver, and crew roles. Elevated shooters preferentially use marksman, sniper, DMR, or sharpshooter roles.

Optional patrol-vehicle content

Joint Light Tactical Vehicle (5C721177A220B42F) and HMMWV Variants (69F415A5B15EC350) are optional content sources for Stronghold jeep patrols. The vehicle catalog considers their armed variants only when creating a patrol and validates every prefab before it is used.

ContentHow it is usedFallback
HMMWV VariantsContributes the expanded armed US HMMWV/M1045/M1113/M1114/M1151/M1165 vehicle pool for RHS_USAF strongholds.Stronghold tries the standard RHS HMMWV, Tactical Flava M1151, then the vanilla armed M1025.
Joint Light Tactical VehicleContributes armed JLTV CROWS and OGPK variants to that same expanded RHS_USAF patrol-vehicle pool.It moves on to the next valid vehicle candidate; no separate configuration is needed.
Why they are listed in the project: their GUIDs appear in Stronghold's project dependency list, but the jeep system treats their prefabs as runtime candidates. If a candidate cannot be loaded, it is ignored rather than preventing Stronghold from generating its core encounter.

Soft dependencies and optional mod support

STW Stronghold is designed to run with its vanilla content alone. The integrations below are detected at runtime: if the relevant mod or asset is absent, Stronghold keeps running and either uses an available fallback or skips only that optional feature. Load optional content on the server and in the scenario in the normal way; adding a faction key to configuration does not load its mod.

Optional mod/contentWhat Stronghold usesWhen it is unavailable
RHS - Status Quo (RHS_USAF / RHS_AFRF)RHS factions can supply the garrison, high-position shooters, patrol-jeep candidates, and faction-specific arsenal boxes. In faction discovery mode, RHS represents the corresponding US or USSR side when present.Vanilla US and USSR remain usable. Missing RHS vehicle or arsenal prefabs are rejected before use, and Stronghold tries another suitable vehicle or its safe arsenal fallback.
Plastic Bandits (PLASTICBANDIT)Uses dedicated, vetted garrison and shooter pools because this faction's catalog names are randomized. The RPG character is deliberately excluded from normal garrison selection.The faction is simply not offered. To enable it when loaded, add PLASTICBANDIT to supportedFactionKeys and restart the server.
Tactical FlavaIts armed M1151 is considered as an additional candidate for US-aligned jeep patrols.Stronghold falls through to RHS or vanilla vehicle candidates. Jeep patrols are skipped only if no valid local road route and vehicle candidate are available.
STW Heavy WeaponsProvides the optional road-checkpoint creation API used by Generate Road Checkpoints. Stronghold passes the selected faction, road position, size, and optional guard-count override to it.Core stronghold generation continues. Requested checkpoints are skipped and a server warning explains that Heavy Weapons may not be ready.
Related STW mods: Stronghold does not require STW Armored Spawner, STW Bases Generator, or any other STW population system. References to STW Bases Generator/Heavy Weapons arsenal assets are to vetted prefabs used by Stronghold itself; the arsenal feature does not need those mods installed.

General faction support: other loaded factions with a usable infantry catalog can also be discovered or allow-listed. They are content sources rather than named dependencies; for unfamiliar factions, Stronghold uses its role filtering and uses the FIA arsenal as the safe fallback when no dedicated arsenal is known.

Server setup

  1. Install and enable STW Stronghold, then start the scenario once on the authoritative server.
  2. The core configuration is created at $profile:STW/Stronghold/STWStrongholdConfig.json.
  3. Stop the server before changing JSON. Restart afterwards; invalid values are normalized and saved.
  4. Automatic spawning is enabled by default; set enabled to false in STWAutoStrongholdConfig.json if you want a manual-only server.
AI budget: a stronghold can create several groups. Keep the active-stronghold and total-unit limits conservative, especially when automatic spawning is also enabled.

Using STWStrongholdConfig.json

This is the core policy file for every manually generated stronghold. It is created automatically at $profile:STW/Stronghold/STWStrongholdConfig.json. Stop the server before editing it. The server validates the configuration during startup and writes the validated result back.

SettingDefaultPractical use
enabledtrueSet false to disable the core Stronghold system without uninstalling the mod.
maximumActiveStrongholds3Cap for all active strongholds. Valid range: 1–32.
maximumTotalGeneratedUnits45Server-side ceiling for one stronghold request. Game Masters can choose fewer units but cannot exceed it.
defaultPlayerProtectionRadiusMeters750 mDefault player-protection distance used by lifecycle behavior. Minimum: 100 m.
defaultMarkerZoomThreshold0Default marker zoom filter. Zero means markers are not hidden by zoom; increase it for a closer-view-only marker.
soldierLossRemovalPercentage85Removes a stronghold when this percentage of its originally generated soldiers has been lost. The server checks every five minutes; valid range: 1–100. Only soldiers count.
guardedRoomDefenderPercentage50Default room-guard percentage for new GM dialogs and automatic strongholds. GMs can override it per stronghold; valid range: 0–100.
guardedRoomDefenderAutonomousRadiusMeters8 mDefault autonomous movement radius for room guards in new GM dialogs and automatic strongholds. GMs can override it per stronghold; valid range: 1–30 m.
defaultDeferCleanupWhilePlayersNearbytrueDefers normal expiry cleanup while players are inside the protected area.
defaultRefreshTimeToLiveOnPlayerEntrytrueRefreshes the lifetime when a player enters, allowing an active encounter to persist.
preserveDeadBodiesOnDefeatOrExpiryfalseWhen true, killed Stronghold soldiers remain after soldier-loss defeat or time-to-live expiry for the scenario garbage system or manual cleanup. Surviving soldiers are still removed; Game Master removal still removes bodies.
defaultPreviewFactionKeyUSSRInitial Game Master draft selection. It does not make an unloaded faction selectable.
supportedFactionKeys[]Empty discovers every loaded faction with a usable infantry catalog. Add faction keys to make an explicit Game Master allow-list.
deployAPMines
deployATMines
perimeterAPMineQuota
perimeterATMineQuota
perimeterMineInnerExclusionRadiusMeters
preservePerimeterMinesOnDefeat
true / true / 12 / 4 / 35 m / falseControls perimeter AP/AT mine deployment, the protected inner radius, and whether mines remain after defeat through soldier losses.
debugLoggingfalseUse only for diagnosis, then turn it off for normal operation.

Enable PLASTICBANDIT

Add the faction key to the existing JSON array:

"supportedFactionKeys": ["US", "USSR", "FIA", "RHS_USAF", "RHS_AFRF", "PLASTICBANDIT"]

After restart, PLASTICBANDIT appears only if the scenario has actually loaded that faction. Adding the key does not load a missing mod.

Current configuration reference

STWStrongholdConfig.json

SettingDefaultMeaning
enabled
maximumActiveStrongholds
maximumTotalGeneratedUnits
true / 3 / 45Core switch and manual limits.
defaultPlayerProtectionRadiusMeters
defaultMarkerZoomThreshold
soldierLossRemovalPercentage
guardedRoomDefenderPercentage
guardedRoomDefenderAutonomousRadiusMeters
750 m / 0 / 85 / 50 / 8 mLifecycle and defender defaults.
defaultDeferCleanupWhilePlayersNearby
defaultRefreshTimeToLiveOnPlayerEntry
preserveDeadBodiesOnDefeatOrExpiry
defaultPreviewFactionKey
supportedFactionKeys
debugLogging
true / true / false / USSR / [] / falsePlayer cleanup policy, GM factions (empty discovers loaded eligible factions), and diagnostics.
deployAPMines
deployATMines
perimeterAPMineQuota
perimeterATMineQuota
perimeterMineInnerExclusionRadiusMeters
preservePerimeterMinesOnDefeat
true / true / 12 / 4 / 35 m / falsePerimeter mine deployment. Enable preservation to keep a defeated stronghold's perimeter mines.

STWAutoStrongholdConfig.json

SettingDefaultMeaning
enabled
automaticTimeToLiveHours
strongholdsPerEnabledFaction
maximumAutomaticStrongholds
maximumCombinedStrongholds
maximumAutomaticAIUnits
finiteAutomaticAIUnitsCap
minimumAutomaticGarrisonUnits
true / 4 / 1 / 10 / 10 / 80 / 150 / 4Automatic spawning and budget limits.
playerSpawnExclusionRadiusMeters
automaticStrongholdSeparationMeters
recentLocationExclusionRadiusMeters
recentLocationExclusionHours
minimumCandidateFootprintSquareMeters
minimumCandidateHeightMeters
candidateCooldownHours
1200 m / 1000 m / 1500 m / 6 / 30 m² / 4 m / 24Location safety and candidate requirements.
initialSpawnDelayMinimumMinutes
initialSpawnDelayMaximumMinutes
minimumCandidatesBeforeInitialSpawn
minimumScanProgressBeforeInitialSpawnPercent
replacementDelayMinimumHours
replacementDelayMaximumHours
destroyedStrongholdReplacementMinimumMinutes
destroyedStrongholdReplacementMaximumMinutes
5 / 10 / 12 / 10 / 2 / 6 / 15 / 45Startup and replacement pacing.
fullScanIntervalHours
scanTileSizeMeters
scanBatchIntervalSeconds
scanTilesPerBatch
difficultyPreset
6 / 500 m / 5 / 1 / STANDARDScanner pacing and difficulty choice.
lightMinimumBuildings/lightMaximumBuildings
standardMinimumBuildings/standardMaximumBuildings
heavyMinimumBuildings/heavyMaximumBuildings
1–2 / 1–3 / 2–5Built-in preset building ranges.
customMaximumUnitsPerBuilding
customMaximumBuildings
customMaximumNearbyPatrols
customMaximumSurroundingPatrols
customMaximumShooters
customMaximumTotalUnits
7 / 1 / 2 / 1 / 2 / 20Exact values used by CUSTOM.
showGameMasterDebugActions
debugLogging
enabledFactionKeys
locationBlacklistTokens
locationWhitelistTokens
militaryWeight
airfieldWeight
commandWeight
defenceWeight
logisticsWeight
industrialWeight
townWeight
villageWeight
false / false / [] / [] / [] / 100 / 95 / 90 / 85 / 75 / 60 / 50 / 40Diagnostics, filters, factions (empty discovers eligible loaded factions), and candidate weights.

Automatic strongholds

Automatic spawning is separate from Game Master drafts and is enabled by default. Its file is $profile:STW/Stronghold/STWAutoStrongholdConfig.json. The server scans the map incrementally for substantial destructible buildings, ranks the safe candidates, then makes strongholds for configured loaded factions.

How selection works: a candidate needs either the configured minimum footprint (30 m²) or height (4 m). Category weights choose the kind of place; structural score then favours larger, taller, multi-storey buildings over a nearby shed. The normal Stronghold analysis still gets the final word.

Schedule and safeguards

SettingDefaultWhat it does
enabledtrueTurns the automatic scheduler on or off. Set false for a Game-Master-only server.
initialSpawnDelayMinimumMinutes
initialSpawnDelayMaximumMinutes
15 / 45Random delay before the first attempt. The full candidate scan must finish before normal automatic placement begins.
replacementDelayMinimumHours
replacementDelayMaximumHours
2 / 6Random wait after a completed attempt before the next scheduled attempt.
destroyedStrongholdReplacementMinimumMinutes
destroyedStrongholdReplacementMaximumMinutes
15 / 45Random delay before the next automatic scheduler attempt after an automatic stronghold is defeated through its soldier-loss threshold. It schedules an attempt, not a guaranteed spawn; valid range: 0–240 minutes.
automaticTimeToLiveHours4Lifetime for automatic strongholds. The core player-entry refresh policy still applies when enabled.
strongholdsPerEnabledFaction1Target number for each faction in enabledFactionKeys that is loaded in the scenario.
maximumAutomaticStrongholds
maximumCombinedStrongholds
10 / 10Caps automatic strongholds and the combined manual-plus-automatic total.
maximumAutomaticAIUnits60Global automatic-AI budget. Use -1 to disable this safeguard; otherwise it is bounded by finiteAutomaticAIUnitsCap (150).
minimumAutomaticGarrisonUnits4Rejects an otherwise-created automatic stronghold if too few usable interior defenders were actually generated.

Location safety and scanning

The default safety distances are 1200 m from connected players and 1000 m from other automatic strongholds. A successfully used location is remembered for 6 hours within 1500 m, while a failed candidate cools down before another attempt. A defeat-triggered attempt still requires the scan and all normal candidate, player-distance, recent-location, faction, active-stronghold, and AI-budget checks to pass. These automatic-only checks never restrict manual Game Master strongholds.

Use scanTileSizeMeters (500 m), scanTilesPerBatch (1), scanBatchIntervalSeconds (5), and fullScanIntervalHours (6) to balance scanning speed against server load. Leave their defaults alone unless a particular terrain needs deliberate tuning.

Difficulty presets

PresetDefault automatic request
LIGHT1–2 buildings, 4–6 units each, 7–10 total units; no surrounding patrols.
STANDARD1–3 buildings, 6–9 units each, 12–18 total units.
HEAVY2–5 buildings, 10–14 units each, 25–30 total units.
CUSTOMUses the exact customMaximum… values for buildings, units per building, both patrol types, shooters and total units.

The three built-in building ranges are independently editable through lightMinimumBuildings/lightMaximumBuildings, standardMinimumBuildings/standardMaximumBuildings, and heavyMinimumBuildings/heavyMaximumBuildings. Automatic strongholds never occupy more than five buildings.

Choose the sort of places it finds

Category weights cover military, airfield, command, defence, logistics, industrial, town and village candidates. A weight of 0 disables that category. locationWhitelistTokens limits candidates to prefab names containing at least one listed token; locationBlacklistTokens excludes matching prefab names. Tokens are case-insensitive.

The normal replacementDelayMinimumHours/replacementDelayMaximumHours pacing still applies after a successful automatic creation, ordinary retries, lifetime expiry, or Game Master deletion of an automatic fist marker. Game Master-created strongholds never use the shorter defeat-replacement delay.

Keep showGameMasterDebugActions and debugLogging off during normal operation. The former exposes scheduler diagnostics to Game Masters; the latter adds useful but noisy server-log detail while testing.

Stronghold arsenal parameters

A stronghold can include one faction arsenal box. Stronghold tries suitable interior positions across the analyzed local buildings, including buildings not selected for the garrison. It only places the box when it finds a clear, accessible space; an unavailable safe position skips the arsenal without failing the stronghold.

Game Master parameter

ParameterDefaultBehaviour
Generate ArsenalOffRequests one arsenal for that manually generated stronghold. The generated box is an editable entity: Game Masters can select, move, or delete it.

Server configuration parameters

FileParameterDefaultBehaviour
STWStrongholdConfig.jsonpreserveArsenalOnDefeattrueWhen a stronghold is removed because it reaches the soldier-loss threshold, keep its arsenal available. Set false to remove it with the defeated stronghold. Manual deletion and ordinary lifecycle cleanup remove the arsenal.
STWAutoStrongholdConfig.jsonarsenalProbabilityPercent15Percentage of automatic strongholds that request an arsenal. Set 0 to disable automatic arsenal requests or 100 to request one for every automatic stronghold. Valid range: 0–100.

US, USSR, FIA, RHS USAF, and RHS AFRF use their faction arsenal prefab. Other factions use the FIA arsenal as a safe fallback. The arsenal itself is not an AI unit and does not consume the stronghold's unit budget.

Configuration upgrade: existing core configuration files are upgraded to configuration version 8 with preserveArsenalOnDefeat set to true; automatic configuration files are upgraded to version 5 with arsenalProbabilityPercent set to 15.

Game Master Scenario Properties: STW tab

Open Scenario Properties in Game Master and select the STW tab. Its Automatic Stronghold Generation checkbox is a live, server-authoritative switch for the current running game.

When the checkbox is changedResult
EnabledStarts automatic stronghold generation for the current session using the server's STWAutoStrongholdConfig.json settings. The initial 5–10 minute delay and normal candidate checks apply.
DisabledImmediately removes every automatically generated stronghold and stops the automatic scheduler. Manually generated strongholds remain in place.
Next game / restartThe Scenario Properties choice is not saved to JSON. The next session returns to the enabled value in STWAutoStrongholdConfig.json.
Use case: this is the convenient Game Master control for pausing or clearing automatic encounters during an event. Use the JSON enabled setting when you want the server's default behaviour to persist across sessions.

Current automatic-spawn defaults

Applies to STW Auto Stronghold configuration version 4: this section supersedes older automatic-spawn values elsewhere in this manual.
SettingCurrent defaultBehaviour
maximumAutomaticAIUnits80Global budget for AI in automatic strongholds. Use -1 to disable this safeguard; any finite value is limited by finiteAutomaticAIUnitsCap (150).
initialSpawnDelayMinimumMinutes
initialSpawnDelayMaximumMinutes
5 / 10Random startup delay before the first automatic attempt.
minimumCandidatesBeforeInitialSpawn
minimumScanProgressBeforeInitialSpawnPercent
12 / 10The first attempt can use the partial, progressively built candidate cache once both thresholds are met; it does not need to wait for a full map scan.
showGameMasterDebugActionsfalseWhen enabled for testing, Game Masters can view scheduler status and force an automatic-placement attempt. Keep it disabled on normal servers.

Existing configuration files that still contain the previous stock 15–45 minute startup delay are automatically migrated to 5–10 minutes. Custom server-owner timing is preserved.

Jeep patrols and fuel support

Strongholds can add road-patrol jeeps independently of foot patrols. Each jeep uses two AI crew members from the shared unit budget and is skipped when there is no suitable local road route or enough remaining budget.

Game Master setting

ParameterDefaultBehaviour
Number of Jeeps1Requests 0–4 vehicle patrols for this stronghold. Its initial value comes from defaultPatrollingJeeps.

STWStrongholdConfig.json parameters

ParameterDefaultBehaviour
defaultPatrollingJeeps1Default request for new Game Master drafts; valid range: 0–4.
preserveJeepPatrolsOnDefeatfalseOn soldier-loss defeat, preserves its jeep and surviving crew as an independent patrol. Manual deletion and lifetime cleanup still remove them.
jeepPatrolATMineInnerExclusionRadiusMeters0 mAT-mine inner exclusion when a jeep patrol was generated. At 0, the covering radius is protected and AT mines are limited to the outer safe perimeter band; use 1–1000 m for a fixed exclusion radius.

STWStrongholdJeepFuelConfig.json

This additional file is created at $profile:STW/Stronghold/STWStrongholdJeepFuelConfig.json. It applies only to Stronghold patrol jeeps and never refuels a jeep occupied by a player.

ParameterDefaultBehaviour
enabledtrueEnables automatic fuel support.
checkIntervalMinutes20Fuel-check interval; valid range: 1–120 minutes.
refuelThreshold0.35Refuels at or below this fuel fraction; valid range: 0–1.
refillMinimum
refillMaximum
0.45 / 0.80Random refill range. Both are 0–1 and the maximum cannot be below the minimum.

Current parameter corrections

The current core configuration is version 14 and the automatic configuration is version 5. The server validates, upgrades, and rewrites older profile files at startup.

The current maximumAutomaticAIUnits default is 80, not 60. The current automatic startup delay is 5–10 minutes; the first attempt may use the partial candidate cache once the 12-candidate and 10% scan-progress thresholds are met.

Checkpoint parameters

Stronghold-owned Heavy Weapons checkpoints use the Stronghold faction and are placed only on suitable surrounding roads. They are skipped when no valid road is found or STW Heavy Weapons is not ready.

ParameterDefaultBehaviour
Generate Road Checkpoints (Game Master)OnEnables or suppresses checkpoints for that manually generated stronghold.
checkpointCount2Requested checkpoints per stronghold. Set 0 to disable them globally; valid range: 0–12.
checkpointMinimumDistanceMeters
checkpointMaximumDistanceMeters
350 m / 850 mRoad-search distance ring; valid range: 50–5000 m. Maximum cannot be lower than minimum.
checkpointMinimumRoadWidthMeters6 mRejects narrower roads; valid range: 2–20 m.
checkpointSize0 (MEDIUM)0 selects MEDIUM and 1 LARGE. Both currently use the US Medium physical layout.
checkpointGuardCount-1Guards passed to Heavy Weapons: -1 uses its default; valid override values are 0, 1, or 2.
preserveCheckpointsOnDefeatfalseRetains checkpoints after soldier-loss defeat when true. Manual deletion and lifecycle cleanup still remove Stronghold-owned checkpoints.
Road selection: checkpoints are at least 120 m apart. Each requested checkpoint gets up to 40 candidate searches, so the configured count is not guaranteed.

Captain Sprocket community

Captain Sprocket patch

Captain Sprocket

Arma Reforger server: STW Reforger

Community: https://discord.gg/T2AZp6GGMJ

More STW manuals: STW Online Manuals