Rust is a survival game that is rather new in its full release. As such, we are just being introduced into the creation of servers so if you are interested in making your own, you might have a bit of a learning curve. However, to help you out, we are going to go through exactly how to set up a server so you can create your own worlds in Rust and share them with little to now difficulty.
Before you get into downloading programs and running software, the first thing you need to know about how to make your own Rust server is that you need to make sure your computer has certain system requirements.
It should be noted that, as it is the most popular operating system, we will be looking at how to create a Rust server on Windows. So, make sure that your computer has the latest Windows operating system so that you can access all the needed features in this tutorial.
Now, how many gigabytes of RAM do you need to dedicate to your server? Well, let’s take a look at what a Rust server takes up. The default size of the map is about 3 square km. That alone, with no entities added in, is going to run you about 2 gigs of RAM. Then, you are going to be adding in entities and actually running the servers which will usually – give or take for the amount of entities that you use – run at about 6 gigs. To be safe, it is best to reserve a little extra room so set aside about 7 gigs for each server you are creating.
SteamCMD is the shorthand name for the Steam Console Client and, in short, it is a command-line version of the Steam client. For games that use the SteamPipe content system, like Rust, SteamCMD is used to install and update dedicated servers like the one you are creating.
So, naturally, downloading SteamCMD is one of the first steps in our guide to Rust: how to make a server.
Before you download the program, though, you are going to want to create a folder for SteamCMD to reside in so you can find it easily. You can, of course, name this whatever you want but most people simply decide to name the folder c:\steamcmd. At this point, you might want to go ahead and create a folder for the server you are creating as well. For the purposes of this article, we will follow the same format as we did naming the SteamCMD folder and name this c:\rustserver.
Now that you have these folders set up, you are going to actually want to download SteamCMD. That download link can be found here.
Once you have this downloaded, you are going to want to extract the contents of the zip folder you created. Then, go ahead and execute the steamcmd.exe program. Once you approve your computer to run the program, SteamCMD will not only download and install itself onto your computer but update to the latest version as well. At this point, you will receive the Steam> prompt.
Rust Server Installation
The next step is to install your Rust server. It is important to keep in mind that these instructions are for a basic server. If you want a more complicated, modified server, there are additional, varying steps that we will not be going over here.
You have two options when you are creating a Rust server. First, you can log into your Steam account. It should be noted that it is recommended that you create a new Steam account solely for your dedicated servers to ensure some extra security. For this method, enter the following commands.
It should be noted that for the commands <username> and <password>, you should be typing in your Steam username and password, not the actual phrases “username” and “password”.
However, for Rust, you are also permitted to login anonymously to create a server. To login this way, the commands are slightly altered and go as follows.
You can also change the staging branch of Rust that you use as well. There are two main staging branches that you might want to change your command prompts to. The line of command that we will be working with in this section is this one:
The first option that you might want to change the staging branch to is the branch that continuously receives the most recent updates of the game. For this branch, edit the command prompt to this:
app_update 258550 – beta staging
However, you can also change your Rust server to receive updates that are planned in the future and updates that are works-in-progress. For this, you will want to change your app_update prompt as follows:
app_update 258550 – beta prerelease
Running Your Rust Server
One of the most important parts of learning how to create a Rust server is learning how to get that server up and running. After all, if you make a server and then never implement it, you aren’t making use of your work. To do this, you will need to create what is called a batch script file.
Before we get into how to create this batch script file, though, it is important to know what a batch script file is.
A batch script, in its most basic form, is simply a text file in which there are a list of commands that you are programming to run sequentially. There are two main reasons that you need a batch script file for your server. First, it is to make sure that your server is kept up to date. In addition, though, a batch script file will also make sure that when a server crashes, it restarts right away rather than staying crashed.
To make sure that these goals are met effectively, you will want to use a GOTO statement in your batch script file. A GOTO statement allows you to access different parts of your batch script out of sequence. In other words, by the use of a GOTO statement, you can skip pieces of your programming and “go to” other parts. An example would be using the following line of script at the end of your batch script file.
This line of script means that after the batch script runs, the server will automatically restart when the mass of the script ends if this command is present.
Rust can make this process a little difficult, though. This is because, unlike other games, Rust usually doesn’t crash when it runs into a problem. Instead, it gets stuck and hangs. This can be a problem because since the program hasn’t stopped completely, it won’t register as having crashed. For these problems, the best course of action is to restart the server and if the problem repeats, go into the programming again and see if there is a mistake that would be causing the error.
Now that you know what a batch script file and a GOTO statement is, let’s get into how to actually write the script for this. To start, you will want to create a new folder again. This time, you will want to create it in your server install directory (this is the file we named c:\rustserver earlier). Name this file RustServer.bat and then right click it. From the dropdown that pops up, choose to edit this file to start creating your batch script file.
It is important to note that not every batch script will be identical. Unlike the lines of programming used to set up your Rust server, you will need to modify these lines of programming so that you get the end result that you want. So, we won’t give you an exact combination to input. However, we will take a look at some commands that we haven’t yet that you might include in your batch script file.
By starting your code with this phrase, you will stop the natural tendency of the console window to display the commands in the batch script file as you go through them.
This command tells the script to – as you might have guessed – start. If you input the command goto start like we discussed earlier, this is the “start” point at which the command will loop to.
C:\steamcmd.exe +login anonymous +force_install_dir c:\rustserver\ +app_update 258550 +quit
C:\steamcmd.exe +login <username> +<password> +force_install_dir c:\rustserver\ +app_update 258550 +quit
This particular line of code tells the system to launch SteamCMD and check for updates. If updates are available, this code will force the system to update to meet the current standard.
The next lines of code belong to a chunk of your programming that will determine aspects about your game such as the number of players that can play, world size, and other aspects as well as sets information such as the server IP and the port the server will use.
This is generally what you start this chunk of commands with following the selected file (such as RustDedicated.exe). It opens Unity in non-GUI (graphical user interface) mode. This means that the script will run with automatically with no need for human interaction to kickstart it.
This command, as the text suggests, sets the Server IP. By default, this is set to a value of 0.0.0.0. Most of the time, you won’t change this. The only time it needs to be changed is if you have multiple IPs.
By entering this command, you are setting the port your server will use. This number defaults to 28015 UP.
+server.level “<Map Type>”
You will use this command to set what map type your server will use. You can input “Procedural Map”, “Barren”, “HapisIsland”, “SavasIsland”, or “SavvasIsland_koth”.
The server seed controls the shape for both the procedural and barren maps and it must be used alongside the +server.worldsize input command. The number defaults to 50000 but can be any number ranging from 0 to 2147483647.
This is used alongside the +server.seed command and, much like the other input command, controls the shape of the map for both the procedural and barren maps. The number defaults to 3000 but you can input any number between 1000 and 6000.
The +server.maxplayers command is used to control how many players can be connected to a server at once. The default of this number is 50 but it can be changed to fit your needs. Of course, there can be less players than this value on your server while it is running but no more will be allowed on than this value.
For this command, you are going to replace the # with the number of seconds it takes your server to save. A good default value for this slot is 600.
The tickrate is the server refresh rate. The default value for this particular command is 10 but, of course, you can change it. However, if you want your game to run properly do not put this as a value higher than 30.
This command is useful for running multiple server instances. It gives the directory name that serves as the parent file that holds all your server files. It is crucial that you do not use spaces or special characters when you are naming this file as it will confuse the system.
+server.hostname “Your Server Name”
This command simply displays the name of your server.
This sets the RCON IP and automatically defaults to 0.0.0.0. Much like the server IP, you probably won’t need to change this value.
This will notate the port to listen to for RCON. The default value is 28016 and likely won’t need changed.
There are, of course, more commands that you can work with but this list covers most of what you will use.
Sharing Your Server
To open your server to the public, you are going to need to set up a port forward. This guide highlights how to set up port forwards on almost any server that you might be using. If you are having trouble connecting after referencing this, you might want to check for any local firewall programs blocking your server. If that still doesn’t work, try using a client.connect command. If you used the default values in your server.port and rcon.port commands, the client.command will look like this:
Client.connect localhost : 28015
Then, your server should be online and ready to go!