Workload · Hosting a Convoy for ETS2

Your own ETS2 dedicated server: a Convoy session that stays open

To run an ETS2 dedicated server, you install SCS Software's free server tool (Steam app 1948160) on a machine that stays online, give it two files exported from your own copy of the game, and open two ports; your friends then find the session in Convoy whenever they like, even when you are not playing. This guide walks through it on Linux, step by step, and the same steps work for American Truck Simulator.

The short version
  1. The session stays open with nobody driving
  2. Free tool from SCS, downloaded without logging in to Steam
  3. Your DLC and mod setup travels in two exported files
  4. Open 27015 and 27016 for TCP and UDP, nothing else
  5. Up to 8 drivers per session; run several for more

Why a dedicated server instead of hosting from the menu

Because a menu-hosted Convoy ends the moment its host leaves. SCS's Convoy FAQ is clear on that: when the host quits, the session closes and everyone is disconnected. A dedicated server has no host player. SCS's December 2022 announcement says the session keeps running with nobody online, so drivers can drop in, finish a job and leave on their own schedule.

It also runs headless, with no window and no user interface, which is exactly what a rented server is good at. Nobody needs to own the game on that machine, and you can run more than one session on it if the hardware has room.

What you need before you start

  • Your own Euro Truck Simulator 2 install, on your PC. The server cannot pick a map, DLC or mods by itself. You export that setup from the game as a pair of files (the .sii and .dat server packages), and SCS says these are necessary for the server to start.
  • A server that is always on, with a public address so the session shows up in the Convoy browser. SCS's server does not do NAT punching, which is why home routers make this awkward.
  • Optionally, a logon token from Steam, made by a Steam account that has bought the game. It keeps your server's search id the same across restarts.
  • The Steam IDs of the friends you want as moderators.

The server that fits

One session holds at most 8 drivers, as SCS's own settings list states, and SCS publishes no processor or memory requirement for the server. That makes this a light job, and the cheapest fast machine on our game server page, the Xeon E3-1585L v5 in its entry build, with 32 GB of memory and an NVMe drive, sold in all five of our cities, is a comfortable place to begin. Start one session, watch its load, and add more on the same machine if it has room.

Choose the city by where your friends drive from: for friends across Europe, Amsterdam or Bucharest; for North America, New York, Miami or San Francisco. You can time each city from your own browser on the locations page before you choose.

A server that is already racked is handed to you about 30 minutes after we approve your order, and the payment check before that is what can vary. One built to your spec needs 4 to 24 hours if we have the parts, more if something must be bought.

Up and running in an evening

Pick Ubuntu 24.04 at checkout and sign in over SSH. The first block makes a trucks user for the server, switches the firewall on (SSH first, so you keep your connection), opens the two ports the session needs, and downloads the server with SteamCMD. It also creates the link to steamclient.so that SCS's guide says the Linux server needs when no Steam client is installed. If anything stops it, fix the cause and paste it again; it picks up where it left off.

# run with sudo on Ubuntu 24.04
sudo apt-get update && sudo apt-get install -y lib32gcc-s1 curl && \
{ id trucks >/dev/null 2>&1 || sudo useradd -m -s /bin/bash trucks; } && \
sudo sed -i 's/^IPV6=.*/IPV6=yes/' /etc/default/ufw && \
sudo ufw allow OpenSSH && sudo ufw --force enable && \
sudo ufw allow 27015:27016/tcp && sudo ufw allow 27015:27016/udp && \
sudo -u trucks -H bash -c 'mkdir -p ~/steamcmd && cd ~/steamcmd && curl -sqL https://client-update.steamstatic.com/installer/steamcmd_linux.tar.gz | tar zxf - && ./steamcmd.sh +force_install_dir /home/trucks/server +login anonymous +app_update 1948160 validate +quit; test -x /home/trucks/server/bin/linux_x64/eurotrucks2_server && test -e ~/steamcmd/linux64/steamclient.so && mkdir -p ~/.steam/sdk64 && ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so' && \
echo "server downloaded" || echo "STOP - something above did not finish, paste the block again"
  1. Start the server once by hand (the opening line of the block below). It creates its home folder and a default server_config.sii, then complains that the server packages file is missing. That is expected.
  2. On your PC, open config.cfg in the folder where the game keeps its settings and change the console line to uset g_console "1".
  3. Launch the game set up the way the server should be (same DLC, same mods), load into the world, press ~ and type export_server_packages. Both files land in that same settings folder.
  4. Copy both into /tmp on the server (scp works from Windows too), then paste the remainder of the block. It moves them into place and opens the settings file in nano.
# once, by hand: makes the home folder, then stops on the missing packages
sudo -u trucks -H bash -c 'cd ~/server/bin/linux_x64 && timeout 60 ./eurotrucks2_server'

# after the two files are in /tmp
D=$(sudo find /home/trucks/.local/share -maxdepth 2 -name server_config.sii -printf '%h\n' | head -n 1)
if [ -z "$D" ]; then echo "STOP - no server_config.sii yet, run the first line again"; else
  sudo chmod 600 "$D/server_config.sii" && \
  sudo install -o trucks -g trucks -m 600 /tmp/server_packages.sii /tmp/server_packages.dat "$D/" && \
  sudo rm /tmp/server_packages.sii /tmp/server_packages.dat && \
  sudo -u trucks nano "$D/server_config.sii" || echo "STOP - check that both files are in /tmp"
fi

Making the session yours

Everything about the session lives in server_config.sii, and the ones most people change are below, with the limits SCS documents.

