Assetto Corsa Competizione originally give the user the ability to either view previous fastest laps, sessions or indeed view championship status (other than at completion of a round). With this in mind, I decided to create a little tool for my own purposes, to harvest what information there is in order to provide me with a means at reviewing this sort of information. Given that there have been a number of posts by sim racers bemoaning the lack of this information, I thought perhaps others may find it useful too.
While ACC does give some nice stats now, If you want a little bit more detail on lap stats, this might be the place for you.
Note: this is very much beta at the moment. I haven't had enough time to do a large number of races etc to check if there are any bugs lurking related to volume.
If your system runs ACC, it should run ACC Results Companion, with the caveat that I don't have a Windows 7 environment to test on. As a bare minimum, you must have .NET Framework 4.5.2 (which will be there for Windows 10 if reasonably up to date)
This should only be installed on a PC that already has ACC installed. An MSI is provided for the install, that should create the program, work folders and database in your user folder.
If a previous version of ARC has been installed, the installer should allow an update without needing to uninstall first.
Using ACC Results Companion
ACC Results Companion (ARC) should be started before starting ACC (or at least before your first session) each time. It will automatically monitor ACC files to store away sessions and championships for later analysis.
On the first run, ARC attempts to find the ACC data folder. With a default ACC install, this is found at "%HOMEDRIVE%%HOMEPATH%\Documents\Assetto Corsa Competizione
C:\Users\MyUser\Documents\Assetto Corsa Competizione
This folder contains the .\Results and .\Config folders required by ARC. If the folder cannot be found, an error message is displayed and a dialog will be displayed allowing you to define where to find the folder.
If a previous version of ARC was installed and sessions had been recorded, the first time ARC is run, it will replay all the session files to ensure information that was not previously recorded (eg race numbers, driver names etc) is now stored. The first time may therefore take a few seconds to open.
All sessions that ARC know about are automatically updated. Click on a session to view details of each lap (player car only).
Various filters are available, if you want to zoom in on particular types of sessions. Special mention should be given to:-
- Wet session - Only includes sessions declared as wet. This is a bit arbitrary as it won't differentiate between a bit wet, flooded and wet, but drying.
- Special events only - Only shows the special events with their event number show you can cross reference against the PC statistic within the game (which only gives your global position, but not your session performance).
In the detail view, the following information is displayed:-
- Lap number
- The amount of fuel at the end of the lap
- The lap time and time of each sector
- Fastest laps/sectors are highlighted along with invalid laps
- Differences to laps times in the real Blancpain 2018/2019 seasons are given (the fastest year/session is picked)
- Delta RR - The difference to the overall Race record
- Delta QR - The difference to the overall qualifying record
- Delta QS - The difference to the slowest real qualifying time for the same race
- Delta QR - The difference to the fastest lap of the slowest team during the race (this is a bit more arbitrary. I've discounted teams that only completed a small amount of laps...maybe they were slow because of damage and finally retired). However, it aims to give a benchmark to where you sit compared to the slower teams IRL.
If you have the option to load all cars (see Settings section), you can click on All Cars button to view all cars in the session. Click Player Car to go back to just the player car. The player car is always highlighted.
Additional columns (such as initial weather conditions) can be exposed (or hidden) by right clicking on the table header.
For me, probably the most useful. Gives the fastest lap by car for a given circuit.
Displays championships. It has the capability to display multiple championships. There is some fuzzy logic to decide if a championship is a later round of a previously recorded championship, or a new championship altogether (to eliminate duplicate lines).
The player car is highlighted in green
If you have old laps you have noted down and want to store, there is a manual entry panel.
Also, for reasons listed later, ACC does not currently provide results for hotlaps, single player standalone practice sessions and some online races. As such, you could record the fastest laps from these sessions manually (don't worry if you haven't noted the sector times).
Currently, each manually entered lap will be displayed as a new session (this might change in the future).
At the moment (currently ACC 1.0.10), there appears to be an intermittent issue which resuming saved games in that not all information is written out at the end of the session (ie the track and which is the player car). As such, the session may show in ARC as UNKNOWN track or car (with a sneak preview of the next car to be added in the upcoming DLC )
If this is the case, right click on the session and select Fix Session.
You can then manually select the track and Race Number of your car (hopefully you remember both these).
The session should then be fully visible.
Note, there is a known issue with this in that the Sessions screen blanks out after this. Press the Filter button to refresh.
If you don't like the default colours for the lap display, here is where you can change that
- ACC Style- Uses similiar colours to ACC when diaplying the laps
- F1 Style (for want of a better name) - Different style showing improved/slower laps as well as records
- Custom Style - Pick your own colours...just click on each button. This is currently just a taster at the moment and has a couple of issues that need ironing out.
- Font Colour Contrast - The font changes from black to white depending on how dark the background colour is. You change adjust the point at which this changes.
If you select Store laps for all cars, the times of all cars in the session will be stored. Unselecting will store only the player car, This can be changed at any point. If you decide you want to view all cars from a session you only stored the player car for, you can change this session then replay the results file (see Backup section)
Individual results files can be replayed (or deleted). The backups describe the session type, track dates and player car (this may be the winning car if there are issues with saved games)
Impact on ACC
This should be minimal. It will take up a small amount of memory while running, and uses Windows directory events to monitor files which should again have minimal performance impact while ACC is running.
The main processing of ARC occurs at the session end (to load in the results/championship file) and when using the UI, so it shouldn't take away any precious performance while a race is in progress.
Limitations, Restrictions and Known Bugs
No Hotlaps, Practice Sessions or Online Races
ARC can only record sessions where the associated results file is written by ACC. These are not currently written for hotlaps, single player practice sessions or online races. I believe this might be because results only get written when the session is completed (when you get the Press ESC to finish session message). However, you will never get to this stage for hotlaps, practice sessions with no time limit or online sessions where configured to move on before this (?? is this correct?).
Currently looking at workaround to see if it is possible to get information by other means.
Old sessions not picked up
ARC can only detect and process results if it is running while ACC is running and the session is completed. Nothing can really be done about this as ACC only keeps json files for current sessions.
Backup files named with winning, not player car
I think this is only now an issue when the season file isn't created properly after a saved game is resumed (ie we don't know the player car).
Server side results not supported
The server side results are a slightly different format and organisation, so are not currently supported. V0.3.0 has extended the data model to support not just the player car in preparation to extend support to server side.
Championship points not available
Since ACC 1.0.8, it looks like the champState.json file isn't created properly and is missing all the points. As such, it isn't possible to display championship updates (only anything before ACC 1.0.7). However, ACC have now made the championship leaderboard available, so that is probably a better place to look.
Session screen blank after Fix Session
Known issue not getting the latest results from the DB. A workaround is to press the Filter button to refresh.
What happens with the 2019 Season DLC
Placeholders are currently in the app for the new track (Zandvoort) and and new cars (there is a missing car id 16 and possibly others). The app still should work until I bring it up to date, but the names/images of the new cars will just default for the time being.
Housekeeping & Optimisation
ARC backs up ACC results files and stores them in a database. At the moment, no housekeeping is performed to get rid of unwanted backups and I haven't really looked at optimizing the DB queries. I'll start looking at both these shortly.
There are now options to remove sessions or tidy up backup files, should you want to.
There is a log pane which should describe any errors, but the best bet at the moment is to log any issues here.
Zip up the following folders so I can try to recreate the issue:-
List your Windows and .NET framework version and describe the nature of the problem.
- %HOMEDRIVE%%HOMEPATH%\Documents\Assetto Corsa Competizione\Config
- %HOMEDRIVE%%HOMEPATH%\Documents\Assetto Corsa Competizione\Results
How does it work ?
The information that ACC provides is in two parts:-
Only the latest copy of file is stored, with no history. By storing away these files as they are created, it is possible to perform some analysis on each session. Note, the json files are not documented and I'm using them in a manner not intended, so some assumptions have to be made in order to get things to work.
- Championship information
- This is the current snapshot of the current information
- Session information
- At the start of the session, a seasonEntity json file is created giving overview information (most importantly being the track)
- At the end of the session, the results session info is created (hotstint, qualifying, race etc) giving lap and sectors times and so on, but crucially, not the track
When a results session file is created, it looks for the seasonEntity file, as hopefully, it relates to this session and we need this for the track information. If the seasonEntity is newer than the results file or it has already been processed, then we can't rely on it so we have to ignore the session. Otherwise, we store the results with the information from the seasonEntity.
All information is stored in a lightweight DB for querying by the UI.