Rust.jpg


Rust is a harsh realistic survival game that pits players against each other, with each other and against the environment. Rust is still in development so this guide may become out of date. Contact us if it is and we will fix it.


Rust-screenshot.jpg


Rust Dedicated Server can be run as a Windows Service using FireDaemon Pro. FireDaemon Pro allows you to start the server automatically at boot prior to login, automatically update the server, start multiple instances of the server and restart Rust Dedicated Server should it crash. This guide will show you how to set it up. You can also use FireDaemon Fusion to manage FireDaemon and other Windows services via your web browser.


Your server computer must have at least 4GB of RAM to run the server. If you are going to play on the same machine that is hosting the server then the computer should have at least 8GB of RAM so that enough RAM is available for everything.


The Rust dedicated server will sometimes freeze and when this happens FireDaemon will not be able to restart the server because an error window is preventing it. To get around this, you will also need to set up a service to kill the error window. See here for instructions.


Rust Dedicated Server Setup Under FireDaemon Pro

First download SteamCMD from the Steam website.


Extract the SteamCMD files somewhere on your hard drive. For the purposes of this HOWTO, we will be using "C:\SteamCMD".


Go to the directory where you installed SteamCMD and create a shortcut to "SteamCMD.exe". Next edit the properties of the shortcut and in the target box, at the end of it (with a space before the following), put:

+login anonymous +force_install_dir "C:\Rust Server" +app_update 258550 validate +quit

The target box should now look like:

C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir "C:\Rust Server" +app_update 258550 validate +quit

steamcmd-rust.png

Now run the shortcut you created and let it run to download the Rust server files. Note that it might take a few hours to update everything as there are over 2GB of files.


The server files do not include the server config. You can copy and paste the server.cfg file from the bottom of this page. Extract the cfg folder to "C:\Rust Server\". The path to the config should look like "C:\Rust Server\cfg\server.cfg". Edit this file to suit your preferences.


Download and install FireDaemon Pro into the directory of your choice (typically C:\Program Files\FireDaemon).


Next start the FireDaemon GUI from the desktop shortcut. Click on the "Create a new service definition" button in the toolbar (or type Ctrl+N) and enter the information into the fields as you see below. Adjust the paths to suit your installation.


Executable: The path to your RustDedicated.exe file. For the purposes of this HOWTO, the path is C:\Rust Server\RustDedicated.exe.


Working Directory: The directory containing your RustDedicated.exe file. For the purposes of this HOWTO, the path is C:\Rust Server.


The most important field on the tab is the Parameters. The Parameters define the initial setup of your server. Several commands will only work when they are added to the service parameters.

 Minimum Parameters (For Most Users):

-batchmode +server.hostname "Server Name" +server.identity "YourIdentity" +server.seed # +server.maxplayers # +server.port 28015 -autoupdate
  • -batchmode = Runs the server in headless mode (no graphics). You should never remove this.
  • +server.hostname "Server Name" = The name of your server. If your server name contains spaces then you need to enclose it in quotes.
  • +server.identity "YourIdentity" = Your server's identity specifies the folder in which all your server's data will be saved. You will find all your data such as saves and config files in "C:\Rust Server\server\<identity>\". The purpose of this is so you can run multiple servers without needing multiple installs. Avoid using spaces and special characters.
  • "+server.seed = The seed used to generate the procedural level. Replace # with a number between -2,147,483,647 and 2,147,483,647
  • server.maxplayers # = The maximum amount of players allowed. The default is 500.
  • server.port 28015 = The port to connect to. The default port is 28015. If you run multiple servers you will need to increment this number for each one.
  • -autoupdate = Checks for updates and when one is found the server is updated. Caveat: The server is only updated on startup so if you want your server to update on its own you will need to configure it to restart itself (more info on this further in the HOWTO).

Additional Parameters (For Power Users):

  • +server.level = The map to start on. Valid options are currently "Procedural Map" or TestLevel.
  • +server.worldsize = The size of your world. Default value is 4000 (valid options are 2000 to 8000). See addendum at the end of guide for more information on world size.
  • +server.saveinterval 600 = Amount of seconds between automatic saves. Default value is 600 (10 minutes). Avoid setting this too low or else your server will lag when you have lots of entities.
  • -logfile "output.txt" = Saves the output of the server console to a file named output.txt
  • +rcon.port 28016 = The query/rcon port. The default port is 28016. If you run multiple servers you will need to increment this number for each one.


Now click on the Settings tab. If you DON'T want to see Rust Dedicated Server running, uncheck the Interact with Desktop check box. You can optionally run Rust Dedicated Server as the user you installed it as. In the Logon Account field type your username (eg. Administrator) and then enter the user's password twice in the Password and Confirm fields. You can change the Process Priority to allocate more CPU time to the dedicated server or specify which cores the dedicated server will run on.


Now click on the Lifecycle tab. Uncheck Graceful Shutdown and check Console Application.


Now click on the Pre/Post-Service tab to make SteamCMD update your server files before running Rust. Click Insert under the Pre-Service section and enter the following into the Pre-Service section:


Executable: C:\SteamCMD\steamcmd.exe
Working Directory: C:\SteamCMD
Parameters: +login anonymous +force_install_dir "C:\Rust Server" +app_update 258550 validate +quit
Execution Time: 300000
Run Program: Before Event
Run Detached: [Not Checked]


NOTE: You might need to play around with the value for execution time. If the server download speed is low and/or the hard disk speed is low then you might need to increase the execution time. In the above example it's set to 5 minutes (300000 milliseconds). Putting too a low number might result in your server updating half way which would break things in a very bad way.


