Profiles and add-ons¶
Xol has one profile per Minecraft version: Xol 1.8.9 and Xol 1.7.10. Each is a fixed setup of Forge, the Xol client and pinned components. OptiFine and your own Forge mods are add-ons you switch on or off, and every combination runs the Xol client.
Xol keeps five things apart: the Minecraft version, the loader, the pinned components, the add-ons, and the performance preset. A preset only writes video settings. It never changes what is installed.
At a glance¶
| Profile | Minecraft | Loader | Components | Add-ons |
|---|---|---|---|---|
| Xol 1.8.9 | 1.8.9 | Forge 11.15.1.2318 | Xol client 0.3.5 | OptiFine (on by default), Forge mods (off by default) |
| Xol 1.7.10 | 1.7.10 | Forge 10.13.4.1614 | UniMixins, GTNHLib, Hodgepodge, ArchaicFix, Xol client 0.3.5 | OptiFine (off by default), Forge mods (off by default) |
You never configure Forge yourself. It is always part of the profile, because the client needs it.
Status and platform notes¶
The profile manifest gives every profile a state. Both profiles are marked experimental, which means they work in limited testing. No profile has passed the acceptance checklist on real hardware yet. The launcher shows no label for this, but each profile carries a note per platform, shown under the profile name:
| Platform | Note |
|---|---|
| Windows x64 | Not tested on Windows yet. |
| macOS Intel | Not tested on Intel Macs yet. |
| macOS Apple Silicon | Lightly tested on Apple Silicon. Minecraft this old starts on a native arm64 Java 8 where Xol can, and through Rosetta 2 otherwise. See Apple Silicon. |
The full matrix is on Supported versions.
Xol 1.8.9¶
"Xol's menus, HUD and settings on Minecraft 1.8.9. OptiFine and your own mods are add-ons you switch on below."
| Component | Version | Role | License | Source |
|---|---|---|---|---|
| Forge | 11.15.1.2318 | Loader | maven.minecraftforge.net, installer pinned by SHA-256 |
|
| Xol client | 0.3.1 | The client | Proprietary (Xol) | Bundled in the launcher, SHA-256 checked, copied to mods/ |
| OptiFine | The file you download | Optimization, as an add-on | Proprietary (OptiFine), not redistributable | You download it once from optifine.net. Xol checks it, keeps a copy and places it at mods/OptiFine.jar before each start while the add-on is on. See OptiFine |
No performance claim is made for this profile. See Supported versions.
Xol 1.7.10¶
"Xol's menus, HUD and settings on Minecraft 1.7.10, with a fixed set of performance mods. OptiFine and your own mods are add-ons you switch on below."
| Component | Version | Role | Requires | Conflicts with | License |
|---|---|---|---|---|---|
| UniMixins | 0.3.1 | Library. Provides Mixin on 1.7.10. The rest of the stack and the Xol client need it. | LGPL-3.0-only | ||
| GTNHLib | 0.11.49 | Library that Hodgepodge needs. | UniMixins | LGPL-3.0-only | |
| Hodgepodge | 2.7.208 | Optimization. Set aside while OptiFine is on. | UniMixins, GTNHLib | FastCraft | LGPL-3.0-only |
| ArchaicFix | 0.8.0 | Optimization. Set aside while OptiFine is on. | UniMixins | FastCraft | LGPL-3.0-only |
| Xol client | 0.3.1 | The client. | UniMixins | Proprietary (Xol) |
The four third-party mods are downloaded from Modrinth's CDN at exactly these versions. Size and SHA-256 are pinned in the manifest. Sizes are on What gets downloaded. Their effect on the frame rate has not been measured.
The manifest records each mod's role and license but not what each one changes, so that is not described here. Each project documents itself on Modrinth.
Add-ons¶
The two add-ons sit under the version switch on the main screen. Each is a card you switch on or off, and the choice is saved per Minecraft version.
OptiFine¶
"Downloaded once from optifine.net by you; Xol keeps it and starts with it."
OptiFine's license does not let launchers include it. The first time a start needs it, or when you switch the add-on on, Xol opens the OptiFine download page for that Minecraft version. When the download finishes, Xol checks the file and keeps its own copy. From then on every start of that version places the copy into the instance while the add-on is on, and takes it out again while it is off. The whole flow is on OptiFine.
- 1.8.9: on by default.
- 1.7.10: off by default. While it is on, Hodgepodge and ArchaicFix are set aside for that start, because they replace the same rendering code. The manifest note reads "On 1.7.10 it takes the place of the performance mods Xol manages; not tested yet."
No start with a real OptiFine file has been verified yet on either version.
Forge mods¶
"Loads the jars in your mods folder. Off, they stay where they are and are not loaded."
Your own mods go in the instance's my-mods folder. Open folder ▸ Mods on the main screen, or Open mods folder in Settings ▸ Instance, takes you there. While Forge mods is on, Xol hands each jar in that folder to Forge when the game starts. While it is off, the jars stay where they are and are not loaded. Xol never changes or deletes them.
- Settings ▸ Instance ▸ Mods lists every jar: yours as "yours, loaded" or "yours, not loaded", and the profile's own as "installed by Xol".
- The
modsfolder inside the instance belongs to Xol. A jar you put there by hand is moved tomy-modsat the next start. Nothing is deleted, and a jar whose name already exists inmy-modsis left where it is. - Forge cannot load a file with a comma in its name. Such a file is listed with the reason and is not handed over. Rename it.
- If your own copy of OptiFine is in
my-modsand Forge mods is on, Xol does not add a second one.
Shared between versions¶
Your server list (servers.dat), the game options both versions understand (including key binds) and the Xol client's own settings (xol/config.json) are one shared set across Xol 1.8.9, Xol 1.7.10 and any cloned instance. A server you add in 1.7.10 is in the list the next time you start 1.8.9.
- The launcher keeps a shared copy in the data folder's
sharedfolder and brings each instance up to date before a start, after the game closes and when the launcher opens. - A change made on both sides is merged per server and per option key. When the same thing changed in both places, the newer file wins.
- An instance whose game is running is never written into. What it changed is merged after it closes.
- Only option keys both versions write the same way are shared. View distance is not shared.
The older Forge and OptiFine profiles¶
Before 0.3.0 the launcher also offered Forge 1.8.9, Forge 1.7.10, Forge + Optimization 1.7.10, OptiFine 1.8.9 and OptiFine 1.7.10. They are gone. At the first start of 0.3.0 or later, each of their instances is folded into the Xol instance of its Minecraft version, once:
- Your mod jars move to
my-mods. Worlds, screenshots and shader packs move over. A name that already exists gets a suffix such as "(from forge-1.8.9)". - Resource packs and mod configs are copied where the Xol instance has none. The server lists are joined without duplicates.
- The most recently used
options.txtis kept, and the other is archived. - An OptiFine file found in an old instance becomes the copy Xol keeps.
- The add-ons are switched so that nothing that used to load stops loading.
- The old folder is moved whole to
archive/instances-0.2/<id>in the data folder, with a file namedWHERE-DID-EVERYTHING-GO.txt. Nothing is deleted.
Where profiles come from¶
A profile manifest ships inside the launcher. The launcher may also receive a newer manifest from the Xol service. A remote manifest can only select things the installed build can already do. It is used only if it passes the same validation as the bundled one, its revision is not older than the one in use, and every bundled component hashes to a jar that ships in this build. Otherwise the launcher keeps what it has. Settings ▸ Support ▸ About shows the revision in use and whether it is the bundled or the remote one.