/MigratingToLatest

For those who have only been in the 1.8 / client scene

Migrating to 1.17

Note

Join my Discord for news regarding the development of this repository!

If you would like to contribute, please make a PR.
Some notes:

  • Leave your name and GitHub link in the credits section in alphabetical order, even for a tiny change
  • Please try to use Modrinth/GitHub over Curseforge when applicable
  • Please use a GitHub link instead of a Modrinth link for Author credit and avoid using Curseforge as best you can, and use the modder organization when applicable
  • Make sure that the option to allow me to make changes to your PR is enabled

Introduction

The Situation

So, you've been playing on 1.8 for the past 5.5 years and are ready to see what 1.17 has to offer. Your first thought may be to download and install Forge and then add OptiFine as a mod, but this could not be further from the best choice. As Mojang have been been rolling out releases, they've also been decreasing performance with every version, and neither Forge nor OptiFine are really able to bring back even a speck of that performance that we see in 1.12 and below. However, another mod loader, Fabric, which is lightweight and easier to develop for, has created an amazing community in which many of its members focus on helping optimize the game to its greatest potential.

Why no longer OptiFine?

OptiFine no longer provides the benefit that it once did on older versions of the game. As the years have gone by and Minecraft's code has changed, OptiFine has been continuing to completely overwrite major parts of Minecraft's code. Because OptiFine is closed source, it has become increasingly harder for modders to provide OptiFine compatibility. OptiFine also uses outdated formats for many of its features, including MCPatcher and its confusing and outdated settings menu. Many members in the Fabric community have taken it upon themselves to create better performance enhancing mods which surpass OptiFine, as well as provide alternatives to many of OptiFine's iconic features.

While there is a Fabric compatibility layer for OptiFine known as OptiFabric, it is unsupported by many of the mods on the list, with some outright preventing the game from loading if OptiFabric is present. Therefore, consider all mods in this list to be incompatible with OptiFabric.

Why no longer Forge?

Forge has always been less than ideal for performance due to its large overhead for server-sided modding, which is not necessary for users wishing for a vanilla compatible experience. Fabric on the other hand is extremely lightweight and is practically identical to vanilla. It's also considered to be much easier to make mods for and is being used as the stepping tool for Quilt, an in-progress mod loader which will provide many more benefits to modders.

Installing Fabric

TODO: add images

  1. Make sure you close Minecraft and the Minecraft launcher before installing Fabric, otherwise unexpected things can happen.
  2. Download the Fabric installer.
    • If you are on Windows, use the .EXE version of the installer on the right.
    • If you are on any other operating system or the .EXE version is not working for you, then use the .JAR version on the left.
  3. Run the installer.
    • If you are using the .EXE version of the installer, simply double click the file. You may get a popup blocking you from running the installer and saying that "Windows protected your PC"; if so, then click on More info and then Run anyway.
    • If you are using the .JAR version, you will need to have Java installed on your device. If you have Java installed, then double click the downloaded file to run the installer. If you don't, then follow these steps:
      1. Go to the Java downloads page and download the version of Java corresponding to your device.
      2. Run the Java installer by double clicking it.
      3. Do whatever the installer tells you to do.
      4. After installing Java, you should be able to run the Fabric installer by double clicking it. If you still can't for some reason, try running the program Jarfix.
  4. Now that you have opened the installer, you will see two tabs at the top of the window: Client and Server. Make sure you are on the Client tab. Then, open the Minecraft Version: dropdown and select the version of Minecraft you want (most likely the latest version of Minecraft). The rest of the settings can be left with their defaults (unless you store your Minecraft version files in a different folder; if you want to use a different directory for this installation, that should be changed in the Minecraft launcher, not here). Click on Install when you are ready to install Fabric.
  5. Once Fabric is finished installing, open your Minecraft launcher and click on the profiles button at the bottom left corner. Select the Fabric profile, it should be called something like fabric-loader-1.17.x. Then hit PLAY to start playing!
    • If you do not see the profile, try exiting and reopening the Minecraft launcher. If this also does not work, go to the Installations tab in the Minecraft launcher and make sure the Modded option is ticked on the rop right corner. If it still does not show up, create your own installation by clicking the New installation button, and selecting your desired fabric version in the Version dropdown. Then press Create and launch this installation.

Installing Mods on Fabric

TODO: note about custom directories

  1. Make sure you close Minecraft before installing mods, otherwise unexpected things can happen.
  2. Open your Minecraft folder:
    • Windows: Hold the windows key (win) and press r to open the Run program. Then type in %appdata% and hit enter. Open the folder called .minecraft.
    • Mac: On the bar at the top of your screen in Finder, click Go, then click Go to Folder and type ~/Library/Application Support/Minecraft, then hit enter.
    • Linux: Open ~/.minecraft.
  3. In your Minecraft folder, open the folder called mods.
    • If this folder does not exist, create it.
  4. Place all of the mods you want to use into this folder (note that all mods you install must be for Fabric 1.17 or they will not work).

Mods

Dependencies

