ScienceTechWorks • STW suite

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.

What it does not do: STW Weapons does not manufacture weapon content. The equipment must be supplied by Arma Reforger or another loaded mod, and unavailable or invalid prefabs are skipped. It also avoids duplicates already present in a target arsenal.

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

  1. Load STW Weapons and the weapon/content mods whose catalog items you want to make available.
  2. For dedicated or hosted multiplayer/custom scenarios, add STW Weapons Arsenal Refresh (ID 69F5566BFE90EF98) to the mod list.
  3. Start the server once. STW Weapons creates its configuration folder and both JSON files in the server profile.
  4. Stop the server, make any desired JSON changes, then start it again. For Game Master, restart the session after edits.
  5. 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.

FilePurpose
$profile:STW/Weapons/STWWeaponsConfig.jsonThe system settings: master enablement, discovery, target factions, ammunition matching, batching and log detail.
$profile:STW/Weapons/STWWeapons.jsonThe item catalog: each prefab's enabled state, fallback metadata, type/mode, supply cost and faction exclusions.
Safe editing routine: stop the server or end the Game Master session, copy the JSON file as a backup, edit it in a plain-text editor, save valid JSON, then restart. Do not edit while the session is running: the mod saves its catalog at the end of injection. If a JSON file cannot be read, the mod logs a warning and uses defaults for that load, then writes its current data back out.

System settings — STWWeaponsConfig.json

SettingDefaultMeaning and valid behavior
enabledtrueMaster switch. When false, configuration is still initialized but catalog injection does not run.
autoDiscoverArsenalItemstrueSearches loaded factions' item catalogs for supported entries and records new ones in STWWeapons.json.
autoAssignDiscoveredItemstrueSets the initial enabled value for newly discovered items. Set false to review each discovery before it is injected.
includeCompatibleAmmunitionVariantsfalseFalse keeps only default compatible ammunition. True also permits compatible variants matched through the weapon's magazine wells.
itemsPerBatch12Items processed at a time. Accepted values are clamped to 1100. Smaller batches spread startup work out more.
batchDelayMilliseconds25Pause between processing batches. It is clamped to 01000; a higher value makes injection gentler but longer.
verboseLoggingfalseLogs 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:

FieldMeaning
prefabThe fully qualified item prefab path.
enabledGlobal on/off switch for that entry. False retains it in the catalog but does not inject it.
disabledFactionKeysArray of faction keys that must not receive this otherwise enabled item, such as ["FIA"].
manualFallbackAllows 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.
itemTypeRuntime 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.
itemModeRuntime mode: WEAPON, WEAPON_VARIANTS, AMMUNITION, ATTACHMENT or CONSUMABLE.
supplyCostCost 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.