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 here | Do 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.jsonis generated specifically for each server in the dashboard after you create that server.- Never put
config.jsoninsidegarrysmod/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
- Sign in to Modern Control (create an account if you do not have one yet).
- Create an organization under Settings if prompted (you become the Owner).
- Open Platform → Billing.
- Complete Public Beta checkout for your organization.
- 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
- Open Platform → Downloads (or
/downloads). - Download the Modern Control Agent ZIP.
- Extract the ZIP. You should see exactly one folder:
```
modern_darkrp_control/
```
- 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
- Go to Platform → Servers.
- Click Add Server.
- 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:
- Click Download pairing config.json (or Copy config if you prefer to paste).
- This file is unique to this server. It includes a one-time pairing code.
- 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:
- Find the install that already contains
garrysmod/addonsand is started by your server start script. - Create this folder if it does not exist:
```
garrysmod/data/modern_darkrp_control/
```
- 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
- Stay on Platform → Servers.
- Status typically moves from Waiting for server → Connecting / Authenticating → Online within about 10–60 seconds.
- 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
- Replace files under
garrysmod/addons/modern_darkrp_control/with the new Agent ZIP contents. - Keep
garrysmod/data/modern_darkrp_control/config.json(it holds your permanent secret after pairing). - Restart the server.
Rotating credentials / new host
- Rotate secret on the server card if you suspect compromise (update
secretinconfig.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
| Symptom | Likely cause | Fix |
|---|---|---|
| Not paired | Missing/wrong config, or config under addons/ | Use dashboard pairing config at garrysmod/data/modern_darkrp_control/config.json |
| Pairing 410 | Code expired | Generate new pairing config |
| Pairing 409 | Code already used | Generate new pairing config |
| Heartbeat 401 | Wrong server / secret | Rotate secret or re-pair |
| Cannot reach API | Firewall / wrong apiUrl | Confirm the game host can reach your Modern Control URL |
| Stuck connecting | Agent not heartbeating yet | Wait ~1 minute; run mdrp_status |
Related customer docs
- Installation (this guide)
- Pairing
- Licensing
- Troubleshooting
- FAQ
- Downloads