Rust server performance: what causes lag and what helps
Quick answer: type serverinfo in the server console to see the server’s Framerate and EntityCount. A Rust server slows down when it has more to run: more buildings and items in the world, more spawns on a bigger map, NPCs and plugins. The settings below control each of those. Leave the tick rate settings at their defaults.
See how the server is doing
Section titled “See how the server is doing”| Command | What it shows |
|---|---|
serverinfo | Framerate, EntityCount (everything in the world), Players, Memory, NetworkIn and NetworkOut, Uptime. |
server.fps | The server’s framerate on its own. |
Type them in the server console, over RCON or in the F1 console as an admin. In Crucible Local Server, the Quick view’s Framerate tile shows the same number while the server is Live.
Watch the framerate while the lag is happening. If it drops, the server is struggling with its own work and the rest of this page applies. If it holds steady, look at the network or the player’s own PC instead.
The framerate cap
Section titled “The framerate cap”fps.limit is the most frames a second the server will run (Rust reports 240). Lowering it frees CPU for other things on the same PC, such as a second server. It does nothing for a server that is already running below its cap.
Tick rates: leave them alone
Section titled “Tick rates: leave them alone”| Setting | Default | What it does |
|---|---|---|
server.tickrate | 10 | How many times a second the server handles RCON, Rust+ and its connection checks. It does not make the game run smoother. |
player.tickrate_sv | 16 | How many times a second the server updates each player. Rust allows 16 to 128, and every step up is more work for every player online. |
Entity count
Section titled “Entity count”Every building block, deployable, dropped item, body, animal and barrel is an entity, and the server keeps track of and saves every one. The count climbs over a wipe as players build.
| Setting or command | Default | What it does |
|---|---|---|
server.itemdespawn | 300 | Base seconds a dropped item lies on the ground before it disappears. Some items stay longer. |
server.corpsedespawn | 300 | Seconds a body stays. |
entity.countby <steamid> | Counts everything one player has placed. | |
entity.deleteby <steamid> | Destroys everything one player has placed. There is no undo. |
Decay wears down buildings nobody keeps up, and it is what clears abandoned bases off the map. With decay.scale 0 nothing decays, so every base stays until the wipe and the entity count only grows. Keep decay on for a long wipe; the settings are on turn off decay.
Map size and spawns
Section titled “Map size and spawns”Rust fills the map with ore nodes, plants, pickups and animals by area: every spawn type has a density, and Rust aims for that density across the land it fits on. A bigger map holds more of everything, and more for the server to run. Rust caps some spawn types at the area of a 4000 m map. Picking a size: Rust map sizes.
| Setting | Default | What it does |
|---|---|---|
spawn.max_density | 1 | Scales how much of every spawn type the map holds. 0.5 is half. |
spawn.min_density | 0.5 | Spawn types that follow the player count start here on an empty server and move up to spawn.max_density as it fills. |
spawn.tick_populations | 60 | Seconds between spawn rounds. A higher number refills the map more slowly. |
| Setting | What it does |
|---|---|
ai.npc_enable false | No scientists spawn at monuments and junkpiles, and Rust skips building the monument navmeshes, so the server starts sooner. Animals still spawn. |
aimanager.nav_disable true | Rust builds no navmesh at all, so the server starts much faster, but NPCs and animals cannot move. For a build or test server only. |
Set both in server.cfg or on the startup line, so they apply from the moment the server starts. See the Rust server.cfg example.
Plugins
Section titled “Plugins”Every plugin runs its own code on the server, and one slow plugin can drag the framerate down for everyone. o.plugins on Oxide or c.plugins on Carbon lists what is loaded. To find a slow one, move plugins out of the oxide/plugins or carbon/plugins folder one at a time, restart, and watch the framerate. In Crucible Local Server, plugins are managed in the Mods tab; see mods and plugins.
server.saveinterval (600) is how often the world saves, in seconds, and each save writes every entity in the world. A world with more entities takes longer to save, so do not set it very low.
Restarts
Section titled “Restarts”A scheduled restart gives a long-running server a clean start. Crucible Local Server can restart on a daily schedule and install Rust updates while it is down; see restart your server automatically.
In Crucible Local Server
Section titled “In Crucible Local Server”The Performance settings in the Config tab:
- Skip AI navmesh (faster boot) is
aimanager.nav_disableabove: a much faster start, with NPCs and animals that do not move. - High priority gives the server more CPU when other apps are running.
- CPU cores (advanced) pins the server to the cores you list, for example
0-7. Leave it blank to use every core.
Every extra server you run at once costs real RAM and CPU, which is why Allow multiple servers running at once is off by default. See server settings.
Related
Section titled “Related”- Rust server variables, every setting on this page with its default
- Rust admin commands
- How to change max players
- How to host a custom Rust map
