Docs / Games / ARMA Reforger
ARMA Reforger

ARMA Reforger

Premier military simulation engine with Enforce Script. Comprehensive server hosting and configuration guide.

Overview

Release Date: January 26, 2023

Platform: PC (Steam), PlayStation, Xbox

Engine: Enforce Script + Custom Tech

Focus: Tactical Military Simulation

Max Players: 128+ (configurable)

System Requirements

Minimum

  • OS: Windows 10 64-bit
  • CPU: Intel i7-8700K / Ryzen 5 3600
  • RAM: 8GB
  • Storage: 100GB SSD
  • Connection: 50Mbps upload

Recommended

  • OS: Windows 10/11 64-bit
  • CPU: Intel i9-10900K / Ryzen 9 3900X
  • RAM: 16GB+
  • Storage: 150GB NVMe SSD
  • Connection: 100Mbps+ upload

Installation Guide

1

Download Game Files

Download ARMA Reforger from Steam (100GB+). Dedicated server SDK optional.

2

Configure Server Files

Create mission.json and server.json in mission directory

3

Setup Firewall & Ports

Open UDP 2001-2002 for game, TCP 2003-2004 for query

4

Launch & Monitor

Execute ArmaReforgerServer.exe and monitor server console

Server Configuration

{
"serverName": "My ARMA Server",
"serverPassword": "",
"adminPassword": "AdminPass123",
"maxPlayers": 64,
"autoJoinQueueEnabled": true,
"missionRotation": true
}

Common Bugs & Issues

Mission Loading Fails

Mission.json syntax errors or missing map files. Check log file for detailed errors.

Players Desync

Network synchronization issues. Reduce player count and check bandwidth.

Enforce Script Errors

Custom script compilation failures. Validate scripts in mission editor first.

Memory Leaks

Long session RAM spikes. Implement automatic restarts every 6-8 hours.

Troubleshooting

Server Won't Start

  • Check mission file path and spelling
  • Verify JSON syntax in configuration files
  • Check Windows Event Viewer for startup errors
  • Ensure port 2001-2002 not in use

High Ping/Lag

  • Reduce AI unit count in mission editor
  • Lower physics update rate
  • Check server CPU and RAM usage
  • Update to latest server patch

Performance Optimization

Mission Tweaks

  • Limit AI spawns per mission
  • Use LOD (Level of Detail) properly
  • Pre-compile scripts before mission launch
  • Optimize terrain rendering distance

Hardware Setup

  • Dedicated CPU core per mission thread
  • Fast NVMe for mission file access
  • 16GB+ RAM for stability
  • Monitor CPU temperature

Modding & Script Customization

ARMA Reforger uses Enforce Script for extensive mission customization.

Mission Editor Features

Full 3D mission editor with entity placement and script debugging

Custom Scenarios

Create unique gameplay experiences with Enforce Script

Advanced Troubleshooting

Mission File Corruption & PBO Validation

// Mission header validation
class Header { gameType = "DM"; minPlayers = 1; maxPlayers = 64; };

// Check XML integrity
xmldoc mission = new XmlDocument("mission.xml");
if (!mission.HasAttribute("version")) Log("Invalid mission header");

// Proper entity initialization order
class Entities { class Item0 { ... }; class Item1 { ... }; };
  • Failed Mission Load: Extract PBO, validate XML syntax, check all entity references exist
  • Phantom Entities: Clear entity dependencies, remove deleted layers from .sqs scripts
  • Serialization Errors: Ensure all objects have valid classnames in CfgWeapons/CfgVehicles
  • Layer Sync Issues: Regenerate layer cache, verify all child entities belong to valid parents

Enforce Script Error Tracing & Stack Analysis

// Enable script debugging
Print("Script init for mission");

void OnInit() {
  Print(GetDayTime()); // Check execution order
  try { /* risky operation */ }
  catch { Print("Script error caught"); }
}

// Array bounds checking
if (index < 0 || index >= array.Count())
  Print(string.Format("Index out of bounds: %1", index));
  • Parse Errors: Check braces matching, verify semicolon placement, validate function signatures
  • Runtime Exceptions: Enable Debug build, use try-catch blocks, add verbose logging
  • Variable Scope Issues: Check visibility modifiers (protected/private), verify inheritance chain
  • Event Handler Crashes: Validate callback parameters, ensure target entity still exists during trigger

Player Desynchronization & Replication Issues

// Manual position sync on demand
GetOwner().SetWorldTransform(newTransform);

// Check network ownership
if (GetGame().IsServer()) {
  array<Man> players = GetGame().GetPlayers();
  foreach (Man player : players)
    Print("Player " + player.GetIdentity().GetName() + " sync enabled");
}

// Bandwidth monitoring
Print(GetGame().GetBackendApi().GetServerInfo().GetNetworkStatistics());
  • Position Lag: Reduce entity update frequency, use distance-based culling
  • Animation Desync: Sync animation state transitions explicitly, avoid client-side prediction
  • Object Conflicts: Check entity locking state, enforce server-authoritative transforms
  • Bandwidth Saturation: Monitor tick rate, reduce precision of float transmissions

Memory Leaks & Resource Cleanup

// Proper cleanup on mission end
void OnMissionFinished() {
  foreach (Man man : GetGame().GetPlayers())
    man.GetInventory().Clear();
  // Force garbage collection
}

// Thread management
WorkingThread thread = GetGame().GetWorkingThread(10);
if (thread) thread.Quit();
  • CEventHandlers Not Released: Unsubscribe from events in OnDestroy()
  • Entity References Lingering: Clear inventory/attachments, delete children before parent
  • Thread Starvation: Monitor active thread count, yield using Yield()
  • Memory Growth Over Time: Profile with server monitor, identify accumulating object counts

Server Performance Optimization

# server.json optimization
"mission": "MyMission",
"maxPlayers": 32,
"gameType": "DM",
"regionName": "EU",
"gameProperties": {
  "disableNavmesh": 0,
  "aiLimit": 100,
  "lightingQuality": 1
}
  • Low TPS: Reduce AI count, simplify terrain LOD, disable unused weather effects
  • CPU Bottleneck: Profile with RenderDoc, identify expensive script loops
  • Network Jitter: Adjust mission tick rate, use message batching
  • Mission Restart Lag: Preload resources, cache compiled scripts

Pro tip: Always use mission template validation. Enable detailed logging in server.cfg. Use workshop for version control and distribution.

Developer Resources

Enforce Script Documentation

Complete API reference for game systems and event handling

Mission Editor Tools

In-engine editing tools with real-time preview and debugging

Mod Support

Workshop integration for community content distribution

FAQ

Can I use ARMA 3 content in Reforger?

No, Reforger uses native content only. Some assets are similar but incompatible.

How do I rotate missions automatically?

Use missionRotation setting in server.json or configure mission pool for rotation.