01 // Sign in
Use Steam (recommended — your in-game account) or Discord (if your community lives there).
- Open refugebot.com and click either Continue with Steam or Continue with Discord.
- Steam OpenID handles the redirect — we don't see your password and don't need a Steam app registration. Discord OAuth works the same way.
- You'll land on the Hub.
You can pre-invite by their SteamID64 even if they haven't logged in yet — go to Tenant settings → Members, paste their 17-digit Steam ID, pick a role. They get added on their first login automatically.
02 // Create a tenant + add a server
Your tenant is your team / organization. Each tenant can have one or more servers. Each server gets its own AgentKey that the Agent uses to authenticate.
- From the Hub, click + Add server.
- If you don't have a tenant yet, you'll be prompted to name one (e.g. "Jake's PVE"). The slug auto-generates from the name.
- You'll be prompted for a server name (e.g. "Jake Main"). The slug becomes part of the URL where your players will visit the shop:
refugebot.com/s/<your-slug>/shop. - A modal pops up with two downloads — the Agent mod zip and your pre-filled
refugebot.json(it already has your AgentKey and the Service URL baked in, so there's nothing to copy or paste). Grab both. You'll use them in the next step.
Anyone with it can impersonate your server. Don't post it in Discord, screenshots, or git. If it leaks, click Rotate AgentKey in the server settings — old key invalidated immediately.
You can sign up, create a tenant, and register one server without paying. The Agent will connect and in-game chat commands work. The web admin panel + player shop unlock when you upgrade to Starter ($5/mo) or Pro ($10/mo).
03 // Install the mod + your config
Two files to drop in: the mod itself, and the pre-filled refugebot.json you downloaded in step 2. No editing, no copy-paste — the config already has your AgentKey and Service URL baked in.
- Stop your 7DTD dedicated server. The agent loads at process start, so installing while it's running won't pick up.
- Unzip the Agent (RefugeBot-Agent-v1.2.39.zip, ~600 KB) directly into your 7DTD server's root directory — the same folder that contains
7DaysToDieServer.exe(Windows) orstartserver.sh(Linux). The zip'sMods/folder merges with your existing one.<your-7dtd-server-root>/ Mods/ zzzzzzzRefugeBot/ ← created by the zip RefugeBot.dll RefugeBot.Protocol.dll System.Threading.Channels.dll System.Threading.Tasks.Extensions.dll System.Runtime.CompilerServices.Unsafe.dll ModInfo.xml Config/ ... - Drop your
refugebot.jsoninto theRefugeBotDatafolder under your save data (create the folder if it doesn't exist):<UserData>/Saves/RefugeBotData/refugebot.json
- Linux:
~/.local/share/7DaysToDie/Saves/RefugeBotData/ - Windows:
%APPDATA%\7DaysToDie\Saves\RefugeBotData\
- Linux:
Most providers expose a "File Manager" or SFTP. Upload + extract the zip into the server root, then upload refugebot.json into Saves/RefugeBotData/. (Lost the json? Re-download it any time from your server's card in the Hub.)
7DTD (2.x) loads server-side mods from the Mods/ folder automatically on boot — there's nothing to flip in serverconfig.xml.
04 // Start & confirm online
Start your 7DTD server. The agent reads refugebot.json on boot, connects to wss://refugebot.com/agent/ws with your AgentKey, and dials home — no further setup.
- Watch the 7DTD console / log for the
[RefugeBot]lines: it should report the boot path, thenDialing wss://refugebot.com/agent/ws, then a successful connect. - Within ~10 seconds your server's status pill in the Hub flips from offline to online. That's it — you're done.
Just download a fresh refugebot.json for the new server and replace the old one, then restart 7DTD. The agent self-heals to the new config on next boot.
05 // Manual setup (no dashboard access)
If you can't drop the pre-filled refugebot.json in (e.g. a locked-down host where you'd rather wire it up in a browser), the agent has a built-in first-boot web UI. Start your server without a config file present and the agent spins up a one-page setup form instead.
Find the URL in your 7DTD log
The agent picks its setup port automatically based on your server's WebDashboardPort (so multi-instance hosts each get a unique port). Watch the console right after mod load:
╔══════════════════════════════════════════════════════════════════╗ ║ RefugeBot Agent — first-boot setup ║ ║ Open this URL in a browser to configure: ║ ║ http://<this-server-ip>:8081/ ║ ║ (or http://localhost:8081/ if you're on the box) ║ ╚══════════════════════════════════════════════════════════════════╝
The port shown there is what to open. Common values: 8081 if your server uses the default WebDashboardPort=8080, or 8765 as a fallback if serverconfig.xml couldn't be located.
Configure
- From a browser that can reach your server, open the URL from the log line above.
- Same machine as 7DTD: use
http://localhost:<port>. - Remote box: SSH-tunnel —
ssh -L 8081:localhost:8081 user@your-server, then openhttp://localhost:8081on your laptop. (Substitute the actual port from your log.)
- Same machine as 7DTD: use
- Paste:
- Service URL:
wss://refugebot.com/agent/ws - AgentKey: open your server's card in the Hub → "Or wire it up manually — show the AgentKey" to reveal the
rb_…string. - Server nickname: a short label (e.g. "Jake Main").
- Service URL:
- Click Save. The agent writes
refugebot.jsonto<UserData>/Saves/RefugeBotData/for you, then connects. Your status pill flips to online.
The agent reads serverconfig.xml (via the -configfile= launch arg first, then probe paths) and seeds the port hunt at WebDashboardPort + 1. Every *Port property the game has reserved (TelnetPort, ServerPort±1±2, etc.) is skipped during the hunt so we never collide with 7DTD's own listeners. To pin a specific port, set "setupPort": 9000 (or any value above 1024) in refugebot.json and restart 7DTD.
Once the agent is configured, the setup port closes itself. To re-open it (e.g. to re-key), delete <UserData>/Saves/RefugeBotData/refugebot.json and restart 7DTD.
06 // Troubleshooting
Setup page doesn't load
- First, find the actual port the agent picked — look for the boxed
"RefugeBot Agent — first-boot setup"banner in your 7DTD console log; it prints the URL with the resolved port. If you don't see that banner at all, the mod isn't loading — usually theMods/zzzzzzzRefugeBot/folder landed in the wrong place (it must sit directly under your 7DTD server root'sMods/folder), or one of the files from step 3 is missing. - If you see
"Could not bind any setup port starting at NNNN": every port in the hunt range was taken. Pin a specific free port by adding"setupPort": 9000(any value above 1024) to your<UserData>/Saves/RefugeBotData/refugebot.jsonand restart 7DTD. - Firewall: allow inbound TCP on the port the log shows (default range starts at
WebDashboardPort + 1— usually8081— or8765as fallback).
Connects but dashboard says "offline" or "handshake rejected"
- Almost always a wrong AgentKey. The
rb_prefix is required. Re-copy from the dashboard, paste again, restart 7DTD. - If you see
Could not load type … RefugeBot.Protocolin the 7DTD log,RefugeBot.Protocol.dllis missing from the mod folder. Re-extract the zip — all six files (plus theConfig/folder) must sit together. - Outbound HTTPS firewalled? Whitelist
refugebot.comon TCP 443.
Where is the agent config stored?
- Canonical:
<UserData>/Saves/RefugeBotData/refugebot.json— this is where the pre-filled download goes and the first place the agent looks.- Linux:
~/.local/share/7DaysToDie/Saves/RefugeBotData/refugebot.json - Windows:
%APPDATA%\7DaysToDie\Saves\RefugeBotData\refugebot.json
- Linux:
- Older install locations (a
refugebot.jsonin the mod folder, or arefugebot-agent.jsonbackup) are still read as a fallback for upgrades, but new installs use the canonical path above.
To re-key or move to a different tenant: download a fresh refugebot.json from the Hub and replace this file (the agent self-heals on next start), or delete it to re-trigger the manual setup web UI.
Still stuck?
Hop into our Discord and post in #self-host-help with the last 50 lines of your 7DTD log around the [RefugeBot] entries.