Skip to content

Instance storage format

Under construction

XMCL, similar to multimc, stores instance information.

This information is stored in the XMCL data directory

XMCL data directory
└─ 📜instances.json # Global instance configuration file

As well as the XMCL game data directory

XMCL game data directory
└─📂instances # Contains files for instances
 └─ 📜instance.json # Configuration file for instance A
  └─ 📂instance-b
    └─ 📜instance.json # Configuration file for instance B

Global Configuration File Format

Here we assume your XMCL data is stored in /path/to/xmcl.

    // This is the last selected instance. The launcher will select this one when launched.
    "selectedInstance": "/path/to/xmcl/instances/instance-a",
    // This is a cached list of all instances. Imported external instances paths will also be stored here. They will be unavailable if the launcher is deleted.
    "instances": [
        // External instances

Instance configuration file

Suppose you have created one in /path/to/xmcl/instances/

    // This is the name displayed in the launcher
    "name": "",
    // Not currently enabled. Sets resolution of instance game
    "resolution": { "width": 800, "height": 400, "fullscreen": false },
    // Minimum memory
    "minMemory": 0,
    // Maximum memory
    "maxMemory": 0,
    // JVM extra startup parameters
    "vmOptions": [],
    // MC extra startup parameters
    "mcOptions": [],
    "url": "",
    // URL of instance icon
    "icon": "",
    // Whether XMCL will display a log window after launch
    "showLog": false,
    // Whether to hide the launcher after launch
    "hideLauncher": true,
    // Required version for instance, an empty string represents not required
    "runtime": {
        "minecraft": "1.16.3",
        "forge": "",
        "liteloader": "",
        "fabricLoader": "",
        "yarn": "",
        "optifine": "",
        "quiltLoader": ""
    // Java path, empty represents auto detection
    "java": "",
    // Manually specified launch version, empty represents a calculation based on runtime 
    "version": "",
    // Server address, if present the launcher will connect directly to this server
    "server": { "host": "", "port": 25565 },
    // Modpack author
    "author": "ci010",
    // Description
    "description": "",
    "lastAccessDate": 1661774086015,
    "creationDate": 1602514422594,
    "modpackVersion": "",
    "fileApi": "",
    "tags": [],
    "assignMemory": false,
    // Whether to launch quickly
    "fastLaunch": false

Released under the MIT License.