SettingWhat it changesDefault or limit
lobby_nameThe name drivers see in the browserUp to 63 characters
passwordLeave empty for an open sessionUp to 63 characters
welcome_messageShown when someone joinsUp to 127 characters
max_playersHow many can drive at once8, which is the limit
traffic / player_damageAI traffic, and damage between playersBoth on
force_speed_limiterMakes everyone use the speed limiterOff
server_logon_tokenGives the server a persistent accountEmpty means anonymous
moderator_listFriends promoted to moderator on joiningHow many, then each Steam ID on its own line

For the token, go to Steam's game server token page, using the Steam account that bought the game, and create it for app 227300, the game itself. SCS warns not to use the server's own id. Without a token the server signs in anonymously and its search id changes every time it starts. The settings file now holds that token and your password, so the block above locked it to mode 600.

Your moderators can type /set_time with a time such as 18:30, /set_rain_factor followed by anything between 0 and 1, or /help in chat. There is no other admin screen, because the server has no interface.

Keeping it running without you

SteamCMD never updates the server on its own, SCS reminds you, so this service checks for an update each time it starts and then launches the server. If the update step fails, the dash before it lets the old version start anyway, and half an hour is allowed for big patches; a download that stalls still runs into that limit. It stops the server with Ctrl+C's signal, the way SCS's guide closes it. Its opening lines refuse to go on unless the two package files exist.

D=$(sudo find /home/trucks/.local/share -maxdepth 2 -name server_packages.sii -printf '%h\n' | head -n 1)
if [ -n "$D" ] && sudo test -e "$D/server_packages.dat"; then
sudo tee /etc/systemd/system/convoy.service > /dev/null <<'EOF'
[Unit]
Description=ETS2 Convoy dedicated server
Wants=network-online.target
After=network-online.target

[Service]
User=trucks
WorkingDirectory=/home/trucks/server/bin/linux_x64
TimeoutStartSec=1800
ExecStartPre=-/home/trucks/steamcmd/steamcmd.sh +force_install_dir /home/trucks/server +login anonymous +app_update 1948160 +quit
ExecStart=/home/trucks/server/bin/linux_x64/eurotrucks2_server -nosingle
KillSignal=SIGINT
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now convoy && sleep 30 && sudo journalctl -u convoy -n 40 --no-pager
else echo "STOP - copy both server_packages files in first"; fi
  • After a game patch, run sudo systemctl restart convoy to pull the new server build. We suggest keeping the server on the version your friends play.
  • If it drops, read server.log.txt in the server's home folder, and server.crash.txt if it crashed. SCS notes that a lost Steam connection closes the session with "Steam disconnected". If that makes the program quit, systemd relaunches it by itself. If instead the log reports a closed session but the program is still up, restart it with sudo systemctl restart convoy.
  • Keep a copy of the settings file and both package files somewhere other than the server. That folder is the whole setup; the game files download again in one SteamCMD run.
  • Changed your mods or DLC? Export the packages again and replace both files, then restart. The server cannot download anything from the Workshop itself.

When your friends cannot find it

Start with the ports: 27015 and 27016 need TCP and UDP allowed, which the first block did. The virtual ports 100 and 101 in the settings file are internal to the game and need no rule. Then hand your friends the search id from the server's startup output. Typed into the Convoy browser's search box, it finds the server directly, and SCS's guide says that works behind NAT as well.

American Truck Simulator, or a second session

For American Truck Simulator, swap in app 2239530, the binary amtrucks_server, packages exported from ATS, and a token made for app 270880. A second session on the same machine needs separate ports and a separate token, SCS says, plus its own home folder, which Linux moves with XDG_DATA_HOME. Run it once by hand to create that folder: sudo -u trucks -H bash -c 'mkdir -p ~/convoy2 && cd ~/server/bin/linux_x64 && export XDG_DATA_HOME=/home/trucks/convoy2 && timeout 60 ./eurotrucks2_server -nosingle'. Lock its new server_config.sii with chmod 600, copy both package files beside it (owned by trucks, mode 600), and give it new physical ports such as 27017 and 27018 (open them for TCP and UDP), new virtual ports such as 102 and 103, and its own token. Its service is a renamed copy of the first that sets Environment=XDG_DATA_HOME=/home/trucks/convoy2, without the update line (so the two never update the same files at once), and with -nosingle on the ExecStart line. The first service above already carries -nosingle: SCS's guide names that switch as the one that allows more than one instance, though its remark that it would soon be standard may no longer apply.

Hosting a racing night too? See our Wreckfest server guide or the BeamMP lobby walkthrough. You install the game; we keep the machine running, and our chat can check the server for you, with a person taking over whenever you ask.

Questions people ask

Does the server machine need the game installed?
No. SCS says you can run the server without owning the game or its DLCs, and SteamCMD downloads it with an anonymous login. You only need the game on your own PC, to export the two server_packages files.
Will friends without my DLC be able to join?
SCS's Convoy FAQ says players do not need to own any DLC to join a Convoy session. They simply cannot see or drive in DLC map areas they do not own themselves.
Is the logon token required?
No. Without one the server signs in anonymously and gets a new search id on each start. A token, created for the game's app id by an account that owns the game, keeps the id the same, and each running session needs its own.
Can more than 8 people drive together?
Not in one session: SCS's settings list gives 8 as the limit for max_players. You can run several sessions on one machine, each on different ports with a different token and home folder.
Which operating system should I pick?
Linux works well and needs no licence; this guide uses Ubuntu 24.04. Steam also lists a Windows build of the server, and Windows Server can be chosen at checkout with its licence added on the order form.

Keep your convoy on the road

Pick a fast machine in a city near your friends, then follow this guide the evening it arrives.

Get a server for your convoy

Read next