What is Rust:IO?
Rust:IO is an extension to the popular uMod (formerly Oxide) modding framework. It adds a live map and an extensive REST API to any Rust server with just a few clicks.
Rust:IO Remastered is an open reimplementation of the Rust:IO server core, revived for the current Rust build after the original playrust.io service went offline. It keeps the exact same architecture — the loader loads a core that renders the map and serves everything from the game server itself — with no dependency on any external service.
Features
- Based on the map image generator everyone loves
- Fully interactive browser live map
- Locate yourself and your allies by signing in through Steam
- Layers for monuments, buildings, players, a simple grid and a mortality heat map
- Live events: cargo ship, patrol heli, CH47, airdrops and hackable crates
- Available in a range of languages (English, Czech, German, Russian, French, Spanish)
- Includes a web-based RCON console for easy administration
- Integrated with the playrust.me server browser
Terms of use
Rust:IO Remastered is an open reimplementation provided for non-commercial and commercial self-hosting. It is not affiliated with Facepunch Studios; Rust is a trademark of Facepunch Studios. Encryption tooling and hosting by rustcrypt.com.
Installation
First of all, make sure that…
- your server is running a recent version of uMod for Rust,
- your firewall allows TCP connections on its game server port (besides the UDP the game uses),
- your RCON interface is not on the game server port — set it to game port +1 (e.g. game
28015, rcon28016).
- Download Rust:IO and place the downloaded
Oxide.Ext.RustIO.dllinto your server'sRustDedicated_Data/Manageddirectory. - Restart your server once.
That's it. On startup the loader automatically downloads the rest and your server shows Rust:IO Remastered
as an extension besides the built-in ones, printing a few messages once initialized. The live map then becomes
available at http://YOUR-SERVER-IP:YOUR-SERVER-PORT and is listed on
playrust.me after a short delay.
RustDedicated_Data/Managed — you can usually
ask their support to install the file for you, or install it through their control panel. Optional companion plugins
(Clans, Friendly Fire) work through the friend API: allies you add on the map, and members of your in-game team, are
highlighted for you.Configuration
On first start Rust:IO creates oxide/config/RustIO.json. Edit it, then run reload RustIO
from the server console to apply.
| Option | Default | Description |
|---|---|---|
| displayMonuments | true | Whether the monuments layer is available to all players. |
| hideSpecificMonuments | ["cave","mountain"] | Monuments hidden from the monuments layer. |
| displayBuildings | false | Whether the buildings layer is available (admin-only data). |
| displayMortality | true | Whether the mortality heat map layer is available. |
| broadcastChat | true | Broadcast chat messages to the live map page. |
| broadcastSpawns | true | Broadcast player spawns to the live map chat. |
| broadcastDeaths | true | Broadcast player deaths to the live map chat. |
| defaultLanguage | "en" | Default language of the live map page (en, cs, de, ru, fr, es). |
| welcomeMessage | "To locate…" | In-game chat welcome message. {url} is replaced with the map URL. null disables it. |
| helpMessage | "Live map: {url}" | Help message for use with other plugins. |
| apiKey | null | API key to access the REST API without Steam auth. Use a long, random string. |
| ipOverride | null | IP address to bind to in a proxy setup. |
oxide/data/rustio/webmap.json — web extras: webPort (defaults to the game port),
renderSize, showSleepers, updateIntervalMs, portalUrl
(http://playrust.me/api/servers.php to appear in the browser), and a generated secret.
The Buildings and Loot layers are available to admins only.
Translations
The map page ships with English, Czech, German, Russian, French and Spanish, switchable from the panel and
remembered per browser. New languages are a small addition to the language table in the map page — leave
{PLACEHOLDERS} untranslated and keep strings roughly the same length.
Troubleshooting
The map says my server is not responding
- Allow incoming TCP on your server's port in the firewall.
- Specify your external IP on the command line via
+server.ip YOUR-SERVER-IP. - Make sure the port does not conflict with other TCP services (like RCON).
"A socket is accessed in a forbidden way"
Rust:IO couldn't bind the server's port over TCP. Check the external IP is correct and that the port doesn't
clash with another TCP service. For RCON, set +rcon.port to game port +1 (RCON and Rust:IO both use
TCP and cannot share a port).
Proxy setup
You can run Rust:IO behind a proxy to relieve the game server. Set ipOverride to 127.0.0.1
in RustIO.json and restart once, then front it with NGINX (keep internal and external ports equal):
worker_processes 1;
events { worker_connections 1024; }
http {
map $http_upgrade $connection_upgrade { default upgrade; '' close; }
server {
listen 123.123.123.123:28015; # external endpoint
location / {
proxy_pass http://127.0.0.1:28015; # internal endpoint where RustIO runs
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
Web console
Signed-in admins (server owner/moderator) get a web RCON console right on the map page. Commands are sent to the
game server and their output is returned — a direct connection to your server, no intermediate services. It is
also reachable programmatically at POST /rcon (admin) with the command as the request body.
➡ Continue to the REST API reference.