Arma Reforger · Online Manual

STW Civilians Spawner

A server-side settlement system for Arma Reforger by Bohemia Interactive. It detects populated civilian areas, creates persistent civilian zones with appropriate coverage, and can show those zones on the map.

Automatic settlementsDensity-aware zonesOptional map markersStaged recoveryPersistence

STW suite connection

STW Civilians Spawner is a server-authoritative STW (ScienceTechWorks) system for automatic civilian settlement zones. It is designed to work with the ordinary Ambient Civilians system while managing the locations it creates itself. No player-side setup is required.

What it adds

After a short startup delay, the server scans terrain buildings and settlement signals to create small, medium, and large civilian zones. It recognises ordinary building groups as well as qualifying isolated houses and farms, church-centred villages, and house clusters that cross normal scan-cell boundaries.

Settlement-first detection

Building counts, cluster radii, and density thresholds determine zone size. Additional urban centers can improve coverage in large towns and cities.

Controlled exclusion areas

Airport, military, and optional harbour exclusions prevent inappropriate zones, while dense genuine settlements can be allowed through selected outer safety bands.

Restart-safe recovery

Calculated zones can be cached per scenario and map. Restoring is delayed and batched by default to avoid competing with server startup.

For players

There is no player menu or client-side configuration. Civilian zones are part of the server’s active scenario. If the administrator enables them, zone markers display when the map is at or above the configured zoom threshold.

For Game Masters and scenario hosts

This mod manages automatic civilian zones from the server world; it does not add a manual placement tool. removeExistingAutomaticZones defaults to true, and disableAmbientCiviliansAutomaticZones defaults to true: the latter sets Ambient Civilians’ automatically discovered location counts to zero while retaining STW zones and civilian vehicles.

Use settlementCacheRevision to deliberately force a new terrain scan after changing detection logic or when you want to invalidate an existing calculated-zone cache.

Server setup

  1. Install and enable STW Civilians Spawner on the server, then start the intended scenario and map once.
  2. The mod creates $profile:STW/Civilians/STWCiviliansConfig.json.
  3. Stop the server before editing the file. Back it up, make valid JSON changes, and restart.
  4. Values are validated on startup; cached zones are either restored or newly calculated as the settings require.
Safe tuning: start near the defaults. Raising the zone limit, reducing separations, or weakening exclusion rules can significantly increase civilian coverage and server work on dense terrains.

Configuration

The main configuration is $profile:STW/Civilians/STWCiviliansConfig.json. The file is generated after the first server start. Defaults below are the current code defaults; older files are migrated and validated on startup. Distances are metres unless stated otherwise.

Startup, markers, persistence, and activation

ParameterDefaultWhat it does
generationDelaySeconds12Waits this many seconds after startup before scanning and generating settlement zones.
showCivilianMarkerstrueDisplays generated civilian-zone markers on the map.
markerZoomThreshold1.5Minimum map zoom, in pixels per metre, at which markers are shown. Set to 0 to remove the zoom filter.
removeExistingAutomaticZonestrueRemoves previously existing automatically generated civilian zones before STW creates its managed zones.
disableAmbientCiviliansAutomaticZonestrueSets Ambient Civilians' automatically discovered location counts to zero. STW zones and civilian vehicles remain active.
persistenceEnabledtrueSaves calculated zones and reuses them after restarting the same scenario and map.
settlementCacheRevision21Version tag for the calculated-zone cache. Increase it to force a fresh terrain scan after changing detection or coverage settings.
persistenceRecoveryDelaySeconds120Additional delay before cached zones are restored. Set to 0 to restore immediately after the normal startup delay.
persistenceRecoveryBatchSize1Number of cached zones created in each recovery batch.
persistenceRecoveryBatchDelayMilliseconds1000Pause between recovery batches, reducing startup load.
dynamicZoneActivationEnabledtrueEnables distance-based activation and deactivation of generated zones around players.
dynamicZoneActivationRadius / dynamicZoneDeactivationRadius300 / 450Zones activate within the smaller radius and deactivate only after players are beyond the larger radius, preventing rapid toggling at the boundary.
maximumZones128Global upper limit for generated civilian zones.

Settlement detection

