<!-- skill: Arma Reforger Ops | version: 1.0.0 | description: Run Reforger milsim ops, mods and servers | category: Games -->
## Instructions
- Structure mods in Enfusion Workbench: Addons/<Tag>_<Name>/ (config.cpp, scripts/, prefabs/, worlds/); use unique prefix `SAR_`.
- Write Enfusion Script (C#-like): classes extend `ScriptComponent`, override `OnPostInit`, use `Replication.BumpMe()` for net sync.
- Keep scripts server-authoritative: validate RPCs, guard with `RplComponent.IsOwner()`, avoid client-side damage logic.
- Configure dedicated server via JSON (gameHost, scenarioId, maxPlayers, password, mods list with Workshop IDs).
- Plan missions with METT-TC: map recon, ORBAT (squad roles: SL/FTL/Medic/MG), CASEVAC, comms plan (freq 50/60/70).
- Run milsim ops: briefing 15min, loadout check (arsenal restrictions), staggered spawn, AAR debrief with recordings.
- Publish addons to Workshop: pack with Workbench, sign with private key, version changelog, dependency list pinned.
- Test mods locally first: offline scenario + dedicated server self-host + 4-player MP test before public release.
- Manage performance: terrain LOD, view distance 1200m inf / 2500m vehicles, limit AI count <80, delete wrecks after 5min.
- Secure server: RCON password strong, admin list UUIDs, BattlEye on, auto-restart 6h, logs to Discord webhook.
- Use Game Master (GM) for dynamic ops: possess AI, spawn ambushes, adjust weather/time to keep tension.
- Document SOPs: radio etiquette (short/clear), buddy team movement, ROE cards per mission type.
## Examples
- Example 1 — Coop defense: 8 players vs 2 AI waves, Workshop mod (weapons), server 16 slots, 90min op with QRF.
- Example 2 — PvP TvT: Everon 64 players, GameMode Conflict custom, 3 objectives, GM balances via ticket bleed.
- Example 3 — Mod release: SAR_Optics v1.2 (4 scopes), Workshop publish, server JSON pins mod ID, changelog posted.
## Workflows
1. Prep: pick Everon/Arland scenario, set mods list, configure server JSON, test boot + connect locally.
2. Brief: publish OPORD (situation/mission/execution), assign squads/roles, loadout + radio check 30min prior.
3. Execute: staged insert (heli/truck), phased objectives, GM injects, medic/CASEVAC practiced, screenshots for AAR.
4. Debrief: AAR (what went right/wrong), server logs review, Workshop bug reports triaged for hotfix.
5. Maintain: update mods weekly, backup server JSON + save, rotate missions to avoid fatigue.
## Templates
### Enfusion Script snippet
```c
class SAR_HealComponent : ScriptComponent {
  [RplProp()] int m_iHealth = 100;
  void Heal(int amount) {
    if (!Replication.IsServer()) return;
    m_iHealth = Math.Min(100, m_iHealth + amount);
    Replication.BumpMe();
  }
  override void OnPostInit(IEntity owner) {
    super.OnPostInit(owner);
    Print("SAR heal ready");
  }
}
```
### Dedicated server JSON
```json
{
  "gameHost": "0.0.0.0",
  "gamePort": 2001,
  "bindAddress": "0.0.0.0",
  "maxPlayers": 32,
  "password": "changeme",
  "scenarioId": "{ECC6198E1F7AED4A}Missions/21th_SAR_Coop.conf",
  "supportedGameClientTypes": ["PLATFORM_PC"],
  "game": { "name": "SARAH Coop #1", "passwordAdmin": "admin-strong-pass" },
  "mods": [{ "modId": "5F3BABCD12340001", "name": "SAR_Optics", "version": "1.2.0" }]
}
```
### OPORD checklist
```
Situation / Mission / Execution / Sustainment / Command+Signal
Roles: SL x1 FTL x2 Medic x1 MG x1 Marksman x1 | Freqs: 50 CMD 60 A 70 Air
CASEVAC: rally THEN call | ROE: PID required | Time: 1900Z
```
## Tools
- Enfusion Workbench, Arma Reforger Server (SteamCMD App 1874900), Workshop UGC manager.
- Discord + Task Force Radio style comms, AAR templates (Google Docs), server log tail + RCON.
- Everon/Arland maps, RHS-style mods (once ported), GM mode for Zeus-like control.
## Advanced
- Sign addons for trusted servers; keep public/private keys separate, rotate on leak, verify signatures on boot.
- Script AI efficiently: waypoints over per-frame checks, FSM for patrol/attack/retreat, cleanup far AI with distance culling.
- Automate hosting: systemd unit + auto-update Workshop mods via script, healthcheck connect probe every 60s.
## Documentation
- https://community.bistudio.com/wiki/Arma_Reforger
- https://community.bistudio.com/wiki/Arma_Reforger:Server_Setup
- https://reforger.armaplatform.com/workshop
- https://community.bistudio.com/wiki/Enfusion_Scripting
