Ka0s Dashboard

Ka0s Dashboard 1.1.1

Login or Register an account to download this content
Introduction

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\
EP3PdwU.png


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.

JGk1uny.png


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
f5IDFsy.png


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



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


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


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)
And more as I can think of stuff! Suggestions are also welcome of course =)

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
v1.1.0 | 28-Oct-2014
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\
CHANGES:
  • 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
Skin authors, some of the changes you will need to make to your existing skins:
  • 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
            }
        ],
v1.0.0 | 06-Oct-2014
  • Added in-game configuration GUI
v0.4.0 | 29-Aug-2014
  • Updated for AC 0.22 shared memory update
v0.3.0 | 15-Aug-2014
  • Added support for glass-type dial overlay
v0.2.0 | 13-Aug-2014
  • 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
v0.1.0 | 29-Jul-2014
  • Initial release. Yay!

Latest updates

  1. Minor fix to ensure that hidden apps stay hidden on next startup

    Changes in Latest Version (1.1.1 | 30-Oct-2014) Minor fix to ensure that hidden apps stay...
  2. Tons of new features!

    Changes in Latest Version (1.1.0 | 28-Oct-2014) NOTE: There have been some major structural...
  3. Added in-game configuration GUI

    Changes in Latest Version (1.0.0 | 06-Oct-2014) Added in-game configuration GUI

Latest reviews

Doesn't work... :(
does not work anymore with actual AC Version :'( sadly ...
The last few reviews show that the mod is not loading properly. Same with me - I cannot even see the ingame icons although the mod is activated in the settings menu of AC. Please take care of the problem - thank you.
I CANT GET IT TO WORK. theres no support.... i use to LOVE it, i made skins too, but the new version wonlt load up. i followed all directions.
i love the app but for some reason the app is not working like it should and it's lagging a lot please help thank you
So perfect! Exactly what I wanted, thanks for this!
a very cool apps. thanks for your hard work =)
I love ! i love ! i love IT ;)
Very nice app! It's my style.
Very nice app, thank you, works great and looks great.
NeverKrash
Premium
Such an awesome app. Thanks
Super job ;)
Nice :D
Author
Tushar Saxena
Downloads
12,395
File size
14.5 MB
Views
41,768
First release
Last update
User rating
4.00 star(s) 13 ratings

More mods from Tushar Saxena

How much money have you spend on your current simracing hardware

  • €0-150

    Votes: 90 19.1%
  • €151-500

    Votes: 123 26.2%
  • €501-1000

    Votes: 80 17.0%
  • €1001-1500

    Votes: 42 8.9%
  • €1501-3000

    Votes: 47 10.0%
  • €3001-5000

    Votes: 23 4.9%
  • €5001-10000

    Votes: 31 6.6%
  • I stopped counting a long time ago

    Votes: 34 7.2%
Top