Checksums are used by the server to ensure that the driver has all necessary content installed (such as tracks, cars, apps etc.) and that their content exactly matches that on the server.
There are multiple reasons to checksum content, at the absolute minimum you need to make sure that the driver actually has the track you are using installed, for example, but you can also use checksums to ensure that the driver hasn't modified the track in any way to gain an unfair advantage.
ACSM provides a lot of control over checksums, including turning them off completely! Read on for more information!
By default ACSM will checksum the following files for tracks:
All paths are relative to the AC game installation folder.
If "Checksum Track KN5" is switched on in the event options then all
.kn5 files included with the track when uploaded to the server will also be checksummed. If you'd like to only checksum certain
.kn5 files then upload a copy of your track with only those
.kn5 files included, the server does not need them for anything other than checksums.
Please note that enabling this option can result in KN5 files for all uploaded layouts being checksummed, not just the layout that is currently in use
By default ACSM will checksum the following files for cars:
This path is relative to the AC game installation folder.
Some older car mods do not use a
data.acdfile, but rather a
datafolder containing multiple
.inifiles (and potentially some other file types as well). In this case the
datafolder is not checksummed by default. If you want to checksum files inside this
datafolder you can use the Required Apps system.
.kn5 file checksums for cars have three modes:
.kn5files are checksummed
If you'd like to only checksum certain
.kn5 files then upload a copy of your car with only those
.kn5 files included then select Check all car KN5 files, the server does not need them for anything other than checksums.
Please note that if a large number of cars are used then checksumming all car KN5 files can result in drivers being unable to join the server. If you have a large number of cars please only checksum the car collider, and test connecting to the event to ensure it works properly.
You can use the "Disable All Checksums" switch in the event options to disable all checksums, including required apps.
This is not recommended! Please only turn this option on if you really know what you're doing.
The required apps system lets server admins add extra checksums to the server, you can checksum anything you'd like inside the
assetto root folder (even things that aren't apps, for example car files that ACSM doesn't checksum by default).
To get started go to the Server -> Required Apps page. From here you can add/remove/edit forced app entries.
The name and filepath are both required, but the checksum input can be left blank. In that scenario ACSM will check that the file exists for each client, but will not check the contents of the file to make sure it matches the checksum. If the checksum input is set then the file will be fully checksummed.
To calculate the checksum of a file on Windows open the cmd terminal, cd to the location of the file you want to checksum then run:
CertUtil -hashfile yourFileName MD5
After making changes on the Required Apps page hit the "Save" button to apply them.
When creating an event you can turn on/off checksumming of each Required App from the master list using the Required Apps input, in the Checksums section. By default they will all be switched off, so remember to turn on the apps you want to checksum when creating an event (green section is on, red is off)!
Checksums are important as they ensure that the client is running the same data as what is on the server. It is used to help prevent cheating by modifying the car data or track. IT IS NOT RECOMMENDED TO DISABLE CHECKSUMS AT ANY POINT.
The Assetto Corsa Server logs will list all the files that it is attempting to check, so you can create a list in your event information, or send a snippet to the client to allow them to check what they are missing.
This means that the server has a file that the client does not and therefore it cannot be compared. This can be caused by either the server having additional layout files, or that the client did not install content correctly.
This error occurs during loading of the game and cannot be seen by the server.
The Assetto Corsa Server logs will show text similar to this:
level=info msg="Sending checksum request to CheesyManiac. If they cannot connect they are likely missing one of the following files:" level=info msg="- system/data/surfaces.ini" level=info msg="- content/tracks/ks_brands_hatch/gp/data/surfaces.ini" level=info msg="- content/tracks/ks_brands_hatch/models_gp.ini" level=info msg="- content/cars/tatuusfa1/data.acd" level=info msg="- dwrite.dll" level=info msg="- apps/python/sol_weather/sol_weather.py" level=info msg="- content/tracks/ks_brands_hatch/1.kn5" ... level=info msg="- content/tracks/ks_brands_hatch/ks_brands_hatch.kn5" level=info msg="- content/cars/tatuusfa1/collider.kn5"
This means that one or more files on the client does not match the files on the server. This can be caused by outdated content (on the server or client) or modified content. It is important to ensure that content used is up-to-date and matches any download links you provide to drivers.
This error occurs after loading of the game and will be logged by the server.
level=info msg="Car: 0 failed checksum on file 'content/cars/tatuusfa1/data.acd'. Kicking from server." level=info msg="Kicking: CarID: 0, Name: CheesyManiac, GUID: 1234567890987654321, Model: tatuusfa1, reason: Checksum failed" level=info msg="Received normal disconnect message from car: CarID: 0, Name: CheesyManiac, GUID: 1234567890987654321, Model: tatuusfa1"
Is the error actually server related? There may be a client crash happening during loading, that could be related to the track, car, other mods (some unstable versions of CSP can cause issues, try moving to the community agreed stable
CSP 1.74) or some combination of all of these things.
Some apps can break and cause a game crash, so it is always worth testing connecting with Python apps disabled in Assetto Corsa. This will not affect any layouts.