OptiFine¶
You bring the file. Xol opens the official download page, checks the file you pick, and copies it into one instance. It never downloads, bundles, mirrors or uploads OptiFine.
Not yet verified with a real OptiFine file
The import flow, its error messages and the launch path have been tested with stand-in files: the checks with a synthetic jar, and the launch with a synthetic tweaker that does nothing, which reached the 1.8.9 title screen. No launch with real OptiFine has been done on any platform, because an automated test must not download it. The 1.7.10 path shares the same code and has never been launched at all.
Why Xol cannot include it¶
OptiFine's licence forbids redistribution, and its download page is supported by advertising. A launcher that bundled it, mirrored it, scraped the page or downloaded it for you would break those terms. So this one step is yours. The launcher says the same in its own words: "OptiFine's licence does not allow other launchers to bundle it or download it for you, and its download page is ad-supported. So this one step is yours: Xol only opens the official page and checks the file you pick."
Which profiles accept it¶
| Profile | OptiFine | Where the file goes | How it loads |
|---|---|---|---|
| OptiFine 1.8.9, OptiFine 1.7.10 | Required. The profile cannot start without it. | <instance>/libraries/OptiFine.jar |
Vanilla Minecraft through launchwrapper 1.12 with OptiFine's own tweaker. The jar goes first on the class path, from inside the instance, never from the shared libraries folder. |
| Xol 1.8.9 | Optional. The profile runs without it. | <instance>/mods/OptiFine.jar |
Forge reads the jar's tweaker entry and loads it next to the Xol client. |
| Xol 1.7.10, Forge + Optimization 1.7.10 | Not offered | See below | |
| Forge 1.8.9, Forge 1.7.10 | No import section. You can put mods into mods/ yourself, as with any Forge instance. |
Why Xol 1.7.10 refuses it¶
The 1.7.10 profiles with performance mods contain Hodgepodge, which replaces the same rendering code as OptiFine and declares a conflict with it. The game does not start with both. Instead of an import button, Settings ▸ Instance shows:
OptiFine can't be added to Xol 1.7.10. hodgepodge 2.7.208, one of this profile's performance mods, replaces the same rendering code, and the game does not start with both. Use the OptiFine 1.7.10 profile if you want OptiFine on this version.
If you put an OptiFine jar into that instance's mods folder by hand, the launcher detects the conflict by file name and refuses to start until you move it out.
Import, step by step¶
- Select the profile on the main screen: OptiFine 1.8.9, OptiFine 1.7.10 or Xol 1.8.9.
- Open Settings ▸ Instance. The section is titled "OptiFine (you supply it)" or, for Xol 1.8.9, "OptiFine (optional, you supply it)". If you pressed Play on an OptiFine profile first, the error panel has an Import OptiFine… button that brings you here.
-
Press Open optifine.net. Your browser opens
https://optifine.net/downloads. That address is the only one the launcher will open for this purpose. -
Download OptiFine for your Minecraft version. Keep the file name as the site saved it:
OptiFine_1.8.9_HD_U_….jarorOptiFine_1.7.10_HD_U_….jar. A browser's " (1)" suffix is fine. - Do not run the downloaded installer. Just go back to Xol.
- Press Choose the downloaded file… and pick the jar in the system file dialog.
- Xol checks the file and copies it. On success: "Imported. The file was checked and copied into this instance; the original in your downloads is untouched." The section now shows the edition and the file name, with Replace with another file… and Remove.
The import belongs to the instance. A cloned instance carries its copy along; a different instance of the same profile needs its own import. Importing, replacing and removing are refused while the game runs: "Close the game before changing its instance."
How the file is checked¶
Before anything is copied, the file is inspected as data. Nothing in it is run.
| Check | Detail |
|---|---|
| File name | Must match OptiFine_<Minecraft version>_HD_U_<edition>.jar, optionally with a browser's " (1)" suffix |
| Minecraft version in the name | Must be the profile's version |
| Size | At most 32 MB |
| Format | Must open as a zip archive |
| Contents | Must contain OptiFine's tweaker class: optifine/OptiFineTweaker.class for the OptiFine profiles, optifine/OptiFineForgeTweaker.class for Xol 1.8.9 |
| Version inside the jar | The version line in changelog.txt, or else in META-INF/MANIFEST.MF, must name the profile's Minecraft version. This catches a renamed jar. If the jar carries no version text, the file name is used and the launcher says "version taken from the file name". |
| Copy | The file is copied under a temporary name, its SHA-256 is compared with the inspected file, and only then is it renamed into place |
This is a sanity check, not a malware scan
The checks confirm that the file looks like the right OptiFine build. They cannot tell whether a jar is safe. An imported jar runs with the game's privileges, like any mod. Download OptiFine only from optifine.net.
Every rejection message¶
| Message | Cause | What to do |
|---|---|---|
| "…" is not an OptiFine download. Pick the file named OptiFine_1.8.9_HD_U_….jar exactly as optifine.net saved it. | The file name does not match the pattern | Pick the right file, or download it again without renaming it |
| That is OptiFine for Minecraft 1.12.2; this profile is Minecraft 1.8.9. Download the 1.8.9 build. | The name carries another Minecraft version | Download the build for the profile's version |
| That file could not be read. / That is not a file. | The path is unreadable or is a folder | Check the file and its permissions |
| That file is far larger than any OptiFine build, so it was not imported. | Larger than 32 MB | It is not an OptiFine jar; download it again |
| That file is not a readable jar. If the download was interrupted, download it again from optifine.net. | It does not open as a zip archive | Download it again |
| That jar does not contain OptiFine (no OptiFine tweaker class inside). | Neither tweaker class is present | It is not an OptiFine jar |
| The jar says it is OptiFine for Minecraft 1.7.10, not 1.8.9, whatever its file name says. It was not imported. | The version text inside disagrees with the file name | Someone renamed the jar; download the right build |
| This OptiFine build has no Forge tweaker, so Forge would not load it. | Importing into Xol 1.8.9 a build that lacks the Forge tweaker | Use the OptiFine 1.8.9 profile, or another OptiFine build |
| This OptiFine build has no standalone tweaker, so it cannot start without Forge. | Importing into an OptiFine profile a build that lacks the standalone tweaker | Use another OptiFine build |
| The file changed while it was being copied. Try again. | The source changed between inspection and copy | Try again once the download has finished |
Each of these comes with an Open optifine.net downloads button.
Pressing Play on an OptiFine profile without an import gives: "This profile needs OptiFine, which Xol is not allowed to bundle or download for you. Download it yourself, then import the file in Settings, Instance."
Removing it¶
Settings ▸ Instance ▸ Remove deletes the copy from the instance: "Removed from this instance." Your original download is never touched. Xol 1.8.9 then runs without OptiFine again; an OptiFine profile cannot start until you import a file again.
Brand and servers¶
The OptiFine profiles run vanilla Minecraft with OptiFine and report the client brand vanilla. Xol 1.8.9 with OptiFine added still reports Xol. See Multiplayer and fair play.