Rust Dedicated Server: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Major update, start parameters, and providing linux script)
(Added commands + reorganizing RCON.)
Line 77: Line 77:
  <code>-batchmode +server.ip 0.0.0.0 +server.port 28015 +server.tickrate 30 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.maxplayers 50 +server.worldsize 4000 +server.saveinterval 600 +rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "Your_Rcon_Password" -logfile logfilename.log"</code>
  <code>-batchmode +server.ip 0.0.0.0 +server.port 28015 +server.tickrate 30 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.maxplayers 50 +server.worldsize 4000 +server.saveinterval 600 +rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "Your_Rcon_Password" -logfile logfilename.log"</code>


==== RCON Console parameters ====
==== Settings ====
Here is a RAW list of available settings. You can put them either in your server.cfg (then reboot the server), or input them using RCON, then save it using the command
<code>server.writecfg</code>
 
(If somebody's willing to add descriptions for everything, you're welcome mate !)
 
<code>
> find .
Variables:
ai.think                no description (True)
ai.move                  no description (True)
ai.sensetime            no description (1)
ai.frametime            no description (5)
ai.tickrate              no description (5)
antihack.enabled        is antihack enabled at all (True)
antihack.admincheat      are admins allowed to use their admin cheat (True)
antihack.objectplacement use antihack to verify object placement by players (True)
antihack.playerdamage    use antihack to verify damage caused by players (True)
antihack.userlevel      0 == users, 1 == admins, 2 == developers (2)
antihack.enforcementlevel 0 == no enforcement, 1 == kick, 2 == ban (DISABLED) (1)
antihack.relaxationrate  the rate at which violation values go back down (0.1)
antihack.relaxationpause the time before violation values go back down (10)
antihack.maxviolation    violation value above this results in enforcement (100)
antihack.noclip_protection 0 == disabled, 1 == raycast, 2 == spherecast (2)
antihack.noclip_reject  whether or not to reject movement when noclip is detected (True)
antihack.noclip_penalty  violation penalty to hand out when noclip is detected (4)
antihack.speedhack_protection 0 == disabled, 1 == enabled (1)
antihack.speedhack_reject whether or not to reject movement when speedhack is detected (False)
antihack.speedhack_penalty violation penalty to hand out when speedhack is detected (4)
antihack.speedhack_forgiveness speed threshold to assume speedhacking, lower value = more false positives (2)
antihack.speedhack_deltatime time interval to calculate speed in, lower value = more false positives (0.2)
antihack.speedhack_tickets required number of speeding tickets to trigger a violation (15)
antihack.speedhack_history speeding ticket history length (20)
antihack.flyhack_protection 0 == disabled, 1 == simple, 2 == advanced (DISABLED) (1)
antihack.flyhack_reject  whether or not to reject movement when flyhack is detected (False)
antihack.flyhack_penalty violation penalty to hand out when flyhack is detected (4)
antihack.flyhack_forgiveness distance threshold to assume flyhacking, lower value = more false positives (2)
antihack.debuglevel      0 == silent, 1 == print max violation, 2 == print every violation (1)
batching.colliders      no description (True)
batching.collider_vertices no description (10000)
batching.collider_submeshes no description (1)
batching.verbose        no description (0)
chat.enabled            Enable or disable chat displaying (True)
chat.serverlog          no description (True)
construct.frameminutes  How many minutes before a placed frame gets destroyed (30)
craft.instant            no description (False)
decay.scale              no description (0)
decay.debug              no description (False)
env.time                no description (15.47127 the time in hours)
env.day                  no description (5)
env.month                no description (7)
env.year                no description (2024)
fps.limit                The maximum number of frames to render per second (256)
gc.interval              no description (-1)
global.safemode          no description (False)
global.debugmode        no description (False)
global.maxthreads        no description (8)
global.perf              Show frames per second (fps) (0)
global.timewarning      no description (False)
global.developer        no description (0)
heli.lifetimeminutes    no description (15)
heli.guns                no description (1)
heli.bulletdamagescale  no description (1)
heli.bulletaccuracy      no description (2)
net.visdebug            Turns on debug display of network visibility (False)
net.log                  no description (False)
physics.droppedmode      The physics mode that dropped items and corpses should use. good, tempgood or fast. fast + tempgood might cause objects to fall through other objects. (good)
physics.bouncethreshold  no description (2)
physics.sleepthreshold  no description (0.005)
physics.solveriterationcount The default solver iteration count permitted for any rigid bodies (default 7). Must be positive (3)
physics.steps            The amount of physics steps per second (16)
pool.sounds              no description (False)
pool.decals              no description (True)
pool.effects            no description (True)
pool.skins              no description (True)
pool.trees              no description (True)
pool.decor              no description (True)
sentry.targetall        target everyone regardless of authorization (False)
server.ip                no description (0.0.0.0)
server.port              no description (28015)
server.maxplayers        no description (50)
server.hostname          no description ([XX] Your Server Name)
server.identity          no description (rust-server my_server_identity)
server.level            no description (Procedural Map)
server.seed              no description (1)
server.salt              no description (731364870)
server.worldsize        no description (6000)
server.saveinterval      no description (300)
server.secure            no description (True)
server.tickrate          no description (30)
server.entityrate        no description (16)
server.official          no description (False)
server.globalchat        no description (True)
server.stability        no description (True)
server.radiation        no description (False)
server.itemdespawn      no description (180)
server.pve              no description (False)
server.description      no description (Your Description\nLine2\nLine3\nEtc...)
server.headerimage      no description (http://www.yoursite.com/img/rust-banner.png)
server.url              no description (http://www.yoursite.com)
server.eac              no description (1)
server.updatebatch      How many entity updates should we send per loop. Setting this > 1000 might cause lag when a player first joins your server. (128)
server.planttick        Plants tick every x seconds. This is how many seconds between ticks. (60)
server.planttickscale    Setting this to 2 will make plants grow, fruit and die two times faster than normal. (1)
server.respawnresetrange Distance from sleeping bag to reset other sleeping bags/beds. (50)
server.maxunack          Max amount of unacknowledged messages before we assume we're congested (4)
server.netcache          Use network caching (True)
server.netcachesize      Informational, the size of the network cache (in bytes) (3277638)
server.savecachesize    Informational, the size of the save cache (in bytes) (2969138)
server.compression      no description (False)
server.netlog            no description (False)
spawn.min_rate          no description (0.1)
spawn.max_rate          no description (1)
spawn.min_density        no description (0.1)
spawn.max_density        no description (1)
stability.verbose        no description (0)
stability.strikes        no description (10)
stability.collapse      no description (0.05)
stability.accuracy      no description (0.001)
time.fixeddelta          Fixed delta time in seconds (0.0625)
time.maxdelta            The minimum amount of times to tick per frame (0.33)
vis.damage              Turns on debug display of damages (False)
vis.attack              Turns on debug display of attacks (False)
vis.triggers            Show trigger entries (False)
xmas.enabled            no description (True)
xmas.spawnrange          no description (50)
xmas.giftsperplayer      no description (2)
rcon.port                no description (28016)
rcon.ip                  no description (0.0.0.0)
rcon.web                If set to true, use websocket rcon. If set to false use legacy, source engine rcon. (False)
</code>
 
==== RCON ====
To use RCON (Remote CONsole), join the server and press F1 to open the console. Then type:
rcon.login <password>
 
Otherwise, you can use [http://oxidemod.org/resources/rusty-server-rcon-administration-tool.53/ Rusty], a nice remote RCON client (very advised).
 
When the server is up and running, you can issue the following commands:
When the server is up and running, you can issue the following commands:


Line 126: Line 263:
|}
|}


==== RCON ====
To use RCON (Remote CONsole), join the server and press F1 to open the console. Then type:
rcon.login <password>
You can now any command as in [[#Console parameters]].


==== Ban list ====
==== Ban list ====

Revision as of 11:08, 5 March 2016

Attention! The following installation instructions will supply legacy (the main version) as well as the experimental branch's server files when downloading on Windows. Since the legacy server software is Windows only, it will not be included when downloading on Linux, leaving only the experimental server software. More information on this tweet from Garry .

Please note that at this current time, the Rust dedicated server is not being built for linux as part of the regular Rust build process and therefore is unavailable. Please see the issue ticket on Facepunch support.


Dedicated server

Installation

  • Start SteamCMD
    • Log in with a Steam account or anonymously: login anonymous or username
    • Select install folder: force_install_dir PATH:\SteamCMD\rust_server\
    • Run: app_update 258550 -beta legacy validate to download the old legacy Rust Dedicated Server (rust.legacy)
    • Or Run: app_update 258550 validate to download the new alpha version dedicated server (rust.alpha)

Configuration & running

You can run the Rust DS with ./RustDedicated -batchmode (Linux) or rust_server.exe -batchmode (Windows).

Command line parameters

The startup command can be appended with the following startup parameters:

parameter default description
+server.ip 0.0.0.0 IP to listen to
+server.port 28015 Port to listen to
+server.tickrate 30 Server refresh rate (min acceptable 15, max 100) - Increasing this value increase CPU usage
+server.hostname "Your Server Name" The displayed name of your server
+server.identity "my_server_identity Changes path to your server data rust/server/my_server_identity. Useful for running multiple instances.
+server.maxplayers 50 Max amount of players your server can handle. Max : 500 or more
+server.wolrdsize 4000 Defines the size of the map generated (min 2000, max 8000)
+server.saveinterval 600 Time in seconds for server save
+rcon.ip 0.0.0.0 IP to listen to for RCON
+rcon.port 28016 Port to listen to for RCON
+rcon.password "YourPassword" RCON Password. If you remove it after setting it up, your server won't start.
-logfile gamelog.txt If you're using a script, you'd better put the current date as a filename, otherwise, it'll be erased on every start.

For example:

-batchmode +server.ip 0.0.0.0 +server.port 28015 +server.tickrate 30 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.maxplayers 50 +server.worldsize 4000 +server.saveinterval 600 +rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "Your_Rcon_Password" -logfile logfilename.log"

Settings

Here is a RAW list of available settings. You can put them either in your server.cfg (then reboot the server), or input them using RCON, then save it using the command server.writecfg

(If somebody's willing to add descriptions for everything, you're welcome mate !)

> find . Variables:

ai.think                 no description (True)
ai.move                  no description (True)
ai.sensetime             no description (1)
ai.frametime             no description (5)
ai.tickrate              no description (5)
antihack.enabled         is antihack enabled at all (True)
antihack.admincheat      are admins allowed to use their admin cheat (True)
antihack.objectplacement use antihack to verify object placement by players (True)
antihack.playerdamage    use antihack to verify damage caused by players (True)
antihack.userlevel       0 == users, 1 == admins, 2 == developers (2)
antihack.enforcementlevel 0 == no enforcement, 1 == kick, 2 == ban (DISABLED) (1)
antihack.relaxationrate  the rate at which violation values go back down (0.1)
antihack.relaxationpause the time before violation values go back down (10)
antihack.maxviolation    violation value above this results in enforcement (100)
antihack.noclip_protection 0 == disabled, 1 == raycast, 2 == spherecast (2)
antihack.noclip_reject   whether or not to reject movement when noclip is detected (True)
antihack.noclip_penalty  violation penalty to hand out when noclip is detected (4)
antihack.speedhack_protection 0 == disabled, 1 == enabled (1)
antihack.speedhack_reject whether or not to reject movement when speedhack is detected (False)
antihack.speedhack_penalty violation penalty to hand out when speedhack is detected (4)
antihack.speedhack_forgiveness speed threshold to assume speedhacking, lower value = more false positives (2)
antihack.speedhack_deltatime time interval to calculate speed in, lower value = more false positives (0.2)
antihack.speedhack_tickets required number of speeding tickets to trigger a violation (15)
antihack.speedhack_history speeding ticket history length (20)
antihack.flyhack_protection 0 == disabled, 1 == simple, 2 == advanced (DISABLED) (1)
antihack.flyhack_reject  whether or not to reject movement when flyhack is detected (False)
antihack.flyhack_penalty violation penalty to hand out when flyhack is detected (4)
antihack.flyhack_forgiveness distance threshold to assume flyhacking, lower value = more false positives (2)
antihack.debuglevel      0 == silent, 1 == print max violation, 2 == print every violation (1)
batching.colliders       no description (True)
batching.collider_vertices no description (10000)
batching.collider_submeshes no description (1)
batching.verbose         no description (0)
chat.enabled             Enable or disable chat displaying (True)
chat.serverlog           no description (True)
construct.frameminutes   How many minutes before a placed frame gets destroyed (30)
craft.instant            no description (False)
decay.scale              no description (0)
decay.debug              no description (False)
env.time                 no description (15.47127 the time in hours)
env.day                  no description (5)
env.month                no description (7)
env.year                 no description (2024)
fps.limit                The maximum number of frames to render per second (256)
gc.interval              no description (-1)
global.safemode          no description (False)
global.debugmode         no description (False)
global.maxthreads        no description (8)
global.perf              Show frames per second (fps) (0)
global.timewarning       no description (False)
global.developer         no description (0)
heli.lifetimeminutes     no description (15)
heli.guns                no description (1)
heli.bulletdamagescale   no description (1)
heli.bulletaccuracy      no description (2)
net.visdebug             Turns on debug display of network visibility (False)
net.log                  no description (False)
physics.droppedmode      The physics mode that dropped items and corpses should use. good, tempgood or fast. fast + tempgood might cause objects to fall through other objects. (good)
physics.bouncethreshold  no description (2)
physics.sleepthreshold   no description (0.005)
physics.solveriterationcount The default solver iteration count permitted for any rigid bodies (default 7). Must be positive (3)
physics.steps            The amount of physics steps per second (16)
pool.sounds              no description (False)
pool.decals              no description (True)
pool.effects             no description (True)
pool.skins               no description (True)
pool.trees               no description (True)
pool.decor               no description (True)
sentry.targetall         target everyone regardless of authorization (False)
server.ip                no description (0.0.0.0)
server.port              no description (28015)
server.maxplayers        no description (50)
server.hostname          no description ([XX] Your Server Name)
server.identity          no description (rust-server my_server_identity)
server.level             no description (Procedural Map)
server.seed              no description (1)
server.salt              no description (731364870)
server.worldsize         no description (6000)
server.saveinterval      no description (300)
server.secure            no description (True)
server.tickrate          no description (30)
server.entityrate        no description (16)
server.official          no description (False)
server.globalchat        no description (True)
server.stability         no description (True)
server.radiation         no description (False)
server.itemdespawn       no description (180)
server.pve               no description (False)
server.description       no description (Your Description\nLine2\nLine3\nEtc...)
server.headerimage       no description (http://www.yoursite.com/img/rust-banner.png)
server.url               no description (http://www.yoursite.com)
server.eac               no description (1)
server.updatebatch       How many entity updates should we send per loop. Setting this > 1000 might cause lag when a player first joins your server. (128)
server.planttick         Plants tick every x seconds. This is how many seconds between ticks. (60)
server.planttickscale    Setting this to 2 will make plants grow, fruit and die two times faster than normal. (1)
server.respawnresetrange Distance from sleeping bag to reset other sleeping bags/beds. (50)
server.maxunack          Max amount of unacknowledged messages before we assume we're congested (4)
server.netcache          Use network caching (True)
server.netcachesize      Informational, the size of the network cache (in bytes) (3277638)
server.savecachesize     Informational, the size of the save cache (in bytes) (2969138)
server.compression       no description (False)
server.netlog            no description (False)
spawn.min_rate           no description (0.1)
spawn.max_rate           no description (1)
spawn.min_density        no description (0.1)
spawn.max_density        no description (1)
stability.verbose        no description (0)
stability.strikes        no description (10)
stability.collapse       no description (0.05)
stability.accuracy       no description (0.001)
time.fixeddelta          Fixed delta time in seconds (0.0625)
time.maxdelta            The minimum amount of times to tick per frame (0.33)
vis.damage               Turns on debug display of damages (False)
vis.attack               Turns on debug display of attacks (False)
vis.triggers             Show trigger entries (False)
xmas.enabled             no description (True)
xmas.spawnrange          no description (50)
xmas.giftsperplayer      no description (2)
rcon.port                no description (28016)
rcon.ip                  no description (0.0.0.0)
rcon.web                 If set to true, use websocket rcon. If set to false use legacy, source engine rcon. (False)

RCON

To use RCON (Remote CONsole), join the server and press F1 to open the console. Then type:

rcon.login <password>

Otherwise, you can use Rusty, a nice remote RCON client (very advised).

When the server is up and running, you can issue the following commands:

command description
status Outputs the general status of the server. Connected players etc.
say <stuff> Will speak something into everyone's console.
find * List all console commands
rcon.password Set the rcon password for clients to use (using rcon.login <password>)
kick <username> Kicks a user. Username can be the first few letters of a username, or a steamid.
ban <username> As above - but just bans the user from the server (doesn’t kick)
banid <steamid> Bans a userid from the server
unbanall Unbans everyone from the server
server.hostname <hostname> Sets the hostname
server.clienttimeout <int> How long until an unresponsive client times out (default 2 mins)
server.pvp <bool> Enable/Disable pvp mode (default true)
sleepers.on <bool> Enable/Disable sleepers (default true)
quit Quits the server nicely (saving the level and all avatars before leaving)


Ban list

Banned users will be stored in cfg/bans.cfg.

Linux Scripts Resources

LGSM rustserver

Linux Game Server Manager

Part of Linux Game Server Managers scripts, rustserver is a command line tool for quick, simple deployment and management of a Rust Linux dedicated server.


Main Features

  • Server installer (SteamCMD).
  • Loads of default start parameters
  • Start/Stop/Restart server.
  • Server console.
  • Server monitoring (including email notification).
  • Server update (SteamCMD).
  • Server backup.
  • Logs management.


Compatibility

The Linux Game Server Manager is tested to work on the following Linux distributions :

  • Debian based distros (Ubuntu, Mint etc.).
  • Redhat based distros (CentOS, Fedora etc.).


Get the script at gameservermanagers.com.

Get more info : Github Wiki.

Get help : LGSM Steam group.

Windows scripting

[This solution requires payment to a 3rd party]