1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Like RaceDepartment on Facebook.

Ka0s Dashboard 1.1.1

Fully skinnable instrument panel

  1. Tushar Saxena
    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\
    [​IMG]

    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.

    [​IMG]

    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
    [​IMG]

    Instrument Panel with the Ka0s Modern (Green) Skin
    (Available as part of the Ka0s Modern Skin Pack)
    [​IMG]


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

    Instrument Panel with the Ka0s Retro (Black) Skin
    (Available as part of the Ka0s Retro Skin Pack)
    [​IMG]

    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!

Recent Reviews

  1. Garfie1d
    Garfie1d
    1/5,
    Version: 1.1.1
    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.
  2. VLADIMPALER72
    VLADIMPALER72
    2/5,
    Version: 1.1.1
    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.
  3. mod fan
    mod fan
    5/5,
    Version: 1.1.1
    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
  4. URBAN303
    URBAN303
    5/5,
    Version: 1.1.1
    Excellent works ;) i like your Dashboard :)
  5. Chazz Ranger
    Chazz Ranger
    5/5,
    Version: 1.1.1
    So perfect! Exactly what I wanted, thanks for this!
  6. Henky SA
    Henky SA
    5/5,
    Version: 1.1.1
    a very cool apps. thanks for your hard work =)
  7. URBAN303
    URBAN303
    5/5,
    Version: 1.1.0
    I love ! i love ! i love IT ;)
  8. tukii
    tukii
    5/5,
    Version: 0.4.0
    Very nice app! It's my style.
  9. Cote Dazur
    Cote Dazur
    5/5,
    Version: 0.4.0
    Very nice app, thank you, works great and looks great.
  10. NeverKrash
    NeverKrash
    5/5,
    Version: 0.3.0
    Such an awesome app. Thanks
  11. Phil Dufour
    Phil Dufour
    5/5,
    Version: 0.1.0
    Super job ;)
  12. Vojko Music
    Vojko Music
    5/5,
    Version: 0.1.0
    Nice :D