Content Manager is the community launcher most Assetto Corsa players already use, and it is also the easiest way to build a server: its Server section edits presets that become server_cfg.ini and entry_list.ini, checks that every car, skin and track layout you chose actually exists, and can pack the server binary, config and the content data the server needs into one archive you upload to a host. Mod tracks and cars then work exactly like stock ones, with two conditions that cause nearly every failed join: the server and every driver must have the same version of each mod (the server checks file checksums), and the folder names in the config must match the folders on disk, character for character - on a Linux server, including capitals.
The server's own files are covered in detail in the Assetto Corsa server guide. This post is the content side: Content Manager's server presets, how track and car folders are laid out, layouts and pit boxes, what the server actually checks, Custom Shaders Patch requirements, and getting the right files to your drivers.
What Content Manager does for a server#
Content Manager (CM) is a replacement launcher for Assetto Corsa, written by the community. For server admins it does four useful things:
- Edits server presets in a form instead of raw ini files - track and layout picker, car list, entry list with skins, sessions, weather and assists.
- Validates content: it knows which cars, skins and layouts are installed on your PC and flags anything missing before you run the server.
- Runs the server locally, so you can test a preset on your own machine before uploading anything.
- Packs a preset with the server binaries, config and the content data the server needs, ready to upload to a host.
CM has a free version and a paid full version that unlocks extra features. The server tools are usable without paying; if a specific option mentioned here is greyed out in yours, that is the likely reason.
CM stores presets in the game folder under server/presets/, one folder per preset (SERVER_00, SERVER_01 and so on), each containing its own server_cfg.ini and entry_list.ini. Those are the same files acServer reads; CM is a front end, not a different format. That matters, because you can open the files a preset produced, read them, and edit them by hand on the server later without CM.
Building a preset#
In CM, the server section lists presets on the left; create one and work through the tabs:
- Main: name, password, admin password, the track and its layout, and the car list. Pick the layout explicitly - this sets
CONFIG_TRACK. - Entry list: one row per grid slot, each with a car and a skin. CM shows the track's pit box count and warns when the list is longer.
- Rules and conditions: assists, damage, fuel and tyre rates, sessions, time of day, weather, dynamic track.
- Run it locally and join from the same PC. If you can join your own local server, the preset is valid.
Then pack it. The pack option produces an archive containing the server executable for the platforms you choose, the cfg folder, and a content folder holding only the data files the server needs from each car and track - not the textures and 3D models. A server folder built this way is a few megabytes per car rather than hundreds.
Upload the archive to the server and unpack it in place - a file manager that unpacks archives where they land saves a lot of time here - or extract locally and upload the folders over SFTP. SFTP and the file manager covers both. On a host, the server binary is already installed, so what you need from the pack is cfg/ and content/.
How track folders are laid out#
Tracks live in content/tracks/<track_folder>/. The folder name is what goes in TRACK=, and it is often nothing like the display name: a mod track called "Circuit of the Example Hills" might live in ex_hills_2024. Read the folder, not the name in the menu.
A track with several layouts has a subfolder per layout, and CONFIG_TRACK= names one of them:
content/tracks/ex_hills_2024/ gp/ data/ surfaces.ini ... national/ data/ ui/ gp/ui_track.json national/ui_track.json models_gp.ini models_national.iniA single-layout track has its data/ folder directly under the track folder, its UI files directly under ui/, and CONFIG_TRACK left empty.
| Track type | TRACK= | CONFIG_TRACK= |
|---|---|---|
| Single layout | Folder name | Empty |
| Several layouts | Folder name | Layout subfolder name |
| Several layouts, left empty | Folder name | Usually fails at start |
Pit boxes are the hard limit on grid size. A track's ui_track.json for each layout states its pit box count, and MAX_CLIENTS and the entry list must not exceed it. Mod tracks vary widely here - a club circuit may have twelve, a converted public road five. CM shows the number when you pick the layout; check it before promising a 24-car grid.
How car folders are laid out#
Cars live in content/cars/<car_folder>/, and CARS= in server_cfg.ini is a semicolon-separated list of those folder names.
content/cars/ex_gt3_2024/ data.acd skins/ 01_red/ 02_blue/ ui/ ui_car.json ...model and sound filesThe physics data is usually packed into data.acd. Some mod cars ship an unpacked data/ folder instead or as well. Either way, the physics data is part of what the server compares against each driver's copy, so two drivers with different builds of the same car folder are not interchangeable.
Skins are cosmetic. The entry list assigns one per slot with SKIN=, naming a folder under skins/. A driver who does not have that skin sees a default instead; it does not stop them joining. Skin packs are a nice touch for a league and not worth blocking anyone over.
Checksums: what the server actually compares#
When a driver connects, the server compares checksums of key files in the driver's copy of the track and car with its own. Any difference and the driver is rejected. The comparison covers the files that affect driving - track surfaces and layout data, car physics - not textures, sounds or skins.
That has practical consequences:
- The server needs the right data files, not full content. That is why CM's packed content is small, and why a server with only
data.acdand the track data folders works. - A visual mod does not break checksums, but a mod that edits physics or surface data does. A "graphics update" for a track that also touches
surfaces.iniis a different track as far as the server is concerned. - Re-downloading a mod can change it. Mod sites reissue files quietly. "It worked last week" usually means one driver or the server got a newer build.
- The error names the file. Read it - a checksum failure on a track's surface data points to the track, on a car's data to that car.
Linux servers and folder names#
Most hosted Assetto Corsa servers run the Linux acServer. Linux file names are case-sensitive and Windows file names are not, which means a preset built on Windows can work perfectly on your PC and fail on the server.
If TRACK=Ex_Hills_2024 and the folder is ex_hills_2024, Windows finds it and Linux does not. The same applies to car folders, layout folders and skin folders. The fix is to make the config match the folder exactly - copy names from the server's own file listing rather than from CM's display or from memory. When the server exits at start-up, its log names the folder it could not find; reading the console is about getting that line quickly.
Custom Shaders Patch and requirements#
Custom Shaders Patch (CSP) is a widely used extension to the game's renderer and engine. Many modern mod tracks and cars use CSP features - extra lighting, rain effects, physics extensions - and some do not work properly, or at all, without it.
For a server this raises a question the vanilla game never asked: what version of CSP must drivers have? CM's server settings can declare a minimum CSP version for a preset, so drivers without it are told before they join rather than discovering a broken track mid-session. AssettoServer, the open-source replacement for acServer described in the main guide, goes further and builds features on top of CSP - synchronised weather and time, traffic and more.
The decision is about audience. A public server that requires a recent CSP version excludes players with a plain install. A league whose drivers all run CSP gains a lot from requiring it. Either way, put the requirement in the server name or description, and publish it with the content list.
Getting content to your drivers#
The vanilla server never sends content to drivers, so distribution is the admin's job. What works:
- A content list with exact versions and links. Car and track names, the folder names, the version, and where to download that version. Pinned in your Discord, updated whenever the server changes.
- One archive for the whole set. For a league, pack every car and track into one download hosted somewhere stable. Drivers drag it into CM, which installs Assetto Corsa content from archives.
- Download links advertised by the server. Community server wrappers and AssettoServer can expose download links for missing content to CM, so a driver who joins without a car is shown where to get it. This is the closest Assetto Corsa gets to download-on-join, and it depends on the tools you run, so check what your server software supports before promising it.
Keep the list next to your server backups. The configuration a league spent three weeks agreeing on is small and easy to lose; the content list is what lets you rebuild the server when a mod site disappears. Backups that actually restore explains why to test the restore as well. On RE:NODE, backup slots come with every Assetto Corsa plan, so the cfg and content folders can be saved before each content change and restored with one button.
Server disk use grows with content even though only data files are needed. A traffic or freeroam server with dozens of cars and a large map can still reach several gigabytes, mostly from tracks. Clear out cars and tracks you no longer use when you change the preset; old content is the usual reason a server's disk fills.
Troubleshooting#
"Checksum failed" for a car. The driver's build of that car differs from the server's. Compare versions and agree on one.
"Checksum failed" for the track. Same, for the track - often a graphics or update pack that also changed surface data.
The server exits at start naming a folder. A folder name or capitalisation mismatch, or CONFIG_TRACK empty on a multi-layout track.
The grid starts with cars in odd places or the session breaks. More entries than the layout has pit boxes.
Drivers without CSP see a broken track. The track needs CSP. Declare the requirement in the preset and the server name.
The preset works locally, not on the host. Linux case sensitivity, or content you did not upload. Compare the server's content/ folder with the packed archive.
Skins appear as defaults. The driver does not have the skin pack. Cosmetic only.
FAQ#
Do I need Content Manager to run an Assetto Corsa server?
No. acServer reads two ini files and a content folder, and you can write them by hand. Content Manager makes it faster and catches mistakes such as missing skins or too many entries for the pit boxes.
Does the server need the full mod car and track files?
No, only the data files used for checksums. Content Manager's packing option copies exactly those, which keeps the server small. Drivers need the full content to see and drive it.
Why do drivers fail the checksum on a mod track?
Their version differs from the server's. Many mod tracks have several builds and update packs in circulation. Publish the exact build and make sure the server has it too.
How do I choose a track layout on the server?
Set TRACK= to the track folder and CONFIG_TRACK= to the layout's subfolder name. In Content Manager, choosing the layout in the preset sets both.
Can the server send cars and tracks to players automatically?
The vanilla server cannot. Community wrappers and AssettoServer can advertise download links that Content Manager shows to drivers with missing content, which is the nearest equivalent.
Should my server require Custom Shaders Patch?
If your tracks or cars depend on it, yes, and say so in the server name. For a public server on stock or older content, leaving it optional lets more players join.




Comments
Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.