⌨️ Keyboard Overlay Configuration¶
The keyboard overlay appears on the loading screen and visually highlights keybinds to help new players learn essential controls. You can customize the compact keyboard layout, displayed language, and individual shortcuts using the keyboardShortcuts configuration.
JSON Structure¶
"keyboardShortcuts": {
"layout": "ansi",
"locale": "en-US",
"keys": [
{
"key": "~",
"onFoot": "Point",
"inCar": "Put on seatbelt"
},
{
"key": "Left Arrow",
"onFoot": null,
"inCar": "Left Indicator"
},
{
"key": "Right Arrow",
"onFoot": null,
"inCar": "Right Indicator"
},
{
"key": "Up Arrow",
"onFoot": null,
"inCar": "Hazard Lights"
},
{
"key": "L",
"onFoot": "Lock vehicle",
"inCar": null
},
{
"key": "G",
"onFoot": null,
"inCar": "Toggle vehicle engine on/off"
},
{
"key": "Z",
"onFoot": "Open radial menu",
"inCar": null
},
{
"key": "X",
"onFoot": "Hands up",
"inCar": null
},
{
"key": "LALT",
"onFoot": "Third eye view",
"inCar": null
}
]
}
Field Breakdown¶
| Field | Description |
|---|---|
layout |
Optional. Controls which compact keyboard layout is rendered. Supported values: ansi, iso, jis. |
locale |
Optional. Controls how special key labels are displayed in the overlay. Example values: en-US, de-DE, fr-FR, es-ES, pt-BR, ar, zh-CN, ja-JP. |
keys |
Array of keybind entries to highlight on the keyboard. |
key |
The key to highlight on the keyboard. Use the key label shown in the overlay preview or one of the standard names listed below. |
onFoot |
Tooltip text shown when the player is on foot. |
inCar |
Tooltip text shown when the player is in a vehicle. |
Multiple Contexts
You can define different behaviors for the same key depending on whether the player is on foot or in a vehicle.
Optional Settings
If layout or locale are omitted, the loading screen will fall back to default values. Existing configs without these fields will continue to work.
Keyboard Layouts¶
The loading screen uses a compact keyboard overlay and supports multiple layout styles:
| Layout | Description |
|---|---|
ansi |
Standard US-style compact keyboard layout |
iso |
Common European-style compact keyboard layout |
jis |
Japanese-style compact keyboard layout |
What layout changes
The selected layout affects how symbol keys are displayed in the overlay. It does not change your server's actual game keybinds — it only changes the visual keyboard preview.
Locale / Language Display¶
The locale field changes the displayed labels for special keys such as:
TabCaps LockEnterShiftCtrlAltSpace
Example:
"keyboardShortcuts": {
"layout": "iso",
"locale": "de-DE",
"keys": [
{
"key": "LALT",
"onFoot": "Third eye view",
"inCar": null
}
]
}
This would render the keyboard using the ISO layout and German-style special key labels.
Accepted Key Names¶
For best results, use the exact key label shown in the keyboard overlay preview.
Standard Named Keys¶
| Actual Key | JSON Key Name |
|---|---|
| Left ALT | LALT |
| Right ALT | RALT |
| Left CTRL | LCTRL |
| Right CTRL | RCTRL |
| Left SHIFT | LSHIFT |
| Right SHIFT | RSHIFT |
| Space Bar | SPACE |
| Backspace | BACKSPACE |
| Enter | ENTER |
| Tab | TAB |
| Caps Lock | CAPS LOCK |
| Left Arrow | Left Arrow |
| Right Arrow | Right Arrow |
| Up Arrow | Up Arrow |
| Down Arrow | Down Arrow |
| Windows Key | WIN |
Letters and Numbers¶
You can use normal letters and numbers directly:
{ "key": "A", "onFoot": "Action", "inCar": null }
{ "key": "1", "onFoot": null, "inCar": "Seat position" }
Symbol Keys¶
Symbol keys should use the visible symbol shown in the compact keyboard overlay.
Examples:
| Key | JSON Key Name |
|---|---|
| Tilde / top-left symbol key | ~ |
| Minus | - |
| Equals | = |
| Left Bracket | [ |
| Right Bracket | ] |
| Backslash | \ |
| Semicolon | ; |
| Quote | ' |
| Comma | , |
| Period | . |
| Slash | / |
Top-left key compatibility
The top-left symbol key accepts ~. Existing configs using ` are still supported for compatibility.
Naming Matters
Special named keys must match the supported values exactly. For example, use LALT instead of Alt, and SPACE instead of Spacebar.
Tips for Best Results¶
- Keep tooltips short and action-focused.
- Use the same
layoutthat best matches your community's keyboard style. - Use the same
localeas the language used throughout your loading screen. - For symbol keys, use the exact symbol shown in the overlay preview.
- Avoid repeating the same key across multiple entries unless you intentionally want different
onFootandinCarbehavior.