Creating SC Link Wheel dashes¶
Dashes consist of a directory containing a JSON configuration file, Lua scripts, images and font files. The directory needs to be located in Documents/SimucubeTuner/dashes/ in the user's home directory. The JSON configuration file needs to be located in the root of this directory, and all other files used by the dash should be in this directory or in subdirectories.
For a tutorial on creating dashes including JSON configuration, Lua scripting basics, and code examples, see the Getting Started guide. The full Lua API reference is also available.
The rest of this page covers details not included in the above documentation.
JSON configuration details¶
The JSON file needs to be named dash.json so that the dash appears in Tuner in the list of available dashboards.
The top-level fields are:
| Field | Required | Description |
|---|---|---|
| version | yes | Must be "1.0.0", other values are not supported |
| name | no | Displayed in Tuner where the dashboard is selected |
| author | no | Displayed in Tuner where the dashboard is selected |
| preview_image | yes | Image displayed in Tuner where the dashboard is selected |
| fonts | no | Font definitions, see below |
| scripts | yes | Lua script files, see the Getting Started guide |
| images | no | Image definitions, see below |
Font usage groups¶
When using custom fonts, only the characters explicitly added using "usage" and "additional_chars" will be available as characters in the dash labels. This is done to save memory, as all used characters are converted to a bitmap format and added to the dash data used by the SC Link Wheel.
The usage field allows adding predefined groups of characters:
| Group | Added characters |
|---|---|
| names | "0123456789abcdefghijklmnopqrstuvwxyzåäö'/ àâèéêïûüç" |
| Names | "0123456789abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ'/ àâèéêïûüçÀÂÈÉÊÏÛÜÇ" |
| NAMES | "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ'/ ÀÂÈÉÊÏÛÜÇ" |
| values | "0123456789.,;:!?/RN+-°% abhimkprs" |
The additional_chars field is a string of individual characters to add to the dash.
Built-in fonts contain all ASCII characters and do not need usage or additional_chars configuration.
Image configuration¶
Images can be in any format supported by the Qt QImage class. When using an object instead of a plain path string, the following fields are available:
| Field | Required | Description |
|---|---|---|
| path | yes | Relative path to the image file |
| width | no | Override the width of the image |
| height | no | Override the height of the image |
| format | no | "alpha_only" or "a8" — use only the alpha channel, set color separately with set_recolor |
Lua scripting¶
The dash scripts are written in Lua 5.5 (https://www.lua.org/manual/5.5/). The Lua standard libraries built into the Lua engine running on the module are baselib, strlib, tablib and mathlib.
Error checking¶
When creating new dashes, starting sc-dash_viewer.exe from the command line and opening the dash will show any errors during script compilation to bytecode, e.g.
[2026-01-28 13:45:19.504] [control] [error] Dash "C:/Users/User1/Documents/SimucubeTuner/dashes/sc_dash_advanced/dash.json": Lua error 3: ...ts/SimucubeTuner/dashes/sc_dash_advanced/script/main.lua:6: syntax error near 'local'
Dash Viewer¶
Dash Viewer is a separate application which can be used to test dashes without uploading them to the wheel. Use File->Open to open the dash.json configuration file. The configuration file will be read and the scripts compiled to bytecode, and any errors will be printed. If reading the configuration file succeeds, the dash will be displayed. Dash Viewer uses Tuner through SC-API for telemetry. Tuner must be running so that the viewer receives telemetry values from a game. Debug prints from the lua scripts will also be visible. Dash Viewer can also be used to create a preview image for Tuner by using File->Save screen capture …