Skip to content
Arma Reforger advanced · 12 min read

Arma Reforger config.json Explained

Arma Reforger config.json explained field by field: server name, scenario IDs, admin password, player count, mods, and game properties.

By Bradford Updated

config.json is the single file that controls an Arma Reforger dedicated server: it sets the server name, network ports, scenario, player cap, admin password, mods, and detailed game rules. The file is plain JSON organized into a few top-level objects, mainly a server identity block and a nested game object. This guide walks through config.json field by field so you know exactly what every key does and how to set it correctly without breaking the server.

How config.json Is Structured

config.json is a JSON object with a small number of top-level sections. There is a network and identity layer that covers the address, ports, and public name, and a nested game object that holds the scenario, player limits, mods, admins, and a gameProperties block for detailed rules. Everything is case-sensitive, and the whole file must be valid JSON.

Warning: A single missing comma, extra comma, or unclosed quote makes the whole file invalid and stops the server

Note: The two areas you edit most are the network identity fields and the game object

Note: gameProperties is a nested object inside game that holds the fine-grained rule toggles

Network and Identity Fields

These fields control how the server is reachable on the network and how it identifies itself. On a managed host the bind address and ports are usually preset for you, so you mostly confirm rather than change them.

CommandDescriptionExample
bindAddressThe local address the server binds to; typically left as preset by the host"0.0.0.0"
bindPortThe game port players connect to2001
publicAddressThe public IP the server advertises"203.0.113.10"
publicPortThe public game port advertised to the browser2001
a2s.address / a2s.portAddress and port for the A2S query that the server browser uses to read server info"a2s": { "address": "0.0.0.0", "port": 17777 }

Tip: On Loafhosts these are configured at deploy time; change them only if instructed

Tip: If your server does not appear in the browser, the A2S query port is a common culprit

Core Server Fields in the game Object

The game object holds the settings most people think of as the server configuration: the visible name, the player password, the admin password, and the player cap.

CommandDescriptionExample
game.nameThe server name shown in the in-game browser"[NA] Loaf Conflict"
game.passwordThe join password for players; empty string means a public server""
game.passwordAdminThe admin password used with the #login console command in-game"strong-secret"
game.maxPlayersMaximum concurrent players allowed64
game.visibleWhether the server is listed in the public browsertrue
game.crossPlatformWhether crossplay between PC and Xbox is allowed; a direct field on the game object, not inside gamePropertiestrue

Tip: Set game.visible to false plus a game.password for a fully private server

Warning: Never leave passwordAdmin empty on a public server; an empty admin password is a serious security hole

The scenarioId Field

scenarioId tells the server which mission or campaign to load on boot. It is one of the most important fields, and it has a strict format: a GUID in braces followed by a resource path that ends in .conf. Vanilla Conflict and Game Master scenarios have published IDs; modded scenarios provide their ID on the Workshop page.

CommandDescriptionExample
game.scenarioIdThe scenario the server loads, as a GUID plus a path ending in .conf"{ECC61978EDCC2B5A}Missions/23_Campaign.conf"

Tip: Copy scenario IDs exactly; a single wrong character means the server cannot find the scenario

Note: The braces and the GUID are required; the path after the braces points to the scenario resource

Note: A modded scenario ID only resolves if the scenario’s mod is also in the mods array

The admins Array

The admins array lists the Reforger IDs of players who get admin rights. Anyone in this list can use admin tools and, on Game Master scenarios, the Game Master menu. Reforger IDs are tied to the player account and are not the same as Steam IDs.

CommandDescriptionExample
game.adminsArray of Reforger IDs granted admin rights on the server"admins": ["reforger-id-1", "reforger-id-2"]
  1. Ask each admin to read their Reforger ID from the profile screen in the main menu
  2. Add each ID as a quoted string inside the array
  3. Separate multiple IDs with commas and avoid a trailing comma after the last entry

Tip: Keep this list short and only include people you fully trust

The mods Array