Now click on the Scheduling tab. In the "Schedule a Restart" dropdown at the bottom, select "At specific time". Then in the "Restart Time" box below it, enter a time you think where traffic would be at its lowest. Early in the morning is a good choice. It's important to set this so that your server keeps itself up to date.


Now click on the OK button to install and start Rust Dedicated Server! If you are running Windows Vista or later your server will start on Session 0. You will need to switch desktops to see your server running.


Caveats

We have received a report from a Rust server host regarding exceptionally long restart times, specifically restarts that take 20 minutes or more and each day the restart takes a longer time. This is an issue with the Rust server itself and has nothing to do with FireDaemon. Please report the issue to the Rust developers.


Addendum

World size

 The larger the map, the more strain it will put on everyone's game client so keep that in mind if you or other players in your server have lower end/older computers. 

8000 = 64 km sq. World
 6000 = 36 km sq. World
 4000 = 16 km sq. World
 2000 = 4 km sq. World


Adding admins

To make yourself an owner (so you can add other admins) type in the server console:
 ownerid ## Name

 To add admins, type in the server console:
 moderatorid ## Name

 Replace ## with the player's 64bit SteamID. You can find this at https://steamid.io
 Replace Name with the name of your admin/owner.

 Then when you or your admins are in-game, press F1 to access the server console.


Admin commands

  • kick NAME
     Kicks a specific player. Partial or full names can be used. Broadcasts to everyone in server that you kicked the player.
  • ban NAME
     Bans a specific player. Broadcasts to everyone in server that you banned the player.
  • banid STEAMID
     Bans a specific player by their SteamID. Does not broadcast to everyone that you banned the player.
  • unban STEAMID
     Unbans a specific player by their SteamID.
  • banlist
     Shows all banned players.
  • mutevoice NAME
     Mutes the voice of a specific player.
  • unmutevoice NAME
     Unmutes the voice of a specific player.
  • mutechat NAME
     Mutes the chat of a specific player.
  • unmutechat NAME
     Unmutes the chat of a specific player.
  • status
     Console prints out a list of connected clients along with their ping, ip and steamid. If the server has lots of players, this can put strain on it so avoid using it.
  • server.writecfg
     Run this command after every ban/admin you add so they are properly saved.
  • inventory.give ITEM AMOUNT (example: inventory.give wood 1000)
     Allows you to give items to yourself. The item name needs to be in the short name form (like rifle_bolt or metal_ore).
  • say "Big brother is watching"
     All chat appears as if its coming from the server console. Surround text in quotes if there are spaces.
  • env.time #
     Changes the time on the server. Replace # with a number between 0 to 24 (9 = 9AM, 12 = 12PM, 15 = 3PM, 18 = 6PM, 21 = 9PM, 24 = 12AM).
  • teleport "NAME"
     Teleports you to a specific player. Surround name in quotes if there are spaces.
  • teleportany ENTITY
     Teleports you to any type of entity. For instance, to go to the nearest horse, type: teleportany horse
  • No clip
     Admins can turn on no clip with right SHIFT-L.
  • Free cam
     Right SHIFT-P turns on free cam.
  • airdrop.drop
     Starts an airdrop.
  • heli.call
     Calls in a helicopter which spawns randomly on the map.
  • heli.calltome
     Calls in a helicopter to you.
  • vis.attack
     A useful tool that will help pinpoint aimbots. It enables a yellow trail behind every projectile. It can cause lag and you will see metrics boxes appear on-screen.


Admin tool

 An AutoHotKey script that allows your server to make automatic text announcements. Download it at https://github.com/buckeyemonkey/RustAdmin 

Server ports

If you're able to connect to your server but no one else (on the internet) can, then it's a ports issue. You will need to open the following ports:

 UDP: 28015, 28016

 If you changed the value of "server.port" and/or "rcon.port" in your service parameters, then make sure you use the new value here instead of the ones above.

 How you open ports entirely depends on what Firewall and/or Router you have. You can find out how to open ports by reading the manual that came with your Firewall/Router or by going to Port Forward. If Rust isn't listed on "Port Forward", choose any game and supplement the ports in the "Port Forward" guide with the ports listed in above in this HOWTO.


Server config file

 Below find the server configuration file for Rust. Copy and paste this into a text editor and save it as C:\Rust Server\cfg\server.cfg. 
# Config file prepared by FireDaemon.com
# Run your rust server automatically and update it with FireDaemon Pro.

# This file does not include all possible commands but it includes the most common/useful ones.
# If you want to see all possible comands, in the server console type: find .

# Before some variables are a # symbol. This means its disabled. Remove the # symbol to enable them.

#########################################
# Important Settings You Need To Change #
#########################################

#  A text description of your server. For a new line add:  \n
#server.description "Line 1\nLine 2"

# A URL to the image which shows up on the server details screen (dimensions are 512x256).
#server.headerimage "http://www.your-server.com/header.jpg"

# The URL to your servers website.
#server.url www.your-server.com

####################################
# Optional Settings You Can Change #
####################################

# A value of false makes text chat location based only (players need to be close to each other).
# Values: true, false
#server.globalchat true

# Controls if player vs player damage is allowed. If your server is primarily for building, you'll want to set this to false
# Values: true, false
#server.pve false

# Controls fall damage.
# Values: true, false
#falldamage.enabled true

# Helicopter bullet accuracy. Higher numbers are less accurate.
#heli.bulletAccuracy 2

################################################
# Settings That Will Lag Server Is Set Too Low #
################################################

# Changes how often resources respawn.
#spawn.min_rate 0.1
#spawn.max_rate 1

# Changes how close resources spawn to each other.
#spawn.min_density 0.1
#spawn.max_density 1