Introduction
Ka0s Dashboard is a fully skinnble/moddable instrument panel app for Assetto Corsa.
Couple of important features :
Watch a video of the app in action here :
Changes in Latest Version (1.1.1 | 30-Oct-2014)
Installation
Configuration
The app is designed to work "out-of-the-box", most of the hard work is done by the skin author. There are some minor configuration options which are available via an in-game configuration GUI - this is available as an app in the right hand side app drawer, just like any other app.
Explanation of the various options:
Use as global skin
Selects the currently displayed skin as the default skin for all cars, unless overridden by the "use as skin for this car" option.
Use as skin for this car
Selects the currently displayed skin as the skin for the current car. Overrides the global skin selection.
Enable debug window (restart required)
Enables a debug window (which can be activated via the app drawer). useful for developers and skin authors.
Measurement Unit
Self explanatory. Currently supports either Imperial or Metric systems.
Update Frequency
Determines how often the dashboard apps are updated. Change this only if you are getting FPS lag due to running the app but be careful to not set this too high - the higher this number the choppier the dashboard app updates will appear to be. Leave this at 0 ms for best results.
Installing Skins
THIS link contains a compilation of skins currently available for Ka0s Dashboard. Go ahead and download any of the skins listed there and extract the contents of the archive to assettocorsa\apps\python\ka0sdashboard\kdb\img\skins.
Start Assetto Corsa and open up the Configuration UI. If everything went right, the skin should show up here. Select the skin, save your changes, and you're done ... enjoy your new skin!
Note : Make sure you don't delete the "default" skin, the app may not work if it's missing (some skins "inherit" certain elements from the default skin)
Screenshots
Instrument Panel with the Default Skin
Instrument Panel with the Ka0s Modern (Green) Skin
(Available as part of the Ka0s Modern Skin Pack)
Instrument Panel with the Ka0s Modern II (Blue) Skin
(Available as part of the Ka0s Modern II Skin Pack)
Instrument Panel with the Ka0s Retro (Black) Skin
(Available as part of the Ka0s Retro Skin Pack)
Skinning Tutorial
Please follow THIS link to view the skinning tutorial.
List of Skins
Please follow THIS link to view a list of skins available for Ka0s Dashboard.
Credits
This app is inspired by apps such as Analog Instruments and OV1 Info.
TODO
Changelog
v1.1.1 | 30-Oct-2014
v1.1.0 | 28-Oct-2014
v1.0.0 | 06-Oct-2014
v0.4.0 | 29-Aug-2014
v0.3.0 | 15-Aug-2014
v0.2.0 | 13-Aug-2014
v0.1.0 | 29-Jul-2014
Ka0s Dashboard is a fully skinnble/moddable instrument panel app for Assetto Corsa.
Couple of important features :
- Fully skinnable - Every element of the app can be completely customized by skin authors - right from background panels, to positioning of text
- Enable only elements that you need - Don't need to see the fuel gauge? No problem, just turn it off from the app drawer which slides out from the right of the screen. Every element (Speedometer, Tachometer, Fuel Gauge, Gear Shift Indicator, Steering Wheel and Pedals) has it's own app icon and can be individually enabled/disabled.
- Every element is freely movable - Every element can be freely moved on your screen to create a custom dashboard layout unique to you! I recommend that you enable "Allow in-game app overlapping" from Options > Video > View via the in-game menu for optimal placement.
Watch a video of the app in action here :
Changes in Latest Version (1.1.1 | 30-Oct-2014)
- Minor fix to ensure that hidden apps stay hidden on next startup. This feature broke with the introduction of the "inherit" feature in 1.1.0
Installation
- Download the latest file from http://www.racedepartment.com/downloads/ka0s-dashboard.2832/
- Extract the contents of the archive into your main Assetto Corsa folder (typically SteamApps/common/assettocorsa)
- In-game (during a session), move your mouse towards the right of the screen and click on the "KDB" icon shown below to activate the app. Note that there are individual app icons for every element - i.e. Speedometer, Tachometer, Fuel Gauge, Gear Shift Indicator, Steering Wheel and Pedals.
- In some cases, users have reported AC crashing after installing a new version of the app- especially in Win 8.1. In such a scenario, please delete your settings directory : C:\Users\<USERNAME>\.ka0sdashboard\

Configuration
The app is designed to work "out-of-the-box", most of the hard work is done by the skin author. There are some minor configuration options which are available via an in-game configuration GUI - this is available as an app in the right hand side app drawer, just like any other app.

