Skip to content

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.

CommandWhat it shows
serverinfoFramerate, EntityCount (everything in the world), Players, Memory, NetworkIn and NetworkOut, Uptime.
server.fpsThe 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.

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.

SettingDefaultWhat it does
server.tickrate10How many times a second the server handles RCON, Rust+ and its connection checks. It does not make the game run smoother.
player.tickrate_sv16How 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.

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 commandDefaultWhat it does
server.itemdespawn300Base seconds a dropped item lies on the ground before it disappears. Some items stay longer.
server.corpsedespawn300Seconds 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.

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.

SettingDefaultWhat it does
spawn.max_density1Scales how much of every spawn type the map holds. 0.5 is half.
spawn.min_density0.5Spawn types that follow the player count start here on an empty server and move up to spawn.max_density as it fills.
spawn.tick_populations60Seconds between spawn rounds. A higher number refills the map more slowly.
SettingWhat it does
ai.npc_enable falseNo scientists spawn at monuments and junkpiles, and Rust skips building the monument navmeshes, so the server starts sooner. Animals still spawn.
aimanager.nav_disable trueRust 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.

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.

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.

The Performance settings in the Config tab:

  • Skip AI navmesh (faster boot) is aimanager.nav_disable above: 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.