After spending a lot of time developing RaceEssentials, I wanted to try a different approach to see how it will work out. This time, I give you Sidekick, a discreet but powerful app. I've learned a lot about AC app development in the past several months and wanted to see how far I can take it. The goal was to make an app with essential data that won't be in your way, but it's still very useful, powerful and adaptable.

Download the app at RaceDepartment:
http://www.racedepartment.com/downloads/sidekick.11007/

A quick overview of how the app works and what it's capable of:

Besides the always visible stuff (gear, speed and rpm light), the app is divided into five sections, contents of which can be switched either by mouse or by keyboard (Alt + A to switch between sections, Alt + S to toggle available data in the selected section).

First section is timings. Here, you can toggle current lap time, last lap time, best lap time and personal best lap time. Of course, keeping with tradition of RaceEssentials, lap validity is monitored and personal best laps are saved accross sessions.

Second section is deltas. You're provided with advanced delta calculation using normalized spline position and interpolation for delta best and delta personal best, and a bit more simple distance and speed based deltas to car in front/behind. There's also a delta pacing indicator, showing you whether you're gaining or losing time at any particular moment (delta best and delta personal best only).

Third section is lap number and current position, along with remaining session time for applicable sessions. Pretty simple and self-explanatory.

Fourth section is handling fuel info. You're provided with current fuel amount, and after you complete a lap, you'll be able to check consumption per lap and how many laps you'll be able to complete. If you're in a race with a set number of laps, you'll also have info how much fuel you need to finish the race, and if you're short, how much you need to top up.

Fifth section is all about tyres. You can toggle between tyre wear, tyre temperatures, tyre pressures and ideal values for the compound in use. The app knows ideal temperatures and pressures for all the cars currently available in Assetto Corsa and will color them accordingly.

Besides these five sections, there are also so-called "Dominant events", where all the sections will be hidden temporarily to get your maximum attention on the message. Currently, dominant events are: major FFB clipping (the app won't bother you unless it's really significant), wheel direction detection at race start, setting a best time, setting a personal best time and "session is soon about to end" notification.

A quick FAQ (please read before posting in the support thread):

Q: How do I install this app?
A: Unpack the contents of the zip file in your AC install directory and enable it in Settings. Then, once on the track, turn it on from the vertical apps menu on the right.

Q: I've enabled the app in Settings and turned it on in the apps menu but it's not working.
A: Try one of the following:
- Disable all apps in Settings except Sidekick and see if it works (if that works, start re-enabling apps one by one to see which one was at fault)
- From Documents/Assetto Corsa/cfg folder delete python.ini file, and enable only Sidekick in settings (again, if that works, start re-enabling apps one by one to see which one was at fault)
- If none of the above worked: delete python.ini file (yes, again), delete the entire apps folder (backup it first just in case) from your AC install directory (often found in C:\Program Files (x86)\Steam\steamapps\common\assettocorsa) and run Steam integrity check. After that, reinstall Sidekick only and try if it works. If all is ok, only then start adding back one by one the apps you previously had.
- Ultimately if it's still broken, open console while in game by pressing Home key on your keyboard and paste any errors in the support thread.

Q: What can I customize?
A: If you open the Sidekick settings sub-app you'll find several customizable parameters including scaling, mph/kph toggle, opacity, tyre wear scale, rpm light thresholds... There's also a Sidekick car data sub-app with info about the car you're currently driving.