The mods array lists every Workshop mod the server loads. Each entry is an object with a modId, a name for readability, and an optional version. Leaving version empty keeps the mod on auto-update. The panel’s Mod Importer (Arma Mod Manager) writes this array for you, which avoids syntax mistakes.

CommandDescriptionExample
game.mods[].modIdThe 16-character Workshop mod ID"5AAAC70D754245DD"
game.mods[].nameA human-readable mod name for your own reference"Server Admin Tools"
game.mods[].versionA specific version to pin; leave empty for auto-update""

Tip: Use the Mod Manager rather than hand-editing this array to avoid comma and bracket errors

Note: Dependencies are resolved automatically, so you do not list them in the array

Note: An example single entry: { “modId”: “5AAAC70D754245DD”, “name”: “Server Admin Tools”, “version”: "" }

The gameProperties Block

gameProperties is a nested object inside game that holds the detailed rule toggles: crossplay, server view distance, battleye, voice options, and similar tuning. These are the knobs you turn to balance performance against fidelity and to control how the server behaves.

CommandDescriptionExample
game.gameProperties.serverMaxViewDistanceView distance cap in meters; lowering it reduces server load2500
game.gameProperties.serverMinGrassDistanceMinimum grass render distance; 0 disables server grass50
game.gameProperties.networkViewDistanceHow far entities are replicated to clients1500
game.gameProperties.battlEyeWhether BattlEye anti-cheat is enabledtrue

Tip: If a busy server struggles, lowering serverMaxViewDistance and networkViewDistance is the first lever to pull

Tip: Keep BattlEye enabled on public servers unless a mod specifically requires it off

Validating and Saving config.json

Because the entire server depends on config.json being valid JSON, validation is not optional. The LPV5 panel config editor helps, and a quick external check catches the rest. Save once you are confident the structure is intact, then restart.

  1. Review every object for matching braces and brackets
  2. Confirm there is no trailing comma after the last item in any array or object
  3. Confirm every string is wrapped in double quotes
  4. Run the file through a JSON validator if you edited it by hand
  5. Save and restart the server, then watch the console for a clean boot

Warning: If the server stops immediately after a config change, assume a JSON error first and recheck the file

Frequently Asked Questions

Where is the config.json file for an Arma Reforger server?

On a managed host like Loafhosts, config.json is reachable through the LPV5 panel config editor and the file manager. It is the file the dedicated server reads at startup for every setting, from the server name to the modlist.

What format does the scenarioId field use?

scenarioId is a GUID inside braces followed by a resource path that ends in .conf, for example {ECC61978EDCC2B5A}Missions/23_Campaign.conf. The braces and GUID are required, and a modded scenario ID only works if the scenario’s mod is also listed in the mods array.

What is the difference between password and passwordAdmin?

game.password is the join password players need to enter the server, and an empty string means the server is public. game.passwordAdmin is the admin password used in-game with the #login console command to gain admin tools. They serve completely different purposes.

How do I add mods in config.json?

Add each mod as an object in the game.mods array with a modId, a name, and an optional version. Leave version empty for auto-update. The panel Mod Importer (Arma Mod Manager) can write this array for you so you avoid JSON syntax errors.

Why won’t my Arma Reforger server start after editing config.json?

The most common reason is invalid JSON: a missing comma, an extra trailing comma, an unclosed quote, or a mismatched brace. The next most common is a wrong scenarioId or a mod entry that fails to download. Recheck the file and read the console log.

What does serverMaxViewDistance do?

serverMaxViewDistance, inside the gameProperties block, caps how far the server renders the world in meters. Lowering it reduces server load and is one of the first settings to adjust if a busy server is struggling with performance.

Do I need to list mod dependencies in config.json?

No. Arma Reforger resolves dependencies automatically. You only list the mods you want in the game.mods array, and the server downloads any required dependency mods on startup.

How do I make my Reforger server private in config.json?

Set game.password to a join password and optionally set game.visible to false so the server is hidden from the public browser. Players then join with Direct Connect using the IP, port, and password.

Rate this guide

Tap a star — it helps us decide what to write (and fix) next.