Installation

Public Beta path from self-serve signup to a live paired GMod server.

Modern Control — Customer Installation Guide

This guide is for a new Public Beta customer. Everything happens in the Modern Control dashboard and on your Garry's Mod dedicated server (srcds / your hosted DarkRP server). You do not need our source repository, developer machines, or internal tools.

Dedicated server vs Steam client (read this)

Put files hereDo not use this
Your dedicated server folder (the one that runs srcds, has garrysmod\addons, and players connect to)Your Steam client Garry's Mod install (Steam\steamapps\common\GarrysMod\…)

The Modern Control agent runs only on the dedicated server. Installing the addon or config.json into the Steam game you launch to play will do nothing for the live server.


Overview (Public Beta)

1. Purchase / activate Public Beta
2. Download the Modern Control GMod Agent
3. Create / add your server in the dashboard
4. Download the server-specific pairing config.json
5. Place config.json at garrysmod/data/modern_darkrp_control/config.json
6. Restart the GMod dedicated server
7. Wait for the dashboard to show ONLINE

Critical rules

  • The public Agent ZIP does NOT contain config.json.
  • config.json is generated specifically for each server in the dashboard after you create that server.
  • Never put config.json inside garrysmod/addons/modern_darkrp_control/.
  • Never reuse a config from another server.
  • Never share pairing configs or agent secrets.
  • You should never need access to Modern Control's repository or any developer filesystem paths.

STEP 1 — Purchase / activate Public Beta

  1. Sign in to Modern Control (create an account if you do not have one yet).
  2. Create an organization under Settings if prompted (you become the Owner).
  3. Open Platform → Billing.
  4. Complete Public Beta checkout for your organization.
  5. Confirm Platform → License shows an Active license with at least one server seat.

After payment succeeds, your organization billing status becomes active and a Public Beta license is attached automatically. If billing still shows checkout or License is empty after a successful payment, contact support (and confirm you are viewing the same organization you paid for).


STEP 2 — Download the Modern Control GMod Agent

  1. Open Platform → Downloads (or /downloads).
  2. Download the Modern Control Agent ZIP.
  3. Extract the ZIP. You should see exactly one folder:

```

modern_darkrp_control/

```

  1. Copy that one folder into your dedicated server (not Steam client Garry's Mod):

```

garrysmod/addons/modern_darkrp_control/

```

Final layout on the dedicated server:

```

garrysmod/

addons/

modern_darkrp_control/

addon.txt

INSTALL.txt

lua/

...

```

Do not nest folders (addons/modern_darkrp_control/modern_darkrp_control/).

Do not install into Steam\steamapps\common\GarrysMod\….

Do not expect config.json inside this ZIP — that comes next from the dashboard.


STEP 3 — Create / add your server

  1. Go to Platform → Servers.
  2. Click Add Server.
  3. Enter a display name and create the server.

Only organization Owners can create servers and manage pairing. That is intentional.


STEP 4 — Download the server-specific pairing config

In the pairing wizard:

  1. Click Download pairing config.json (or Copy config if you prefer to paste).
  2. This file is unique to this server. It includes a one-time pairing code.
  3. The dashboard does not show the raw pairing code as normal page text.

If you close the wizard, refresh, or lose the file:

  • If your browser still has the last unused config for this tab session, use Resume download on the Servers page.
  • Otherwise click Generate new pairing config. That invalidates any previous unused pairing code for that server and issues a fresh one (still single-use, ~30 minutes).

STEP 5 — Place config.json on the dedicated server

On the computer/folder that runs your dedicated Garry's Mod server (srcds) — not the Steam client Garry's Mod you use to play:

  1. Find the install that already contains garrysmod/addons and is started by your server start script.
  2. Create this folder if it does not exist:

```

garrysmod/data/modern_darkrp_control/

```

  1. Save the downloaded file as:

```

garrysmod/data/modern_darkrp_control/config.json

```

Examples (your absolute path will differ — never use the Steam client path):

  • Windows dedicated server: C:\…\YourDedicatedServer\garrysmod\data\modern_darkrp_control\config.json
  • Linux dedicated server: /home/…/YourDedicatedServer/garrysmod/data/modern_darkrp_control/config.json
  • Wrong: C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\…

First-time installs usually do not already have that data/modern_darkrp_control folder — create it.

If the agent wrote a disabled template on first start, replace it with the dashboard download. Do not leave an empty template in place.


STEP 6 — Restart the GMod server

Restart the dedicated server fully (or changelevel the current map) after config.json is saved.


STEP 7 — Wait for ONLINE

  1. Stay on Platform → Servers.
  2. Status typically moves from Waiting for serverConnecting / AuthenticatingOnline within about 10–60 seconds.
  3. Optional console check on the game host: mdrp_status

Do not paste secrets, pairing tokens, or full config files into support chats.


Updating the agent later

  1. Replace files under garrysmod/addons/modern_darkrp_control/ with the new Agent ZIP contents.
  2. Keep garrysmod/data/modern_darkrp_control/config.json (it holds your permanent secret after pairing).
  3. Restart the server.

Rotating credentials / new host

  • Rotate secret on the server card if you suspect compromise (update secret in config.json).
  • Generate new pairing config / Re-pair for a full new pairing file (invalidates unused previous codes).
  • For a new physical host: install the agent addon, generate a new pairing config, place it under data/…/config.json, restart.

Disconnecting

Disconnect stops the agent and invalidates credentials for that server. History is kept. To return: Reconnect, then Generate new pairing config, place the new file, restart.


Troubleshooting

Console

mdrp_status

Shows agent version, enabled flag, API URL, paired status, last heartbeat, last error — without printing secrets in normal operation.

mdrp_start

Retries pairing / starts the agent without a full process restart.

Common symptoms

SymptomLikely causeFix
Not pairedMissing/wrong config, or config under addons/Use dashboard pairing config at garrysmod/data/modern_darkrp_control/config.json
Pairing 410Code expiredGenerate new pairing config
Pairing 409Code already usedGenerate new pairing config
Heartbeat 401Wrong server / secretRotate secret or re-pair
Cannot reach APIFirewall / wrong apiUrlConfirm the game host can reach your Modern Control URL
Stuck connectingAgent not heartbeating yetWait ~1 minute; run mdrp_status