These are essential mods that are required for some fabric mods as dependencies.

Mod Description Author
Fabric API Required for most Fabric mods. Fabric Team
Fabric Language Kotlin Required for mods that use Kotlin. Fabric Team
Mod Menu Allows the user to see all installed mods ingame, as well as access the config for most. Terraformers
Essential Essential allows you to customize your character, chat with friends, and invite them to your worlds. It also adds a few quality of life features, such as zoom. Sk1erLLC & SparkUniverse

Performance

These are mods that are needed for playing the latest versions of Minecraft at a reasonable FPS*. These will also help decrease frame times, hopefully eliminating spikes or stuttering.

Mod Description Author Incompatibilities
Sodium Currently comes bundled with Iris! An all around performance mod, Sodium allows users to play the latest versions of Minecraft with high FPS, completely outperforming OptiFine, with some users seeing up to 8x their vanilla frames. Sodium also drastically improve visuals, providing a much better gameplay experience. CaffeineMC DashLoader
Iris Iris is a shader loader that allows users to load up their favorite OptiFine shaderpacks, but with much higher FPS. Iris also provides performance enhancements when not using shaders, making it great for all users. IrisShaders DashLoader
Indium Indium adds FRAPI support to Sodium, making it necessary to use for some of the mods on this list to work. This mod is merely temporary and will be removed once Sodium adds FRAPI support itself. comp500 DashLoader
Hydrogen Hydrogen helps reduce the amount of memory the game takes up. While this is mostly meant for large modpacks, it does not hurt using it for a vanilla experience. CaffeineMC DashLoader
Lithium Lithium helps improve the performance of many vanilla systems without changing their mechanics. CaffeineMC
Starlight Starlight completely rewrites the light engine to make loading chunks much quicker. SpottedLeaf
Krypton Krypton optimizes network stacking and entity tracking, as well as other micro-optimizations. astei
LazyDFU LazyDFU prevents the DataFixerUpper from doing anything until it is required, improving your Minecraft start times. astei
Enhanced Block Entities Enhanced Block Entities improves block entities by making them used baked models instead, allowing for better performance, visuals (via better smoothlighting), and better resource pack customizability. FoundationGames DashLoader
FerriteCore FerriteCore further reduces memory usage and should be used in conjunction with Hydrogen. malte0811
Entity Culling EntityCulling culls entities that you cannot see, increasing FPS. tr9zw
Dynamic FPS Dynamic FPS reduces your FPS, and therefore reduces your system load, when tabbed out of the game. juliand665
Lazy Language Loader Lazy Language Loader improves loading times when changing your language in game by only reloading the required resources. chachy
No Fade (not required*) No Fade removes the fading animation that Mojang added between their splash screens. *This does not help performance, but does make it faster to navigate between certain menus. You do not need to download this mod unless you dislike the fade or if your PC cannot handle it well. UltimateBoomer

Recommended

These are mods that I recommend you to use at all times. While they may not boost performance, they are mostly quality of life mods meant to better your experience.

Mod Description Author Incompatibilities
Mod Manager An extension of Mod Menu, Mod Manager allows the user to download and install mods in game in the Mod Menu screen, as well as update outdated mods. DeathsGun
Item Model Fix Item Model Fix fixes the gaps you see on items when holding them. This makes for a much more pleasant experience for most texturepacks. Pepper_Bell
Borderless Mining Reworked Borderless Fullscreen for Minecraft. comp500 & gryzle
Not Enough Crashes Not Enough Crashes takes you to the main screen instead of exiting the game when you crash. natanfudge
CleanView CleanView prevents self particles from appearing on your screen. LianMI
Smooth Scrolling Everywhere Smooth Scrolling Everywhere makes the scrolling in all menus smoother. Shedaniel
No Potion Offset No 1.17.1 Yet. No Potion Offset prevents your inventory from getting shifted over when you have an active potion effect. Shedaniel
Controlling Controlling completely revamps Minecraft's controls menu, making it much easier to navigate and change keys. Jaredllll08
Better Recipe Book Better Recipe Book brings many QOL improvements to the current recipe book, making it much more useful for different scenarios. marshmallow
Better Mount HUD Better Mount HUD makes some important HUD modules visible when riding a mount. Lortseam_
ToolTipFix This is a simple mod which prevents tooltips from becoming too long and going off the screen. kyrptonaught

Other Cool Mods

These are mods that are more dependant on personal preferance than importance.

