What you are actually setting up
You want a lobby your friends or your league can join at any hour, with your choice of track, cars and rules. In the original Assetto Corsa that lobby is acServer, Kunos's own server program. You already own it: it is in the server folder of your Assetto Corsa install, together with acServerManager, a Windows tool that writes the settings and prepares the track and car data the server needs.
Two files describe your event, cfg/server_cfg.ini and cfg/entry_list.ini, and a third, blacklist.txt, holds the Steam IDs you have banned. You can edit them in acServerManager or in any text editor.
Everything here is about the first Assetto Corsa. Competizione uses a different server program with its own settings, so a guide for one will not configure the other.
What decides the size of the machine
Kunos does not publish a processor or memory requirement for acServer. Its manual talks about your connection instead: if your upload is weak, do not run a 24-slot server, and use acServerManager to see roughly how much bandwidth your setup will use. So start there, with your grid size, and look at the estimate before you choose where to host.
- Your grid can never be bigger than the track's pit count;
MAX_CLIENTSmust stay at or below it. CLIENT_SEND_INTERVAL_HZcontrols how often the server sends updates. Raising it smooths what drivers see and costs more bandwidth, and Kunos warns that pushing it too far can itself cause connection problems.- If you plan a second or third lobby on the same machine, each one adds its own traffic.
Distance matters too. Drivers feel ping, so host your lobby in the city closest to most of them.
The ports your drivers come through
Kunos's sample configuration uses these defaults, and the manual tells you to open each one on the server's firewall:
- 9600 over UDP (
UDP_PORT), the stream of race data. - 9600 over TCP (
TCP_PORT), the connection each driver opens. - 8081 (
HTTP_PORT), the lobby port. The manual asks you to open it for both TCP and UDP.
Leave REGISTER_TO_LOBBY=1 as it is; Kunos says not to change it, and it is how your lobby shows up in the game's server list. At home you would also forward these ports on your router. On a server that has a public IPv4 address of its own, you skip that step and only set the firewall.
Preparing the content on your gaming PC
Your drivers get kicked if the server's cars or tracks differ from theirs, and the usual cause is a game update. Kunos asks you to redo this preparation each time Steam patches Assetto Corsa:
- In Steam, open Assetto Corsa's local files and go into the
serverfolder. - Start
acServerManager.exe, set up your event and save it. - Press Update Server Content. If you prefer no window, run
acServerManager.exe /pack /nomsg. - If a server is already running elsewhere, keep copies of your
server_cfg.ini,entry_list.iniandblacklist.txtfirst, then add any new settings from the fresh files to yours. - Transfer the complete
serverfolder to your host.
Moving it onto a Linux server
According to the 1.3.1 changelog, a correct Linux acServer now comes with the game, so your host can run Ubuntu natively. On the installs we have looked at it is a file called acServer, without an extension, inside server. Kunos does not spell that out, so run ls -l once the upload is done and change the paths below if yours is different. Give the server its own user, switch the firewall on with SSH allowed before anything else starts, then send the folder up from Windows using PowerShell's scp.
# server: a user and a firewall first
sudo useradd --create-home --shell /usr/sbin/nologin aclobby
sudo ufw allow OpenSSH
sudo ufw allow 9600/udp && sudo ufw allow 9600/tcp
sudo ufw allow 8081/tcp && sudo ufw allow 8081/udp
sudo ufw enable
# Windows PowerShell: send the prepared folder to your own home
scp -r "C:\Program Files (x86)\Steam\steamapps\common\assettocorsa\server" you@your-server:ac-upload
# server, logged in as you
sudo mv ~/ac-upload /home/aclobby/lobby
sudo chown -R aclobby:aclobby /home/aclobby/lobby
sudo chmod 640 /home/aclobby/lobby/cfg/server_cfg.ini
sudo chmod 750 /home/aclobby/lobby/acServer
Your settings file carries the join and admin passwords, which is why it travels through your home directory and ends up readable only by its owner and group. Files copied from Windows can lose their executable flag; the final line puts it back. Keep reading before your next update, though.
That mv is for your very first upload. After every later re-upload to ~/ac-upload, do this instead:
- Stop the lobby first:
sudo systemctl stop aclobby. - Keep copies of your own files:
sudo mkdir -p /root/lobby-keep && sudo cp -a /home/aclobby/lobby/cfg/server_cfg.ini /home/aclobby/lobby/cfg/entry_list.ini /home/aclobby/lobby/blacklist.txt /root/lobby-keep/. - Copy the new files over the old ones:
sudo cp -r ~/ac-upload/. /home/aclobby/lobby/. Do not usemvhere: with the lobby folder already in place it would end up nested inside it. - Bring your settings back:
sudo cp -a /root/lobby-keep/server_cfg.ini /root/lobby-keep/entry_list.ini /home/aclobby/lobby/cfg/, thensudo cp -a /root/lobby-keep/blacklist.txt /home/aclobby/lobby/. Your upload still holds the fresh versions, sosudo diff ~/ac-upload/cfg/server_cfg.ini /home/aclobby/lobby/cfg/server_cfg.inishows any new options (repeat it forentry_list.ini); add them to yours withsudo nano. Did you deliberately set up a different event in acServerManager before this upload? Then skip this step and keep the uploaded files. - Run the
chownandchmodlines again. - Start racing again:
sudo systemctl start aclobby. - When the lobby is back up, clear the upload with
rm -rf ~/ac-upload.
Keeping the lobby running on its own
On Windows, Kunos suggests starting the server through acServer.bat so each session's log is saved with a timestamp. On Linux, a small systemd service gives you the same safety net and brings the lobby back after a reboot. It starts acServer inside its folder so the cfg files are found.
# /etc/systemd/system/aclobby.service
[Unit]
Description=Assetto Corsa lobby
After=network-online.target
Wants=network-online.target
[Service]
User=aclobby
WorkingDirectory=/home/aclobby/lobby
ExecStart=/home/aclobby/lobby/acServer
Restart=on-failure
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Reload the unit list with sudo systemctl daemon-reload, start the lobby and mark it for boot with sudo systemctl enable --now aclobby, and watch journalctl -u aclobby -f as it starts. If acServer stops straight away, read those messages: Kunos made it refuse to run when the entry list holds a car the settings do not allow, when pickup mode is given more than one track, or when a booking session is added in pickup mode.
Who gets to run the race: the admin password
You manage a running race from the in-game chat, and Kunos's manual says you must set ADMIN_PASSWORD in server_cfg.ini. Anyone who joins using it becomes administrator automatically, and /admin followed by the password does the same mid-session. That person can kick and ban drivers, add ballast or a restrictor to a car, and skip or restart sessions.
- Choose a long, unique value. The manual's example is
kunos; replace it before your first race. - Share it only with the stewards who need it, never in a screenshot or a posted config.
- Changed it after a leak? Restart the service so the new value is loaded.
- Want a closed grid? Set
LOCKED_ENTRY_LIST=1and nobody outside your entry list's Steam IDs can join; listed drivers need no join password.
Where your lobby can live with us
With our bare metal game servers your lobby gets a whole machine to itself: HPE enterprise hardware, full root control, any operating system you like, and a support team you can reach by phone, email or live chat at any hour. Your locations are Amsterdam, Bucharest, Miami, New York and San Francisco, and our data centres page helps you pick the one nearest your drivers.
Each dedicated server includes one IPv4 address and an unmetered port of 500 Mbps or 1 Gbps depending on the line, so the upload warning in Kunos's manual is not the limit it is on a home line. Want several lobbies, say one per class? Kunos's manual makes separate ports (UDP, TCP and HTTP) a must for each lobby and suggests a separate executable or a duplicate folder too; on a Linux server that means one folder, one service and one set of firewall rules per lobby.
When your own PC is enough
If a handful of you race together now and then, running acServer on one of your own PCs may be all you need, as long as its upload can carry the grid. A rented machine starts to make sense when the lobby has to be there while you sleep, when your drivers live far apart, or when you run more than one event at a time. Either way, somebody with the game on Windows still prepares the content after each update.
Questions people ask
- Do I need to forward ports for an Assetto Corsa server?
- At home, yes: 9600 for UDP and TCP, and 8081, which Kunos wants open for TCP as well as UDP. On a hosted machine with its own public address you only allow those ports in its firewall. Moved the ports in
server_cfg.ini? Then those are the numbers to allow. - Is Linux officially supported for acServer?
- Kunos ships a native Linux acServer; the 1.3.1 changelog notes that the game "now includes correct Linux acServer". Where we have checked, it is the file
acServerin the game'sserverfolder, but check the name withls -lon yours. You still prepare the server content with acServerManager, which runs on Windows. - Why does my server kick everyone after a game update?
- Your server's cars and tracks no longer match the updated game. Prepare the content again with Update Server Content, upload the folder, and put your own settings files back.
- Can I host a GT3 lobby and a road-car lobby on one machine?
- Yes. Every lobby must have its own UDP, TCP and HTTP ports, and Kunos also advises a duplicate server folder or a renamed executable for each; run each one as its own service.
- Does this guide work for Assetto Corsa Competizione?
- No. Competizione has its own server with different files and settings. This page only covers the original game's acServer.