AssettoServer is a custom game server for Assetto Corsa developed with freeroam in mind. It greatly improves upon the default game server by fixing various security issues and providing new features like AI traffic and dynamic weather.
This is a fork of https://github.com/Niewiarowski/AssettoServer.
- Install the ASP.NET 6 Runtime (select "Hosting Bundle"): https://dotnet.microsoft.com/en-us/download/dotnet/6.0/runtime
- Download
assetto-server-win-x64.zip
from the latest stable release and extract it whereever you want.
DO NOT EXTRACT TO YOUR ASSETTO CORSA FOLDER. AC and AssettoServer use different versions of the Steam SDK that will conflict with each other. If you still feel the need to extract to your AC folder delete the steam_api64.dll from the server first, but this will cause Steam Auth to be broken.
- Follow the ASP.NET 6 Runtime installation instructions for your distro: https://docs.microsoft.com/en-us/dotnet/core/install/linux
- Download
assetto-server-linux-x64.tar.gz
from the latest stable release and extract it whereever you want.
- Open your AC server folder in Explorer, e.g.
C:\Program Files (x86)\Steam\steamapps\common\assettocorsa\server
- Rename
acServer.exe
to something else - Extract
assetto-server-win-x64.zip
into this directory - Rename
AssettoServer.exe
toacServer.exe
Now you can run servers through CM just like you would with the original server. Keep in mind that not all features of the original server are supported yet, so some of the server settings in CM will either have no effect or the features will just not work.
The easiest way to get started is creating your server configuration with Content Manager.
After that just click "Pack" to create an archive with all required configs and data files. Extract this archive into the server root folder.
Most features can be controlled via extra_cfg.yml
. If this file does not exist it will be created at first server startup.
The default server implementation of Assetto Corsa does not use the Steam API to determine whether a connected players account is actually the account they claim to be. This opens the door for SteamID spoofing, which means someone can impersonate another player.
In this server the Steam Auth API is utilized, as documented here: https://partner.steamgames.com/doc/features/auth
Since the player needs to get a Steam session ticket on client side that he has to transfer to the server upon joining, a minimum CSP (Custom Shaders Patch) version of 0.1.75 or higher is required along with Content Manager v0.8.2297.38573 or higher for players to be able to join the server.
This feature must be enabled in extra_cfg.yml
.
CSP can be found and downloaded here https://acstuff.ru/patch/
CSP Discord: https://discord.gg/KAbXE5Y
It is possible to specify the SteamIDs of players that should be administrator on the server.
Do not use this feature with Steam Auth disabled! Someone might be able to gain admin rights with SteamID spoofing.
It is possible to load one or more AI splines to provide AI traffic. Place fast_lane.ai
in the maps ai/
folder and set EnableAi
to true
in extra_cfg.yml
.
The default AI settings have been tuned for Shutoko Revival Project, other maps will require different settings.
To allow AI to take a car slot you have to add a new parameter to the entry_list.ini
, for example:
[CAR_0]
MODEL=ktyu_c8_lav_s1
SKIN=04_gunmetal_grey/ADAn
BALLAST=0
RESTRICTOR=0
AI=auto
Possible values for the AI
parameter are
auto
- AI will take the slot when it is emptyfixed
- AI will always take the car slot. It won't be possible for players to join in this slotnone
- AI will never take the slot (default)
When using AI=auto
slots it is highly recommended to specify a MaxPlayerCount
in extra_cfg.yml
to make sure there is always a minimum amount of AI cars available.
The server supports CSPs WeatherFX v1 which allows dynamic weather, smooth weather transitions and RainFX. CSP 0.1.76+ is required for this feature.
Two plugins are included that utilize dynamic weather:
LiveWeatherPlugin
for getting realtime weather from openweathermap.orgVotingWeatherPlugin
for letting players vote for weather changes
Will kick players if they are not honking, braking, toggling headlights, moving steering wheel, using gas or sending
messages in chat. Can be adjusted by an admin by using the /setafktime
command.
There is an experimental plugin interface for adding functionality to the server. Take a look at one of the included plugins to get started with developing your own plugin.
The API is still under development and might change in the future.
/pit <id>
Parameter | Description |
---|---|
id | The car ID or name of the player to be teleported |
/kick <id> <reason>
/kick_id <id> <reason>
Parameter | Description |
---|---|
id | The car ID or name of the player to be kicked |
reason | Optional, will display a reason on why the player was kicked. |
/ban <ID> <reason>
/ban_id <ID> <reason>
Parameter | Description |
---|---|
id | The car ID or name of the player to be banned |
reason | Optional, will display a reason on why the player was banned. |
/unban <steamId>
Parameter | Description |
---|---|
steamId | The steamID64 (Dec) of the blacklisted player |
The server does not need to be restarted for the command to take effect.
/settime <secondOfDay>
Parameter | Description |
---|---|
secondOfDay | 0 - 86400, second of day that the time is to be set to |
/setweather <weatherId>
Parameter | Description |
---|---|
weatherId | The ID of the weather specified in the server_cfg.ini |
/setafktime <minutes>
Parameter | Description |
---|---|
minutes | The time in minutes a player can be afk without getting kicked. |
/forcelights <on/off> <id>
Parameter | Description |
---|---|
on/off | On = Active forcing of headlights, Off = Disable forcing of headlights |
id | The car ID or name of the player |
Not specifying an id will enable/disable forced headlights for all players on the server.
NOTE: Forcing headlights for a player will still give him the opportunity to turn on/off his lights locally. His lights will however appear turned on for all other players.