Skip to content

OptiFine

You download OptiFine once, from optifine.net. Xol checks the file and keeps its own copy. From then on, every start of that Minecraft version uses it while the OptiFine add-on is on. Xol never bundles, mirrors or uploads OptiFine.

What has been tested

Xol 1.8.9 with OptiFine HD U M5 has been started on Linux test machines. OptiFine on 1.7.10 has never been started. Nothing with OptiFine has been started by the project on Windows or on a real Mac.

Why Xol cannot include it

OptiFine's license does not allow redistribution, and its download page is paid for by advertising. A launcher that bundled OptiFine, mirrored it or fetched it behind the page's back would break those terms. So the download is yours, once, from optifine.net's own page. The launcher says: "OptiFine's licence doesn't let launchers include it, so it comes from its own page, once."

The list of known builds holds names, sizes and checksums only. There is no download address in it.

The OptiFine add-on

Since 0.3.0 OptiFine is an add-on, not a profile of its own. The main screen shows an OptiFine switch next to the Minecraft version, and the same switch is in Settings ▸ Instance ▸ OptiFine as "Use OptiFine with Minecraft 1.8.9". The setting is per Minecraft version and is saved the moment it changes.

Minecraft version Default What happens while it is on
1.8.9 On Xol places its copy at <instance>/mods/OptiFine.jar right before the game starts, next to the Xol client.
1.7.10 Off The same. While OptiFine is on, Hodgepodge and ArchaicFix, the two performance mods Xol manages there, are set aside, because Hodgepodge replaces the same rendering code. This combination has never been started.

The line under the switch says what it will do, in plain words: "Off", "Not added yet", or the build, for example "M5". Switch it off and Xol takes its copy out of the instance at the next start. The copy Xol keeps is untouched, so switching it on again needs no download.

Switching OptiFine on before a file has been added opens the Add OptiFine dialog.

Add it, step by step

  1. Open the dialog. Any of these opens Add OptiFine: the quiet line Add OptiFine for better performance on the main screen, Settings ▸ Instance ▸ OptiFine ▸ Add OptiFine…, or switching the OptiFine add-on on. That line is the launcher's wording; Xol has measured nothing. Its close button hides the suggestion for good.
  2. Press Download on the OptiFine page. When the dialog opens, Xol opens optifine.net's own page for the recommended build in a window of its own: OptiFine_1.8.9_HD_U_M5.jar for 1.8.9, OptiFine_1.7.10_HD_U_E7.jar for 1.7.10. Press Download on that page. The dialog reads "Press Download on the OptiFine page. Xol adds OptiFine HD U M5 the moment it finishes." Other builds on optifine.net opens the full list in your browser instead.
  3. Done. "OptiFine HD U M5 added." Below that the dialog says which profiles now start with it and how far the file could be checked.

The first time you press Play on a Minecraft version whose OptiFine add-on is on and has no file yet, Xol opens this dialog by itself, once ever for that version. Press Download and the game starts with OptiFine, or press Start without OptiFine. Either way the game starts when the dialog closes.

Other ways in. While the dialog is open, Xol also looks in your Downloads folder, so a file you downloaded in your own browser is added the moment the download finishes. If your browser saves somewhere else, press Choose the file… and pick the jar.

The OptiFine page window

The window shows optifine.net's real page, its advertising included. It only shows pages on optifine.net and refuses to open anything else. It keeps no cookies or cache after it closes, grants the page no permissions, and accepts only a download named like an OptiFine build for that Minecraft version. The downloaded file goes straight to Xol, is checked like any other file, and the window closes.

What Xol looks at in your Downloads folder

  • Only while the Add OptiFine dialog is open. Looking starts when the dialog opens and stops when it closes. Closing the launcher window stops it too, and it gives up by itself after 30 minutes.
  • It reads the list of file names in your system's Downloads folder, and never goes into folders below it.
  • It looks further only at names that match OptiFine_<Minecraft version>_HD_U_….jar (or preview_OptiFine_…) for the selected Minecraft version. No other file is opened, read, measured or checksummed.
  • A match must be an ordinary file directly in that folder. A link or a folder with such a name is ignored.
  • An unfinished download is left alone: a partial file beside it (.crdownload, .part, .download, .partial, .tmp, .opdownload), an empty file, or a size that is still changing. A file counts as finished once it has not changed for a second and a half.
  • A finished file goes through the checks below. A refused file is reported once in the dialog, and Xol keeps looking. If several files match, the newest is tried first.
  • Xol never writes, moves, renames or deletes anything in Downloads, and nothing about that folder is sent anywhere. Your download is copied; you can delete it afterwards.

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 preview_ in front and a browser's " (1)" suffix
Minecraft version in the name Must be the selected version
Size At most 32 MB
Format Must open as a zip archive
Contents Must contain OptiFine's Forge tweaker class, optifine/OptiFineForgeTweaker.class, because Xol starts OptiFine through Forge
Version inside the jar The version line in changelog.txt, or else in META-INF/MANIFEST.MF, must name the selected Minecraft version. This catches a renamed jar. If the jar carries no version text, the file name is used and the launcher says so.
Known builds The file's SHA-256 is compared with the list below
Copy The file is copied under a temporary name, the copy's SHA-256 is compared with the inspected file, and only then is it renamed into place

