Difference between revisions of "Server Configuration"

From ACC Wiki (Unofficial)
Jump to navigation Jump to search
m
 
(301 intermediate revisions by 14 users not shown)
Line 1: Line 1:
 
[[Category:Multiplayer]]
 
[[Category:Multiplayer]]
 
[[Category:Settings]]
 
[[Category:Settings]]
 +
[[Category:Pitstop]]
  
 
<languages/>
 
<languages/>
 
<translate>
 
<translate>
== Installation == <!--T:1-->
 
  
<!--T:83-->
+
<!--T:92-->
{| class="wikitable" style="width:100%"
+
[[File:ACC Dedicated Server.png|right|650px]]
|-
+
 
! style="width:25%; text-align:left;"| Folder Structure Server !!style="text-align:left;"| Folder Structure on your PC
+
== Windows / Linux == <!--T:111-->
|-
 
| server\accServer.exe || ...\Steam\steamapps\common\Assetto Corsa Competizione\server\accServer.exe
 
|-
 
| server\cfg\configuration.json || ...\Steam\steamapps\common\Assetto Corsa Competizione\server\cfg\configuration.json
 
|-
 
| server\cfg\event.json || ...\Steam\steamapps\common\Assetto Corsa Competizione\server\cfg\event.json
 
|-
 
| server\cfg\eventRules.json || ...\Steam\steamapps\common\Assetto Corsa Competizione\server\cfg\eventRules.json
 
|-
 
| server\cfg\settings.json || ...\Steam\steamapps\common\Assetto Corsa Competizione\server\cfg\settings.json
 
|}
 
  
 
=== Windows specific === <!--T:32-->
 
=== Windows specific === <!--T:32-->
  
 
<!--T:50-->
 
<!--T:50-->
{| class="wikitable" style="width:100%;"
+
{| class="wikitable"
 
|-
 
|-
! style="text-align:left;"|Default Installation Path
+
! style="text-align:left;"| Default Installation Path
 
|-
 
|-
| C:\Program Files (x86)\Steam\steamapps\common\Assetto Corsa Competizione\server
+
| C:\Program Files (x86)\Steam\steamapps\common\Assetto Corsa Competizione Dedicated Server\server\server.exe
 
|}
 
|}
  
Line 39: Line 28:
 
<!--T:51-->
 
<!--T:51-->
 
We need Wine because there is no Nativ Binary for Linux.
 
We need Wine because there is no Nativ Binary for Linux.
{| class="wikitable" style="width:100%;"
+
 
 +
<!--T:93-->
 +
{| class="wikitable"
 
|-
 
|-
 
| sudo apt-get install wine-development
 
| sudo apt-get install wine-development
 
|}
 
|}
 +
 +
<!--T:94-->
 
Copy now all Server Files from your Windows System where you have ACC Installed to the Linux Server.
 
Copy now all Server Files from your Windows System where you have ACC Installed to the Linux Server.
 
After that you can Start your Server with  
 
