Nov 18, 2020 update: Proton works again! You must go into game settings and force use of the latest Proton 5.13. See article updates at the end for other notices.
- TL;DR Summary
- Playing multiplayer
- Background
- Audience
- Installing Rust and dedicated server
- Determine your Proton version
- Launching dedicated server
- Play Rust
- Admin your server
- Shortcuts
- Article updates
TL;DR Summary
- I will occasionally update this post over time.
- You can run the dedicated server and Rust client on the same computer for local play using SteamPlay on Linux.
- The dedicated server must have EAC disabled.
- You must connect to the server from the Rust client by pressing
F1
key and usingclient.connect <ip address>:28015
.
This guide was last tested with the Modular Vehicles Update (July 2, 2020). I do not have Sunburn DLC.
Warning 1: Disable NPCs because it will crash when one dies. This appears to affect the dedicated server when being run with proton.
Warning 2: Putting your local server on the Internet is not recommended with EAC disabled (anti-cheat). This is the only way rust can be played with Linux.
Playing multiplayer
There’s plenty of multiplayer servers available if you want to play with other people.
My favorite server is Rust Deadlock. You can access it quickly by binding the
following command to F6
key.
bind f6 "client.connect play.deadlock.com:1333"
Or you can bookmark this link and open it in your browser. Or you
can run the following shell alias for the deadlock
command to connect.
alias deadlock='xdg-open steam://connect/play.deadlock.com:1333'
Background
Ever since Facepunch stopped supporting their Linux client, I’ve been hungry to play. I’m one of the few people who played on Linux, enjoyed the game, and didn’t get a refund.
I regularly browse ProtonDB for Rust in the hopes that a Rust update gets a platinum rating with EAC working for online multiplayer with Windows and Mac players. However, until then I noticed people were rating that gameplay works with EAC disabled.
I had an itch to scratch for playing Rust and this is my solution.
My system specs
- OS: Ubuntu 18.04.4 LTS
- Hardware that’s relevant for Rust and Linux:
- Intel Core i7
- 32GB RAM
- ASRock Radeon RX 5700 XT (AMD GPU)
- SSD hard drive
Audience
I’m going to assume you know your way around Linux and the Terminal. For now, it’s late and I just got this working. I may expand this post over time to be more beginner friendly. For now, this “guide” is for more advanced users.
Installing Rust and dedicated server
Install Steam, SteamCMD (sudo apt-get install steamcmd
), and
enable SteamPlay for all games.
Install Rust for Windows from Steam normally; on my computer it ends up in the following install locaion.
~/.local/share/Steam/steamapps/common/Rust
Install Rust Dedicated Server for Windows. Run steamcmd
and enter the
following commands.
@sSteamCmdForcePlatformType windows
login anonymous
app_update 258550 validate
quit
The dedicated server ends up in the following location by default. All following instructions assume defaults.
~/.local/share/Steam/steamapps/common/rust_dedicated
Determine your Proton version
Open Rust and let it sit on the main menu. Alt+tab away and open a terminal to inspect all Rust processes.
ps aux | grep Rust.exe
It should return output similar to the following.
user 25989 0.0 0.0 63632 24768 tty2 S+ 20:42 0:00 /bin/sh -c '/home/user/.local/share/Steam/steamapps/common/Proton 5.0'/proton waitforexitandrun '/home/user/.local/share/Steam/steamapps/common/Rust/Rust.exe' -logfile "output_log.txt"
user 25990 0.0 0.0 90504 16472 tty2 S+ 20:42 0:00 python3 /home/user/.local/share/Steam/steamapps/common/Proton 5.0/proton waitforexitandrun /home/user/.local/share/Steam/steamapps/common/Rust/Rust.exe -logfile output_log.txt
user 25997 0.0 0.0 1818696 19924 tty2 Sl+ 20:42 0:00 steam /home/user/.local/share/Steam/steamapps/common/Rust/Rust.exe -logfile output_log.txt
I noticed that I’m running Proton 5.0
. The command for how Rust is launched
is important for later. Take note the following.
/home/user/.local/share/Steam/steamapps/common/Proton 5.0/proton waitforexitandrun /home/user/.local/share/Steam/steamapps/common/Rust/Rust.exe -logfile output_log.txt
Launching dedicated server
The following is a script for launching the dedicated server. Please note, this script uses the same Proton version as Rust determined previously.
Create a script in the directory of your choice named rust_ds.sh
with the
following contents. The server output_log.txt
and rcon_pass
(password for
remote console administration) will also show up in the directory.
#!/bin/bash
# Launches Rust Dedicated Server for Windows on Linux
# Usage:
# ./rust_ds.sh
set -e
# List your proton versions with
# ls -1d ~/.local/share/Steam/steamapps/common/Proton*
PROTON_VERSION='Proton 5.0'
# generate a random password from /dev/urandom
function rand_password() {
tr -dc -- '-.~,<>[]{}@%()_+=0-9a-zA-Z' < /dev/urandom | head -c16;echo
}
STEAM_COMPAT_DATA_PATH="$HOME"/.local/share/Steam/steamapps/compatdata/258550
STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME"/.local/share/Steam
export STEAM_COMPAT_DATA_PATH STEAM_COMPAT_CLIENT_INSTALL_PATH
RUST_SERVER_DIR=~/.local/share/Steam/steamapps/common/rust_dedicated
SCRIPT_DIR="${PWD}"
mkdir -p "${STEAM_COMPAT_DATA_PATH}"
if [ ! -f rcon_pass ]; then
touch rcon_pass
chmod 600 rcon_pass
rand_password > rcon_pass
fi
cd "${RUST_SERVER_DIR}"
~/.local/share/Steam/steamapps/common/"${PROTON_VERSION}"/proton \
waitforexitandrun \
"${RUST_SERVER_DIR}"/RustDedicated.exe \
-batchmode -logfile "${SCRIPT_DIR}"/output_log.txt \
+server.secure 0 +server.encryption 0 +server.eac 0 \
+rcon.web 1 +rcon.port 28016 \
+rcon.password "$(< "${SCRIPT_DIR}"/rcon_pass)"
The important part from above are the Rust options for disabling EAC.
+server.secure 0
+server.encryption 0
+server.eac 0
Play Rust
Rust will crash if you attempt to browse the server list. So do not click “Play”. Instead, do the following.
- Press
F1
to open command menu. - Type in
client.connect 127.0.0.1:28015
.
Admin your server
In the directory where rust_ds.sh
script is located you’ll find the
rcon_pass
file. This contains the password used for remote console
administration (RCON).
Visit the Facepunch web-based websockets client you can use locally for connecting to your server.
Log in to your server:
- Address:
127.0.0.1:28016
- Password: found in
rcon_pass
file.
Here’s some helpful administration guides.
And more links
- Admin Commands Cheat Sheet - Rustafied.com (Google Doc)
- Rust console commands
- Rustified useful console commands
Initial server setup
I like running the following commands when playing solo.
heli.bulletdamagescale 0.1
hackablelockedcrate.decayseconds 72000
minicopter.population 3
minicopter.insidedecayminutes 54000
server.updatebatch 256
server.pve true
server.description "Sams Linux Server"
aimanager.ai_dormant false
ownerid [steam 64bit id] [steam username] owner
server.writecfg
You can get your own steam 64bit id
by looking at the user list in RCON.
Heavy grenade kit
Just for goofing off I decided to make myself OP and hit a bunch of NPCs with it. A full heavy kit with buckshot and high explosive 40mm grenade launchers.
inventory.giveall multiplegrenadelauncher 1
inventory.giveall multiplegrenadelauncher 1
inventory.giveall syringe.medical 100
inventory.giveall largemedkit 500
inventory.giveall ammo.grenadelauncher.he 1000
inventory.giveall ammo.grenadelauncher.buckshot 1000
inventory.giveall heavy.plate.helmet 1
inventory.giveall heavy.plate.jacket 1
inventory.giveall heavy.plate.pants 1
inventory.giveall shoes.boots 1
inventory.giveall weapon.mod.flashlight 2
inventory.giveall weapon.mod.holosight 2
Other
inventory.giveall tactical.gloves 1
Shortcuts
I’m a pretty casual player with work-life to balance. Expect to see more updates on how to mod it on Linux for higher spawn rates, 10x resouces, increased stacks, etc. This is the first time I’ve opened a Rust dedicated server so I’m new to all of this.
Here are some quality of life key bindings I enjoy as a player.
bind b backpack.open
bind z forward;sprint
bind c duck
# Disable autodoor from closing when holding F2 (+ means hold)
bind f2 "+chat.say /ad;+use"
# Toggles remove tool with "DELETE" key
bind delete "chat.say /remove"
Here are some useful Server Admin only aliases.
bind l global.teleport2marker
I also went into options and reversed the shortcut for Hover Loot (H) and Change Vehicle Seat (X) because I collect loot a lot more than I switch seats.
Article updates
- Nov 18, 2020 update: Proton works again! You must go into game settings and force use of the latest Proton 5.13.
- Sept 2020 update of Rust broke compatibility with Proton. The game can still be played through Steam on WINE. Using Lutris is recommended.