ParameterDefaultWhat it does
scanCellSize / buildingQueryHeight180 / 120Sets the horizontal scan-cell size and the vertical extent used when querying buildings.
minimumBuildingsPerCell3Minimum buildings in a normal scan cell before it is considered settlement evidence.
detectIsolatedHousesAndFarms / isolatedBuildingDetectionRadiustrue / 120Includes qualifying isolated homes and farms, looking for nearby building evidence within this radius.
useChurchesAsSettlementAnchors / churchSettlementAnchorRadius / churchSettlementMinimumBuildingstrue / 250 / 3Uses churches as village anchors when at least the specified number of buildings is found within the anchor radius.
useHouseClustersAsSettlements / houseClusterSettlementRadius / minimumHousesForSettlementtrue / 250 / 3Recognises a settlement when the specified number of recognised houses cluster within the radius, even across scan-cell boundaries.
mediumBuildingThreshold / largeBuildingThreshold6 / 32Building-count thresholds used to classify medium and large settlement zones.
mediumCountRadius / largeCountRadius260 / 430Radii in which buildings are counted for medium and large classification.
maximumDistanceFromBuilding90Maximum distance a generated zone centre may be from a qualifying building.

Coverage, spacing, and urban centres

ParameterDefaultWhat it does
prioritizeSettlementCoverage / initialSettlementCoverageSeparationtrue / 300Prioritises broad settlement coverage first, keeping initial selected centres at least this far apart.
minimumSmallZoneSeparation / minimumMediumZoneSeparation / minimumLargeZoneSeparation260 / 360 / 460Minimum spacing between small, medium, and large zone centres.
enableAdditionalUrbanCenterstrueAdds multiple useful centres inside large urban settlements.
additionalSmallCenterSeparation / additionalMediumCenterSeparation / additionalLargeCenterSeparation100 / 160 / 220Spacing used when placing additional small, medium, and large urban centres.
zoneDistributionGridSize / maximumSmallZonesPerDistributionRegion4 / 4Divides the map into a grid for regional budget balancing, and caps generic small zones in each region so other settlement types retain capacity.
scanDelayMilliseconds2Pause between scan operations, allowing the server to share time with other work.
populationInfrastructureExclusionRadius / buildingSampleMinimumSeparation35 / 8Controls exclusion around population infrastructure and the minimum spacing between sampled buildings used by the detector.
authoredCityCoverageRadius / maximumZonesPerAuthoredCity / authoredCityZoneCoverageRadius / authoredCityCenterSeparation / authoredMultiCenterMinimumBuildings900 / 6 / 180 / 180 / 64Controls recognition and subdivision of authored cities: coverage radius, per-city zone cap, zone coverage radius, centre spacing, and the building count required for multi-centre treatment.

Restricted areas and dense-settlement overrides

ParameterDefaultWhat it does
excludeAirports / airportExclusionRadius / airportHardCoreRadiustrue / 400 / 180Suppresses zones around airports using a normal exclusion radius and a smaller hard-core radius.
allowDenseSettlementsNearAirports / allowDenseAuthoredSettlementsInAirportHardCore / airportSettlementOverrideBuildingCounttrue / true / 12Allows sufficiently dense genuine settlements near airports, including authored settlements in the hard core when the building threshold is met.
excludeMilitaryAreas / militaryExclusionRadius / minimumMilitaryExclusionAnchorstrue / 250 / 3Suppresses zones around military areas when at least the specified number of military anchors supports the exclusion.
excludeHarbours / harbourExclusionRadius / minimumHarbourExclusionAnchorsfalse / 300 / 2Optionally suppresses zones around harbours when enough harbour anchors are detected.
allowDenseSettlementsNearHarbours / harbourSettlementOverrideBuildingCounttrue / 9Allows dense civilian settlements near excluded harbours when the building count reaches the override threshold.
Tuning advice: change one group at a time and increase settlementCacheRevision after changing detection, coverage, or exclusion settings. Raising maximumZones, lowering separation values, or weakening exclusions can increase civilian coverage and server work substantially.

Persistence

Persistence is enabled by default. Calculated settlement zones are saved under $profile:STW/Persistence/STW_Civilians_SCENARIO_MAP.json and reused after restarts of the same scenario and map. Increase settlementCacheRevision to force a fresh scan rather than reuse the cache.

To reset one cached zone set safely, stop the server, identify and back up only its matching civilian persistence file, then move or delete it before restarting.

Captain Sprocket community

Captain Sprocket patch

Captain Sprocket

Arma Reforger server: STW Reforger

Community: https://discord.gg/T2AZp6GGMJ

More STW manuals: STW Online Manuals