After that you can Start your Server with  
{| class="wikitable" style="width:100%;"
+
 
 +
<!--T:95-->
 +
{| class="wikitable"
 
|-
 
|-
 
| wine ./accServer.exe
 
| wine ./accServer.exe
 +
|}
 +
 +
<!--T:129-->
 +
You need to have "ignorePrematureDisconnects":0 in settings.json
 +
 +
== Installation == <!--T:1-->
 +
 +
<!--T:127-->
 +
<span style="color:red;">After version 1.5.7, the Assetto Corsa Competizione dedicated server and Broadcast SDK is transferred to and now available as a separate download in the "Assetto Corsa Competizione Dedicated Server" item in the Steam Tools library.</span>
 +
 +
<!--T:106-->
 +
Install in Steam under Tools "Assetto Corsa Competizione Dedicated Server" and you find all this under "..:\Steam\steamapps\common\Assetto Corsa Competizione Dedicated Server".
 +
 +
<!--T:128-->
 +
{| class="wikitable"
 +
! colspan="2"| Folders !! Description
 +
|-
 +
| cfg ||  || The files for setting up a multiplayer server are located in this folder. In the further course of this description, you will be shown what additional folders and files are added automatically or manually.
 +
|-
 +
| cfg || current || If you have started a server, .txt-files are generated here. With these you can check whether the server was started with your parameters. If a parameter was not accepted, you made a mistake in the .json-file.
 +
|-
 +
| log ||  || This folder contains the server.log file, which permanently records what happens on the server.
 +
|-
 +
| results ||  || The results of qualifications and races are stored here.
 +
|-
 +
| sdk || broadcasting ||
 +
|-
 +
| server ||  || contains the executable file accServer.exe and the official server manual from Kunos as a PDF file
 +
|-
 +
| server || cfg || ^^ ''currently I can't find any meaning of the additional cfg folder''
 +
|}
 +
 +
=== cfg-Folder === <!--T:96-->
 +
 +
<!--T:110-->
 +
...\Steam\steamapps\common\Assetto Corsa Competizione Dedicated Server\cfg\
 +
 +
<!--T:83-->
 +
{| class="wikitable mw-datatable"
 +
|-
 +
!  !!style="text-align:left;"| Link to Description
 +
|-
 +
| assistRules.json || [[Server_Configuration#assistRules.json|↓assistRules.json]]
 +
|-
 +
| configuration.json || [[Server_Configuration#configuration.json|↓configuration.json]]
 +
|-
 +
| event.json || [[Server_Configuration#event.json|↓event.json]]
 +
|-
 +
| settings.json || [[Server_Configuration#settings.json|↓settings.json]]
 +
|}
 +
 +
<!--T:109-->
 +
In the further course of this description, you will be shown what additional folders and files are added automatically or manually.
 +
 +
=== current-Folder === <!--T:112-->
 +
 +
<!--T:114-->
 +
If you start accServer.exe now, a folder "current" will be created in "cfg" Folder. This contains your settings from the .json-files as a text file.
 +
 +
<!--T:116-->
 +
If you make a mistake in .json, it will be corrected when the server is started and will be displayed in the text file. This gives you another way to go about troubleshooting.
 +
 +
<!--T:113-->
 +
{| class="wikitable mw-datatable"
 +
|-
 +
!  !!style="text-align:left;"| Compare them with your settings at:
 +
|-
 +
| configuration.txt || [[Server_Configuration#configuration.json|↓configuration.json]]
 +
|-
 +
| entrylist.txt || [[Server_Configuration#entrylist.json|↓entrylist.json]]
 +
|-
 +
| event.txt || [[Server_Configuration#event.json|↓event.json]]
 +
|-
 +
| eventRules.txt || [[Server_Configuration#eventRules.json|↓eventRules.json]]
 +
|-
 +
| settings.txt || [[Server_Configuration#settings.json|↓settings.json]]
 
|}
 
|}
  
Line 53: Line 124:
  
 
<!--T:88-->
 
<!--T:88-->
The server is exclusively configured via JSON files in UTF16-LE format. In general, it is a good idea to get used to the JSON syntax, and/or test your configurations with an [https://jsonformatter.curiousconcept.com/ online syntax check].
+
The server is exclusively configured via JSON files in UTF16-LE format. In general, it is a good idea to get used to the JSON syntax, and/or test your configurations with an syntax check on [https://jsonformatter.curiousconcept.com/ https://jsonformatter.curiousconcept.com/].
  
 
<!--T:89-->
 
<!--T:89-->
Line 68: Line 139:
  
 
<!--T:53-->
 
<!--T:53-->
{| class="wikitable" width="100%"
+
{| class="wikitable mw-datatable"
! style="width:150px;"| File Content !! Property !! Description
+
! style="width:222px;"| Property !! Description
|-
 
| rowspan="7" style="vertical-align:top;"|
 
<span style="color:red; font-weight:bold;">{</span></br>
 
"udpPort": 9201,</br>
 
"tcpPort": 9201,</br>
 
"maxConnections": 30,</br>
 
"lanDiscovery": 1,</br>
 
"registerToLobby": 1,</br>
 
"configVersion": 1</br>
 
<span style="color:red; font-weight:bold;">}</span>
 
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| tcpPort || ACC clients will use this port to establish a connection to the server
 
| tcpPort || ACC clients will use this port to establish a connection to the server
Line 86: Line 147:
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| registerToLobby ||
 
| registerToLobby ||
* 0 = this server <u>won’t</u> register to the backend. the server is declared [[Multiplayer_Overview#Variants_of_Servers|Private Multiplayer]]. Is useful for LAN sessions.
+
* 0 = This server is not registered in the backend. the server is declared [[Multiplayer_Overview#Variants_of_Servers|Private Multiplayer]]. Is useful for LAN sessions.
* 1 = this server register to the backend. the server is declared [[Multiplayer_Overview#Variants_of_Servers|Public Multiplayer]].
+
* 1 = this server register to the backend. the server is declared [[Multiplayer_Overview#Variants_of_Servers|Public Multiplayer]].
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| maxConnections || The maximum amount of connections a server will accept at a time. If you own the hardware server, you can just set any high number you want. If you rented a 16 or 24 slot server, your Hosting Provider probably has set this here and doesn’t give you write-access to this configuration file. Check also:
+
| maxConnections || The maximum amount of connections a server will accept at a time. If you own the hardware server, you can just set any high number you want. If you rented a 16 or 24 slot server, your Hosting Provider probably has set this here and doesn’t give you write-access to this configuration file.
* [[Server_Configuration#settings.json|setting.json / maxCarSlot]]
+
* [[Server_Configuration#settings.json|setting.json / maxCarSlot]]
* [[Server_Configuration#settings.json|setting.json / spectatorPassword]]
+
* [[Server_Configuration#settings.json|setting.json / spectatorPassword]]
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| lanDiscovery || Defines if the server will listen to LAN discovery requests. Can be turned off for dedicated servers.
 
| lanDiscovery || Defines if the server will listen to LAN discovery requests. Can be turned off for dedicated servers.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| configVersion || ...
 
| configVersion || ...
 +
|- style="vertical-align:top;"
 +
| publicIP || Explicitly defines the public IP address. Useful if the backend is connected via a load balancer or reverse proxy.
 +
'''Attention:''' If used, the server ''must'' use the same port number for tcpPort and udpPort (e.g. 9231 for ''both''), and respond to an additional handshake on the UDP port one number higher (e.g. 9232) than its udpPort, or it will shutdown during startup.
 
|}
 
|}
  
Line 104: Line 168:
  
 
<!--T:54-->
 
<!--T:54-->
The setting defines your personal server settings, which may be changed from time to time, but also define the server.
+
In these settings, you define the parameters of the server that only need to be changed in certain situations, e.g. vehicle class.
  
 
<!--T:55-->
 
<!--T:55-->
{| class="wikitable" width="100%"
+
{| class="wikitable mw-datatable"
! style="width:222px;"| File Content !! Property !! Description
+
! style="width:222px;"| Property !! Description
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| rowspan="16" style="vertical-align:top;"|
 
<span style="color:red; font-weight:bold;">{</span></br>
 
"serverName": "My first Server",</br>
 
"adminPassword": "pwAdmin",</br>
 
"trackMedalsRequirement": 3,</br>
 
"safetyRatingRequirement": 49,</br>
 
"racecraftRatingRequirement": -1,</br>
 
"password": "pwAccess",</br>
 
"spectatorPassword": "pwSpect",</br>
 
"maxCarSlots": 30,</br>
 
"dumpLeaderboards": 0,</br>
 
"isRaceLocked": 1,</br>
 
"randomizeTrackWhenEmpty": 0,</br>
 
"centralEntryListPath": "",</br>
 
"allowAutoDQ": 1,</br>
 
"shortFormationLap": 0,</br>
 
"dumpEntryList": 0</br>
 
<span style="color:red; font-weight:bold;">}</span>
 
 
| serverName || The server name displayed in the ACC UI pages
 
| serverName || The server name displayed in the ACC UI pages
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| adminPassword || The password you specify allows a driver or spectator to log in as Server Admin in the chat window (ENTER key) of the server. Check also:
+
| adminPassword || The password you specify allows a driver or spectator to log in as Server Admin in the chat window ( ENTER key ) of the server.
* [[Server_Configuration#entrylist.json|entrylist.json / isServerAdmin]]
+
* [[Server_Configuration#entrylist.json|entrylist.json / isServerAdmin]]
* [[Server_Configuration#Admin Commands|Admin Commands]]
+
* [[Server_Configuration#Admin Commands|Admin Commands]]
 +
|- style="vertical-align:top;"
 +
| carGroup || Defines the car group for this server. Possible values are
 +
* FreeForAll = where “FreeForAll” will allow any driver to join with any car ( that he defined as Primary Car ).
 +
* GT2 = Limit this server to GT2 Vehicles
 +
* GT3 = Limit this server to GT3 Vehicles
 +
* GT4 = Limit this server to GT4 Vehicles
 +
* GTC = Limit this server to Porsche 991 II GT3 Cup + Lamborghini Huracan Super Trofeo
 +
* TCX = Limit this server to BMW M2 Club Sport Racing
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| trackMedalsRequirement || Defines the amount of track medals that a user has to have for the given track
 
| trackMedalsRequirement || Defines the amount of track medals that a user has to have for the given track
Line 140: Line 194:
 
* values: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
 
* values: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| racecraftRatingRequirement || Defines the Safety Rating (RC) that a user must have to join this server
+
| racecraftRatingRequirement || Defines the Racecraft Rating (RC) that a user must have to join this server
 
* values: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
 
* values: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| password || Password required to enter this server. If a password is set, the server is declared [[Multiplayer_Overview#Variants_of_Servers|Private Multiplayer]].
+
| password || Password required to enter this server. If a password is set, the server is declared [[Multiplayer_Overview#Variants_of_Servers|Private Multiplayer]].
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| spectatorPassword || Password to enter the server as spectator. Must be different to “password” if both is set.
 
| spectatorPassword || Password to enter the server as spectator. Must be different to “password” if both is set.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| maxCarSlots || Replaces “maxClientsOverride” and “spectatorSlots”. Defines the amount of car slots the server can occupy; this value is overridden if the pit count of the track is lower, or with 30 for public MP. The gap between maxCarSlots and maxConnections defines how many spectators or other irregular connections (ie entry list entries) can be on the server.
+
| maxCarSlots || Defines the amount of car slots the server can occupy; this value is overridden if the pit count of the track is lower, or with 30 for public MP. The gap between maxCarSlots and maxConnections ( in configuration.json ) defines how many spectators or other irregular connections ( ie entry list entries ) can be on the server.
 +
|- style="vertical-align:top;"
 +
| dumpLeaderboards || If set to 1, any session will write down the result leaderboard in a “results” folder ( must be manually created ).
 +
* ↓[[Server_Configuration#Result_Files|Results File]]
 +
|- style="vertical-align:top;"
 +
| dumpEntryList || Will save an entry list at the end of any Qualifying session. This can be a quick way to collect a starting point to build an entry list, and is a way to save the defaultGridPositions which can be used to run a race without Qualifying session and predefined grid. Also see the corresponding admin command.
 +
|- style="vertical-align:top;"
 +
| isRaceLocked || If set to 0, the server will allow joining during a race session. Is not useful in →[[Multiplayer_Overview#Variants_of_Servers|Public Multiplayer]], as the user-server matching will ignore ongoing race sessions.
 +
|- style="vertical-align:top;"
 +
| shortFormationLap ||
 +
* 0 = one formation lap - Useful for →[[Multiplayer_Overview#Variants_of_Servers|Private Multiplayer]]
 +
* 1 = short formation lap
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| dumpLeaderboards || If set to 1, any session will write down the result leaderboard in a “results” folder (must be manually created). See ”Session results”
+
| formationLapType || Toggles the formation lap type that is permanently used on this server:
 +
* 5 = short formation lap with position control and UI + 1 ghosted cars lap
 +
* 4 = one free formation lap + 1 ghosted cars lap
 +
* 3 – default formation lap with position control and UI
 +
* 1 – old limiter lap
 +
* 0 – free (replaces /manual start), only usable for private servers
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| isRaceLocked || If set to 0, the server will allow joining during a race session. Is not useful in “Public Multiplayer”, as the user-server matching will ignore ongoing race sessions.
+
| doDriverSwapBroadcast || ?
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| randomizeTrackWhenEmpty || If set to 1, the server will change to a random track when the last drivers leaves (which causes a reset to FP1). The “track” property will only define the default state for the first session.
+
| randomizeTrackWhenEmpty || If set to 1, the server will change to a random track when the last drivers leaves ( which causes a reset to FP1 ). The “track” property will only define the default state for the first session.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| centralEntryListPath || Can override the default entryList path “cfg/entrylist.json”, so multiple ACC servers on the machine can use the same entrylist (and custom car files). Set a full path like “C:/customEntryListSeriesA/”, where the entrylist is stored.
+
| centralEntryListPath || Can override the default entryList path “cfg/entrylist.json”, so multiple ACC servers on the machine can use the same entrylist ( and custom car files ). Set a full path like “C:/customEntryListSeriesA/”, where the entrylist is stored.
<span style="color:red;">'''Attention''': The path seperators have to be slashes (/), backslashes (\) will not work.</span>
+
<span style="color:red;">Attention: The path seperators have to be slashes ( / ), backslashes ( \ ) will not work.</span>
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| allowAutoDQ || If set to 0, the server won’t automatically disqualify drivers, and instead hand out Stop&Go (30s) penalties. This way a server admin / race director has 3 laps time to review the incident, and either use /dq or /clear based on his judgement.
+
| allowAutoDQ || If set to 0, the server won’t automatically disqualify drivers, and instead hand out Stop&Go ( 30 Secounds ) penalties. This way a server admin / race director has 3 laps time to review the incident, and either use /dq or /clear based on his judgement.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| shortFormationLap ||  
+
| ignorePrematureDisconnects || Removes a ( very good ) fix where users can randomly lose the connection. There is no sane reason to turn this off.
* 0 = short formation lap - Nützlich für [[Multiplayer_Overview#Variants_of_Servers|Private Multiplayer]]
+
* 1 – default: less arbitrary connections lost
* 1 = kurze formation lap
+
* 0 – more timeouts, but strict disconnection of anyone who
 +
appears inactive for 5 seconds. Can be useful on unsupported platforms where TCP sockets act differently
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| dumpEntryList || Will save an entry list at the end of any Qualifying session. This can be a quick way to collect a starting point to build an entry list, and is a way to save the defaultGridPositions which can be used to run a race without Qualifying session and predefined grid. Also see the corresponding admin command.
+
| configVersion ||  
 
|}
 
|}
  
Line 173: Line 244:
  
 
<!--T:57-->
 
<!--T:57-->
{| class="wikitable" width="100%"
+
{| class="wikitable mw-datatable"
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
! style="width:250px;"| File Content !! Property !! Description
+
! style="width:222px;"| Property !! Description
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| rowspan="10" style="vertical-align:top;"|
+
| track || The track we run.
<span style="color:red; font-weight:bold;">{</span></br>
+
* [[Server_Configuration#ID_Lists|ID-Lists/Track Name ID's]]
"track": "spa",</br>
 
"preRaceWaitingTimeSeconds": 60,</br>
 
"sessionOverTimeSeconds": 120,</br>
 
"ambientTemp": 26,</br>
 
"cloudLevel": 0.3,</br>
 
"rain": 0.0,</br>
 
"weatherRandomness": 3,</br>
 
"configVersion": 1,</br>
 
"sessions": <span style="color:blue; font-weight:bold;">[</span></br>
 
<span style="color:orange; font-weight:bold;">{</span></br>
 
"hourOfDay": 10,</br>
 
"dayOfWeekend": 1,</br>
 
"timeMultiplier": 1,</br>
 
"sessionType": "P",</br>
 
"sessionDurationMinutes": 20</br>
 
<span style="color:orange; font-weight:bold;">},</span></br>
 
<span style="color:orange; font-weight:bold;">{</span></br>
 
"hourOfDay": 17,</br>
 
"dayOfWeekend": 2,</br>
 
"timeMultiplier": 8,</br>
 
"sessionType": "Q",</br>
 
"sessionDurationMinutes": 10</br>
 
<span style="color:orange; font-weight:bold;">},</span></br>
 
<span style="color:orange; font-weight:bold;">{</span></br>
 
"hourOfDay": 16,</br>
 
"dayOfWeekend": 3,</br>
 
"timeMultiplier": 3,</br>
 
"sessionType": "Q",</br>
 
"sessionDurationMinutes": 20</br>
 
<span style="color:orange; font-weight:bold;">}</span></br>
 
<span style="color:blue; font-weight:bold;">]</span></br>
 
<span style="color:red; font-weight:bold;">}</span>
 
| track || The track we run. Check also:
 
* [[Server_Configuration#ID_Lists|ID-Lists/Track Name ID's]]
 
 
Setting a wrong value
 
Setting a wrong value
 
will also print out the available track keys in the log. With the 1.1 update containing the 2019 season content, each track has a _2019 variant. Using this track will set the BoP and track grip correspondingly.  
 
will also print out the available track keys in the log. With the 1.1 update containing the 2019 season content, each track has a _2019 variant. Using this track will set the BoP and track grip correspondingly.  
Line 218: Line 255:
 
| preRaceWaitingTimeSeconds || Preparation time before a race. Cannot be less than 30s.
 
| preRaceWaitingTimeSeconds || Preparation time before a race. Cannot be less than 30s.
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| sessionOverTimeSeconds ||  Time after that a session is forcibly closing after the timer reached <span style="color:red;font-weight:bold;">'0:00</span>. Something like 107% of the expected laptime is recommended.<br /> <span style="color:red;">'''Careful''': default 2 minutes does not properly cover tracks like Spa or Silverstone</span>
+
| sessionOverTimeSeconds ||  Time after that a session is forcibly closing after the timer reached <span style="color:red;font-weight:bold;">'0:00</span>. Something like 107% of the expected laptime is recommended.
 +
* <span style="color:red;">Careful: default 2 minutes does not properly cover tracks like Spa or Silverstone</span>
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| ambientTemp || Sets the baseline ambient temperature in °C. Check also:
+
| ambientTemp || Sets the baseline ambient temperature in °C.  
* [[Multiplayer_Overview#What_is_simulated.3F|What_is_simulated?: Race Weekend]]
+
* [[Multiplayer_Overview#Race_weekend|Race Weekend Simulation]]
 
* cloudLevel
 
* cloudLevel
 
* rain
 
* rain
 
* weatherRandomness
 
* weatherRandomness
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| cloudLevel || Sets the baseline cloud level, see “Race weekend simulation”. Values (0.0, 0.1, .... 1.0)
+
| cloudLevel || Sets the baseline cloud level, →[[Multiplayer_Overview#Race_weekend|Race Weekend Simulation]].
 +
* Values 0.0, 0.1, .... 1.0
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| rain || If weather randomness is off, defines the static rain level. With
+
| rain || If weather randomness is off, defines the static rain level. With dynamic weather, it increases the rain chance.
dynamic weather, it increases the rain chance.
+
<gallery mode="traditional">
<ul>
+
Rain00.jpg|0.0 = dry
<li style="display: inline-block;">[[File:Rain00.jpg|frame|none|138px|0.0 = dry]]</li>
+
Rain01.jpg|to 0.2 light rain
<li style="display: inline-block;">[[File:Rain01.jpg|frame|none|138px|to 0.2 light rain]]</li>
+
Rain03.jpg|to 0.5 rain
<li style="display: inline-block;">[[File:Rain03.jpg|frame|none|138px|to 0.5 rain]]</li>
+
Rain06.jpg|to 0.7 heavy rain
<li style="display: inline-block;">[[File:Rain06.jpg|frame|none|138px|to 0.7 heavy rain]]</li>
+
Rain08.jpg|to 1.0 very heavy
<li style="display: inline-block;">[[File:Rain08.jpg|frame|none|138px|to 1.0 very heavy]]</li>
+
</gallery>
</ul>
 
 
Values greater than 0.1 can override the value of cloudLevel.
 
Values greater than 0.1 can override the value of cloudLevel.
</ul>
 
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
 
| weatherRandomness || Sets the dynamic weather level:
 
| weatherRandomness || Sets the dynamic weather level:
<ul>
+
* 0 = static weather
<li>0 = static weather</li>
+
* 1 - 4 = fairly realistic weather
<li>1 - 4 = fairly realistic weather</li>
+
* 5 - 7 = more sensational
<li>5 - 7 = more sensational</li>
 
</ul>
 
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| postQualySeconds || The time after the last driver is finished (or the sessionOverTimeSeconds passed) in Q sessions and the race start. Should not be set to 0, otherwise grid spawning is not secure.
+
| postQualySeconds || The time after the last driver is finished ( or the sessionOverTimeSeconds passed ) in Q sessions and the race start. Should not be set to 0, otherwise grid spawning is not secure.
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
 
| postRaceSeconds || Additional time after the race ended for everyone, before the next race weekend starts.
 
| postRaceSeconds || Additional time after the race ended for everyone, before the next race weekend starts.
 +
|- style="vertical-align:top;"
 +
| metaData || A user defined string that will be transferred to the result outputs.
 +
|- style="vertical-align:top;"
 +
| simracerWeatherConditions || <span style="color:red;">Experimental / not supported:</span> if set to 1, this will limit the maximum rain/wetness to roughly 2/3 of the maximum values, translating to something between medium and heavy rain. It may be useful if you feel forced to run very low cloudLevel and weatherRandomness values just to avoid thunderstorm; however high levels (0.4+ clouds combined with 5+ randomness) will still result in quite serious conditions.
 +
|- style="vertical-align:top;"
 +
| isFixedConditionQualification || <span style="color:red;">Experimental / not supported:</span> if set to 1, the server will take the rain, cloud, temperature, rain levels literally and make sure whatever is set up never changes. Daytime transitions still happen visually, but do not affect the temperatures or road wetness. Also rubber/grip is always the same. This is intended to be used for private league qualification servers only.
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
 
| sessions || A list of session objects, see the next table
 
| sessions || A list of session objects, see the next table
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
! !! Property !! Description
+
! Property !! Description
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| rowspan="6"|
+
| hourOfDay || Session starting hour of the day
| hourOfDay || Session starting hour of the day (values 0 - 23)
+
* Values 0, 1, 2 ... 22, 23
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| dayOfWeekend || Race weekend day: 1 = Friday, 2 = Saturday, 3 = Sunday; see “ Race weekend simulation”.
+
| dayOfWeekend || Race weekend day / →[[Multiplayer_Overview#Race_weekend|Race Weekend Simulation]]:
 +
* 1 = Friday
 +
* 2 = Saturday
 +
* 3 = Sunday
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| timeMultiplier || Rate at which the session time advances in realtime. Values 0, 1, ... 24
+
| timeMultiplier || Rate at which the session time advances in realtime.
 +
* Values 0, 1, ... 24
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| sessionType || Race session type: P, Q, R for (P)ractice, (Q)ualy, (R)ace
+
| sessionType || Race session type:
 +
* P = ( P )ractice
 +
* Q = ( Q )ualifying
 +
* R = ( R )ace
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
 
| sessionDurationMinutes || Session duration in minutes
 
| sessionDurationMinutes || Session duration in minutes
Line 268: Line 316:
  
 
<!--T:73-->
 
<!--T:73-->
'''Remarks''':
+
* Remarks:
* 1) At least one non-race session must be set up
+
# At least one non-race session must be set up
* 2) Setting up unreasonable day and hours ''( also consider time multipliers! )'' can lead to wrong track and weather behaviour, e.g. avoid jumping from Saturday to Friday
+
# Setting up unreasonable day and hours ( also consider time multipliers ! ) can lead to wrong track and weather behaviour, e.g. avoid jumping from Saturday to Friday
  
 
=== eventRules.json === <!--T:19-->
 
=== eventRules.json === <!--T:19-->
Line 279: Line 327:
 
<!--T:46-->
 
<!--T:46-->
 
The basic pitstop features offer a huge array of combinations and different aspects you can set up your non-public races. Not every combination does make sense though, so it’s your responsibility to setup the rules so drivers have a good experience. It should be entirely possible to create a race in the style of a single Sprint series race as well as a 3-24h endurance race with or without driver swaps. Of course this shouldn’t limit you to think about your series and especially race event durations, and possibly add more fairness to balance fuel efficient cars – or allow a certain depth of tactics.
 
The basic pitstop features offer a huge array of combinations and different aspects you can set up your non-public races. Not every combination does make sense though, so it’s your responsibility to setup the rules so drivers have a good experience. It should be entirely possible to create a race in the style of a single Sprint series race as well as a 3-24h endurance race with or without driver swaps. Of course this shouldn’t limit you to think about your series and especially race event durations, and possibly add more fairness to balance fuel efficient cars – or allow a certain depth of tactics.
 +
 +
<!--T:105-->
 +
Additional notes regarding stints:
 +
* Stint timer (top left corner in the timing HUD) is reset when the car crosses the pit entry and starts counting down again when crossing the pit exit.
 +
* When serving a penalty, the stint timer will freeze and continue counting down after pit exit without resetting.
 +
* When a player's total remaining driving time is less than his current stint time, the total driving time will override the stint timer (!).
 +
When this happens, the stint timer's background turns red, indicating the final stint of the active driver.
  
 
<!--T:59-->
 
<!--T:59-->
{| class="wikitable"
+
{| class="wikitable mw-datatable"
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
! style="width:320px;"| File Content !! Property !! Description
+
! style="width:266px;"| Property !! Description
 
|- style="vertical-align:top;"  
 
|- style="vertical-align:top;"  
| rowspan="20" style="vertical-align:top;"|  
+
| qualifyStandingType ||
<span style="color:red; font-weight:bold;">{</span></br>
+
* 1 = fastest lap
"qualifyStandingType": 1,</br>
+
* 2 = average lap ( running Endurance mode for multiple Q sessions )
"pitWindowLengthSec": -1,</br>
+
<span style="color:red;">Use 1, averaging Qualy is not yet officially supported.</span>
"driverStintTimeSec": -1,</br>
+
|-  style="vertical-align:top;"
"mandatoryPitstopCount": 0,</br>
+
| superpoleMaxCar || <span style="color:red;">Not currently listed or described in the Kunos Server Admin manual</span>
"maxTotalDrivingTime": -1,</br>
+
|- style="vertical-align:top;"
"maxDriversCount": 1,</br>
+
| pitWindowLengthSec || Defines a pit window at the middle of the race. Obviously covers the Sprint series format.
"isRefuellingAllowedInRace": true,</br>
+
* -1 = will disable the pit window
"isRefuellingTimeFixed": false,</br>
+
* 600 = Insert the length of the pit stop window here in seconds. ( 10 minutes = 600 seconds ) - Only use with ↓mandatoryPitstopCount with a value of 1 or higher.
"isMandatoryPitstopRefuellingRequired": false,</br>
+
|- style="vertical-align:top;"
"isMandatoryPitstopTyreChangeRequired": false,</br>
+
| driverStintTimeSec || Defines the maximum time a driver can stay out without getting a penalty. Can be used to balance fuel efficient cars in  endurance races. The stint time resets in the pitlane, no real stop is required.
"isMandatoryPitstopSwapDriverRequired": false</br>
+
* 3300 ( = 55 Minutes )
<span style="color:red; font-weight:bold;">}</span>
+
* -1 will disable the stint times
| qualifyStandingType || 1 = fastest lap, 2 = average lap (running Endurance mode for multiple Q sessions) . Use 1, averaging Qualy is not yet officially supported.
 
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| pitWindowLengthSec || Defines a pit window at the middle of the race. Obviously covers the Sprint series format. -1 will disable the pit window. Use this combined with a mandatoryPitstopCount = 1.
+
| isRefuellingAllowedInRace || Defines if refuelling is allowed during the race pitstops.
 +
* true = refueling possible during the race
 +
* false = No refueling possible during the race
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| driverStintTimeSec || Defines the maximum time a driver can stay out without getting a penalty. Can be used to balance fuel efficient cars in  endurance races. The stint time resets in the pitlane, no real stop is required. - 1 will disable the stint times.
+
| isRefuellingTimeFixed || If set to true, any refuelling will take the same amount of time ( 25 seconds ). If turned off, refuelling will consume time linear to the amount refuelled. Very useful setting to balance fuel efficient cars, especially if combined with other features.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| mandatoryPitstopCount || Defines the basic mandatory pit stops. If the value is greater zero, any car that did not execute the mandatory pitstops will be disqualified at the end of the race. The necessary actions can be further configured using the “isMandatoryPitstopXYRequired” properties. A value of zero disables the feature.
 
| mandatoryPitstopCount || Defines the basic mandatory pit stops. If the value is greater zero, any car that did not execute the mandatory pitstops will be disqualified at the end of the race. The necessary actions can be further configured using the “isMandatoryPitstopXYRequired” properties. A value of zero disables the feature.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| maxTotalDrivingTime || Restricts the maximum driving time for a single driver. Is only useful for driver swap situations and allows to enforce a minimum driving time for each driver (IRL this is used to make sure mixed teams like Pro/Am have a fair distributions of the slower drivers). -1 disables the feature.
+
| maxTotalDrivingTime || Restricts the maximum driving time for a single driver. Is only useful for driver swap situations and allows to enforce a minimum driving time for each driver ( IRL this is used to make sure mixed teams like Pro/Am have a fair distributions of the slower drivers ). -1 disables the feature.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| maxDriversCount || In driver swap situations, set this to the maximum number of drivers on a car. The maxTotalDrivingTime property will be scaled down to apply to teams with less drivers.
 
| maxDriversCount || In driver swap situations, set this to the maximum number of drivers on a car. The maxTotalDrivingTime property will be scaled down to apply to teams with less drivers.
|- style="vertical-align:top;"
 
| isRefuellingAllowedInRace || Defines if refuelling is allowed during the race pitstops.
 
|- style="vertical-align:top;"
 
| isRefuellingTimeFixed || If set to true, any refuelling will take the same amount of time. If turned off, refuelling will consume time linear to the amount refuelled. Very useful setting to balance fuel efficient cars, especially if combined with other features.
 
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| isMandatoryPitstopRefuellingRequired || Defines if a mandatory pitstop requires refuelling.
 
| isMandatoryPitstopRefuellingRequired || Defines if a mandatory pitstop requires refuelling.
 +
* true = every driver must refuel at least 1 liter
 +
* false = refuel as needed
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| isMandatoryPitstopTyreChangeRequired || Defines if a mandatory pitstop requires changing tyres.
 
| isMandatoryPitstopTyreChangeRequired || Defines if a mandatory pitstop requires changing tyres.
 +
* true = every driver must tyre change
 +
* false = tyre change as needed
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| isMandatoryPitstopSwapDriverRequired || Defines if a mandatory pitstop requires a driver swap. Will only be effective for cars in driver swap situations; even in a mixed field this will be skipped for cars with a team size of 1 driver.
 
| isMandatoryPitstopSwapDriverRequired || Defines if a mandatory pitstop requires a driver swap. Will only be effective for cars in driver swap situations; even in a mixed field this will be skipped for cars with a team size of 1 driver.
 +
|-
 +
| tyreSetCount || Specify the number of permitted tire sets, 1-50 are possible. <span style="color:red;">Not currently listed or described in the Kunos Server Admin manual</span>
 +
|}
 +
 +
=== assistRules.json === <!--T:117-->
 +
 +
<!--T:118-->
 +
Can be used to turn off certain assists for any car connected to this server. Beware: disabling assists will effectively remove the effect, but there is no special handling how the assists look like in the menu. Without instructions, users will be surprised and confused – up to a point where they become a risk for other drivers. Whenever you think about disabling something, please be sure this is really necessary and a risk in terms of fairness. It is out of question that the ( quite strong ) driving aids “Stability Control” and “Autosteer” may be candidates for league racing, but just turning off the ideal line will not improve anything for anyone (except that the one driver using it may become less safe and ruins the race of others). Even innocent elements like auto-engine start and pit limiter may just force users to re-map their wheels, and for example lose the ability to use their indicators in lapping traffic – again nobody is winning in this scenario.
 +
 +
<!--T:119-->
 +
For (very) obvious reasons, public MP servers will ignore this json file and allow everything.
 +
 +
<!--T:120-->
 +
{| class="wikitable mw-datatable"
 +
|- style="vertical-align:top;"
 +
! style="width:222px;"| Property !! Description
 +
|- style="vertical-align:top;"
 +
| stabilityControlLevelMax || Set’s the maximum % of SC that can be used. In case a client has a higher SC set than allowed by the server, he will only run what is allowed (25% in this example). Obviously setting this property to 0 removes all SC, including mouse and keyboard users.
 +
The Stability Control is an artificial driving aid that allows the car to act out of the physics boundaries, and highly recommended to overcome input methods like Keyboards, Gamepads and Mouse steering. However, there is a built-in effect that makes the SC performance inferior, so in theory using (and relying) on SC is already more than enough penalty, and the way to improve performance is to practice driving without.
 +
* Default: 100
 +
|- style="vertical-align:top;"
 +
| disableAutosteer || Disables the steering aid that is only available for gamepad controllers. Unlike SC, this works inside the physics and does not allow unrealistic driving behaviour – except that this is a very strong aid with superhuman feeling for grip and high reaction speed. There is a built-in penalty that should balance the driving performance in most cases, and give an incentive to learn not to use the driving aid.
 +
* Default: 0
 +
|- style="vertical-align:top;"
 +
| disableIdealLine ||
 +
* 1 = Forces the equivalent assist option to “off”
 +
|- style="vertical-align:top;"
 +
| disableAutoPitLimiter ||
 +
* 1 = Forces the equivalent assist option to “off”
 +
|- style="vertical-align:top;"
 +
| disableAutoGear ||
 +
* 1 = Forces the equivalent assist option to “off”
 +
|- style="vertical-align:top;"
 +
| disableAutoClutch ||
 +
* 1 = Forces the equivalent assist option to “off”
 +
|- style="vertical-align:top;"
 +
| disableAutoEngineStart ||
 +
* 1 = Forces the equivalent assist option to “off”
 +
|- style="vertical-align:top;"
 +
| disableAutoWiper ||
 +
* 1 = Forces the equivalent assist option to “off”
 +
|- style="vertical-align:top;"
 +
| disableAutoLights ||
 +
* 1 = Forces the equivalent assist option to “off”
 
|}
 
|}
  
 
=== entrylist.json === <!--T:41-->
 
=== entrylist.json === <!--T:41-->
 +
 +
<!--T:97-->
 +
[[File:Acc-wiki server entrylists.jpg|right|thumb]]
  
 
<!--T:60-->
 
<!--T:60-->
Line 335: Line 438:
  
 
<!--T:61-->
 
<!--T:61-->
{| class="wikitable"
+
{| class="wikitable mw-datatable"  
 
|-
 
|-
 
! style="width:250px;"| File Content</br>Example: 1x Driver as Admin / 2 Drivers as Team !! Property !! Description
 
! style="width:250px;"| File Content</br>Example: 1x Driver as Admin / 2 Drivers as Team !! Property !! Description
Line 352: Line 455:
 
"overrideDriverInfo": 0,</br>
 
"overrideDriverInfo": 0,</br>
 
"isServerAdmin": 1</br>
 
"isServerAdmin": 1</br>
<span style="color:orange; font-weight:bold;">}</span></br>
+
<span style="color:orange; font-weight:bold;">}</span>,</br>
 
<span style="color:orange; font-weight:bold;">{</span></br>
 
<span style="color:orange; font-weight:bold;">{</span></br>
 
"drivers": [</br>
 
"drivers": [</br>
Line 374: Line 477:
 
"overrideDriverInfo": 0,</br>
 
"overrideDriverInfo": 0,</br>
 
"defaultGridPosition": -1,</br>
 
"defaultGridPosition": -1,</br>
 +
"ballastKg": 0,</br>
 +
"restrictor": 0,</br>
 
"customCar": "exampleCar.json",</br>
 
"customCar": "exampleCar.json",</br>
 
"overrideCarModelForCustomCar": 1,</br>
 
"overrideCarModelForCustomCar": 1,</br>
 
"isServerAdmin": 0</br>
 
"isServerAdmin": 0</br>
 
<span style="color:orange; font-weight:bold;">}</span></br>
 
<span style="color:orange; font-weight:bold;">}</span></br>
<span style="color:blue; font-weight:bold;">]</span></br>
+
<span style="color:blue; font-weight:bold;">]</span>,</br>
 
"forceEntryList": 0</br>
 
"forceEntryList": 0</br>
 
<span style="color:red; font-weight:bold;">}</span>
 
<span style="color:red; font-weight:bold;">}</span>
Line 385: Line 490:
 
| drivers || List of drivers, see next table. Must at least contain one driver with the SteamId
 
| drivers || List of drivers, see next table. Must at least contain one driver with the SteamId
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| raceNumber || The preferred race number if set, -1 if the driver may decide by picking his car. Values 1 - 998
+
| raceNumber || The preferred race number add.
 +
* -1 if the driver may decide by picking his car.
 +
* other values: 1, 2, 3 .... 996, 997, 998
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| forcedCarModel || If not set to -1: user cannot join with a different car, see “Car model list” for the values
+
| forcedCarModel ||
 +
* -1: the driver may pick which car to drive.
 +
* other values: ↓[[Server_Configuration#ID_Lists|Car model list]]
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| overrideDriverInfo || If set to 1, the driver’s name and category will be overridden by what is setup in the entry list. If set to 0, it’s up to the client joining.
 
| overrideDriverInfo || If set to 1, the driver’s name and category will be overridden by what is setup in the entry list. If set to 0, it’s up to the client joining.
|- style="vertical-align:top;"
+
|- style="vertical-align:top;"  
| customCar || If set to a filename, the car, team and appearance will be used no matter what the user chose (Exception: overrideCarModelForCustomCar). This is useful for leagues and events, where we want consistent car appearance and the chosen car model for the corresponding driver/team. The custom car file has to be located in a “cars” folder next to the entrylist.json (also works for centralEntryListPath).
+
| customCar || If set to a filename, the car, team and appearance will be used no matter what the user chose ( Exception: overrideCarModelForCustomCar ). This is useful for leagues and events, where we want consistent car appearance and the chosen car model for the corresponding driver/team. The custom car file has to be located in a “cars” folder next to the entrylist.json ( also works for centralEntryListPath ). Leave blank ( “”, =default ) to let the user chose the car via car selection UI.
Leave blank (“”, =default) to let the user chose the car via car selection UI.
 
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| overrideCarModelForCustomCar || If customCar is used, this setting will apply the car model configured if the value is set to 1 (which is the  default). If set to 0, all values except the carModel are applied, so the user is free to pick a car but while team name and appearance will be applied.
 
| overrideCarModelForCustomCar || If customCar is used, this setting will apply the car model configured if the value is set to 1 (which is the  default). If set to 0, all values except the carModel are applied, so the user is free to pick a car but while team name and appearance will be applied.
Line 398: Line 506:
 
| isServerAdmin || If set to 1, that user will be automatically elevated to server admin when he joins.
 
| isServerAdmin || If set to 1, that user will be automatically elevated to server admin when he joins.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
| defaultGridPosition || If set to a value of 1 or greater, this car will obtain this grid position if a race starts without any qualifying session before (e.g. P -> R).
+
| defaultGridPosition || If set to a value of 1 or greater, this car will obtain this grid position if a race starts without any qualifying session before ( e.g. P -> R ).
 +
|- style="vertical-align:top;"
 +
| ballastkg || Assigns ballast in kg for this car. Will be additive to ballast for the car model ( via [[Server_Configuration#bop.json|bop.json]] ), and can be overridden by the [[Server_Configuration#Admin_Commands|admin command]] /ballast. Range is 0 to 100.
 +
|- style="vertical-align:top;"
 +
| restrictor || Assigns restrictor in % for this car. Will be additive to restrictor for the car model ( via [[Server_Configuration#bop.json|bop.json]] ), and can be overridden by the [[Server_Configuration#Admin_Commands|admin command]] /restrictor. Range is 0 to 20.
 
|- style="vertical-align:top;"
 
|- style="vertical-align:top;"
 
| forceEntryList || Will reject drivers that are not in the entry list. Default is 0, which allows the partial definition of entries in a “normal” server configuration. Cannot be used on public servers.
 
| forceEntryList || Will reject drivers that are not in the entry list. Default is 0, which allows the partial definition of entries in a “normal” server configuration. Cannot be used on public servers.
 +
|-
 +
! colspan="2" style="text-align:center;"| '''For each entry in “drivers”, we will need at least the SteamId defining the entry. Other possible. values:'''
 +
|-
 +
| firstName || First name of the driver, if “overrideDriverInfo” is set to 1
 +
|-
 +
| lastName || Last name of the driver, if “overrideDriverInfo” is set to 1
 +
|-
 +
| shortName || Short name of the driver, if “overrideDriverInfo” is set to 1
 +
|-
 +
| driverCategory || Bronze / Silver / Gold / Platinum category, if “overrideDriverInfo” is set to 1.
 +
* ↓[[Server_Configuration#ID_Lists|Driver Category list]]
 +
|-
 +
| playerID || Steam64 Id for this client; Add a “S” in the front
 +
|}
 +
 +
=== bop.json === <!--T:98-->
 +
 +
<!--T:99-->
 +
In addition to the admin commands and entry list based ballast and restrictor, you globally define those values for car and track combinations.
 +
 +
<!--T:100-->
 +
To accomplish this, just add a bop.json like this:
 +
 +
<!--T:101-->
 +
{| class="wikitable mw-datatable"
 +
|- style="vertical-align:top;"
 +
! style="width:135px;"| File Content !! Property !! Description
 +
|- style="vertical-align:top;"
 +
| rowspan="20" style="vertical-align:top;"|
 +
<span style="color:red; font-weight:bold;">{</span></br>
 +
"entries": [</br>
 +
{</br>
 +
"track": "zolder",</br>
 +
"carModel": 7,</br>
 +
"ballastKg": 1,</br>
 +
"restrictor": 2</br>
 +
},</br>
 +
{</br>
 +
"track": "silverstone_2019",</br>
 +
"carModel": 2,</br>
 +
"restrictor": 5</br>
 +
}</br>
 +
]</br>
 +
<span style="color:red; font-weight:bold;">}</span>
 +
| entries ||
 +
|-  style="vertical-align:top;"
 +
| track || enter a Racetrack here
 +
* [[Server_Configuration#ID_Lists|ID Lists / Track Name IDs]]
 +
|- style="vertical-align:top;"
 +
| carModel || enter a CarModel here
 +
* [[Server_Configuration#ID_Lists|ID Lists / Car Model IDs]]
 +
|- style="vertical-align:top;"
 +
| ballast || Assigns ballast in kg for this car. Can be overridden by the admin command /ballast.
 +
* Range is 0 to 100
 +
* [[Server_Configuration#Admin_Commands|Server Admin Commands]]
 +
|- style="vertical-align:top;"
 +
| restrictor || Assigns restrictor in % for this car. Can be overridden by the admin command /restrictor.
 +
* Range is 0 to 20.
 +
* [[Server_Configuration#Admin_Commands|Server Admin Commands]]
 
|}
 
|}
 +
 +
<!--T:102-->
 +
Each “entry” can be understood as a line with a composite key of track and car model, and the ballast/restrictor are applied if both math. This way you can apply a small balance to one precise combination, or create your full blown custom BoP for all kinds of seasons, tracks and cars.
 +
 +
<!--T:103-->
 +
Important notes:
 +
 +
<!--T:104-->
 +
# The additional BoP is at the moment adjustable on public servers, but we will look at this closely. If we see bad and overdone efforts that affect the experience of average users, we will limit the additional BoP to private servers
 +
# It is very hard to improve the current BoP, much harder than it may look (especially for 2019, where SRO did a great job). Do not fall for the mistake to use hotlap performance as the reference, and also make sure to start with tiny adjustments.
 +
The values of the bop.json act additive to the entry list, so you can combine a championship penalty with your track/car specific changes. Any admin command (/ballast or /restrictor) will set the corresponding value to whatever you define, and overwrite potential configurations until the car rejoins.
  
 
=== Result Files === <!--T:78-->
 
=== Result Files === <!--T:78-->
Line 409: Line 591:
  
 
<!--T:80-->
 
<!--T:80-->
{| class="wikitable" width="100%"
+
{| class="wikitable"
 
|-
 
|-
 
! File Content
 
! File Content
Line 514: Line 696:
 
In a nutshell, the root object contains information about the session and track, next to a leaderboard representation, a complete list of laps and a complete list of penalties for this session. The properties should be self-explanatory, in case of doubts and questions please do not hesitate to join the official support forum.
 
In a nutshell, the root object contains information about the session and track, next to a leaderboard representation, a complete list of laps and a complete list of penalties for this session. The properties should be self-explanatory, in case of doubts and questions please do not hesitate to join the official support forum.
  
== Spactator Mode == <!--T:76-->
+
== Spectator Mode == <!--T:76-->
  
 
<!--T:77-->
 
<!--T:77-->
To join a server as spectator, just enter the “spectatorPassword” in the password box in the Multiplayer Server List. You won’t occupy a car or pitslot, but still can chat and elevate to admin.
+
'''The necessary server settings:''' The difference between <code>"maxConnections": 40;</code> ''( configuration.json )'' and <code> "maxCarSlots": 30; </code> ''( settings.json )'' defines How many seats are available on the server. In this case, it is 10.
Spectators still use server resources, so they will be limited by the total “maxClients” count – however spectator slots are not limited by the global limit of 30 cars, nor do they occupy pit slots.
+
Now only one password has to be assigned. This must be different than what is stated for the accession of the driver. Check also:
 +
* configuration.json / maxConnections
 +
* settings.json / spectatorPassword
 +
* settings.json / maxCarSlots
 +
If someone wants to join a server as a spectator, he must enter the password for the spectator mode.
  
 
== ID Lists == <!--T:20-->
 
== ID Lists == <!--T:20-->
  
<!--T:62-->
+
<!--T:130-->
 +
Removed all “_2019”, “_2020”, “_2021” track suffixes, please just use the track name in any configuration now
 +
 
 +
<!--T:121-->
 
<div style="float:left; margin-right:1em;">
 
<div style="float:left; margin-right:1em;">
{| class="wikitable sortable"
+
{| class="wikitable"
 
|+ Track Name ID's
 
|+ Track Name ID's
! Value
 
 
|-
 
|-
| monza
+
| barcelona
 +
|-
 +
| brands_hatch
 +
|-
 +
| cota
 +
|-
 +
| donington
 +
|-
 +
| hungaroring
 
|-
 
|-
| zolder
+
| imola
 
|-
 
|-
| brands_hatch
+
| indianapolis
 
|-
 
|-
| silverstone
+
| kyalami
 
|-
 
|-
| paul_ricard
+
| laguna_seca
 
|-
 
|-
 
| misano
 
| misano
 
|-
 
|-
| spa
+
| monza
 +
|-
 +
| mount_panorama
 
|-
 
|-
 
| nurburgring
 
| nurburgring
 
|-
 
|-
| barcelona
+
| nurburgring_24h
 
|-
 
|-
| hungaroring
+
| oulton_park
 
|-
 
|-
| zandvoort
+
| paul_ricard
 
|-
 
|-
| monza_2019
+
| red_bull_ring
 
|-
 
|-
| zolder_2019
+
| silverstone
 
|-
 
|-
| brands_hatch_2019
+
| snetterton
 
|-
 
|-
| silverstone_2019
+
| spa
 
|-
 
|-
| paul_ricard_2019
+
| suzuka
 
|-
 
|-
| misano_2019
+
| valencia
 
|-
 
|-
| spa_2019
+
| watkins_glen
 
|-
 
|-
| nurburgring_2019
+
| zandvoort
 
|-
 
|-
| barcelona_2019
+
| zolder
|-
 
| hungaroring_2019
 
|-
 
| zandvoort_2019
 
 
|}
 
|}
 
</div>
 
</div>
  
<!--T:63-->
+
<!--T:122-->
 
<div style="float:left; margin-right:1em;">
 
<div style="float:left; margin-right:1em;">
{| class="wikitable sortable"
+
{| class="wikitable sortable mw-datatable"
 
|+ Car Models
 
|+ Car Models
! Value !! Car Model
+
! colspan="3"| !! colspan="6"| selectable in the MP Vehicle classes
 +
|-
 +
! ID !! Car Model !! Year !! FreeForAll !! GT3 !! GT4 !! GTC !! TCX !! GT2
 +
|-
 +
| 0 || Porsche 991 GT3 R || 2018 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 1 || Mercedes-AMG GT3 || 2015 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 2 || Ferrari 488 GT3 || 2018 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 3 || Audi R8 LMS || 2015 || {{yes C|}}|| {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 0 || Porsche 991 GT3
+
| 4 || Lamborghini Huracán GT3 || 2015 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 1 || Mercedes AMG GT3
+
| 5 || McLaren 650S GT3 || 2015 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 2 || Ferrari 488 GT3
+
| 6 || Nissan GT-R Nismo GT3 || 2018 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 3 || Audi R8 LMS
+
| 7 || BMW M6 GT3 || 2017 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 4 || Lamborghini Huracan GT3
+
| 8 || Bentley Continental GT3 || 2018 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 5 || Mclaren 650s GT3
+
| 9 || Porsche 991 II GT3 Cup || 2017 || {{yes C|}} || {{no X|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 6 || Nissan GT R Nismo GT3 2018
+
| 10 || Nissan GT-R Nismo GT3 || 2015 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 7 || BMW M6 GT3
+
| 11 || Bentley Continental GT3 || 2015 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 8 || Bentley Continental GT3 2018
+
| 12 || AMR V12 Vantage GT3 || 2013 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 9 || Porsche 991.2 GT3 Cup
+
| 13 || Reiter Engineering R-EX GT3 || 2017 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 10 || Nissan GT-R Nismo GT3 2017
+
| 14 || Emil Frey Jaguar G3 || 2012 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 11 || Bentley Continental GT3 2016
+
| 15 || Lexus RC F GT3 || 2016 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 12 || Aston Martin Vantage V12 GT3
+
| 16 || Lamborghini Huracan GT3 Evo || 2019 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 13 || Lamborghini Gallardo R-EX
+
| 17 || Honda NSX GT3 || 2017 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 14 || Jaguar G3
+
| 18 || Lamborghini Huracan SuperTrofeo || 2015 || {{yes C|}} || {{no X|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 15 || Lexus RC F GT3
+
| 19 || Audi R8 LMS Evo || 2019 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 16 || Lamborghini Huracan GT3 Evo (2019)
+
| 20 || AMR V8 Vantage || 2019 || {{yes C|}}|| {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 17 || Honda NSX GT3
+
| 21 || Honda NSX GT3 Evo || 2019 || {{yes C|}}|| {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 18 || Lamborghini Huracan SuperTrofeo
+
| 22 || McLaren 720S GT3 || 2019 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 19 || Audi R8 LMS Evo (2019)
+
| 23 || Porsche 991 II GT3 R || 2019 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 20 || AMR V8 Vantage (2019)
+
| 24 || Ferrari 488 GT3 Evo || 2020  || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 21 || Honda NSX Evo (2019)
+
| 25 || Mercedes-AMG GT3 || 2020  || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 22 || McLaren 720S GT3 (Special)
+
| 26 || Ferrari 488 Challenge Evo || 2020 || {{yes C|}} || {{no X|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}}
 
|-
 
|-
| 23 || Porsche 911 II GT3 R (2019)
+
| 27 || BMW M2 Club Sport Racing || 2020 || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{yes C|}} || {{no X|}}
 +
|-
 +
| 28 || Porsche 992 GT3 Cup || 2021 || {{yes C|}} || {{no X|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 29 || Lamborghini Huracán SuperTrofeo EVO2 || 2021 || {{yes C|}} || {{no X|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 30 || BMW M4 GT3 || 2022 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 31 || Audi R8 LMS GT3 Evo 2 || 2022 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 32 || Ferrari 296 GT3 || 2023 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 33 || Lamborghini Huracan GT3 Evo 2 || 2023 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 34 || Porsche 992 GT3 R || 2023 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 35 || McLaren 720S GT3 Evo || 2023 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 36 || Ford Mustang GT3 || 2024 || {{yes C|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 50 || Alpine A110 GT4 || 2018 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 51 || Aston Martin Vantage GT4 || 2018 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 52 || Audi R8 LMS GT4 || 2018 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 53 || BMW M4 GT4 || 2018 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 55 || Chevrolet Camaro GT4 || 2017 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 56 || Ginetta G55 GT4 || 2012 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 57 || KTM X-Bow GT4 || 2016 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 58 || Maserati MC GT4 || 2016 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 59 || McLaren 570S GT4 || 2016 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 60 || Mercedes AMG GT4 || 2016 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 61 || Porsche 718 Cayman GT4 Clubsport || 2019 || {{yes C|}} || {{no X|}} || {{yes C|}} || {{no X|}} || {{no X|}} || {{no X|}}
 +
|-
 +
| 80 || Audi R8 LMS GT2 || 2021 || {{yes C|}} || {{no X|}} || {{no X||}} || {{no X|}} || {{no X|}} || {{yes C|}}
 +
|-
 +
| 82 || KTM XBOW GT2 || 2021 || {{yes C|}} || {{no X|}} || {{no X||}} || {{no X|}} || {{no X|}} || {{yes C|}}
 +
|-
 +
| 83 || Maserati MC20 GT2 || 2023 || {{yes C|}} || {{no X|}} || {{no X||}} || {{no X|}} || {{no X|}} || {{yes C|}}
 +
|-
 +
| 84 || Mercedes AMG GT2 || 2023 || {{yes C|}} || {{no X|}} || {{no X||}} || {{no X|}} || {{no X|}} || {{yes C|}}
 +
|-
 +
| 85 || Porsche 911 GT2 RS CS Evo || 2023 || {{yes C|}} || {{no X|}} || {{no X||}} || {{no X|}} || {{no X|}} || {{yes C|}}
 +
|-
 +
| 86 || Porsche 935 || 2019 || {{yes C|}} || {{no X|}} || {{no X||}} || {{no X|}} || {{no X|}} || {{yes C|}}
 
|}
 
|}
 
</div>
 
</div>
  
<!--T:64-->
+
<!--T:123-->
 
<div style="float:left; margin-right:1em;">
 
<div style="float:left; margin-right:1em;">
{| class="wikitable sortable"
+
{| class="wikitable sortable mw-datatable"
 
|+ Driver Categorys
 
|+ Driver Categorys
! Value !! Category
+
! ID !! Category
 
|-
 
|-
 
| 3 || Platinum
 
| 3 || Platinum
Line 646: Line 902:
 
</div>
 
</div>
  
<!--T:65-->
+
<!--T:124-->
 
<div style="float:left; margin-right:1em;">
 
<div style="float:left; margin-right:1em;">
{| class="wikitable sortable"
+
{| class="wikitable sortable mw-datatable"
 
|+ Cup Categorys
 
|+ Cup Categorys
! Value !! Category
+
! ID !! Category
 
|-
 
|-
 
| 0 || Overall
 
| 0 || Overall
Line 664: Line 920:
 
</div>
 
</div>
  
<!--T:66-->
+
<!--T:125-->
 
<div style="float:left; margin-right:1em;">
 
<div style="float:left; margin-right:1em;">
{| class="wikitable sortable"
+
{| class="wikitable sortable mw-datatable"
 
|+ Session Types
 
|+ Session Types
! Value !! Session Type
+
! ID !! Session Type
 
|-
 
|-
 
| 0 || Practice
 
| 0 || Practice
Line 678: Line 934:
 
</div>
 
</div>
  
<!--T:87-->
+
<!--T:126-->
 
<div style="clear:both;"></div>
 
<div style="clear:both;"></div>
  
Line 684: Line 940:
  
 
<!--T:68-->
 
<!--T:68-->
While connected to a server (both as driver and spectator), users can elevate to “server admins” if they are aware of the password. That allows them to use a few special commands. Version 1.0 start with a limited set, which is expected to be extended in future versions.
+
While connected to a server ( both as driver and spectator ), users can elevate to “server admins” if they are aware of the password. That allows them to use a few special commands. Version 1.0 start with a limited set, which is expected to be extended in future versions.
To elevate to admin, hit “enter” to use the chat and type /admin adminPw123.
+
To elevate to admin, hit “enter” to use the chat and type /admin adminPw123. A notification will tell you if successful. Additionally, you can setup an “Entry lists” entry for the admin(s) steamids.
A notification will tell you if successful. Additionally, you can setup an “Entry lists” entry for the admin(s) steamids.
 
Once elevated, you can use several commands:
 
  
 
<!--T:69-->
 
<!--T:69-->
{|  class="wikitable"
+
{|  class="wikitable mw-datatable"
|-
+
|+ Once elevated, you can use several commands:
! style="width:120px;"| Command !! Parameters !! Description
+
! style="width:120px;"| Command !! Number !! Description
 
|-
 
|-
 
| /next || || Skips the current session
 
| /next || || Skips the current session
Line 698: Line 952:
 
| /restart || || Restarts the current session. Do not use this during the preparation phase
 
| /restart || || Restarts the current session. Do not use this during the preparation phase
 
|-
 
|-
!colspan="3" style="color:red;"| Insert a space between the command and the start number
+
!colspan="3" style="color:red;"| Insert a space between the command and the start number / Kg / %
 
|-
 
|-
 
| /kick || 1 to 998 || Kicks a user from the server, preventing him to join again until the race weekend restarts
 
| /kick || 1 to 998 || Kicks a user from the server, preventing him to join again until the race weekend restarts
Line 706: Line 960:
 
| /dq || 1 to 998 || Instantly disqualifies the car, teleporting it to the pits with locked controls
 
| /dq || 1 to 998 || Instantly disqualifies the car, teleporting it to the pits with locked controls
 
|-
 
|-
| /tp5 || 1 to 998 || + 5s second penalty time (reusable)
+
| /clear  || 1 to 998 || Removes pending penalties ( e.g. Drivethrough or Stop&Go )
 +
|-
 +
| /clear_all  ||  || clears all penalties from all cars
 +
|-
 +
| /cleartp  || 1 to 998 || clears time penalties
 +
|-
 +
| /sg10 || 1 to 998 || + 10 seconds stop&go penalty
 +
|-
 +
| /sg20 || 1 to 998 || + 20 seconds stop&go penalty
 +
|-
 +
| /sg30 || 1 to 998 || + 30 seconds stop&go penalty
 +
|-
 +
| /tp5 || 1 to 998 || + 5 seconds penalty time ( reusable )
 +
|-
 +
| /tp5c || 1 to 998 || + 5 seconds penalty time + Indication of the reason: collision ( reusable )
 +
|-
 +
| /tp15 || 1 to 998 || + 15 seconds penalty time ( reusable )
 
|-
 
|-
| /tp5c || 1 to 998 || + 5s second penalty time + Indication of the reason: collision (reusable)
+
| /tp15c || 1 to 998 || + 15 seconds penalty time + Indication of the reason: collision ( reusable )
 
|-
 
|-
| /tp15 || 1 to 998 || + 15s second penalty time (reusable)
+
| /dt || 1 to 998 || Assigns a drivethrough penalty to the given car. As other DTs, it has to be served within 3 laps or the car will become disqualified. In case of a race finish within those 3 laps, the DT will be transformed to a 80s time penalty.
 
|-
 
|-
| /tp15c || 1 to 998 || + 15s second penalty time + Indication of the reason: collision (reusable)
+
| /dtc || 1 to 998 || see dt + Indication of the reason: collision ( reusable )
 
|-
 
|-
| /clear  || 1 to 998 || Removes pending penalties (e.g. Drivethrough or Stop&Go)
+
| /ballast || 1 to 998</br>+ kg || Sets the car’s ballast (in kg) to what you defined. This overrides any other ballast this car has been assigned.
 +
* Example: /ballast 113 15 = will give car #113 15kg of ballast
 +
* Range is 0 to 100
 
|-
 
|-
| /manual start || || When applied during the pre-session phase of a race, it will remove the automatic throttle for the next formation lap. No rules apply, so they have to be sorted by the drivers and race director.
+
| /restrictor || 1 to 998</br>+ % || Sets the car’s restrictor (in %) to what you defined. This overrides any other restrictor this car has been assigned.
 +
* Example: /restrictor 113 7 = will give car #113 7% restrictor, resulting in roughly 7% less hp at max rpm.
 +
* Range is 0 to 20
 
|-
 
|-
| /manual entrylist || || Manually creates an entry list json file containing the drivers connected in this moment (see also Settings -> dumpEntryList)
+
| /manual entrylist || || Manually creates an entry list json file containing the drivers connected in this moment. See also [[Server_Configuration#settings.json|settings.json / dumpEntryList]]
 
|-
 
|-
 
| /debug formation || || Prints information about the current cars and their states. Useful information to report bugs during the formation lap
 
| /debug formation || || Prints information about the current cars and their states. Useful information to report bugs during the formation lap
Line 730: Line 1,004:
  
 
<!--T:91-->
 
<!--T:91-->
 +
# test your configurations with an [https://jsonformatter.curiousconcept.com/ Online Syntax Check].
 
# Server Admin Handbook (PDF) - find in ACC Install under ..:\Steam\steamapps\common\Assetto Corsa Competizione\server
 
# Server Admin Handbook (PDF) - find in ACC Install under ..:\Steam\steamapps\common\Assetto Corsa Competizione\server
 
# Server Admin Handbook (Forum) - https://www.assettocorsa.net/forum/index.php?threads/the-server-admin-handbook-thread.59017
 
# Server Admin Handbook (Forum) - https://www.assettocorsa.net/forum/index.php?threads/the-server-admin-handbook-thread.59017
  
 
</translate>
 
</translate>

Latest revision as of 19:42, 2 September 2024


Other languages:
Deutsch • ‎English
ACC Dedicated Server.png

Windows / Linux

Windows specific

Default Installation Path
C:\Program Files (x86)\Steam\steamapps\common\Assetto Corsa Competizione Dedicated Server\server\server.exe

Change the configuration.json, event.json and settings.js under the cfg Folder for your needs. After that you can Doubleclick on the accServer.exe to Start the Server. Keep in mind that you need to make Port Forwarding on your Router to get Players on your Server. Else it's just Locally accessible.

Linux specific (Ubuntu 18.04)

We need Wine because there is no Nativ Binary for Linux.

sudo apt-get install wine-development

Copy now all Server Files from your Windows System where you have ACC Installed to the Linux Server. After that you can Start your Server with

wine ./accServer.exe

You need to have "ignorePrematureDisconnects":0 in settings.json

Installation

After version 1.5.7, the Assetto Corsa Competizione dedicated server and Broadcast SDK is transferred to and now available as a separate download in the "Assetto Corsa Competizione Dedicated Server" item in the Steam Tools library.

Install in Steam under Tools "Assetto Corsa Competizione Dedicated Server" and you find all this under "..:\Steam\steamapps\common\Assetto Corsa Competizione Dedicated Server".

Folders Description
cfg The files for setting up a multiplayer server are located in this folder. In the further course of this description, you will be shown what additional folders and files are added automatically or manually.
cfg current If you have started a server, .txt-files are generated here. With these you can check whether the server was started with your parameters. If a parameter was not accepted, you made a mistake in the .json-file.
log This folder contains the server.log file, which permanently records what happens on the server.
results The results of qualifications and races are stored here.
sdk broadcasting
server contains the executable file accServer.exe and the official server manual from Kunos as a PDF file
server cfg ^^ currently I can't find any meaning of the additional cfg folder

cfg-Folder

...\Steam\steamapps\common\Assetto Corsa Competizione Dedicated Server\cfg\

Link to Description
assistRules.json ↓assistRules.json
configuration.json ↓configuration.json
event.json ↓event.json
settings.json ↓settings.json

In the further course of this description, you will be shown what additional folders and files are added automatically or manually.

current-Folder

If you start accServer.exe now, a folder "current" will be created in "cfg" Folder. This contains your settings from the .json-files as a text file.

If you make a mistake in .json, it will be corrected when the server is started and will be displayed in the text file. This gives you another way to go about troubleshooting.

Compare them with your settings at:
configuration.txt ↓configuration.json
entrylist.txt ↓entrylist.json
event.txt ↓event.json
eventRules.txt ↓eventRules.json
settings.txt ↓settings.json

Configuration

The server is exclusively configured via JSON files in UTF16-LE format. In general, it is a good idea to get used to the JSON syntax, and/or test your configurations with an syntax check on https://jsonformatter.curiousconcept.com/.

To get a clean start, you can just remove the .json files and start the server once, it will autogenerate them with current defaults. Additionally, you can reduce the “configVersion” contained in each file to get new properties generated (this is true for all the configs). Certain “advanced” settings will be hidden when the value is set to it’s default during this process.

The configuration is split into different files, which represent different levels of what you would possibly like to keep or change frequently:

configuration.json

  • Here we define the very technical settings that possibly never change and define the server “identity”.
  • The most important thing to know is that both ports must be unique on the system, the firewall allows connections and the ports are accessible from the internet.
Property Description
tcpPort ACC clients will use this port to establish a connection to the server
udpPort Connected clients will use this Port to stream the car positions and is used for the ping test. In case you never see your server getting a ping value, this indicates that the udpPort is not accessible
registerToLobby
  • 0 = This server is not registered in the backend. the server is declared →Private Multiplayer. Is useful for LAN sessions.
  • 1 = this server register to the backend. the server is declared →Public Multiplayer.
maxConnections The maximum amount of connections a server will accept at a time. If you own the hardware server, you can just set any high number you want. If you rented a 16 or 24 slot server, your Hosting Provider probably has set this here and doesn’t give you write-access to this configuration file.
lanDiscovery Defines if the server will listen to LAN discovery requests. Can be turned off for dedicated servers.
configVersion ...
publicIP Explicitly defines the public IP address. Useful if the backend is connected via a load balancer or reverse proxy.

Attention: If used, the server must use the same port number for tcpPort and udpPort (e.g. 9231 for both), and respond to an additional handshake on the UDP port one number higher (e.g. 9232) than its udpPort, or it will shutdown during startup.

Attention: Running a server on a private PC is not recommended. It requires opening and forwarding Ports onto your private system, which makes it vulnerable to random and/or malicious internet traffic. Additionally, private ISP bandwidth is often asymmetrically limited in the upload, which can easily lead to a bad server performance and in the result in a bad multiplayer experience for everyone around.

settings.json

In these settings, you define the parameters of the server that only need to be changed in certain situations, e.g. vehicle class.

Property Description
serverName The server name displayed in the ACC UI pages
adminPassword The password you specify allows a driver or spectator to log in as Server Admin in the chat window ( ENTER key ) of the server.
carGroup Defines the car group for this server. Possible values are
  • FreeForAll = where “FreeForAll” will allow any driver to join with any car ( that he defined as Primary Car ).
  • GT2 = Limit this server to GT2 Vehicles
  • GT3 = Limit this server to GT3 Vehicles
  • GT4 = Limit this server to GT4 Vehicles
  • GTC = Limit this server to Porsche 991 II GT3 Cup + Lamborghini Huracan Super Trofeo
  • TCX = Limit this server to BMW M2 Club Sport Racing
trackMedalsRequirement Defines the amount of track medals that a user has to have for the given track
  • values: 0, 1, 2, 3
safetyRatingRequirement Defines the Safety Rating (SA) that a user must have to join this server
  • values: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
racecraftRatingRequirement Defines the Racecraft Rating (RC) that a user must have to join this server
  • values: -1, 0, 1, 2, 3, 4, .... 97, 98, 99
password Password required to enter this server. If a password is set, the server is declared →Private Multiplayer.
spectatorPassword Password to enter the server as spectator. Must be different to “password” if both is set.
maxCarSlots Defines the amount of car slots the server can occupy; this value is overridden if the pit count of the track is lower, or with 30 for public MP. The gap between maxCarSlots and maxConnections ( in configuration.json ) defines how many spectators or other irregular connections ( ie entry list entries ) can be on the server.
dumpLeaderboards If set to 1, any session will write down the result leaderboard in a “results” folder ( must be manually created ).
dumpEntryList Will save an entry list at the end of any Qualifying session. This can be a quick way to collect a starting point to build an entry list, and is a way to save the defaultGridPositions which can be used to run a race without Qualifying session and predefined grid. Also see the corresponding admin command.
isRaceLocked If set to 0, the server will allow joining during a race session. Is not useful in →Public Multiplayer, as the user-server matching will ignore ongoing race sessions.
shortFormationLap
formationLapType Toggles the formation lap type that is permanently used on this server:
  • 5 = short formation lap with position control and UI + 1 ghosted cars lap
  • 4 = one free formation lap + 1 ghosted cars lap
  • 3 – default formation lap with position control and UI
  • 1 – old limiter lap
  • 0 – free (replaces /manual start), only usable for private servers
doDriverSwapBroadcast ?
randomizeTrackWhenEmpty If set to 1, the server will change to a random track when the last drivers leaves ( which causes a reset to FP1 ). The “track” property will only define the default state for the first session.
centralEntryListPath Can override the default entryList path “cfg/entrylist.json”, so multiple ACC servers on the machine can use the same entrylist ( and custom car files ). Set a full path like “C:/customEntryListSeriesA/”, where the entrylist is stored.

Attention: The path seperators have to be slashes ( / ), backslashes ( \ ) will not work.

allowAutoDQ If set to 0, the server won’t automatically disqualify drivers, and instead hand out Stop&Go ( 30 Secounds ) penalties. This way a server admin / race director has 3 laps time to review the incident, and either use /dq or /clear based on his judgement.
ignorePrematureDisconnects Removes a ( very good ) fix where users can randomly lose the connection. There is no sane reason to turn this off.
  • 1 – default: less arbitrary connections lost
  • 0 – more timeouts, but strict disconnection of anyone who

appears inactive for 5 seconds. Can be useful on unsupported platforms where TCP sockets act differently

configVersion

event.json

Defines the race weekend the server runs. This configuration file is meant to be swappable, so you can easily switch between different event templates by renaming/overwriting them.

Property Description
track The track we run.

Setting a wrong value will also print out the available track keys in the log. With the 1.1 update containing the 2019 season content, each track has a _2019 variant. Using this track will set the BoP and track grip correspondingly.

preRaceWaitingTimeSeconds Preparation time before a race. Cannot be less than 30s.
sessionOverTimeSeconds Time after that a session is forcibly closing after the timer reached '0:00. Something like 107% of the expected laptime is recommended.
  • Careful: default 2 minutes does not properly cover tracks like Spa or Silverstone
ambientTemp Sets the baseline ambient temperature in °C.
cloudLevel Sets the baseline cloud level, →Race Weekend Simulation.
  • Values 0.0, 0.1, .... 1.0
rain If weather randomness is off, defines the static rain level. With dynamic weather, it increases the rain chance.

Values greater than 0.1 can override the value of cloudLevel.

weatherRandomness Sets the dynamic weather level:
  • 0 = static weather
  • 1 - 4 = fairly realistic weather
  • 5 - 7 = more sensational
postQualySeconds The time after the last driver is finished ( or the sessionOverTimeSeconds passed ) in Q sessions and the race start. Should not be set to 0, otherwise grid spawning is not secure.
postRaceSeconds Additional time after the race ended for everyone, before the next race weekend starts.
metaData A user defined string that will be transferred to the result outputs.
simracerWeatherConditions Experimental / not supported: if set to 1, this will limit the maximum rain/wetness to roughly 2/3 of the maximum values, translating to something between medium and heavy rain. It may be useful if you feel forced to run very low cloudLevel and weatherRandomness values just to avoid thunderstorm; however high levels (0.4+ clouds combined with 5+ randomness) will still result in quite serious conditions.
isFixedConditionQualification Experimental / not supported: if set to 1, the server will take the rain, cloud, temperature, rain levels literally and make sure whatever is set up never changes. Daytime transitions still happen visually, but do not affect the temperatures or road wetness. Also rubber/grip is always the same. This is intended to be used for private league qualification servers only.
sessions A list of session objects, see the next table
Property Description
hourOfDay Session starting hour of the day
  • Values 0, 1, 2 ... 22, 23
dayOfWeekend Race weekend day / →Race Weekend Simulation:
  • 1 = Friday
  • 2 = Saturday
  • 3 = Sunday
timeMultiplier Rate at which the session time advances in realtime.
  • Values 0, 1, ... 24
sessionType Race session type:
  • P = ( P )ractice
  • Q = ( Q )ualifying
  • R = ( R )ace
sessionDurationMinutes Session duration in minutes
  • Remarks:
  1. At least one non-race session must be set up
  2. Setting up unreasonable day and hours ( also consider time multipliers ! ) can lead to wrong track and weather behaviour, e.g. avoid jumping from Saturday to Friday

eventRules.json

Defines the pitstop rules. Public MP servers will ignore this json file and use default values.

The basic pitstop features offer a huge array of combinations and different aspects you can set up your non-public races. Not every combination does make sense though, so it’s your responsibility to setup the rules so drivers have a good experience. It should be entirely possible to create a race in the style of a single Sprint series race as well as a 3-24h endurance race with or without driver swaps. Of course this shouldn’t limit you to think about your series and especially race event durations, and possibly add more fairness to balance fuel efficient cars – or allow a certain depth of tactics.

Additional notes regarding stints:

  • Stint timer (top left corner in the timing HUD) is reset when the car crosses the pit entry and starts counting down again when crossing the pit exit.
  • When serving a penalty, the stint timer will freeze and continue counting down after pit exit without resetting.
  • When a player's total remaining driving time is less than his current stint time, the total driving time will override the stint timer (!).

When this happens, the stint timer's background turns red, indicating the final stint of the active driver.

Property Description
qualifyStandingType
  • 1 = fastest lap
  • 2 = average lap ( running Endurance mode for multiple Q sessions )

Use 1, averaging Qualy is not yet officially supported.

superpoleMaxCar Not currently listed or described in the Kunos Server Admin manual
pitWindowLengthSec Defines a pit window at the middle of the race. Obviously covers the Sprint series format.
  • -1 = will disable the pit window
  • 600 = Insert the length of the pit stop window here in seconds. ( 10 minutes = 600 seconds ) - Only use with ↓mandatoryPitstopCount with a value of 1 or higher.
driverStintTimeSec Defines the maximum time a driver can stay out without getting a penalty. Can be used to balance fuel efficient cars in endurance races. The stint time resets in the pitlane, no real stop is required.
  • 3300 ( = 55 Minutes )
  • -1 will disable the stint times
isRefuellingAllowedInRace Defines if refuelling is allowed during the race pitstops.
  • true = refueling possible during the race
  • false = No refueling possible during the race
isRefuellingTimeFixed If set to true, any refuelling will take the same amount of time ( 25 seconds ). If turned off, refuelling will consume time linear to the amount refuelled. Very useful setting to balance fuel efficient cars, especially if combined with other features.
mandatoryPitstopCount Defines the basic mandatory pit stops. If the value is greater zero, any car that did not execute the mandatory pitstops will be disqualified at the end of the race. The necessary actions can be further configured using the “isMandatoryPitstopXYRequired” properties. A value of zero disables the feature.
maxTotalDrivingTime Restricts the maximum driving time for a single driver. Is only useful for driver swap situations and allows to enforce a minimum driving time for each driver ( IRL this is used to make sure mixed teams like Pro/Am have a fair distributions of the slower drivers ). -1 disables the feature.
maxDriversCount In driver swap situations, set this to the maximum number of drivers on a car. The maxTotalDrivingTime property will be scaled down to apply to teams with less drivers.
isMandatoryPitstopRefuellingRequired Defines if a mandatory pitstop requires refuelling.
  • true = every driver must refuel at least 1 liter
  • false = refuel as needed
isMandatoryPitstopTyreChangeRequired Defines if a mandatory pitstop requires changing tyres.
  • true = every driver must tyre change
  • false = tyre change as needed
isMandatoryPitstopSwapDriverRequired Defines if a mandatory pitstop requires a driver swap. Will only be effective for cars in driver swap situations; even in a mixed field this will be skipped for cars with a team size of 1 driver.
tyreSetCount Specify the number of permitted tire sets, 1-50 are possible. Not currently listed or described in the Kunos Server Admin manual

assistRules.json

Can be used to turn off certain assists for any car connected to this server. Beware: disabling assists will effectively remove the effect, but there is no special handling how the assists look like in the menu. Without instructions, users will be surprised and confused – up to a point where they become a risk for other drivers. Whenever you think about disabling something, please be sure this is really necessary and a risk in terms of fairness. It is out of question that the ( quite strong ) driving aids “Stability Control” and “Autosteer” may be candidates for league racing, but just turning off the ideal line will not improve anything for anyone (except that the one driver using it may become less safe and ruins the race of others). Even innocent elements like auto-engine start and pit limiter may just force users to re-map their wheels, and for example lose the ability to use their indicators in lapping traffic – again nobody is winning in this scenario.

For (very) obvious reasons, public MP servers will ignore this json file and allow everything.

Property Description
stabilityControlLevelMax Set’s the maximum % of SC that can be used. In case a client has a higher SC set than allowed by the server, he will only run what is allowed (25% in this example). Obviously setting this property to 0 removes all SC, including mouse and keyboard users.

The Stability Control is an artificial driving aid that allows the car to act out of the physics boundaries, and highly recommended to overcome input methods like Keyboards, Gamepads and Mouse steering. However, there is a built-in effect that makes the SC performance inferior, so in theory using (and relying) on SC is already more than enough penalty, and the way to improve performance is to practice driving without.

  • Default: 100
disableAutosteer Disables the steering aid that is only available for gamepad controllers. Unlike SC, this works inside the physics and does not allow unrealistic driving behaviour – except that this is a very strong aid with superhuman feeling for grip and high reaction speed. There is a built-in penalty that should balance the driving performance in most cases, and give an incentive to learn not to use the driving aid.
  • Default: 0
disableIdealLine
  • 1 = Forces the equivalent assist option to “off”
disableAutoPitLimiter
  • 1 = Forces the equivalent assist option to “off”
disableAutoGear
  • 1 = Forces the equivalent assist option to “off”
disableAutoClutch
  • 1 = Forces the equivalent assist option to “off”
disableAutoEngineStart
  • 1 = Forces the equivalent assist option to “off”
disableAutoWiper
  • 1 = Forces the equivalent assist option to “off”
disableAutoLights
  • 1 = Forces the equivalent assist option to “off”

entrylist.json

Acc-wiki server entrylists.jpg

Using entry lists a server admin can setup special roles that link drivers (by Steam Id) to those configuration entries.

It allows the server to identify persons, and allows to force or allow various aspects. Entry list entries will always bypass Rating Requirements, and will be able to join servers even if they are full (as long as we have pit slots left, and the driver number is smaller than configuration.json/ maxClients).

To start, just add a new file called entrylist.json in the “cfg” folder. Using an entry list does not interfere with the classification of “Public” or “Private” MP, and you can selectively use an entry to e.g. reserve a slot for you in a Public MP server. Serious groups might use slots for their members and run a race with a 90 SA restriction in Public MP to fill up their rows with highly capable “randoms”.

File Content
Example: 1x Driver as Admin / 2 Drivers as Team
Property Description

{
"entries": [
{
"drivers": [
{
"playerID": "S765611xxxxxxxxxx1"
}
],
"raceNumber": 88,
"forcedCarModel": -1,
"overrideDriverInfo": 0,
"isServerAdmin": 1
},
{
"drivers": [
{
"firstName": "First",
"lastName": "Driver",
"shortName": "NO1",
"driverCategory": 2,
"playerID": "S765611xxxxxxxxxx3"
},
{
"firstName": "Another",
"lastName": "Person",
"shortName": "NO2",
"driverCategory": 1,
"playerID": "S765611xxxxxxxxxx4"
}
],
"raceNumber": 114,
"forcedCarModel": -1,
"overrideDriverInfo": 0,
"defaultGridPosition": -1,
"ballastKg": 0,
"restrictor": 0,
"customCar": "exampleCar.json",
"overrideCarModelForCustomCar": 1,
"isServerAdmin": 0
}
],
"forceEntryList": 0
}

entries List of entries
drivers List of drivers, see next table. Must at least contain one driver with the SteamId
raceNumber The preferred race number add.
  • -1 if the driver may decide by picking his car.
  • other values: 1, 2, 3 .... 996, 997, 998
forcedCarModel
  • -1: the driver may pick which car to drive.
  • other values: ↓Car model list
overrideDriverInfo If set to 1, the driver’s name and category will be overridden by what is setup in the entry list. If set to 0, it’s up to the client joining.
customCar If set to a filename, the car, team and appearance will be used no matter what the user chose ( Exception: overrideCarModelForCustomCar ). This is useful for leagues and events, where we want consistent car appearance and the chosen car model for the corresponding driver/team. The custom car file has to be located in a “cars” folder next to the entrylist.json ( also works for centralEntryListPath ). Leave blank ( “”, =default ) to let the user chose the car via car selection UI.
overrideCarModelForCustomCar If customCar is used, this setting will apply the car model configured if the value is set to 1 (which is the default). If set to 0, all values except the carModel are applied, so the user is free to pick a car but while team name and appearance will be applied.
isServerAdmin If set to 1, that user will be automatically elevated to server admin when he joins.
defaultGridPosition If set to a value of 1 or greater, this car will obtain this grid position if a race starts without any qualifying session before ( e.g. P -> R ).
ballastkg Assigns ballast in kg for this car. Will be additive to ballast for the car model ( via bop.json ), and can be overridden by the admin command /ballast. Range is 0 to 100.
restrictor Assigns restrictor in % for this car. Will be additive to restrictor for the car model ( via bop.json ), and can be overridden by the admin command /restrictor. Range is 0 to 20.
forceEntryList Will reject drivers that are not in the entry list. Default is 0, which allows the partial definition of entries in a “normal” server configuration. Cannot be used on public servers.
For each entry in “drivers”, we will need at least the SteamId defining the entry. Other possible. values:
firstName First name of the driver, if “overrideDriverInfo” is set to 1
lastName Last name of the driver, if “overrideDriverInfo” is set to 1
shortName Short name of the driver, if “overrideDriverInfo” is set to 1
driverCategory Bronze / Silver / Gold / Platinum category, if “overrideDriverInfo” is set to 1.
playerID Steam64 Id for this client; Add a “S” in the front

bop.json

In addition to the admin commands and entry list based ballast and restrictor, you globally define those values for car and track combinations.

To accomplish this, just add a bop.json like this:

File Content Property Description

{
"entries": [
{
"track": "zolder",
"carModel": 7,
"ballastKg": 1,
"restrictor": 2
},
{
"track": "silverstone_2019",
"carModel": 2,
"restrictor": 5
}
]
}

entries
track enter a Racetrack here
carModel enter a CarModel here
ballast Assigns ballast in kg for this car. Can be overridden by the admin command /ballast.
restrictor Assigns restrictor in % for this car. Can be overridden by the admin command /restrictor.

Each “entry” can be understood as a line with a composite key of track and car model, and the ballast/restrictor are applied if both math. This way you can apply a small balance to one precise combination, or create your full blown custom BoP for all kinds of seasons, tracks and cars.

Important notes:

  1. The additional BoP is at the moment adjustable on public servers, but we will look at this closely. If we see bad and overdone efforts that affect the experience of average users, we will limit the additional BoP to private servers
  2. It is very hard to improve the current BoP, much harder than it may look (especially for 2019, where SRO did a great job). Do not fall for the mistake to use hotlap performance as the reference, and also make sure to start with tiny adjustments.

The values of the bop.json act additive to the entry list, so you can combine a championship penalty with your track/car specific changes. Any admin command (/ballast or /restrictor) will set the corresponding value to whatever you define, and overwrite potential configurations until the car rejoins.

Result Files

Using the “dumpLeaderboards”: 1 option, any session that is finished will write the final standing into a .json file in the “results” folder. Those files are generated with a filename in the pattern of “190806_193009_R.json”, including date, time and session type (P, Q, R).

File Content

{
"sessionType": "R",
"trackName": "silverstone",
"sessionIndex": 1,
"sessionResult": {
"bestlap": 117915,
"bestSplits": [
34770,
49359,
33258
],
"isWetSession": 0,
"type": 1,
"leaderBoardLines": [
{
"car": {
"carId": 1073,
"raceNumber": 912,
"carModel": 0,
"cupCategory": 0,
"teamName": "",
"drivers": [
{
"firstName": "Somebody",
"lastName": "Else",
"shortName": "SOE",
"playerId": "S76561191111111111"
}
]
},
"currentDriver": {
"firstName": "Somebody",
"lastName": "Else",
"shortName": "SOE",
"playerId": "S76561191111111111"
},
"currentDriverIndex": 0,
"timing": {
"lastLap": 119223,
"lastSplits": [
35286,
50178,
33759
],
"bestLap": 118404,
"bestSplits": [
35265,
49659,
33438
],
"totalTime": 719894,
"lapCount": 6,
"lastSplitId": 0
},
"missingMandatoryPitstop": 0,
"driverTotalTimes": [
0.0
]
}, ...
]
},
"laps": [
{
"carId": 1073,
"driverIndex": 0,
"laptime": 125511,
"isValidForBest": true,
"splits": [
40197,
51537,
33777
]
}, ...
],
"penalties": [
{
"carId": 1079,
"driverIndex": 0,
"reason": "Cutting",
"penalty": "DriveThrough",
"penaltyValue": 3,
"violationInLap": 0,
"clearedInLap": 1
},
{
"carId": 1081,
"driverIndex": 0,
"reason": "PitSpeeding",
"penalty": "StopAndGo_20",
"penaltyValue": 20,
"violationInLap": 4,
"clearedInLap": 5
}
]
}

In a nutshell, the root object contains information about the session and track, next to a leaderboard representation, a complete list of laps and a complete list of penalties for this session. The properties should be self-explanatory, in case of doubts and questions please do not hesitate to join the official support forum.

Spectator Mode

The necessary server settings: The difference between "maxConnections": 40; ( configuration.json ) and "maxCarSlots": 30; ( settings.json ) defines How many seats are available on the server. In this case, it is 10. Now only one password has to be assigned. This must be different than what is stated for the accession of the driver. Check also:

  • configuration.json / maxConnections
  • settings.json / spectatorPassword
  • settings.json / maxCarSlots

If someone wants to join a server as a spectator, he must enter the password for the spectator mode.

ID Lists

Removed all “_2019”, “_2020”, “_2021” track suffixes, please just use the track name in any configuration now

Track Name ID's
barcelona
brands_hatch
cota
donington
hungaroring
imola
indianapolis
kyalami
laguna_seca
misano
monza
mount_panorama
nurburgring
nurburgring_24h
oulton_park
paul_ricard
red_bull_ring
silverstone
snetterton
spa
suzuka
valencia
watkins_glen
zandvoort
zolder
Car Models
selectable in the MP Vehicle classes
ID Car Model Year FreeForAll GT3 GT4 GTC TCX GT2
0 Porsche 991 GT3 R 2018 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
1 Mercedes-AMG GT3 2015 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
2 Ferrari 488 GT3 2018 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
3 Audi R8 LMS 2015 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
4 Lamborghini Huracán GT3 2015 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
5 McLaren 650S GT3 2015 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
6 Nissan GT-R Nismo GT3 2018 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
7 BMW M6 GT3 2017 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
8 Bentley Continental GT3 2018 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
9 Porsche 991 II GT3 Cup 2017 Green check.webp Dark Red x.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp
10 Nissan GT-R Nismo GT3 2015 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
11 Bentley Continental GT3 2015 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
12 AMR V12 Vantage GT3 2013 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
13 Reiter Engineering R-EX GT3 2017 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
14 Emil Frey Jaguar G3 2012 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
15 Lexus RC F GT3 2016 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
16 Lamborghini Huracan GT3 Evo 2019 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
17 Honda NSX GT3 2017 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
18 Lamborghini Huracan SuperTrofeo 2015 Green check.webp Dark Red x.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp
19 Audi R8 LMS Evo 2019 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
20 AMR V8 Vantage 2019 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
21 Honda NSX GT3 Evo 2019 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
22 McLaren 720S GT3 2019 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
23 Porsche 991 II GT3 R 2019 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
24 Ferrari 488 GT3 Evo 2020 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
25 Mercedes-AMG GT3 2020 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
26 Ferrari 488 Challenge Evo 2020 Green check.webp Dark Red x.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp
27 BMW M2 Club Sport Racing 2020 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp Dark Red x.webp
28 Porsche 992 GT3 Cup 2021 Green check.webp Dark Red x.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp
29 Lamborghini Huracán SuperTrofeo EVO2 2021 Green check.webp Dark Red x.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp
30 BMW M4 GT3 2022 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
31 Audi R8 LMS GT3 Evo 2 2022 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
32 Ferrari 296 GT3 2023 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
33 Lamborghini Huracan GT3 Evo 2 2023 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
34 Porsche 992 GT3 R 2023 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
35 McLaren 720S GT3 Evo 2023 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
36 Ford Mustang GT3 2024 Green check.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
50 Alpine A110 GT4 2018 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
51 Aston Martin Vantage GT4 2018 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
52 Audi R8 LMS GT4 2018 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
53 BMW M4 GT4 2018 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
55 Chevrolet Camaro GT4 2017 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
56 Ginetta G55 GT4 2012 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
57 KTM X-Bow GT4 2016 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
58 Maserati MC GT4 2016 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
59 McLaren 570S GT4 2016 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
60 Mercedes AMG GT4 2016 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
61 Porsche 718 Cayman GT4 Clubsport 2019 Green check.webp Dark Red x.webp Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp
80 Audi R8 LMS GT2 2021 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp
82 KTM XBOW GT2 2021 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp
83 Maserati MC20 GT2 2023 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp
84 Mercedes AMG GT2 2023 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp
85 Porsche 911 GT2 RS CS Evo 2023 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp
86 Porsche 935 2019 Green check.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Dark Red x.webp Green check.webp
Driver Categorys
ID Category
3 Platinum
2 Gold
1 Silver
0 Bronze
Cup Categorys
ID Category
0 Overall
1 ProAm
2 Am
3 Silver
4 National
Session Types
ID Session Type
0 Practice
4 Qualifying
10 Race

Admin Commands

While connected to a server ( both as driver and spectator ), users can elevate to “server admins” if they are aware of the password. That allows them to use a few special commands. Version 1.0 start with a limited set, which is expected to be extended in future versions. To elevate to admin, hit “enter” to use the chat and type /admin adminPw123. A notification will tell you if successful. Additionally, you can setup an “Entry lists” entry for the admin(s) steamids.

Once elevated, you can use several commands:
Command Number Description
/next Skips the current session
/restart Restarts the current session. Do not use this during the preparation phase
Insert a space between the command and the start number / Kg / %
/kick 1 to 998 Kicks a user from the server, preventing him to join again until the race weekend restarts
/ban 1 to 998 Bans a user from the server, preventing him to join again until the server restarts
/dq 1 to 998 Instantly disqualifies the car, teleporting it to the pits with locked controls
/clear 1 to 998 Removes pending penalties ( e.g. Drivethrough or Stop&Go )
/clear_all clears all penalties from all cars
/cleartp 1 to 998 clears time penalties
/sg10 1 to 998 + 10 seconds stop&go penalty
/sg20 1 to 998 + 20 seconds stop&go penalty
/sg30 1 to 998 + 30 seconds stop&go penalty
/tp5 1 to 998 + 5 seconds penalty time ( reusable )
/tp5c 1 to 998 + 5 seconds penalty time + Indication of the reason: collision ( reusable )
/tp15 1 to 998 + 15 seconds penalty time ( reusable )
/tp15c 1 to 998 + 15 seconds penalty time + Indication of the reason: collision ( reusable )
/dt 1 to 998 Assigns a drivethrough penalty to the given car. As other DTs, it has to be served within 3 laps or the car will become disqualified. In case of a race finish within those 3 laps, the DT will be transformed to a 80s time penalty.
/dtc 1 to 998 see dt + Indication of the reason: collision ( reusable )
/ballast 1 to 998
+ kg
Sets the car’s ballast (in kg) to what you defined. This overrides any other ballast this car has been assigned.
  • Example: /ballast 113 15 = will give car #113 15kg of ballast
  • Range is 0 to 100
/restrictor 1 to 998
+ %
Sets the car’s restrictor (in %) to what you defined. This overrides any other restrictor this car has been assigned.
  • Example: /restrictor 113 7 = will give car #113 7% restrictor, resulting in roughly 7% less hp at max rpm.
  • Range is 0 to 20
/manual entrylist Manually creates an entry list json file containing the drivers connected in this moment. See also settings.json / dumpEntryList
/debug formation Prints information about the current cars and their states. Useful information to report bugs during the formation lap
/debug bandwidth Let’s the server console print the current bandwidth relevant data for both TCP and UDP traffic. Type again to turn it off
/debug qos Let’s the server console print the current network connection quality data. Type again to turn it off.

References

  1. test your configurations with an Online Syntax Check.
  2. Server Admin Handbook (PDF) - find in ACC Install under ..:\Steam\steamapps\common\Assetto Corsa Competizione\server
  3. Server Admin Handbook (Forum) - https://www.assettocorsa.net/forum/index.php?threads/the-server-admin-handbook-thread.59017