How to Use Complementary Shaders with OptiFine
OptiFine is where shader support in Minecraft grew up, and plenty of players still run Complementary Shaders through it, especially those whose setups rely on OptiFine's other features. This guide covers using Complementary Shaders with OptiFine: installation, where the shader controls live in OptiFine's menus, which OptiFine settings interact with the pack, and the honest cases where Iris is the better tool.
The basics
OptiFine is a Minecraft optimisation mod that includes a shader loader. Complementary Shaders lists both Iris and OptiFine as supported loaders, so the pack itself is entirely at home on OptiFine. The workflow mirrors any shader installation: install the loader, place the pack ZIP in the shaderpacks folder, select it in the shader menu. The differences from Iris are in the menus and in a handful of OptiFine-specific options.
Step 1: Install OptiFine
- Download the OptiFine build for your exact Minecraft version from OptiFine's official site. OptiFine releases are version-specific and sometimes arrive a little after a new Minecraft release, if there is no build for your game version yet, that combination cannot run yet.
- Run the downloaded installer (it requires Java) and choose Install; it creates an OptiFine profile in the Minecraft launcher. Modded-launcher users can instead drop the file into their loader's mods setup as their launcher directs.
- Launch the OptiFine profile once. The title screen shows the OptiFine note, confirming the mod is active.
Step 2: Add the Complementary pack
- Go to Options → Video Settings → Shaders.
- Click Shaders Folder to open the shaderpacks directory.
- Copy the Complementary ZIP in, still zipped, exactly as downloaded. Our ZIP checks take 30 seconds and prevent the classic mistakes.
- Return to the game; the pack appears in the shader list on the left. Click it to apply, then Done.
Manual paths to the shaderpacks folder are listed in where to put the ZIP file. If the pack does not appear, see not showing in the shader list.
OptiFine settings that interact with the pack
- Shader Options (bottom-right of the shader screen): this opens Complementary's own settings, profiles, lighting, water, atmosphere. This is where nearly all tuning belongs, and the best settings guide applies unchanged.
- Quality settings, antialiasing and anisotropic filtering: OptiFine's own AA can conflict visually and costs performance; with a shader pack active, most players leave OptiFine's AA off and let the pack and game settings govern.
- Performance settings: OptiFine options like Fast Render historically conflicted with shader rendering. If the world renders incorrectly, black screen, missing effects, strange colours, check that performance "fast" options are at their defaults before blaming the pack. See broken lighting and shadows fixes.
- Internal shaders / vanilla: selecting "(internal)" or "OFF" in the shader list returns the game to its built-in look, the quick way to A/B test whether an oddity comes from the pack or from the game itself.
When Iris is the better choice
Being honest about trade-offs serves you better than brand loyalty:
- Performance: Iris is normally paired with Sodium, and that combination generally leaves more frame-rate headroom than OptiFine's renderer. On a struggling PC, that difference matters, see low-end PC settings.
- Update speed: Iris typically supports new Minecraft versions sooner. OptiFine's release lag is the most common cause of post-update breakage for its users.
- Modded setups: Iris lives inside Fabric/Quilt environments; OptiFine's compatibility with other mods is narrower.
- Where OptiFine still wins: if you rely on OptiFine-only features (certain zoom behaviour, connected textures in packs designed around it, capes), staying is reasonable, the shader pack runs fine either way.
Switching loaders later is painless: install Iris, and the same ZIP in the same folder works; your pack settings file sits beside the ZIP regardless of loader.
Living with OptiFine's version timing
The single most important habit for an OptiFine player is patience around Minecraft updates. Because every OptiFine build is tied to one exact game version, a new Minecraft release does not automatically have a matching OptiFine, and until it does, there is no workaround that makes the combination safe to force. The practical approach is to keep your working OptiFine profile untouched when a game update arrives: keep playing the version your loader supports, and treat the update as a separate, later decision. The Complementary pack itself is seldom the obstacle, the current release supports Minecraft 1.7.10 through 1.21.11 and 26.1–26.3, so the same ZIP usually carries straight over once a matching OptiFine exists. When you do move, move in order: new game version first, matching OptiFine second, launch once to confirm the shader menu exists, and only then select the pack. That sequence means any problem has exactly one new suspect. Players who update the game, the loader and the pack on the same evening and then hit a black screen have three suspects and no clean way to separate them.
A sensible first session on OptiFine
Once the pack is selected, resist the urge to tune everything at once. Spend the first session establishing a baseline you can trust:
- Start from the pack's default profile, then open Shader Options and look at the profile choices, which run from Potato to Ultra. Pick the level that honestly matches your hardware rather than the level you hope for, profiles are starting points, and every one of them can be customised afterwards.
- Test in one fixed scene. Stand in a familiar spot in daylight, near water and trees, and note how the game feels and looks. Return to this same scene after every change; it is the only way to know what a setting actually did.
- Use "(internal)" as your comparison tool. Switching to OptiFine's internal rendering for a few seconds shows you the vanilla version of the same scene, which makes the pack's contribution, shadows, water, sky, light temperature, easy to judge rather than imagine.
- Change one group of settings at a time, lighting, then water, then atmosphere, applying and re-testing between groups. The presets guide explains what the profiles change, and the best settings guide gives a deliberate order for going deeper.
End the session by noting your profile and any options you changed. That small record is what makes a later update, reinstall or loader switch a five-minute job instead of an evening of rediscovery, your settings are stored in the .txt file beside the ZIP, as the update guide explains.
Reinstalls, new launchers and new computers
Everything OptiFine needs from you is portable, because nothing about the pack lives inside OptiFine itself. The ZIP and its matching settings .txt file sit in the shaderpacks folder, independent of the loader. If you reinstall OptiFine, move to a different launcher, or set up a new computer, the transfer is the same: install a matching OptiFine for your game version on the new setup, open the shaderpacks folder from the in-game Shaders screen so you know you have the right instance's folder, and copy the ZIP and its .txt across together. Select the pack and your profile and options arrive with it. This is also why switching to Iris later, if you ever choose to, is not a restart: the same two files serve both loaders, and only the loader installation itself is new.
Frequently asked questions
Does Complementary Shaders officially support OptiFine?
Yes. The project's listings name Iris and OptiFine as the supported loaders.
Why is there no Shaders button in Video Settings?
The game was launched without OptiFine active. Confirm the profile you launched shows OptiFine on the title screen.
Can I move from OptiFine to Iris without re-downloading the pack?
Yes. The pack ZIP and its settings file live in the shaderpacks folder, which both loaders read. Install Iris, launch, and select the same pack.


