Changing the map is one of the most common things a Rust server owner does, and it’s also one of the most misunderstood. Whether you want a fresh procedural seed for your next wipe, a hand-crafted custom map for a roleplay community, or one of Rust’s built-in preset maps like Hapis Island, the controls all live in a handful of server.* convars. Get them right and you regenerate a clean world in a single restart. Get them wrong and you either fail to load, or you wipe something you didn’t mean to.
This guide walks through every method of changing your Rust map: procedural maps with server.seed and server.worldsize, built-in presets with server.level, and fully custom maps with server.levelurl. Just as importantly, it explains exactly what happens to your existing world, your players’ bases, and their learned blueprints each time you make a change, because the answer is not always “everything wipes.”
The map convars at a glance
Rust generates or loads its world from a small set of server convars that are read at startup. You set these either on the command line (with a + prefix) or, better for anything beyond a couple of values, inside a server.cfg file that the server reads when it boots. Here are the four that control the map itself.
| Convar | Accepted value | What it does |
|---|---|---|
server.seed | Any integer 0 – 2147483647 | The random seed that determines the entire shape of a procedural map. |
server.worldsize | 1000 – 6000 (wiki example: 4000) | The size of the procedural map in world units (roughly km² scaling). |
server.level | Map name string | Which map type to load: “Procedural Map” or a built-in preset. |
server.levelurl | Direct-download URL to a .map file | Loads a fully custom map instead of generating one. |
A quick word on where to put these. The Rust wiki’s own advice is to “set only necessities like ports or rcon on the command line. If you want to change a bunch of variables a good option is creating a server.cfg file.” The server reads server.cfg at startup and it takes priority over command-line settings, so it’s the cleaner home for your map configuration.
Method 1: Procedural maps with seed and worldsize
The default and most popular option is a procedural map, generated on the fly from two numbers: a seed and a worldsize. The same seed and worldsize will always produce exactly the same map, which is why server owners share “good seeds” with each other.
The seed can be any integer from 0 to 2147483647. Worldsize is documented for a range of 1000 to 6000, with the wiki’s example using 4000. Bigger worldsizes mean more monuments, more terrain, and more room to spread out, but also more entities for your server to simulate, which matters for performance on a busy server. A 3000 worldsize works out to roughly 9 km² of playable terrain to give you a sense of scale.
Here is the canonical launch line from the official wiki, which sets a procedural map directly on the command line:
RustDedicated.exe -batchmode +server.port 28015 +server.level "Procedural Map"
+server.seed 1234 +server.worldsize 4000 +server.maxplayers 10
+server.hostname "Name of Server" +server.description "Description"
If you prefer to keep these in server.cfg instead (recommended), the equivalent lines look like this:
server.level "Procedural Map"
server.seed 1234
server.worldsize 4000
server.maxplayers 10
To roll a brand-new procedural map, change the seed (or the worldsize, or both) and restart the server. That’s all it takes. Many owners simply pick a fresh random seed every wipe to keep their map novel for returning players.
Method 2: Built-in preset maps with server.level
Rust ships with a few hand-built static maps you can load instead of generating one. These never change between wipes (the terrain is fixed), which some communities prefer for learning a map inside-out. You select them with server.level.
The wiki formally documents only "Procedural Map", but in practice the following preset strings are used on live servers:
"Procedural Map"— the standard randomly generated world (the default)."Barren"— a stripped-down procedural variant with minimal foliage and monuments, light on resources."HapisIsland"— the classic hand-crafted island map."SavasIsland"and"SavasIsland_koth"— small arena-style maps built for combat and king-of-the-hill play.
A common pitfall: CraggyIsland is a legacy development map and is generally not a supported live-server map. If you see it referenced in old tutorials, don’t rely on it for a public server.
Crucially, when you load a fixed preset like Hapis Island, the server.seed and server.worldsize values don’t shape the world, because the terrain is predetermined. Setting server.level to a preset looks like this:
server.level "HapisIsland"
Method 3: Custom maps with server.levelurl
For community servers, roleplay setups, or anything you want that’s truly unique, you load a custom .map file made in the Rust Edit map editor or downloaded from a map marketplace. This is done with server.levelurl, which the wiki calls “the most important server parameter” for custom maps. Your server downloads the map from the URL at startup.
There are a few hard rules here that trip people up constantly:
- You MUST remove
server.worldsizeandserver.seedfrom your config. They conflict with custom map loading. A custom map already contains its own terrain and size, so leaving these in will break loading. - The URL must be a direct-download link. When opened, the download has to start automatically. A click-through page, a Google Drive “preview” link, or any landing page will fail. The file must come down on its own.
- The file must be hosted on a publicly accessible server that’s online 24/7. Here’s the part people miss: clients download the map from your URL when they connect, not just your game server. If the host goes down, players can’t join.
- A local-path form like
file:///path/to/cool.mapdoes work, but it prevents other players from connecting. It’s strictly for single-machine testing.
A correct custom-map server.cfg looks like this, with seed and worldsize deliberately absent:
server.level "Procedural Map"
server.levelurl "https://your-host.example.com/maps/cool.map"
server.maxplayers 50
server.hostname "My Custom Map Server"
If you’re managing your server through a control panel, our Rust server documentation covers exactly where to drop these settings and how to point the panel at a custom map URL.
Does changing the map wipe my server? What survives?
This is the question that actually matters to your players, and the answer has two parts that are easy to confuse. The key idea is that Rust keeps the world/map save and the player blueprint data as two separate things.
When you change server.seed, server.worldsize, server.level, or server.levelurl, you change the generated or loaded world itself. That invalidates the existing map save: every base, deployable, and placed entity in the world no longer corresponds to valid terrain, so the world is effectively wiped. Players will spawn into a fresh map with nothing built.
However, player blueprints are a separate save. A map change alone does not necessarily reset them. Blueprints (the tech-tree progress players have learned) persist unless you also clear the blueprint/player data. This is exactly why Rust’s monthly force wipes are described as resetting both the map save and player blueprint data as two distinct actions, rather than one.
| What you change | World / bases / entities | Player blueprints |
|---|---|---|
New server.seed | Wiped (new terrain) | Survive (unless you also wipe BP data) |
New server.worldsize | Wiped (new terrain) | Survive (unless you also wipe BP data) |
New server.level preset | Wiped (new terrain) | Survive (unless you also wipe BP data) |
New / changed server.levelurl | Wiped (new terrain) | Survive (unless you also wipe BP data) |
| Full force wipe | Wiped | Wiped (both saves cleared) |
So if your goal is “fresh map, but let players keep their tech progress,” changing the seed and leaving the blueprint save alone gets you there. If you want a true clean slate, you clear the blueprint/player data as well, which is what the official monthly force wipe does. The exact internal save-file names vary, so check your current server build or control panel rather than hardcoding file paths from an old guide.
How to apply the change and regenerate the map
Map convars are read at startup, not live. You cannot change the seed mid-session from chat or even from the F1 console and have it take effect; the server has to restart to read the new values and build the world. The clean process is:
- Stop the server (or schedule a restart so players get a warning).
- Edit your
server.cfg(or launch arguments) with the newserver.seed,server.worldsize,server.level, orserver.levelurl. - If you’re switching to a custom map, delete the
server.worldsizeandserver.seedlines. If you’re switching away from a custom map back to procedural, removeserver.levelurland add seed/worldsize back. - Start the server. It will generate (or download) the new world during boot, which can take a little longer than a normal restart for big or custom maps.
- Confirm the new map loaded by running
statusin the console or over RCON; the server header reports the active map.
The fastest way to apply and verify these changes remotely is through WebRCON. Rust uses a WebSocket-based RCON, and you connect by setting rcon.web 1, rcon.port 28016, and a strong rcon.password, then logging in via the official web client. If you’re new to the console, our walkthrough on Rust RCON and server console commands covers the setup end to end, and you can confirm who’s affected by a wipe using the techniques in how to see who is on your Rust server.
Practical tips for picking a map
- Match worldsize to population. A small clan on a 6000 map will feel lost; a 100-pop server on a 1000 map will be chaos. Scale the map to how many of your
server.maxplayersslots actually fill up. - Watch performance with bigger maps. Larger worldsizes and more monuments mean more entities for Rust’s mostly single-threaded simulation to handle. If you push worldsize up, keep an eye on server FPS.
- Test custom maps privately first. Use the
file:///local path on your own machine to confirm a.mapfile loads before you point a live public server at a URL. - Announce map changes. Because changing seed, worldsize, level, or levelurl wipes the world, give players notice so they aren’t surprised to lose their bases.
If you’d rather not wrestle with launch arguments and save files at all, a managed host handles the heavy lifting. Our Rust server hosting plans let you change seed, worldsize, preset, or custom map URL from a control panel and restart with one click, so a fresh map is minutes of work instead of an afternoon of SSH.
Frequently asked questions
How do I change my Rust server map without wiping?
You can’t keep the existing world while changing the map, because changing server.seed, server.worldsize, server.level, or server.levelurl generates new terrain that invalidates every existing base and entity. What you can preserve is player blueprints: those live in a separate save and are not reset by a map change alone. So “no wipe” isn’t possible for the map itself, but a “map-only wipe that keeps blueprints” is the normal outcome of changing the seed and leaving the blueprint data untouched.
What is the best worldsize for a Rust server?
server.worldsize accepts values from 1000 to 6000, and the official wiki example uses 4000. There’s no single “best” number; it depends on your population. Smaller maps (around 3000–3500) concentrate players for more action and lighter server load, while larger maps (4500–6000) suit big-population servers that want room to spread out. 4000 is a sensible default if you’re unsure. Remember that bigger worldsizes increase entity count and the load on Rust’s single-threaded simulation.
How do I install a custom map on my Rust server?
Host your .map file on a publicly accessible, always-online server that serves a direct-download link, then set server.levelurl to that URL. You must remove server.worldsize and server.seed from your config, since they conflict with custom map loading. Restart the server; it downloads the map at boot. Note that connecting players also download the map from that URL, so it must stay online, not just at startup.
Why won’t my custom map load from server.levelurl?
The most common causes are: the URL isn’t a true direct download (it opens a landing or preview page instead of starting the file download), you left server.worldsize or server.seed in your config (they conflict with custom maps and must be removed), or the host serving the file isn’t publicly reachable 24/7. A file:/// local path will load on your own machine but blocks other players from connecting, so use it only for testing.
Can I change the Rust map from the in-game F1 console or chat?
No. The map convars (server.seed, server.worldsize, server.level, server.levelurl) are read at startup, so they must be set on the command line or in server.cfg, and the server must restart to apply them. The F1 console and RCON share the same command surface for things like status and server.save, but they can’t regenerate the world live. Edit the config, then restart.
How do I get a fresh procedural map each wipe?
Change server.seed to a new integer between 0 and 2147483647 (and optionally a new server.worldsize) before each wipe, then restart. The new seed produces a brand-new world. If you want a complete reset that also clears player tech progress, perform a full force wipe that resets both the map save and the blueprint data, which is exactly what Rust’s official monthly force wipe does. For a deeper dive into what changes on wipe day, see our breakdown of the Built Different update for server admins.
Once your new map is live, the rest of server administration follows naturally: set permissions, install plugins, and tune performance for the new world. Changing the map cleanly is the foundation every other tweak builds on.
Free Rust Tools
Speed up your server with our free Rust tools:
Ready to play?
Run your own Rust server with XGamingServer
Spin up an always-on Rust server your friends can join in minutes — no port-forwarding, no tech headaches.