Known builds

Xol carries a short list of OptiFine builds. A SHA-256 is listed only where more than one independent public source agrees on it.

File Size in bytes SHA-256
OptiFine_1.8.9_HD_U_M5.jar, the one suggested for 1.8.9 2,585,014 2739760a70fca6ae5c7dc817bcc6283f18f55e38fa23778da7f387a6b724b2c4
OptiFine_1.8.9_HD_U_L5.jar 2,517,183 b442bf55e4c703c55f5f48055d79c07eb853fcb76fa88f85587e911af4f2b084
preview_OptiFine_1.8.9_HD_U_M6_pre2.jar 2,584,186 Not known
OptiFine_1.7.10_HD_U_E7.jar, the one suggested for 1.7.10 1,774,165 8bcd9d83de001a0591f498105f369f070c47d2c9192774d5a5b69f646e44fab4
The file is Result What the launcher says
Byte for byte a listed build Added "Checked: it is exactly the file optifine.net publishes."
A listed build without a known checksum, with the listed size Added "The file names itself OptiFine M6 pre2. Xol has no checksum for this build, so it could not compare the two."
A build that is not on the list, for example a newer one Added, on the checks in the table above "Xol does not know OptiFine … yet, so there was no checksum to compare. The file's own version text was checked."
Named like a listed build, but with other bytes Refused "…it is not the file optifine.net publishes under that name (its checksum differs)."

This is a sanity check, not a malware scan

A checksum match says the file is the published build. For any other file the checks only confirm that it looks like the right OptiFine build; they cannot tell whether a jar is safe. OptiFine runs with the game's privileges, like any mod. Download it only from optifine.net.

Update OptiFine

Open Settings ▸ Instance ▸ OptiFine ▸ Update or remove…. The dialog is titled Update OptiFine and works the same way: a newer build you download replaces the one Xol keeps.

  • When Xol suggests a newer build than the one you have, the main screen says so once, with Update to and the build name. Its close button means that build is not suggested again.
  • While updating, files that were already in Downloads do not count, so an old download lying there never replaces a newer build. Only a download that arrives while the dialog is open is taken.
  • Choose the file… asks first when you pick an older build than the one Xol keeps: "Nothing was changed", with Keep the current build or Use the older one anyway.
  • The new copy reaches the instance the next time the game starts.

Switch it off

Switch the OptiFine add-on off on the main screen, or in Settings ▸ Instance ▸ OptiFine. Xol takes its copy out of the instance the next time the game starts. The copy Xol keeps stays, so switching it on again needs no download. The choice is stored per Minecraft version in launcher.json.

If the build you added cannot start with Forge, the switch cannot be turned on and says "this build cannot start here".

Remove it

Remove OptiFine is in the same dialog. One press removes the copy Xol keeps for that Minecraft version and every copy Xol placed in an instance of that version: "OptiFine removed. Minecraft 1.8.9 starts without it. Adding it again takes the same one download."

Your original download is never touched, and neither is an OptiFine jar of your own. While a game is starting or running, nothing adds, replaces or removes OptiFine: "Close the game before adding or changing OptiFine. Your download stays where it is."

Your own OptiFine jar

Xol only ever replaces or removes files it placed itself. If you keep optifine.net's own file (OptiFine_….jar) in your my-mods folder with the Forge mods add-on on, Xol adds no second copy, because the game does not start with two. A file at mods/OptiFine.jar that Xol has no record of is treated as yours and left alone.

Where Xol keeps it

Path What
optifine/<Minecraft version>/OptiFine.jar in the data folder The copy Xol keeps, one per Minecraft version
optifine/<Minecraft version>/record.json File name, edition, size, SHA-256, how far it could be checked, and when it was added
<instance>/mods/OptiFine.jar The copy placed for that instance, while the add-on is on
<instance>/xol/optifine-mods.json Xol's note that it placed that copy. Without it, Xol treats the file as yours.

An OptiFine file that an older launcher placed in an instance becomes the copy Xol keeps for that Minecraft version.

Every rejection message

A refused file is reported in the dialog, as " was not added." followed by one of these. Xol keeps looking.

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 selected 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). No 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 file says it is OptiFine M5, but it is not the file optifine.net publishes under that name (its checksum differs). It may be damaged or altered. Download it again from optifine.net. It claims to be a known build but its bytes differ Download it again, from optifine.net only
This OptiFine build has no Forge tweaker, so Forge would not load it. The build lacks the Forge tweaker Use another 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
That file could not be added. Choose it yourself to see why. Something else went wrong with a file found in Downloads Press Choose the file… and pick it

Brand and servers

With or without OptiFine, Xol reports the client brand Xol. See Multiplayer and fair play.