STW Weapons
A universal, server-side weapons-to-arsenal injector for Arma Reforger by Bohemia Interactive. It gathers supported equipment already exposed by loaded faction item catalogs, then makes that equipment available through the faction arsenals you choose.
This manual covers the server runtime, Game Master use and configuration. STW Weapons changes faction item catalogs at session startup; it does not place weapons in the world or add a separate player menu.
STW suite connection
STW Weapons is part of the STW suite by STW (ScienceTechWorks, sciencetechworks@gmail.com). It is intended to let a server use equipment published by the faction catalogs of its loaded mods without editing the vanilla faction configurations themselves.
For dedicated servers and hosted multiplayer/custom scenarios, use the companion STW Weapons Arsenal Refresh (Workshop ID 69F5566BFE90EF98) alongside STW Weapons. That companion refreshes arsenals so injected items appear correctly.
What STW Weapons adds
At server startup, STW Weapons reads its catalog and injects enabled entries into each configured target faction's standard item arsenal. By default the targets are US, USSR and FIA. The injector can also discover eligible entries already present in loaded faction item catalogs and add any newly found entries to its own server catalog.
- Automatic catalog discovery for supported rifles, sniper rifles, machine guns, launchers, pistols, attachments, throwables, explosives and mortars.
- Weapons, magazines/ammunition and attachments retain the classification and supply cost supplied by their original faction catalog whenever a source entry exists.
- Compatibility-aware ammunition handling: default compatible ammunition is kept, while optional variant matching can include additional compatible magazine/ammunition variants.
- Per-item enablement and per-faction exclusions in a persistent JSON catalog.
- A runtime fallback path for catalog entries that are not exposed through a standard faction item catalog.
- Server-to-client synchronization of the injected catalog, including entries added through the fallback path.
For players
Players use STW Weapons through the ordinary faction arsenal available in the scenario. Once the server has finished startup injection, enabled catalog items appear under the normal arsenal categories for the faction selected by the server administrator.
There is no player-side configuration file or special interaction to learn. A joining client receives the server's injected catalog. If an item is deliberately disabled for that faction, it will not be added there; if the item does not exist in the loaded content, it cannot be provided.
Game Master and scenario-author use
In a Game Master session, configure the server/profile files first, then restart the Game Master session. STW Weapons injects into existing faction item catalogs rather than adding a Game Master placeable or scenario entity. A scenario author therefore normally needs no prefab placement or faction-config edit for the injector itself.
Server setup
- Load STW Weapons and the weapon/content mods whose catalog items you want to make available.
- For dedicated or hosted multiplayer/custom scenarios, add STW Weapons Arsenal Refresh (ID
69F5566BFE90EF98) to the mod list. - Start the server once. STW Weapons creates its configuration folder and both JSON files in the server profile.
- Stop the server, make any desired JSON changes, then start it again. For Game Master, restart the session after edits.
- Watch the server log during startup. Catalog progress is always reported in 10% increments; enable verbose logging if you need item-by-item diagnostics.
The addon project's active configuration declares only its core project dependency. The project documentation explicitly identifies STW Weapons Arsenal Refresh as the companion needed for the multiplayer/hosted refresh behavior above; no other named STW companion is required by STW Weapons.
Configuration
STW Weapons keeps its live settings in the server profile, not inside the downloaded mod. Start once to generate the files:
$profile:STW/Weapons/
$profile is the profile directory selected when the server is started (for example by its -profile startup parameter). The exact disk location is installation-specific; look for the STW folder inside that profile.
| File | Purpose |
|---|---|
$profile:STW/Weapons/STWWeaponsConfig.json | The system settings: master enablement, discovery, target factions, ammunition matching, batching and log detail. |
$profile:STW/Weapons/STWWeapons.json | The item catalog: each prefab's enabled state, fallback metadata, type/mode, supply cost and faction exclusions. |
System settings — STWWeaponsConfig.json
| Setting | Default | Meaning and valid behavior |
|---|---|---|
enabled | true | Master switch. When false, configuration is still initialized but catalog injection does not run. |
autoDiscoverArsenalItems | true | Searches loaded factions' item catalogs for supported entries and records new ones in STWWeapons.json. |
autoAssignDiscoveredItems | true | Sets the initial enabled value for newly discovered items. Set false to review each discovery before it is injected. |
includeCompatibleAmmunitionVariants | false | False keeps only default compatible ammunition. True also permits compatible variants matched through the weapon's magazine wells. |
itemsPerBatch | 12 | Items processed at a time. Accepted values are clamped to 1–100. Smaller batches spread startup work out more. |
batchDelayMilliseconds | 25 | Pause between processing batches. It is clamped to 0–1000; a higher value makes injection gentler but longer. |
verboseLogging | false | Logs discoveries, additions, skipped duplicates, missing entries and ammunition decisions. Startup progress still appears every 10% even when false. |
targetFactionKeys | ["US", "USSR", "FIA"] | The faction keys that receive enabled catalog entries. Use only factions actually present in the running scenario; missing factions are skipped. |
Item catalog — STWWeapons.json
On a new profile, the file is seeded from the packaged default catalog. Existing profile catalogs take precedence and are never replaced by a mod update. Each items entry has these source-visible fields:
| Field | Meaning |
|---|---|
prefab | The fully qualified item prefab path. |
enabled | Global on/off switch for that entry. False retains it in the catalog but does not inject it. |
disabledFactionKeys | Array of faction keys that must not receive this otherwise enabled item, such as ["FIA"]. |
manualFallback | Allows runtime insertion when no source faction catalog entry can be found. Entries using it have true; packaged/default entries use the original catalog where available. |
itemType | Runtime category. Supported values used by the injector include RIFLE, SNIPER_RIFLE, MACHINE_GUN, ROCKET_LAUNCHER, PISTOL, WEAPON_ATTACHMENT, LETHAL_THROWABLE, NON_LETHAL_THROWABLE, EXPLOSIVES and MORTARS. |
itemMode | Runtime mode: WEAPON, WEAPON_VARIANTS, AMMUNITION, ATTACHMENT or CONSUMABLE. |
supplyCost | Cost used by a runtime fallback entry. The default value in a new assignment is 10; source-catalog entries keep their authored cost. |
{
"prefab": "{FC695E70D2773ACB}Prefabs/Weapons/Rifles/G28/Rifle_G28.et",
"enabled": true,
"manualFallback": false,
"itemType": "RIFLE",
"itemMode": "WEAPON",
"supplyCost": 10,
"disabledFactionKeys": ["FIA"]
}
A sensible first setup
Start with automatic discovery on and the default US, USSR and FIA targets. Inspect the generated catalog after the first run, disable anything you do not want shared, and use disabledFactionKeys where a weapon should remain faction-specific. Add the Arsenal Refresh companion for multiplayer, then test an arsenal after a clean restart. Captain Sprocket's preferred approach is small changes, one restart, and a quick log check—far easier than debugging an entire armoury at once.