Layouts, export and import¶
Layouts¶
A layout is a named set of HUD positions: for each HUD element, its anchor, its offset and its size. Module switches and module settings are not part of a layout; they apply across all layouts. You might keep one layout for PvP with everything tucked into corners and another for building.
Layouts are managed in the HUD layouts view of the Right Shift menu: click the list icon left of MODS, or Manage next to HUD layouts in General. The view lists every layout; the active one says "showing". Click another layout to switch to it. The positions you have now are stored into the layout you leave, and the one you pick is applied.
While the menu is put away, the HUD editor's bar also steps through layouts with < and >.
| Button | Action |
|---|---|
| New | Create a layout with every element at its default position. It becomes active. Suggested name: "Layout", "Layout 2", and so on. |
| Duplicate | Copy the active layout, including the current positions. The copy becomes active. Suggested name: " |
| Rename | Rename the active layout |
| Delete | Delete the active layout. The last remaining layout cannot be deleted. |
| Reset all, on the row "Put every element of this layout back where it started" | Every element of the active layout goes back to its default position and 100% size |
After New, Duplicate or Rename a name field appears with Save and Cancel. Enter saves, Esc cancels.
| Rule | Value |
|---|---|
| Number of layouts | 1 to 16. There is always at least one, named "Default" on a fresh install. New and Duplicate are disabled at 16. |
| Name length | 1 to 24 characters after trimming spaces |
| Characters | No control characters and no § |
| Uniqueness | Names are unique, ignoring upper and lower case |
| A name that breaks a rule | "That name is empty, too long or already used", and Save is disabled |
An element that a layout does not mention, for example one added in a later client version, appears at its default position in that layout.
Export and import¶
General ▸ Settings file in the client settings (the gear) has two buttons.
| Button | What it does | Result line |
|---|---|---|
| Export | Writes xol/xol-settings.json in the current instance folder, replacing an earlier export |
"Exported to xol/xol-settings.json", or "Export failed" |
| Import | Reads xol/xol-settings.json from the current instance folder and applies it |
"Imported xol/xol-settings.json", or "Import failed: …" |
There is no file chooser. To move settings to another computer, export, copy the file into the other instance's xol folder, and import there. Settings ▸ Instance ▸ Open folder ▸ Instance folder in the launcher gets you to the folder. Between the 1.8.9 and 1.7.10 profiles on one computer you do not need this: the launcher already shares the client settings between them.
Exactly what the export contains¶
{
"schema": 4,
"activeLayout": "Default",
"modules": {
"general": { "settings": { "animations": true, "menu-scale": "Auto", "hud-snap": true, "raw-input": false } },
"fps": {
"enabled": true,
"settings": { "show-min": false, "style": "144 FPS", "color": "FFFFFFFF", "background": true }
},
"zoom": {
"enabled": false,
"settings": { "key": 46, "divisor": 4.0, "smooth-camera": true }
}
},
"layouts": [
{
"name": "Default",
"modules": {
"fps": { "anchor": "TOP_LEFT", "x": 4.0, "y": 4.0, "scale": 1.0 }
}
}
],
"kind": "xol-settings-export"
}
The example is shortened; a real file lists every module and client settings group, every setting of each, and every HUD element in every layout.
| Field | Contents |
|---|---|
schema |
The settings format version, currently 5 |
kind |
Always xol-settings-export. Import refuses a file without it. |
activeLayout |
The name of the active layout |
modules.<id>.enabled |
The module's switch. Absent for the client settings groups, which cannot be switched off. |
modules.<id>.settings |
The module's settings by identifier |
layouts[] |
Every layout: its name and, per HUD element, anchor, x, y, scale |
What is left out. A few text settings are personal and stay on your computer; they are never written into an export:
- Chat: Highlight words and Hide lines containing
- Nick Hider: Shown instead
- Auto Hotkey: the lines you wrote
- Rewind: Clips folder
- Menu theme: your favourite resource packs
The file contains no account, no server address, no file path and nothing about your computer.
What import checks¶
| Condition | Message |
|---|---|
| No file | "Import failed: No xol-settings.json in the xol folder" |
| Larger than 1 MB | "Import failed: File is too large" |
Not a Xol export (kind missing or different) |
"Import failed: Not a Xol settings export" |
Written by a newer client (schema higher than this client knows) |
"Import failed: Written by a newer Xol" |
| Not readable as JSON | "Import failed: Unreadable file" |
If import fails, your current settings are untouched. When it succeeds, import is lenient on purpose: every value is type-checked, a number outside a setting's range is clamped into it, size is held between 50% and 300%, an unknown anchor falls back to the element's default, unknown modules and settings are ignored, and layouts with unusable or duplicate names are dropped. An export from an older schema is migrated on the way in.