Explanation of the various options:
Use as global skin
Selects the currently displayed skin as the default skin for all cars, unless overridden by the "use as skin for this car" option.
Use as skin for this car
Selects the currently displayed skin as the skin for the current car. Overrides the global skin selection.
Enable debug window (restart required)
Enables a debug window (which can be activated via the app drawer). useful for developers and skin authors.
Measurement Unit
Self explanatory. Currently supports either Imperial or Metric systems.
Update Frequency
Determines how often the dashboard apps are updated. Change this only if you are getting FPS lag due to running the app but be careful to not set this too high - the higher this number the choppier the dashboard app updates will appear to be. Leave this at 0 ms for best results.
Installing Skins
THIS link contains a compilation of skins currently available for Ka0s Dashboard. Go ahead and download any of the skins listed there and extract the contents of the archive to assettocorsa\apps\python\ka0sdashboard\kdb\img\skins.
Start Assetto Corsa and open up the Configuration UI. If everything went right, the skin should show up here. Select the skin, save your changes, and you're done ... enjoy your new skin!
Note : Make sure you don't delete the "default" skin, the app may not work if it's missing (some skins "inherit" certain elements from the default skin)
Screenshots
Instrument Panel with the Default Skin

Instrument Panel with the Ka0s Modern (Green) Skin
(Available as part of the Ka0s Modern Skin Pack)

Instrument Panel with the Ka0s Modern II (Blue) Skin
(Available as part of the Ka0s Modern II Skin Pack)

Instrument Panel with the Ka0s Retro (Black) Skin
(Available as part of the Ka0s Retro Skin Pack)

