Rust Dedicated Server: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
Line 24: Line 24:
| <code>+server.ip</code>
| <code>+server.ip</code>
| <code>0.0.0.0</code>
| <code>0.0.0.0</code>
| IP to listen to
| Sets the Server IP. Leave it to 0.0.0.0 unless you have multiple IPs.
|-
|-
| <code>+server.port</code>
| <code>+server.port</code>
| <code>28015</code>
| <code>28015</code>
| Port to listen to
| Sets the port the server will use. (default 28015)
|-
| <code>+rcon.ip</code>
| <code>0.0.0.0</code>
| Sets the RCON IP.
|-
| <code>+rcon.port</code>
| <code>28016</code>
| Port to listen to for RCON.
|-
|-
| <code>+server.tickrate</code>
| <code>+server.tickrate</code>
| <code>30</code>
| <code>30</code>
| Server refresh rate (min acceptable 15, max 100) - Increasing this value increase CPU usage
| Server refresh rate (min acceptable 10, max 100) - Not recommended to go above 30.
|-
|-
| <code>+server.hostname</code>
| <code>+server.hostname</code>
| <code>"Your Server Name"</code>
| <code>"Your Server Name"</code>
| The displayed name of your server  
| The displayed name of your server.
|-
|-
| <code>+server.identity</code>
| <code>+server.identity</code>
Line 44: Line 52:
| <code>+server.maxplayers</code>
| <code>+server.maxplayers</code>
| <code>50</code>
| <code>50</code>
| Max amount of players your server can handle. Max : 500 or more
| Maximum amount of players allowed to connect to your server at a time.
|-
|-
| <code>+server.wolrdsize</code>
| <code>+server.wolrdsize</code>
| <code>4000</code>
| <code>3000</code>
| Defines the size of the map generated (min 2000, max 8000)
| Defines the size of the map generated (min 1000, max 8000)
|-
| <code>+server.seed</code>
| <code>50000</code>
| Is the map generation seed.
|-
|-
| <code>+server.saveinterval</code>
| <code>+server.saveinterval</code>
| <code>600</code>
| <code>600</code>
| Time in seconds for server save
| Time in seconds for server save.
|-
| <code>+rcon.ip</code>
| <code>0.0.0.0</code>
| IP to listen to for RCON
|-
| <code>+rcon.port</code>
| <code>28016</code>
| Port to listen to for RCON
|-
|-
| <code>+rcon.password</code>
| <code>+rcon.password</code>
| <code>"YourPassword"</code>
| <code>"YourPassword"</code>
| RCON Password. If you remove it after setting it up, your server won't start.
| Sets the RCON password
|-
|-
| <code>-logfile</code>
| <code>-logfile</code>
Line 76: Line 80:


For example:
For example:
  <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 10 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.seed 793197 +server.maxplayers 50 +server.worldsize 3000 +server.saveinterval 600 +rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "Your_Rcon_Password" -logfile logfilename.log"</code>


==== Settings ====
==== Settings ====

Revision as of 13:19, 9 January 2017

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 .

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 Sets the Server IP. Leave it to 0.0.0.0 unless you have multiple IPs.
+server.port 28015 Sets the port the server will use. (default 28015)
+rcon.ip 0.0.0.0 Sets the RCON IP.
+rcon.port 28016 Port to listen to for RCON.
+server.tickrate 30 Server refresh rate (min acceptable 10, max 100) - Not recommended to go above 30.
+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 Maximum amount of players allowed to connect to your server at a time.
+server.wolrdsize 3000 Defines the size of the map generated (min 1000, max 8000)
+server.seed 50000 Is the map generation seed.
+server.saveinterval 600 Time in seconds for server save.
+rcon.password "YourPassword" Sets the RCON password
-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.
-silent-crashes - Don’t display a crash dialog. Useful if you wan't the server to restart automatically after a crash.

For example:

-batchmode +server.ip 0.0.0.0 +server.port 28015 +server.tickrate 10 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.seed 793197 +server.maxplayers 50 +server.worldsize 3000 +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.

If you want the values to be permanent then save it using the command server.writecfg


Last update: 9 January 2017

> find . Variables:

