Skip to content

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: " copy".
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.