Skinning Tutorial
Please follow THIS link to view the skinning tutorial.
List of Skins
Please follow THIS link to view a list of skins available for Ka0s Dashboard.
Credits
This app is inspired by apps such as Analog Instruments and OV1 Info.
TODO
- LCD Panel app to display tyre status, car damage, electronic aids, fuel consumption, etc
- Various performance improvements
- Skinning tools (skin validator, drag and drop WYSIWYG skin editor, etc)
Changelog
v1.1.1 | 30-Oct-2014
- Minor fix to ensure that hidden apps stay hidden on next startup. This feature broke with the introduction of the "inherit" feature in 1.1.0
NOTE:
- There have been some major structural changes to the codebase, so please __delete__ your existing ka0sdashboard folder before un-RARing this one.
- The skins need to be updated as well, you can get them HERE.
- For any custom skins, make sure you back them up before deleting the old ka0sdashboard folder.
- In some cases, users have reported AC crashing after installing the new version - especially in Win 8.1. In such a scenario, please delete your settings directory : C:\Users\<USERNAME>\.ka0sdashboard\
- Major code overhaul, including performance/readability improvements
- Consolidated codebase to have every dashboard widget being rendered from the same class.
- This means any app (speed, rpm, fuel, gear, pedals, steering) can render any element from any app.
- This allows greater consistency in config.json declaration and will allow skin authors to create "super apps" which can potentially create a single, unified dashboard widget.
- Add state support for the dial - i.e. dials can change background image based on defined parameters.
- This is how the gear app works, now works for any app.
- @Skin authors: This will need some changes to way needles are defined in the config.json (see below)
- Added support for multiple needles in the same app.
- @Skin authors: This will need some changes to way needles are defined in the config.json (see below)
- Added support for multiple, multi-state overlays.
- An overlay is a graphical element which can be used anywhere on the skin.
- For example, it can be used for "glass" textures on top of the dial, or gear numbers via image rather than text, or anything under the sun.
- Added support for multiple, multi-state underlays.
- This is the same as overlays, except overlays are rendered above the needle (top layer), whereas underlays are rendered under the needle but above the dial and other text elements.
- Made the bars element used in the pedals app generic
- This can be used in any element now, not just pedals
- @Skin authors: This will need some changes to way needles are defined in the config.json (see below)
- Added skin-level flag to disable inheritance from the default skin if that widget is not defined in your skin
- Current behavior : If a skin doesn't have a specific widget defined (say the fuel widget), then the Ka0s Dashboard app inherits this from the default skin
- New behavior : If the "inherit" flag is set to false, then the Ka0s Dashboard app will __not__ inherit any undefined widgets from the default skin
- To enable this, set a variable "inherit": false under "skin" in the config.json in your base skin folder (where you define the skin name, description and author)
- Added reload button in the Configuration GUI (enabled if DEBUG = True).
- It reloads the skin configurations from disk and immediately applies them without having to logout of the current race session. Very useful for skin authors.
- Test skin to showcase new capabilities available here : https://www.mediafire.com/?m65mx5xn65yshga
- This is for demo purposes only, not really a usable skin
- OLD __needle__ declaration (for fuel, rpm, speed apps)
Code:"needle": { "size": { "x": 200, "y": 200 }, "position": { "x": 0, "y": 0 }, "image": { "path": "needle", "filename": "needle.<angle>.png" }, "background_opacity": 0, "attribute": "percent_speed", "start_angle": 45, "end_angle": 303 }
- NEW __needle__ declaration (for fuel, rpm, speed apps)
Code:"needles": [ { "size": { "x": 200, "y": 200 }, "position": { "x": 0, "y": 0 }, "image": { "path": "needle", "filename": "needle.<angle>.png" }, "background_opacity": 0, "attribute": "percent_speed", "start_angle": 45, "end_angle": 303 } ]
- OLD __states__ declaration (for gear app)
Code:"dial": { ... "attribute": "percent_rpm", "states": [ { "shift_percent": 0 }, { "shift_percent": 0.92 } ] ... }
- NEW __states__ declaration (for gear app)
- __states__ can now also be used in any app where dial/overlay/underlay is defined
Code:"dial": { ... "states": { "attribute": "percent_rpm", "values" : [ 0, 0.92 ] } ... }
- OLD __pedals__ declaration (for pedals app)
Code:"clutch": { "image": { "size": { "x": 54, "y": 100 }, "position": { "x": 0, "y": 0 }, "image": { "path": "pedals", "filename": "clutch.png" }, "background_opacity": 0 }, "bar": { "color": { "red": 0, "green": 0, "blue": 223 }, "position": { "x": 56, "y": { "start": 82, "max": 80 } }, "width": 3, "background_opacity": 1, "attribute": "clutch" } } ... "brake": { "image": { "size": { "x": 54, "y": 100 }, "position": { "x": 63, "y": 0 }, "image": { "path": "pedals", "filename": "brake.png" }, "background_opacity": 0 }, "bar": { "color": { "red": 223, "green": 0, "blue": 0 }, "position": { "x": 119, "y": { "start": 82, "max": 80 } }, "width": 3, "background_opacity": 1, "attribute": "brake" } } ... "accelerator": { "image": { "size": { "x": 54, "y": 100 }, "position": { "x": 126, "y": 0 }, "image": { "path": "pedals", "filename": "accelerator.png" }, "background_opacity": 0 }, "bar": { "color": { "red": 0, "green": 224, "blue": 0 }, "position": { "x": 182, "y": { "start": 100, "max": 98 } }, "width": 3, "background_opacity": 1, "attribute": "accelerator" } },
- NEW __pedals__ declaration (for pedals app)
- This is now modeled as __underlays__ and __bars__
- __bars__ can be used in any app
Code:"underlays": [ { "size": { "x": 54, "y": 100 }, "position": { "x": 0, "y": 0 }, "image": { "path": "pedals", "filename": "clutch.png" }, "background_opacity": 0 }, { "size": { "x": 54, "y": 100 }, "position": { "x": 63, "y": 0 }, "image": { "path": "pedals", "filename": "brake.png" }, "background_opacity": 0 }, { "size": { "x": 54, "y": 100 }, "position": { "x": 126, "y": 0 }, "image": { "path": "pedals", "filename": "accelerator.png" }, "background_opacity": 0 } ] ... "bars": [ { "color": { "red": 0, "green": 0, "blue": 223 }, "position": { "x": { "coordinates": { "min": 55, "max": 59 }, "attribute": { "name": "static_attribute", "min": 0, "max": 1 } }, "y": { "coordinates": { "min": 80, "max": 0 }, "attribute": { "name": "clutch", "min": 0, "max": 1 } } }, "background_opacity": 1 }, { "color": { "red": 223, "green": 0, "blue": 0 }, "position": { "x": { "coordinates": { "min": 119, "max": 123 }, "attribute": { "name": "static_attribute", "min": 0, "max": 1 } }, "y": { "coordinates": { "min": 80, "max": 0 }, "attribute": { "name": "brake", "min": 0, "max": 1 } } }, "background_opacity": 1 }, { "color": { "red": 0, "green": 224, "blue": 0 }, "position": { "x": { "coordinates": { "min": 182, "max": 187 }, "attribute": { "name": "static_attribute", "min": 0, "max": 1 } }, "y": { "coordinates": { "min": 100, "max": 0 }, "attribute": { "name": "accelerator", "min": 0, "max": 1 } } }, "background_opacity": 1 } ],
- Added in-game configuration GUI
- Updated for AC 0.22 shared memory update
- Added support for glass-type dial overlay
- Added skinning support!
- Added support for multiple states in gear shift app
- Added support for imperial/metric units
- Added support for apps not updating in the background when dismissed
- Added config file to save user preferences
- Various performance improvements
- Initial release. Yay!