ai.think                             If set to False, bears and wolfs are only hostile on attack. (True)
ai.move                              If set to False, animals will stop moving. (recommended for performance boost) (True)
ai.sensetime                         It's no use to change this value. (1)
ai.frametime                         no description (5)
ai.tickrate                          changes the tickrate of animals (5)
antihack.enabled                     enables / disables antihack (True)
antihack.admincheat                  are admins allowed to use their admin cheat (True)
antihack.objectplacement             use antihack to verify object placement by players (True)
antihack.modelstate                  use antihack to verify model state sent by players (True)
antihack.userlevel                   0 = users, 1 = admins, 2 = developers (2)
antihack.enforcementlevel            What happens if player is above 'antihack.maxviolation'. 0 = no enforcement, 1 = kick, 2 = ban (1)
antihack.maxdesync                   max allowed client desync, lower value = more false positives (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 = ray, 2 = sphere, 3 = curve (3)
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 (0)
antihack.noclip_stepsize             movement curve step size, lower value = less false positives (0.1)
antihack.noclip_maxsteps             movement curve max steps, lower value = more false positives (5)
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 (50)
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 (2)
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 (50)
antihack.flyhack_forgiveness         distance threshold to assume flyhacking, lower value = more false positives (2)
antihack.projectile_protection       0 = disabled, 1 = speed, 2 = speed + entity, 3 = speed + entity + LOS (3)
antihack.projectile_penalty          violation penalty to hand out when projectile hack is detected (0)
antihack.projectile_forgiveness      projectile speed forgiveness in percent, lower value = more false positives (0.5)
antihack.projectile_padding          projectile hit distance padding in meters, lower value = more false positives (5)
antihack.projectile_serverframes     projectile server frames to include in delay, lower value = more false positives (2)
antihack.projectile_clientframes     projectile client frames to include in delay, lower value = more false positives (2)
antihack.projectile_tickets          required number of projectile line of sight tickets to trigger a violation (10)
antihack.melee_protection            0 = disabled, 1 = initiator, 2 = initiator + target, 3 = initiator + target + LOS (3)
antihack.melee_penalty               violation penalty to hand out when melee hack is detected (0)
antihack.melee_forgiveness           melee distance forgiveness in percent, lower value = more false positives (0.5)
antihack.melee_padding               melee hit distance padding in meters, lower value = more false positives (2)
antihack.melee_serverframes          melee server frames to include in delay, lower value = more false positives (2)
antihack.melee_clientframes          melee client frames to include in delay, lower value = more false positives (2)
antihack.melee_tickets               required number of melee line of sight tickets to trigger a violation (2)
antihack.eye_protection              0 = disabled, 1 = distance, 2 = distance + LOS (2)
antihack.eye_penalty                 violation penalty to hand out when eye hack is detected (0)
antihack.debuglevel                  0 = silent, 1 = print max violation, 2 = print every violation (1)
batching.colliders                   *EXPERIMENTAL* Rust batches colliders to get around the maximum collider limit. To improve server performance you can unbatch (batching.colliders 0) colliders until they reach 250k. (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                       Enable or disable chat logging (True)
construct.frameminutes               How many minutes before a placed frame gets destroyed (30)
craft.instant                        Enable or disable instant crafting (False)
debug.checktriggers                  Debug triggers (False)
decay.tick                           Larger amount increases the applied decay damage to entity. (600)
decay.scale                          1 = normal decay, 0,5 = 50%, 0 = turn decay off (1)
decay.debug                          no description (False)
env.time                             Shows in-game time. If value declared, will change the server time (values: 0 - 24)
env.day                              Displays the day of the month. Pointless to change this value (12)
env.month                            Displays the month. Pointless to change this value (6)
env.year                             Displays the year. Pointless to change this value (2024)
fps.limit                            The maximum number of frames to render per second (60)
gc.interval                          Changes the interval between garbage collects. (-1)
heli.lifetimeminutes                 The amount of time the helicopter is allowed to stay in minutes. (15)
heli.guns                            Enables / disables the helicopters minigun. If set to 0, the helicopter will shoot rockets only. (1)
heli.bulletdamagescale               Changes the bullet damage of the helicopter. Higher value = more damage (1)
heli.bulletaccuracy                  Changes the accuracy of the bullets. Higher value = less accuracy (2)
net.visdebug                         Turns on debug display of network visibility (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.sendeffects                  Send effects to clients when physics objects collide (True)
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.skins                           no description (False)
sentry.targetall                     target everyone regardless of authorization (False)
sentry.hostileduration               how long until something is considered hostile after it attacked (120)
server.ip                            Sets the IP of the server. Should be stated in the startup parameters
server.port                          Sets the IP of the server. Should be stated in the startup parameters
server.maxplayers                    Changes the maximum amount of player slots.
server.hostname                      Sets the Servername. example: server.hostname "My Rust Server"
server.identity                      Changes path to your server data. (my_server_identity)
server.level                         Sets the map of the server (Procedural Map) values: Barren, Craggy Island, Hapis, Savas Island
server.seed                          Sets the the map generation seed.
server.salt                          no description
server.worldsize                     Changes the map size (3000). values: 1000 - 8000. 3000 equals 9km². (3000m^2)
server.saveinterval                  Interval between the server saves the map. (300)
server.secure                        Enables / disables Valve Anti Cheat security. (True)
server.tickrate                      Changes the server tickrate. Going higher than 30 is not recommended. (30)
server.entityrate                    no description (16)
server.cycletime                     no description (500)
server.official                      no description (False)
server.globalchat                    If set to false, only people within voice range can read each others messages. (True)
server.stability                     If set to false, building blocks will have 100% stability no matter how high you build. (True)
server.radiation                     Disables / enables server radioation (True)
server.itemdespawn                   no description (180)
server.pve                           no description (False)
server.description                   no description (Server Description, make \nTo make a new line)
server.headerimage                   no description (http://i.imgur.com/7FwnOGD .jpg) - picture must be 500x256
server.url                           no description (https://www.url.com/to/your/website)
server.branch                        no description ()
server.eac                           no description (1)
server.queriespersecond              no description (2000)
server.ipqueriespermin               no description (30)
server.meleedamage                   no description (1)
server.arrowdamage                   no description (1)
server.bulletdamage                  no description (1)
server.bleedingdamage                no description (1)
server.meleearmor                    no description (1)
server.arrowarmor                    no description (1)
server.bulletarmor                   no description (1)
server.bleedingarmor                 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.maxflood                      Max amount of ticks to receive per second before we assume a client is flooding us (1000)
server.netcache                      Use network caching (True)
server.netcachesize                  Informational, the size of the network cache (in bytes) (2214666)
server.savecachesize                 Informational, the size of the save cache (in bytes) (2264944)
server.combatlogsize                 The size of the combat log (100)
server.idlekick                      Number of minutes until idle players are kicked (30)
server.idlekickmode                  0 = no idle kick, 1 = kick if server full, 2 = always kick (1)
server.idlekickadmins                1 = admins can get idle kicked (0)
server.maxreceivetime                no description (20)
server.compression                   no description (False)
server.netlog                        no description (False)
spawn.min_rate                       no description (0.2)
spawn.max_rate                       no description (2)
spawn.min_density                    no description (0.2)
spawn.max_density                    no description (2)
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.protection                       Turns on debug display of protection (False)
vis.weakspots                        Turns on debug display of weakspots (False)
vis.triggers                         Show trigger entries (False)
vis.hitboxes                         Turns on debug display of hitboxes (False)
vis.lineofsight                      Turns on debug display of line of sight checks (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.print                           If true, rcon commands etc will be printed in the console (False)
global.find                          Search for a command
global.echo                          Prints something to the debug output
global.status                        Print out currently connected clients
global.stats(  )                     Print out stats of currently connected clients
global.kick                          Kicks a player from the server. usage: kick {playername} {reason} example: kick Frank "stop crying"
global.kickall                       Kicks everyone from the server.
global.ban                           Permanently bans a player from the server. usage: ban {playername} {reason} example: ban Frank "stop crying"
global.moderatorid                   ( void ) no description
global.ownerid                       ( void ) no description
global.removemoderator               ( void ) no description
global.removeowner                   ( void ) no description
global.banid                         ( void ) no description
global.unban                         ( void ) no description
global.players                       Print out currently connected clients etc
global.say                           Sends a message in chat
global.users                         Show user info for players on server.
global.banlist                       List of banned users (sourceds compat)
global.banlistex                     List of banned users - shows reasons and usernames
global.listid                        List of banned users, by ID (sourceds compat)
global.mutevoice                     no description
global.unmutevoice                   no description
global.mutechat                      no description
global.unmutechat                    no description
global.clientperf                    no description
global.entid                         no description
global.playerlist                    Get a list of players
global.bans                          List of banned users
global.serverinfo                    Get a list of information about the server
batching.refresh_colliders           no description
batching.status                      no description
chat.tail                            Return the last x lines of the console. Default is 200
chat.search                          Search the console for a particular string
console.tail                         Return the last x lines of the console. Default is 200
console.search                       Search the console for a particular string
data.export                          no description
debug.flushgroup                     Takes you in and out of your current network group, causing you to delete and then download all entities in your PVS again
debug.breakheld                      Break the current held object
debug.breakitem                      Break all the items in your inventory whose name match the passed string
debug.hurt                           no description
entity.debug_toggle                  no description
entity.nudge                         no description
entity.create                        no description
env.addtime                          no description
gc.collect                           no description
gc.unload                            no description
global.restart                       Restart the server - with x seconds warning. If no seconds given, server restarts after 5 minutes. (300 seconds)
global.quit                          Stops the server and closes the command prompt.
global.report                        no description
global.objects                       no description
global.textures                      no description
global.colliders                     no description
global.error                         no description
global.queue                         no description
global.sleep                         no description
global.injure                        no description
global.spectate                      no description
global.teleport                      no description
global.teleport2me                   no description
global.teleportany                   no description
global.teleportpos                   no description
global.cleanup                       no description
global.version                       no description
global.sysinfo                       no description
global.breakitem                     no description
heli.drop                            no description
heli.calltome                        no description
heli.call                            no description
heli.strafe                          no description
hierarchy.ls                         no description
hierarchy.cd                         no description
hierarchy.del                        no description
inventory.give                       no description
inventory.giveall                    no description
inventory.giveto                     no description
inventory.giveid                     no description
inventory.givearm                    no description
pool.print_memory                    no description
pool.print_prefabs                   no description
pool.print_assets                    no description
pool.clear_memory                    no description
pool.clear_prefabs                   no description
pool.clear_assets                    no description
server.stop                          Stops the server
server.backup                        Backup server folder
server.writecfg                      Writes config files
server.fps                           no description
server.save                          Force save the current game
server.readcfg                       no description
spawn.fill_populations               no description
spawn.fill_groups                    no description
spawn.report                         no description
weather.clouds                       no description
weather.fog                          no description
weather.wind                         no description
weather.rain                         no description
xmas.refill                          no description
global.dump                          no description

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
stats 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]