Q: How do the new optimal shift point rpm lights work?
A: The app pulls data from the file used to draw the power/torque graph in the launcher and uses it to automatically figure out the optimal shift point for each car. On many cars, you won't notice any difference since the engines' maximum power output is very high in the rpm range. But, some cars like SF15-T, Ferrari 458 GT2 and Ferrari 488 GT3 (and many more) reach maximum power on rpms way before the engine hits the limiter. On these cars, there's a learning algorithm that triggers the first time you drive them, where the app learns the gear ratios in order to deduce optimal shift points per gear. Before all of this, the only way to know when to shift correctly on these cars was to look at their dash or steering wheel rpm lights, which can be very inconvenient due to camera choice, FOV, PP filter, steering wheel visibility settings and so on... Now, the app will detect optimal shift points and trigger the rpm lights automatically, per car, without the need to adjust anything. Also, the app detects if the optimal shift point is beyond the limiter and reverts to old behaviour in that case. If for some crazy reason you don't want any of this awesomeness, you can turn it off from the settings sub-app and also adjust the trigger tolerances (although I don't recommend this either).

Q: Mod cars don't have colored temperature, pressure and brake values?
A: I have no way of knowing the ideal values for non-Kunos cars. However, you can use the awesome Content Manager launcher by @x4fab, which can generate the necessary data for Sidekick automatically. You can also add this info yourself by making an *.ini file in compounds or brakes folder. An example (using Ferrari F2002) is provided. The *.ini file must have the same name as the car folder in content/cars and must follow the structure provided in the example.

Q: Delta is not shown?
A: You're either on an outlap, you've visited the pit in the current lap or you haven't done a valid lap yet to compare with.

Q: How does the ERS/KERS/P2P bar work?
A: For ERS, bar shows the remaining battery charge, it's green when the battery is being charged and blue when it isn't. White indicator over the bar shows the current ERS/KERS input while the red indicator shows how much more energy you're allowed to use in the current lap. For P2P, each "bullet" in the bar represents a single P2P activation. The bar is green when the P2P system is ready to activate, blue when the system is currently active and red when you're in cooldown period.

Q: Does this mean RaceEssentials is dead?
A: Yes, @Wally Masterson has kindly taken upon himself to maintain it in working order, but don't count on feature updates. Relevant thread on AC forums is here: http://www.assettocorsa.net/forum/index.php?threads/raceessentials-v1-4-6.41103/

Q: Can I transfer my PB folder to/from RaceEssentials?
A: Yes!

Version history:

v1.11.1
- Added all Ferrari Pack car data to ideal temperatures and pressures list
- Several other bug fixes and tweaks

v1.11
- Added delta to car in front/behind the player in the deltas section (not very accurate algorithm, based on speed and distance, identical to Kunos Realtime app)
- Added full Push to Pass support in a form of a bar with activation "bullets"
- Added a notification if the wheel is off-center at race start
- Overhauled the gear ratio learning for better robustness and accuracy, no need to click the "Recalculate" button when you change gear ratios any more (now relies on drivetrain speed thanks to @Neilski's idea)
- During replay, app displays data of the currently focused car, instead of being fixed on the player's
- Improved session reset detection
- Fixed a rare bug that would cause AC to crash with certain car/track combos when trying to load corrupted data
- Added missing compound data for Audi TT RS (VLN) and Audi R8 LMS 2016
- Several other bug fixes and tweaks

v1.10.2
- Added all R2R (Ready to Race) car data to ideal temperatures and pressures list
- Updated the shared memory Sim Info with the new AC 1.14 parameters

v1.10.1
- Added Mazda Miata NA, Mazda 787B and Porsche 911 RSR 2017 to ideal temperatures and pressures list; updated data for Lotus 72D and Ferrari 312T
- Updated the shared memory Sim Info with the new AC 1.13 parameters

v1.10
- Added full support for timed races and timed sessions (new "TIME" field in 3rd section), shown only in relevant sessions
- Added the option to disable "SESSION ENDS IN ..." messages
- Added the option to disable personal best and best lap messages
- Added the option to display tyre pressures as deltas from ideal values (disabled by default; obviously, needs relevant data for mod cars in order to work)
- Added the option to invalidate laps driven by AI (enabled by default)
- Odometers will now not update if the AI is driving
- Implemented new formula for calculating practical tyre temperature, which takes IMO temperatures into account as well, thanks to @misterbeam (0.25 * (average IMO) + 0.75 * core)
- Relaxed the default transition ranges for tyre temperatures and pressures(20°C for tyres and 4psi for pressures; your current values will not be overwritten, so either update manually if you like or reset the settings to default)
- Added the option to reset personal best lap (from the car data sub-app)
- Fixed a long-lasting bug where time could be displayed as 1:60.0 instead of 2:00.0 (everything was fine data-wise, the fix is just visual)
- Added a little shout out to Content Manager, since it has several awesome Sidekick integration features (automatic generation of missing compound and/or brake data, for example)
- Added a config_defaults.ini file for Content Manager settings integration (you can now fully set-up Sidekick preferences from Content Manager, without starting the game)
- Updated the shared memory Sim Info with all the parameters as of AC v1.12.2
- Several other bug fixes and tweaks

v1.9.3
- Updated data for all cars in accordance to AC v1.12 changes (+Audi Sport Quattro S1 E2)

v1.9.2
- Added all Porsche Pack 3 car data to ideal temperatures and pressures list (+Porsche Macan)
- Several other bug fixes and tweaks

v1.9.1
- Added all Porsche Pack 2 car data to ideal temperatures and pressures list (+Porsche Cayenne)
- Fixed a bug where shift lights wouldn't trigger on cars that had no power graph

v1.9
- Added all Porsche Pack 1 car data to ideal temperatures and pressures list (+Porsche Panamera)
- Redone the pedal bars for cleaner look and better visibility
- Added the option to disable section buttons in order to prevent accidental clicks when moving the app or clicking "through" another UI element (disabled by default)
- Split the settings sub-app into two columns to make sure the window fits to screen when using lower resolutions
- Several other bug fixes and tweaks

v1.8.1
- Fixed a bug with internal timers that made the app do funny stuff on fps other than 60 (thanks @Stefan Sparco for reporting)

v1.8
- Tyre wear, temperature, pressure and brake temperature now have colors that smoothly transition from ideal values to ones that are not (the range can be customized from the settings sub-app)
- Pedals can be replaced with brand badge now
- Pedals/brand badge are now a button that opens a new sub-app called Sidekick car data; all data and info applies to currently driven car
- Implemented an odometer (total distance driven in car + distance covered in current session), you can see the data in the car data sub-app
- Reorganized settings sub-app in accordance to the previous point; all the data and info applies to the app in general
- Changed the shift lights again (sorry, the previous ones triggered an OCD)
- Several other bug fixes and tweaks

v1.7
- Added pedal bars per popular request
- Shift lights look a bit more sleek now
- Several other bug fixes and tweaks

v1.6
- Added the auto looping feature per popular request (turned off by default, check settings sub-app to set it up)
- Bars are now displayed at 60fps
- Added brake data for Maserati 250f (seems to be working) and Lamborghini Aventador SV (definitely bugged); these cars don't officialy have brake temps, but the data was there so I added it
- Malformed tyre or brake data won't crash the game any more
- Several other bug fixes and tweaks

v1.5
- Added all Tripl3 Pack car data to ideal temperatures and pressures list (+Audi A1 S1)
- Added brake temperature colors according to ideal brake temperatures along with ideal brake temperature data for the currently supported cars
- New format for compound and brake data (not relying on tyre short names any more), you will need to update the data for mod cars if you had any (example provided with Ferrari F2002)
- Added the option to show brake temperatures while braking
- Tyre compound info is moved to settings sub-app and complemented with brake info and shifting info
- Added the rpm bar with boost indicator, updated the ers/kers bar with current input indicator and per lap energy limit indicator (both bars and indicators can be turned off from settings sub-app)
- Fuel section now displays fuel required and fuel needed to finish only when in race
- Entering pit lane now invalidates lap relevance for fuel calculations
- Slightly improved outlap detection
- Updated the shared memory Sim Info with the new AC 1.8 parameters
- Several other bug fixes and tweaks

v1.4.1
- A tiny fix for replay mode

v1.4
- All the settings are now available in game from the Sidekick settings sub-app; run it from the icon on the right or from the app sidebar
- Huge update to the way optimal shifts are calculated, the app now learns gear ratios on the fly and calculates shift points based on power in current and next gear (please read the updated info in the FAQ)
- Various small UI improvements (faster switchers, yellow shift light instead of orange, rounded plain background option, moved pin outside the app window)
- Pit lane now invalidates lap
- Several other bug fixes and tweaks

v1.3.1
- Added some more robustness to the code that loads max power data since Kunos for some reason used 3 different character encodings, seemingly randomly

v1.3
- Awesome new rpm lights! They now automatically show optimal shift points per car, check FAQ for more info
- Several other small bug fixes & tweaks
- Updated the shared memory Sim Info with the new AC 1.7.2 parameters

v.1.2
- Added early support for brake temperatures, disabled by default since so few cars have it; if enabled from config.ini, it can be monitored from the tyre section
- Added DRS indicator with DRS zone detection
- Overhauled the code behind ERS/KERS monitoring, now with a bar showing how much energy is allowed to be spent in a lap (currently only used for F138 and SF15-T)
- Updated the shared memory Sim Info with the new AC 1.7.1 parameters

v1.1
- Added all Red Pack car data to ideal temperatures and pressures list (+Maserati Levante)
- Added several more customizable parameters:
	- You can now disable both rpm lights
	- FFB clipping threshold (in seconds) can be set to whatever you like
	- You can now use a plain background if you wish (and set its transparency)
- Timings section now shows last lap time for several seconds after crossing the start/finish line
- Tyre section can now also show ideal temperatures and pressures
- Ideal pressures and temperatures for mod cars are now easier to add and won't be overwritten by updates (check FAQ for details)
- Fixed a bug where "Session has ended" notification appeared at the start of online races
- Fixed a bug where mod cars had temperatures and pressures colored incorrectly
- Fixed a bug where KERS bar remained visible during replays
- Several other small bug fixes & tweaks

v1.0.1
- Forgot to delete some console notifications from the development phase

v1.0
- Initial release