Skip to content

How to host a custom Rust map on a server

Quick answer: upload your .map file somewhere that gives a direct https download link, put server.levelurl "<that link>" on your server’s startup line or in its server.cfg, take out server.seed and server.worldsize, and restart the server. The server and every player download the map from that link.

  • The custom map as a .map file, from Crucible Heightmap, Creator or RustEdit.
  • Somewhere to put the file that gives a direct download link: opening the link in a browser starts the download straight away, with no page or button in between. It has to be an https link.
  • A Rust server you can restart, with its startup line or its server.cfg open to edit.

Walk the map before anyone else does. Crucible Local Server runs it on your own PC with no link at all: drag the .map onto its window, press Assign, start the server and press Join. Check that players spawn, that monuments sit on the ground and that nothing blocks the roads. The full walkthrough is test your map on a local Rust server.

Once the map is uploaded (step 2), test the link the same way. In the Map tab pick Hosted URL, paste the link into Level URL (direct-download .map) in the Config tab, and start the server. If it loads, the link works.

Section titled “2. Upload the map to a direct download link”
  • The download has to start at once. A file-sharing page with a Download button does not work: the server gets the page instead of the map.
  • On Dropbox, a share link ends in dl=0, which opens a page. Change it to dl=1.
  • Keep the link up. Every new player downloads the map from it the first time they join, so a dead link keeps new players out for as long as the server runs that map.
  • Check it: paste the link into a browser. It should download a file ending in .map, the same size as yours.

On the server’s startup line:

Terminal window
RustDedicated.exe -batchmode +server.identity "my_server" +server.port 28015 +server.levelurl "https://example.com/maps/mymap.map" +server.maxplayers 100 +rcon.port 28016 +rcon.password "your-own-password" +rcon.web 1

Or as a line in server.cfg, in the server’s cfg folder (server/<identity>/cfg/, next to RustDedicated.exe):

server.levelurl "https://example.com/maps/mymap.map"
  • Take out server.seed and server.worldsize. Those two make a procedural map. With a level URL, the map file sets the world instead.
  • Put the link in quotes.
  • If the startup line and server.cfg both set it, the startup line wins.

More on both places: the Rust server.cfg example and launch arguments.

Rust reads the map once, when the server starts, so restart it. The console then shows:

Loading custom map from https://example.com/maps/mymap.map

and the server browser lists the map as Custom Map. If the download fails, the console shows Couldn't Download Level: with the map name and the reason, and the server shuts down. The Rust server messages in the error index say what each one means and what to change.

The server and every player keep a copy of each map they download, filed under its link. Upload a changed map to the same link and they all go on loading the old one. Two ways round it:

  • A new file name. Upload it as mymap_v2.map and point server.levelurl at the new link. Everyone downloads it fresh. Rust names a custom map’s world save after the map’s file name, so this also starts a new world.
  • The same file name with a new link. To keep the world after a small fix, keep the file name and change only the end of the link, for example https://example.com/maps/mymap.map?v=2. Open the new link in a browser first to check your host still gives you the map with it.

Stop the server before you change the link. It only reads the map at startup.

When you want the map on a server that stays up without your PC, Drizzza is partnered with Pine Hosting: pine.host/drizzza.

Get your Rust server up in minutes on Pine Hosting, with DDoS protection and a uMod plugin installer. 30% off with code DRIZZZA.

The steps on this page are the same on a hosted server: upload the map, set server.levelurl wherever the host lets you edit the startup line or server.cfg, and restart.

A stock Rust server runs the terrain, the layers and the prefabs of any .map. Extras some editors save in the file need a server add-on to come alive: RustEdit’s puzzles and spawners need the RustEdit extension on a Carbon or Oxide server, and Creator’s wiring, volumes and loot profiles need Creator’s server extension. See custom data maps and RustEdit and what a stock server reads.