Mod Description Author Incompatibilities
Custom Selection Box Currently using an updated fork. Custom Selection Box is equivalent to 1.8's block overlay, allowing you to customize the outline when highlighting blocks. Shedaniel & NKID00
No View Bobbing Screen Shake No View Bobbing Screen Shake removes the screen shaking when view bobbing is turned on, leaving only the swaying hand. InboundBark
Slight GUI Modifications Slight GUI Modifications adds animations to many GUI elements. Shedaniel
Colored Lights Colored Lights adds colored lighting to Minecraft with its colors completely customizable via resource pack. Gegy Iris/Sodium
Blur Blur creates a nice blur effect when in menus and is completely customizable. Motschen Rainbowify
Rainbowify Replaces the dark gui backrounds with a smooth rainbow one. Lennox Blur
WaveyCapes WaveyCapes breaks your cape into smaller sections to make its movement more fluid. Looks great with the new migration capes. tr9zw
Mojangster Mojangster allows an animated loading screen. Supports custom resourcepacks. cal6541 Custom Splash Screen
Perspective Mod Redux A simple 360 degrees perspective mod. The Backport Project MC
Eating Animation Eating Animation mod adds a simple sprite animation for vanilla items, when you eat or drink! Theoness1
Wyvtils 1.17.1 Version in beta. Wyvtils adds many useful utilities to the game, such as nametags, bossbar, action bar, sidebar, hitbox customization and more. Qalcyo
KronHUD KronHUD adds many useful HUD elements to your screen with an easy to use in game config. DarkKronicle
BetterF3 BetterF3 is a mod that replaces Minecraft's original debug HUD with a highly customizable, more human-readable HUD. You can customize colors, position, add spacings, and more. cominixo
TNTTime Displays time left to the TNT explosion above primed TNT. Simon
Fabric Advanced Shift Fabric Advanced Shift makes sneaking more customizable. For example when you press shift two times it will activate toggle sneak. NiiightmareXD
Advancement Info Advancement Info makes the advancement menu fit your entire screen, which could make it easier to navigate the menu.
ApplesSkin AppleSkin lets you know how much a food will restore your hunger bar. Ryan Liptak
Horse Stats Vanilla Horse Stats Vanilla adds the stats of your horse in your horse/donkey inventory HUD, making it easy to see the perks of your horses and donkeys. d4m0n
Clear Despawn Clear Despawn makes it more obvious on which items are about to despawn by making them blink exponentially faster after a certain time. StrikerRockers
Rebind All the Keys Rebind All the Keys allows you to change the keybinds to certain functions that were not previously changable. Minenash

OptiFine Replacements

As OptiFine is no longer recommended, here are some replacements for many of it's features that have not already been listed above.

Mod Description Author Incompatibilities
Sodium Extra OptiFine extra settings toggles. Adds most of OptiFine's such as animations, particles, rain/snow, clouds, sky and biome colors, and more, as well as some custom ones. FlashyReese DashLoader
Essential Zoom. More customizable than OptiFine's. Sk1erLLC & SparkUniverse
Bobby Higher render distances. More customizable than OptiFine's. Johni0702 Starlight
LambDynamicLights Dynamic lights. More customizable than OptiFine. LambdAurora
LambdaBetterGrass Better grass and better snow. More customizable than OptiFine. LambdAurora DashLoader
Cull Leaves Smart leaves. MidnightDust
Fabrishot Higher resolution Screenshots. More customizable than OptiFine. ramidzkh
Clear Skies Removes fog color banding on skybox. grondag
Custom Splash Screen Custom loading screen colors. Does not support OptiFine format. MidnightDust
FabricSkyboxes Custom sky. Does not support OptiFine format. AMereBagatelle
Continuity CTM. Supports OptiFine format. Pepper_Bell DashLoader
Animatica Animated textures. Supports OptiFine format. FoundationGames
Semitranslucency Fix Fixes semitranslucent textures. Honestly have no clue if OptiFine does this but it probably does idk. ruvaldk
CIT Resewn CIT. Supports OptiFine format. SHsuperCM
Colormatic Custom colors. Does not support OptiFine format. Thalia
Transparent No 1.17.1 Yet. Transparent textures. Does not support OptiFine format. Trikzon
Varied Mob Textures No 1.17.1 Yet. Varied mob textures. Does not support OptiFine format. Digifox03
Custom Entity Models Custom entity models. Supports OptiFine format. dorianpb

Unrecommended Mods

These are mods that are either too experimental or are just poorly made that I do not recommend using unless you know what you are doing.

Mod Reasoning Author
DashLoader DashLoader Caches all of Minecrafts content to load the game much faster. However, this causes many incompatibilities with a ton of mods, including Sodium. For this reason, it is recommended to not use it until it achieves better compatibility. It is also not very useful to people who change their mods and resourcepacks frequently. alphaqu
Iris Starline The Iris Starline branch is a very experimental branch that allows you to access the config options for shaders. The original author of Iris is currently creating a safer method to access this config and the starline branch should only be used for testing, not for actual use. HyperCubeMC
C2ME C2ME is an extremely expiremental mod that attempts to multithread chunk generation, I/O, and loading. It is deemed not production ready by the authors and may corrupt worlds or cause other issues. It also comes with its own list of incompatible mods. ishlandbukkit
FastMathFabric FastMathFabric is a joke mod meant to port the cursedness of OptiFine's fast math feature to fabric. It is incompatible with other mods and will not provide a performance gain, therefore leaving no reason for users to use it. It is also most likely bannable on many servers. FwuffyPetsOwO

Contributors