Be aware that the following steps must be followed whenever Assetto Corsa is updated by Steam.
1) Go to your AC installation folder (Steam -> Assetto Corsa -> properties -> local files -> browse local files)
2) Open acServerManager.exe (latest version can be found in your Steam folder\steamapps\common\assettocorsa\server)
3) Click on Update Server Content
4) If your server is running on remote PC, upload the entire "server" folder. Remember to backup the three files listed in the section below: in this case just check for new settings in the new files and add them to your old ones.
If you want, you can also run acServerManager.exe with "/pack /nomsg" as arguments to have the same result of points 2 and 3 with no window.
If you are kicked from the server because of a mismatch (car or track) you need to update your game OR probably the server is not updated with the latest content.
How to create and start an online session
!!! ALERT !!!
Please be aware that, in order to have a good online experience, AC requires that you have a good quality connection (both ping and stability). So, please, do not play online while your connection is under stress (torrent, Windows updates, shared connections) and, most importantly, do not run servers using extreme configurations. This means that if your connection has a low upload bandwidth, you should not run a server with 24 slots.
Please have a look at the acServerManager tool to have an idea about your approximate bandwidth usage.
The server will read the following two configuration files:
"/cfg/server_cfg.ini"
"/cfg/entry_list.ini"
Add the blacklist file which stores the client's Steam GUID who will not be allowed on the server:
"/blacklist.txt"
These files can be generated and managed by the "acServerManager.exe" application located in your Assetto Corsa/server folder, or can be manually managed by you using a text editor such as Windows' notepad.
To start the server you need to run the acServer.exe (watch out for the server message in case of errors)
We suggest you run the acServer.bat batch that will dump the log of the server directly into the exe's folder under an unique name (timestamp). Be aware that when starting the batch file, an empty black CMD window will appear on the screen: it is normal as the server will write the messages in the file. These files are useful for storing online session's data (client's GUID, etc) and enable the staff to support you in case of any issues.
BOOKING MODE IS NOT FULLY SUPPORTED
server_cfg.ini
Code:
[SERVER] NAME=AC #001 Abarth Festival ;name of the server CARS=abarth500_s1;ferrari_458 ; models of the cars allowed in the server - that's exactly the car folder's name (into the "content/cars" folder) TRACK=vallelunga ; track on the server - that's exactly the track folder's name (into the "content/tracks" folder) CONFIG_TRACK=extended_circuit; subversion of the track, this parameter must contains the name of the track's subversion folder that you find in "content\tracks\TRACK\ui" SUN_ANGLE=-8 ; angle of the position of the sun MAX_CLIENTS=15 ; max number of clients (must be <= track's number of pits) RACE_OVER_TIME=20 ; time remaining in seconds to finish the race from the moment the first one passes on the finish line ALLOWED_TYRES_OUT=-1 ; penalty (-1 disabled) UDP_PORT=9600 ; UDP port number -> open this port on your server's firewall TCP_PORT=9600 ; TCP port number -> open this port on your server's firewall HTTP_PORT=8081 ; Lobby port number -> open this ports (both UDP and TCP) on your server's firewall PASSWORD=something ; server password LOOP_MODE=1 ; the server restarts from the first track, to disable this set it to 0 REGISTER_TO_LOBBY=1 ; this must not be touched PICKUP_MODE_ENABLED=1 ; if 0 the server start in booking mode (do not use it). Warning: in pickup mode you have to list only a circuit under TRACK and you need to list a least one car in the entry_list SLEEP_TIME=1 ; this must not be touched VOTING_QUORUM=75 ; percentage of vote that is required for the SESSION vote to pass VOTE_DURATION=20 ; time in seconds BLACKLIST_MODE=0 ; ban player -> 0 = normal kick, rejoin possible, 1 = until server restart, 2 kick player and add him to blacklist TC_ALLOWED=1 ; 0 -> no car can use TC, 1 -> only car provided with TC can use it; 2-> any car can use TC ABS_ALLOWED=1 ; 0 -> no car can use ABS, 1 -> only car provided with ABS can use it; 2-> any car can use ABS STABILITY_ALLOWED=0 ; Stability assist 0 -> OFF; 1 -> ON AUTOCLUTCH_ALLOWED=1 ; Autoclutch assist 0 -> OFF; 1 -> ON DAMAGE_MULTIPLIER=0 ; Damage from 0 (no damage) to 100 (full damage) FUEL_RATE=100 ; Fuel usage from 0 (no fuel usage) to XXX (100 is the realistic one) TYRE_WEAR_RATE=100 ; Tyre wear from 0 (no tyre wear) to XXX (100 is the realistic one) CLIENT_SEND_INTERVAL_HZ=15 ; refresh rate of packet sending by the server. 10Hz = ~100ms. Higher number = higher MP quality = higher bandwidth resources needed. Really high values can create connection issues TYRE_BLANKETS_ALLOWED=1 ; at the start of the session or after the pitstop the tyre will have the the optimal temperature ADMIN_PASSWORD=kunos ; it's the password needed to be recognized as server administrator: you can join the server using it to be recognized automatically. Write on the game's chat /help to see the command list QUALIFY_MAX_WAIT_PERC=120 ; this is the factor to calculate the remaining time in a qualify session after the session is ended: 120 means that 120% of the session fastest lap remains to end the current lap. WELCOME_MESSAGE= ; path of a file who contains the server welome message START_RULE=0 ; 0 is car locked until start; 1 is teleport ; 2 is drivethru (if race has 3 or less laps then the Teleport penalty is enabled) NUM_THREADS=4 ; default is 2 FORCE_VIRTUAL_MIRROR=1 ; 1 virtual mirror will be enabled for every client, 0 for mirror as optional LEGAL_TYRES=V;E;HR;ST ; list of the tyre's shortnames that will be allowed in the server. MAX_BALLAST_KG=50 ; the max total of ballast that can be added through the admin command UDP_PLUGIN_LOCAL_PORT=0 ; see plugin example UDP_PLUGIN_ADDRESS= ; see plugin example AUTH_PLUGIN_ADDRESS= ; see plugin example RACE_GAS_PENALTY_DISABLED=0 ; 0 any cut will be penalized with the gas cut message; 1 no penalization will be forced, but cuts will be saved in the race result json. RESULT_SCREEN_TIME=10 ; seconds of result screen between racing sessions. RACE_EXTRA_LAP=0 ; if it's a timed race, with 1 the race will not end when the time is over and the leader crosses the line, but the latter will be forced to drive another extra lap. LOCKED_ENTRY_LIST=0 ; same as in booking mode, only players already included in the entry list can join the server (password not needed). RACE_PIT_WINDOW_START=25 ; Pit window open at lap/minute (depends on the race mode) RACE_PIT_WINDOW_END=35 ; Pit window closes at lap/minute (depends on the race mode) REVERSED_GRID_RACE_POSITIONS=8 ; 0 = no additional race, 1toX = only those position will be reversed for the next race, -1 = all the position will be reversed (Retired players will be on the last positions) ------ UPDATE ------ TIME_OF_DAY_MULT=1 ; multiplier for the time of day ------------------------ [DYNAMIC_TRACK] SESSION_START=90 ; % level of grip at session start RANDOMNESS=1 ; level of randomness added to the start grip LAP_GAIN=1 ; how many laps are needed to add 1% grip SESSION_TRANSFER=90 ; how much of the gained grip is to be added to the next session 100 -> all the gained grip. Example: difference between starting (90) and ending (96) grip in the session = 6%, with session_transfer = 50 then the next session is going to start with 93. [BOOK] ; booking session - add this section only if your server is in booking mode NAME=Booking TIME=5 ; session length in minutes [PRACTICE] NAME=Free Practice TIME=0 ; session length in minutes IS_OPEN=1 ; 0 = no join, 1 = free join, [QUALIFY] NAME=Qualify TIME=15 ; session length in minutes IS_OPEN=1 ; 0 = no join, 1 = free join, [RACE] NAME=Race LAPS=5 ; length of the lap races TIME=0 ; length of the timed races, only if laps = 0 WAIT_TIME=60 ; seconds before the start of the session IS_OPEN=2 ; 0 = no join, 1 = free join, 2 = free join until 20 seconds to the green light [WEATHER_0] ; mandatory section for weather. GRAPHICS=3_clear ; it's exactly one of the folder name that you find into "content\weather" directory BASE_TEMPERATURE_AMBIENT=18 ; temperature of the Ambient VARIATION_AMBIENT=2 ; variation of the ambient's temperature. In this example final ambient's temperature can be 16 or 20 BASE_TEMPERATURE_ROAD=6 ; Relative road temperature: this value will be added to the final ambient temp. In this example the road temperature will be between 22 (16 + 6) and 26 (20 + 6). It can be negative. VARIATION_ROAD=1 ; variation of the road's temperature. Like the ambient one. ------ UPDATE ------ ; Be aware the session wind is static for all its duration; speed and direction is random related to the values below WIND_BASE_SPEED_MIN=3 ; Min speed of the session possible WIND_BASE_SPEED_MAX=15 ; Max speed of session possible (max 40) WIND_BASE_DIRECTION=30 ; base direction of the wind (wind is pointing at); 0 = North, 90 = East etc WIND_VARIATION_DIRECTION=15 ; variation (+ or -) of the base direction ; so in this example the then wind speed can be between 3 and 15 and direction between 15 and 45 ------------------------
You can add other WEATHER sections (WEATHER_1, WEATHER_2 etc), and each new session will be randomly selected from these.
For road temperatures relative to ambient temperature, weather and time of the day, please check the acServerManager tool.
Mandatory Pit : a pit window can be added to the race session. As a design choice, players need to cross the pitentry line and stop at their pit box within the pit window to have a valid pit stop. Players may make additional pit stops before and after the pit window, but only making a mandatory stop in the indicated pit window will validate their race. Server admins must decide on a pit window that allows all players to comfortably make a pit stop under normal racing conditions.
Reversed grid races: the race session will be restarted in reversed grid order based on the standings of the previous race. Players disqualified in the first race will start from the back of the grid in the second race, regardless of their position being within the reversed grid range.
This will be improved in the next update.
entry_list.ini
Code:
[CAR_0] ; car index -> from 0 to XXX DRIVERNAME= ; Driver name that will appear on the lobby TEAM= ; Team of driver MODEL= ; car model - that's exactly the car folder's name (into the "content/cars" folder) SKIN= ; car skin - that's exactly the skin folder's name (into the "content/cars/MODEL/skins" folder) GUID= ; STEAM64 GUID SPECTATOR_MODE= ; leave it to 0 BALLAST=0 ; how many kg of ballast to be added to this car. Excessive ballast can severely affect handling and car behaviour! ------ UPDATE ------ RESTRICTOR=0 ; from 0 to 100, cuts the car's engine power. 100=100% restrictor plate. It limits power in the top range of the power band, will not kill total power. Effective handicap depends on car and track, experimentation needed. Advantage over BALLAST is that it does not affect handling. 0=no restrictor plate, maintains original power. ------------------------ FIXED_SETUP= ; if the line is there but empty, the server will search a defined "MODELNAME.ini" (for example "bmw_m3_e30.ini") into the "setups" folder. Otherwise you can insert a setup name in as value ("setupname.ini")
Code:
Steam Community ID:76561197983XXXXXX
So if you want a fixed setup with free fuel quantity then the "[FUEL]VALUE=XXX " must be removed.
Example for a server in pickup mode
You need to insert at least a number of cars sections equal to the MAX_CLIENTS value or higher than that. So if the server is allowing 10, cars then the entry list must have cars from [CAR_0] to [CAR_9] at least.
Code:
[CAR_0] DRIVERNAME= TEAM= MODEL=ferrari_458_gt2 ; this MUST BE one of the car allowed in the "server_cfg.ini" SKIN=black_matte ; car skin - that's exactly the skin folder's name (into the "content/cars/ferrari_458_gt2/skins" folder) GUID= SPECTATOR_MODE=0 BALLAST=0 FIXED_SETUP=
Code:
/help: prints the list of the available commands /admin: become administrator for the server. ex, if the password is "kunos" the command is "/admin kunos" /next_session: moves to next session /ksns: moves to next session /restart_session: restart the session /ksrs: restart the session /kick: kick a user using the rules (blacklist etc) of the server. To kick a player named "The Player": /kick The Player /client_list: shows the full car list by CAR_ID : "PlayerName" /kick_id: kick the user who occuping CAR_ID. To kick a player named "The Player" who's occuping CAR_15: /kick_id 15 /ballast: add weight to the CAR_ID. To add 200 kg to the CAR_15: /ballast 15 200 /restrictor: cut engine power to the CAR_ID. To add 50% restrictor to the CAR_15: /restrictor 15 50 /ban_id: ban the user who occuping CAR_ID. To ban a player named "The Player" who's occuping CAR_15: /ban_id 15
GUID=76561197983XXXXXX;76561197983YYYYYY;76561197983ZZZZZZ;76561197983WWWWWW
This can also be used as partial driver swap and it's the 1st step to a more complete functionality: in fact setup will not be shared (can be solved using server fixed setup system), the new player will have a brand new car and mandatory pit will not work (yet).
Multiple servers on the same PC
To run more than a server at the same time on the same PC, remember that you have to use different ports for each one, and it is advised to run different executables (acServer for the first server, acServer2 for the second one and so on, or create another server folder somewhere)
If you want to use this feature on the acseservermanager, it is mandatory to fill the Server Path field with the new .exe path.