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.

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.
defaultPreviewFactionKeyUSSRInitial Game Master draft selection. It does not make an unloaded faction selectable.
supportedFactionKeysUS, USSR, FIA, RHS_USAF, RHS_AFRFThe faction allow-list. Add PLASTICBANDIT when its mod is loaded; remove any key you do not want Game Masters to use.
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
defaultPreviewFactionKey
supportedFactionKeys
debugLogging
true / true / USSR / US, USSR, FIA, RHS_USAF, RHS_AFRF / falsePlayer policy, GM 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 / US, USSR / [] / [] / 100 / 95 / 90 / 85 / 75 / 60 / 50 / 40Diagnostics, filters, 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.

Captain Sprocket community

Captain Sprocket patch

Captain Sprocket

Arma Reforger server: STW Reforger

Community: https://discord.gg/T2AZp6GGMJ

More STW manuals: STW Online Manuals