How to: Host your own Rust Dedicated Server

 

Decided to run a Rust Dedicated Server? The installation and set-up for the Rust Dedicated Server is very easy and straightforward. This guide is for the installation of a server on a Windows PC. For Linux, please check out our How to host a Rust server in Linux guide.


System Requirements

The Rust server can be taxing on your host but maybe not as much as you would think. As a baseline a 3 square km (default gen size) map freshly generated will run at close to 2 gigabytes of ram. After some stress testing and 150k entities later, can use 6+ gigabytes of memory. So I would suggest having at least 7 gigs allocated per server. 


Installing and updating SteamCMD

    SteamCMD is the command-line console used to install the Steam related files and the mechanism by which the Rust server is installed and updated.

  • Create a folder for SteamCMD, such as c:\steamcmd
  • Create a folder for the server, such as c:\rustserver
  • Download SteamCMD for Windows.
  • Extract the contents of the zip file to the folder you created for steamcmd.
  • Execute the steamcmd.exe program. (Your computer may ask you to confirm that you want to run it.)

This file, when executed, will download, install and update to the lastest version of SteamCMD.

After it is done you will receive the Steam> prompt.


Installing the Rust Dedicated Server

Run the following commands, one at a time, at the Steam> prompt, to start downloading the server to your computer.


login anonymous
force_install_dir "c:\rustserver\"
app_update 258550
quit

These are all of the necessary files required for a “Vanilla” server. Modified servers require a little more work.


Changing to a different branch

If you want to download the staging branch of Rust that receives the most recent updates, modify the app_update command as follows: 

app_update 258550 -beta staging

If you want to download the prerelease branch of Rust that receives the future/work-in-progress updates, modify the app_update command as follows: 

app_update 258550 -beta prerelease

Configuring and running the server

To get a server instance up and running you need to make at least one batch script file. To start, create a file named RustServer.bat in your server install directory (c:\rustserver) then right click and edit the file.


The Batch Script File

A batch script is a text document that stores a list of commands to be run in sequence. The main use of a batch script for hosting a server is to enable the server owner to make sure their server is up to date and if the server crashes that it will resume. The easiest way to do this is by using the GOTO statement. GOTO will allow you to jump around in your batch script to any other part of the batch file.

It’s important to note that Rust sometimes hangs instead of completely closing. In this case the server will not restart if the process hangs because the process did not actually stop. Batch scripting waits for a command to complete (in this case the RustDedicated.exe) but if that process never completes the batch script will just sit there.

For the most part, you will have to configure all of your server settings in this batch script. The config files for the server don't quite work yet so explicitly defining all of your settings in the batch script is the best way to go. Below is an example.:

1.) echo off
2:) :start 
3:) C:\steamcmd\steamcmd.exe +login anonymous +force_install_dir c:\rustserver\ +app_update 258550 +quit
4:) RustDedicated.exe -batchmode +server.port 28015 +server.level "Procedural Map" +server.seed 1234 +server.worldsize 4000 +server.maxplayers 10  +server.hostname "Name of Server as Shown on the Client Server List" +server.description "Description shown on server connection window." +server.url "http://yourwebsite.com" +server.headerimage "http://yourwebsite.com/serverimage.jpg" +server.identity "server1" +rcon.port 28016 +rcon.password letmein +rcon.web 1
5:) goto start

Note: Do not use this example without making changes. Line numbers are shown for reference only and MUST be removed.

Here is an explanation of each line in the batch file.


echo off
This suppresses the console window’s desire to display each command in the batch file as they are executed.

:start
The is a label for a loop starting point.

C:\steamcmd\steamcmd.exe +login anonymous +force_install_dir c:\rustserver\ +app_update 258550 +quit
Executes SteamCMD to check for server updates and apply if needed.

RustDedicated.exe -batchmode +server.port 28015 +server.level "Procedural Map" +server.seed 1234 +server.worldsize 4000 +server.maxplayers 10  +server.hostname "Name of Server as Shown on the Client Server List" +server.description "Description shown on server connection window." +server.url "http://yourwebsite.com" +server.headerimage "http://yourwebsite.com/serverimage.jpg" +server.identity "server1" +rcon.port 28016 +rcon.password letmein +rcon.web 1
 

-batchmode
Opens Unity in non-GUI mode, and eliminates the need for any human intervention.

+server.port 28015
Rust client connection port.

+server.level "Procedural Map"
The map type to use. Options are "Procedural Map","Barren",”HapisIsland”,”SavasIsland” and “SavasIsland_koth”

+server.seed 1234
Determines shape of procedural and barren maps (used with server.worldsize). Values range from 0 to 2147483647.

+server.worldsize 4000
Determines shape of procedural and barren maps (used with server.seed). Values range from 1000 to 6000.

+server.maxplayers 10
Number of players that can be connected

+server.hostname "Name of Server as Shown on the Client Server List"
Name of the server as shown on the client’s server list

+server.description "Description shown on server connection window."
Description shown on the client’s server connection window

+server.url "http://yourwebsite.com"
A valid website. Causes the “View Webpage” button to appear on the connection window

+server.headerimage "http://yourwebsite.com/serverimage.jpg"
A valid link for the connection window background image. Use a JPG image of 512 x 256. 

+server.identity "server1"
The directory name used as the parent for all the server files. Do not use spaces or special characters.

+rcon.port 28016
Rcon client connection port.

+rcon.password letmein
The password required for Rcon access. Do not use spaces or special characters.

+rcon.web 1
Uses websocket connection mode for rcon (recommended)

goto start
Instructs the batch file to jump to the ‘start’ label. Remove this line if you do not want your server to automatically restart after it shuts down.


Connecting to your server

Run the Rust Client, and do not select a server. Note that your server will not show up under the “Local Network” tab. Instead, press F1 and go to the client console. Assuming you used the default port of 28015, type in the following command to connect to your server:

client.connect localhost:28015


If you used a different port, change it accordingly.


Owners and Moderators

Once the server is up and running you may choose to assign ownership to yourself. This is done with the ownerid command. You will need your 17 digit SteamID number. The easiest way to get it, is to log in and then run the users command at the console. Then enter the command as follows:

ownerid 12345678901234567 AdminName

For example:

ownerid 12345678901234567 "Admin Name"

You can do the same for moderators using the moderatorid command

moderatorid 12345678901234567 "Admin Name"

Note: As with most commands that allow the use of player names, if the name has spaces or special characters in it, you must use quotes to contain the name.

Be sure to use the writecfg command after doing this and then the person must logout and log back in to receive the permissions. The two permissions are almost identical. Owners can create, kick and ban moderators if needed, but moderators cannot affect owners.


Sharing Your Server with the World

If you wish others to be able to connect to your server from the outside world, you will need to setup a port forward using the port you used listed above. I recommend using this Steam Server Guide if you are unfamiliar with setting up port forwarding. You will need to forward your “server.port” as well as “rcon.port” if used.  By default these are 28015 and 28016.

Even if your server does not show up on the server list, players may be able to connect to you via the client.connect command if they know your public IP.  Local firewall programs can also affect the ability to connect from the outside world.  If you suspect this, turn off the firewall briefly.


More information can be found in the “Advanced Configuration Guide”, coming shortly.  For those that want to run a “Modded” server, see the “Modding a Server Guide”, coming shortly.

Anything that wasn't covered please see, this doc and be sure to comment on our forum.


- CatMeat
 Reviewed and modified: JAN 2017