For a small private Assetto Corsa PC group, the most reliable starting point is a stock dedicated server using one known-good track, a short car list, a password, REGISTER_TO_LOBBY=0, and MAX_CLIENTS no higher than the available pit boxes and entry-list slots. Use pickup mode and looped practice for casual drop-in driving; use booking or a locked entry list when you need a scheduled, controlled grid. The two files matter most: server_cfg.ini defines the server, sessions, rules and ports, while entry_list.ini defines each individual car slot. This guide covers the original PC Assetto Corsa dedicated-server ecosystem, including acServer and AssettoServer; Assetto Corsa Competizione and Assetto Corsa EVO use different server products.
What do Assetto Corsa server settings control?
Assetto Corsa separates global server behavior from individual grid slots. Changing the wrong file is a common reason a server appears to ignore your edits.
server_cfg.ini: the server-wide rules
This file controls the server name and passwords, track and layout, allowed cars, client limit, lobby registration, pickup or booking behavior, assists, damage, fuel and tyre rules, sessions, dynamic grip, weather and network ports. Stop the server before editing it, save the file, then restart the process so it reloads the values. A hosting panel may rewrite some values when it starts, so panel-managed ports and settings should be changed in the panel rather than only in a local file.
entry_list.ini: the grid slots
This file contains one [CAR_n] block for each slot. A block can specify the car model, skin, optional driver identity, ballast, restrictor and fixed-setup values. Every model in the entry list must also be present in the server’s CARS value. If you advertise eight places but create only six entry blocks, only six slots exist.
Should I use the original acServer or AssettoServer?
Choose by driving style and maintenance preference, not by a claim that one implementation is universally faster. The original bundled server is a straightforward choice for conventional practice, qualifying and race weekends. AssettoServer is aimed at community features such as free roam, cruising, touge and drift, with optional Custom Shaders Patch (CSP) extensions.
| Decision axis | Original acServer | AssettoServer |
|---|---|---|
| Best fit | Traditional practice, qualifying and race sessions | Free roam, cruising, touge, drift and community-server features |
| Setup | Bundled dedicated-server program using the core INI files | Dedicated AssettoServer build with the same basic configuration concepts; use Content Manager or edit files manually |
| Extensions | Stock Assetto Corsa behavior | CSP rules and community features, subject to client and version requirements |
| Main caution | Content matching and network forwarding still apply | Extra features add version dependencies; some weather controls in the beginner guide are incompatible or problematic |
AssettoServer documentation notes that you can host, configure and play without the full version of Content Manager. Content Manager is convenient for creating the first preset, but manual INI editing remains a viable path.
How do I create a safe baseline server for friends?
Start with the smallest configuration that proves the network path and content installation. Add mods, assists and weather only after everyone can join and drive a few laps.
1. Confirm the prerequisites
- Install the PC version of Assetto Corsa and the dedicated-server files on the host machine.
- Install the same official track, layout, cars, DLC and mod versions on the host and every player’s computer.
- Choose a track layout whose pit-box count can accommodate your intended grid.
- Reserve a local IP address for the host computer, or create a DHCP reservation in the router, so port-forwarding does not break after a reboot.
2. Generate or open the configuration
Content Manager can create a server preset quickly. If you do not own its full version, create or edit the INI files directly in the server configuration folder. Keep a backup of the last known-good files before changing several options at once.
3. Use a conservative first preset
The following values are an editorial starting point for a private eight-slot group, not a measured hardware limit. Replace every identifier with the exact folder name installed on the server and clients.
[SERVER]
NAME=Friends Night
CARS=ks_ferrari_488_gt3;ks_mazda_miata
TRACK=magione
CONFIG_TRACK=
PASSWORD=group-only
MAX_CLIENTS=8
PICKUP_MODE_ENABLED=1
LOOP_MODE=1
REGISTER_TO_LOBBY=0
[PRACTICE]
NAME=Practice
TIME=120
IS_OPEN=1
TIME=120 gives a two-hour practice session in the documented example. A finite period is preferable to an unnecessarily huge duration, because it lets a scheduled loop move on and exposes configuration errors instead of hiding them indefinitely.
4. Add slots in entry_list.ini
Create one [CAR_n] block per intended place. At minimum, each block needs a valid model and should use a model also listed in CARS. Add skins or fixed driver details only after the basic slot works. Keep the number of blocks at or below the selected layout’s pit boxes.
5. Start, test, then change one thing
Launch the server, join from the host’s game installation, and drive a short session. Ask one friend outside the host’s home network to join before adding a second track or a mod. Record each change so a failed join can be traced to the last known difference.
How many cars can an Assetto Corsa server handle?
The hard limit is the number of pit boxes in the selected track layout, not a universal number such as eight, twelve or twenty-four. The server’s MAX_CLIENTS, the number of [CAR_n] blocks and the layout’s pit count must all support the same intended grid.
Capacity checks
- Count the available pit boxes for the exact layout, not merely the base track.
- Set
MAX_CLIENTSto the number of slots you actually provide, never above the layout capacity. - Ensure every intended driver has an entry-list slot when using locked or booking-based procedures.
- Use a lower starting value when you have no performance data. The eight-driver value in the example is a planning choice, not a published benchmark.
Exceeding the layout’s pit count can prevent joining or crash the server. A powerful CPU does not remove that content-defined limit, and no independent benchmark establishes a universally safe driver count or packet rate for every host.
Should I use pickup mode or booking?
Pickup mode is the simplest fit for a casual group that wants to connect and drive. Booking and locked entries are better when the organiser needs a fixed grid, named drivers or a scheduled race procedure.
Pickup mode for drop-in evenings
Enable pickup mode, leave the entry list unlocked, disable booking, qualifying and race, and run a finite practice session. With LOOP_MODE=1, the server can keep returning to the configured session. This arrangement lets a friend join an open slot without an organiser assigning a car in advance.
Booking for a planned event
Use booking when drivers must claim specific cars or when you want a deliberate join window. Set IS_OPEN and WAIT_TIME intentionally, then enable the qualifying and race sessions you actually need. Test the timing with one client: a short or closed join window can make a correctly configured server appear unavailable.
Locked entries for organiser-controlled grids
A locked entry list is useful for league-style nights, fixed driver identities, ballast or restrictor rules, and a controlled starting order. Every participant then needs a matching assigned slot. It is less convenient for spontaneous drop-in driving because an unlisted player cannot simply take an empty place.
Which session and realism settings should I change?
Change one rule at a time and tell drivers what changed. The important controls are documented below; exact behavior can vary with the server implementation and game content.
| Setting | What it changes | Good first use |
|---|---|---|
IS_OPEN |
Whether a session accepts joins | Keep practice open while testing; close later sessions when the procedure requires it |
WAIT_TIME |
Join or transition waiting period | Give late joiners a deliberate window before qualifying or the race starts |
TIME |
Timed session length | Use a finite practice period such as 120 minutes |
LAPS |
Lap-count session length | Use for a fixed race distance instead of a timed race |
FUEL_RATE |
Fuel consumption multiplier | Leave at a neutral value until the group agrees on strategy rules |
TYRE_WEAR_RATE |
Tyre degradation multiplier | Start neutral, then increase only if the intended race demands it |
DAMAGE_MULTIPLIER |
Collision and damage severity | Use a forgiving value while learning a new mod or track |
ALLOWED_TYRES_OUT |
How far a car may run beyond the track limits | Match the rule you can explain and enforce consistently |
| Dynamic-grip values | Track-surface evolution and grip progression | Keep conditions predictable for the first test night |
| Weather slots | Weather sequence and conditions | Use a simple, known condition before adding transitions |
Permissive assists make a mixed-skill evening easier, while strict assists, damage and tyre rules suit a league that has agreed on realism. Do not combine several realism changes with a new mod; otherwise you cannot tell whether a join or driving problem came from content or rules.
How do I make cars, tracks and mods match?
Every identifier in the configuration must match the installed folder name exactly. Use the actual folder names for CARS, TRACK, CONFIG_TRACK, MODEL and SKIN; display names in a launcher are not reliable substitutes.
Server-side checks
- Install the car and track data required by the server, including any DLC or dependent files.
- Confirm the chosen layout exists and that its pit count supports the entry list.
- Make sure every model in
entry_list.iniis included inCARS. - Use one version of each mod on the server and distribute that exact version to drivers.
Client-side checks
- Have each driver install the same car, skin, track and layout versions.
- Match DLC ownership where the chosen content requires it.
- Remove duplicate or older folders that can cause a launcher to load a different version from the one you tested.
- If a join fails after a mod change, revert to the last known-good car, skin, track or layout and add the new item alone.
A server that works locally but fails only for one friend usually points to a client-side content mismatch. A server that fails for everyone after a configuration edit should first be tested with the last known-good INI files.
What ports do I forward for an Assetto Corsa server?
Read the actual TCP_PORT, UDP_PORT and HTTP_PORT values from the running server configuration, then forward those exact values to the host computer. Common defaults are TCP 9600, UDP 9600 and HTTP 8081, but the configured values always win.
- Stop the server and record the three port values in
server_cfg.ini. - Give the host computer a stable local address through a router reservation.
- Create router rules forwarding the configured TCP port, UDP port and HTTP port to that address.
- Allow the same values through the host operating system’s firewall. A number in an INI file does not open a port by itself.
- Restart the router, firewall rule and server if required, then verify that the server is reachable from outside the host’s home network.
- Ask an internet friend to join. A server visible from the same LAN is not proof that an external player can connect.
Some internet providers use carrier-grade NAT, which prevents inbound forwarding even when router rules look correct. In that case, request a public address, use a network arrangement that supports inbound connections, or choose managed hosting rather than repeatedly changing the INI.
Hosting-panel caveat
Managed hosts often assign ports through a control panel and may rewrite them at startup. Keep panel-managed port values unchanged in the files unless the provider explicitly instructs you to edit them. Upload the same content versions that your players use and verify the panel’s slot limit before opening the server.
What extra features does AssettoServer add?
AssettoServer can expose CSP-dependent rules such as wrong-way limits, pit penalties, required modules, slipstream adjustment and AFK auto-kick. Treat each option as a client-version requirement: some settings specify a minimum CSP build, and every driver must meet it or accept reduced functionality.
Introduce CSP options gradually
- Run the stock server with one official track and one or two cars.
- Confirm that all drivers can join and complete a session.
- Enable one extra rule, such as an AFK kick, and test the expected behavior.
- Document the minimum CSP build and required modules in the group instructions.
- Keep a copy of the working configuration so you can disable the extension quickly.
WeatherFX warnings
The AssettoServer beginner guide specifically warns against WeatherFX Time, Time Multiplier and Date controls. They do not work with AssettoServer in the described setup and may cause problems, so leave them at their compatible defaults rather than trying to force a dynamic clock. Use only weather controls documented as supported by the exact AssettoServer and CSP versions you run.
Why can’t my friends join my Assetto Corsa server?
Diagnose in layers: content, configuration, ports and the network path. Do not replace all files at once, because that removes the clue that identifies the failure.
The server is not visible at all
- Check that
REGISTER_TO_LOBBY=1is used only when you want public lobby registration; a private group can keep it at0and share the direct connection details. - Confirm that the server process is running and not blocked by the firewall.
- Compare the configured TCP, UDP and HTTP values with router and firewall rules.
- Test from an external network, not only the host’s LAN.
The server appears, but joining fails immediately
- Compare the exact track, layout, car, DLC and mod versions on the server and client.
- Check that the requested slot exists in
entry_list.iniand that the model is allowed byCARS. - Reduce the entry list to a number supported by the layout’s pit boxes.
- Revert the last added mod or skin and test again.
Joining works, but a session will not start
- Review
IS_OPEN,WAIT_TIME,TIMEandLAPSfor contradictory or unintentionally closed sessions. - Check booking requirements and whether a locked entry list has an assigned slot for every driver.
- Inspect the server log after a restart; edits made while the process was running may not have been loaded.
Players are kicked after adding CSP or weather
Return to the stock preset, verify the base session, then add one extension at a time. Confirm the required CSP build and remove the incompatible WeatherFX time, multiplier and date controls.
How should I maintain a private group server?
A repeatable routine prevents most “it worked last week” failures.
- Keep a dated backup of
server_cfg.ini,entry_list.iniand the server log before each event. - Record the exact track, layout, car and mod versions in the group message.
- Restart after every configuration edit and verify the loaded values in the log.
- Test one external connection before inviting the full group.
- Change one rule or content item per test session.
- Remove unused cars and slots so the capacity number reflects reality.
- When using a panel, make configuration changes in the panel’s supported editor and check whether startup scripts overwrite local files.
For a casual night, keep the baseline close to stock: password protection, a known official track, pickup mode, loop mode, finite practice and a conservative grid. For a scheduled event, publish the join window, assigned slots, required content versions, assists and weather before race day.
Should I self-host or rent a managed server?
Self-hosting gives direct control over files and costs no separate hosting fee, but you must handle port forwarding, firewall rules, uptime and content distribution. Managed hosting can simplify panel editing, port assignment and Content Manager uploads, yet the provider’s slot limits, regions and startup behavior become part of your setup.
Choose self-hosting when someone in the group can maintain a reachable PC and troubleshoot the router. Choose managed hosting when carrier-grade NAT, unreliable home upload speed or an always-on requirement matters more than direct machine access. Whichever route you use, the same content-matching, pit-box and INI rules still apply.
What is the best starting configuration for different groups?
| Group | Recommended approach | Settings to emphasize |
|---|---|---|
| Casual drop-in friends | One official track, one or two cars, pickup mode and looped practice | PICKUP_MODE_ENABLED=1, LOOP_MODE=1, finite TIME, unlocked entries |
| Scheduled race night | Booking or locked entries with explicit session timing | IS_OPEN, WAIT_TIME, qualifying and race settings, assigned slots |
| League with fixed identities | Locked entry list and documented car, skin and setup rules | Driver identity, ballast, restrictor, fixed setups and a tested race procedure |
| Free-roam or drift community | AssettoServer with compatible CSP extensions | Required CSP build, one extension at a time, conservative weather settings |
Frequently Asked Questions
Can I run an Assetto Corsa server without the full version of Content Manager?
Yes. AssettoServer documentation states that hosting, configuring and playing are possible without the full version of Content Manager. You can create and maintain the INI files manually, although a launcher can make preset creation more convenient.
Do all players need the same CSP version?
For CSP-dependent AssettoServer features, players should use the build required by the specific rule or extension. A mismatch can disable the feature or prevent a reliable join, so publish the minimum build with the server’s content list.
Why does changing the track name not change the layout?
The base track and its layout are separate identifiers. Keep the track folder in TRACK and put the exact layout identifier in CONFIG_TRACK; an incorrect or empty layout value selects the wrong configuration or fails to load.
Can I increase slots by raising MAX_CLIENTS?
No. MAX_CLIENTS cannot override the selected layout’s pit-box capacity. You also need the same number of valid entry-list blocks, and exceeding the layout limit can stop joins or crash the server.
Why can I join locally but my friends cannot?
Local visibility tests only the host’s LAN path. External players need the configured TCP, UDP and HTTP ports forwarded to the host, allowed through its firewall and reachable from the public internet; carrier-grade NAT can block forwarding entirely.