GeckoLib is a library mod, which means it does nothing on its own and exists so that other mods can play smooth keyframed animations. Learning how to install GeckoLib correctly is the first step whenever a mod page lists it as a required dependency, and the process takes only a couple of minutes.
What You Need Before You Start
GeckoLib always has to match three things: your Minecraft version, your mod loader, and the version the dependent mod was built against. Checking those values before downloading saves you from the most common crash reports.
- A working Minecraft Java Edition installation
- A mod loader: Forge, NeoForge or Fabric (with Fabric API)
- The mod that requires GeckoLib, plus its listed version range
How to Install GeckoLib as a Player
- Open the Minecraft launcher and run your loader profile once so the
modsfolder is created. - Download the GeckoLib file that matches your loader and game version from GeckoLib.
- Press Win + R, type
%appdata%\.minecraftand open themodsfolder (on macOS use~/Library/Application Support/minecraft). - Drop the GeckoLib
.jarfile into the folder next to the mod that needs it. - Start the game with the loader profile and confirm GeckoLib appears in the Mods list.

How to Install GeckoLib for Mod Development
GeckoLib is pulled into a development workspace through Gradle rather than by copying a jar. Add the GeckoLib maven repository and the dependency for your loader in build.gradle, then refresh the project.
repositories {
maven { url "the project documentation }
}
dependencies {
// pick the artifact for your loader and Minecraft version
implementation "software.bernie.geckolib:geckolib-neoforge-1.21.1:VERSION"
}
GeckoLib artifact names change between branches and loaders, so copy the exact coordinates from the project wiki for the version you target instead of guessing them.
Building From Source
GeckoLib source code lives on GitHub, and you can clone it with the repository clone command shown in its source interface if you want to read the internals or test an unreleased fix.
Common Installation Mistakes
- Mixing a Fabric GeckoLib jar into a Forge instance (or the reverse)
- Using GeckoLib 3 for a mod that was compiled for GeckoLib 4 or 5
- Keeping two different GeckoLib jars in the same mods folder
- Forgetting Fabric API on Fabric installs
GeckoLib errors usually name the missing or mismatched class in the crash log, so reading the first few lines of the report tells you which of these problems you hit.
Identify the exact Minecraft instance
Before changing anything, establish which installation actually launches your modpack. A computer can have several Minecraft folders, and each launcher profile may point to a different game directory. Open the profile settings and note the instance folder rather than assuming the standard location is correct. A library placed in a different instance will never appear in the game you are testing, even if the file itself is perfectly compatible.
Write down the full Minecraft version, the loader name and its version, and the name of the mod requesting GeckoLib. Keep all four details together. A label such as Minecraft 1.20 is less useful than the complete release number because mods can depend on changes between nearby updates. If you are joining someone else's server, ask for the pack manifest or the exact profile instructions. Starting from the same configuration removes a large source of avoidable differences. Make a backup of the instance before replacing dependencies, especially when the folder contains a world you want to keep.
Read the dependency requirement before choosing a file
The requesting mod determines which library release you need. Its dependency declaration may specify a minimum version, a supported range or a particular major branch. Treat that requirement as a constraint rather than a suggestion. A larger version number does not automatically mean a better choice for an older mod. Major releases can change the classes and methods that the mod expects to find.
Check the file's supported game version and loader separately. A filename can help, but the release details and dependency metadata are better evidence. Forge, NeoForge and Fabric packages should not be treated as interchangeable. If a launcher offers automatic dependency installation, review what it selected before manually adding another copy. Automatic installation can already have placed the correct library in the instance. Adding a second jar may create a duplicate mod error. Keep a short record of the selected release so you can restore it later without guessing which similarly named file worked.
Install into a closed game and check the file
Close Minecraft before editing the instance's mods folder. This makes the change easier to track and prevents confusion about whether the running game has loaded an old configuration. The mod file normally stays as a jar. Do not extract it into a folder or place its contents inside another archive. A browser may show a security prompt for jar files because they contain executable Java code; use the expected project distribution and check that the completed filename matches the intended release.
Move the chosen file into the correct instance's mods directory alongside the mod that requires it. Remove the incompatible GeckoLib copy from that active directory, keeping any backup elsewhere. Renaming an old jar while leaving it inside the same directory is a poor backup method because loaders can still discover supported files. When the download finishes, verify that it is not a partial file and that your browser has not saved an HTML error page with an unexpected extension. Then launch the loader profile associated with that instance.
Verify installation through a repeatable launch
A successful title screen is the first checkpoint, but it does not exercise every animated object. Open the loader's mod list when one is available and confirm that the expected library is present. Load a disposable test world and try the dependent mod's most basic animated entity or item. Observe whether the object renders, whether its texture appears and whether idle and movement animations behave normally.
If you maintain a modpack, make the same check in a clean copy of the exported pack. A development instance can contain extra dependencies that hide an incomplete manifest. Record the configuration that passed, including launcher profile, game version, loader and library release. This makes future upgrades easier to evaluate. Change one dependency at a time and repeat the same short test. If a problem appears, you will have a clear comparison between the last working state and the new state instead of a folder full of unrelated changes.
Understand client and server requirements
Client installation and dedicated server installation are separate tasks. A library required by a gameplay mod on both sides generally needs to be available wherever that mod runs. However, individual mods may have different side requirements, so read their dependency information rather than copying every client file to the server. Visual enhancements intended only for clients can cause problems in a dedicated server environment when they load client classes.
For a shared pack, compare the client and server manifests and keep the common gameplay dependencies aligned. Restart the server after updating its files and inspect its startup output before inviting players back. Test with a client that uses the same expected configuration. If single player works but the dedicated server stops during startup, focus on the server log and side compatibility first. Reinstalling the client repeatedly will not resolve a missing server dependency. Keep world backups separate from the dependency test so that troubleshooting does not put your only saved world at risk.
Diagnose the first useful error
When startup fails, read the earliest clear dependency or loading error instead of treating the final crash message as the full explanation. A missing dependency message points toward an absent library or an unsupported version range. A duplicate mod message suggests multiple discovered copies. A missing class or method can indicate a branch mismatch, although the complete stack trace is needed to identify which component made the invalid call.
Compare the reported requirement with the files in the actual instance directory. If the folder looks correct, check that the launcher is opening that directory and that no automated pack repair has restored a different file. Avoid downloading several alternative jars at once. Test one documented compatible choice, launch again and compare the new log. For a complicated pack, reproduce the problem in a clean instance containing only the loader, GeckoLib and the requesting mod with its other required dependencies. This smaller environment helps distinguish a basic installation problem from an interaction elsewhere in the pack.
Separate player installation from developer setup
A player installs a built mod file, while a developer configures the library as a dependency of a build. Copying a jar into a development run folder can make a local experiment seem successful without making the project reproducible. The build configuration should declare the appropriate artifact and repository so another developer can resolve the same dependency from a clean checkout.
Use the setup instructions for the target library branch and loader. Gradle syntax, mappings and dependency helpers differ across environments, so a snippet from an unrelated branch may not fit your project. After changing the build configuration, refresh dependencies and run a minimal development client. If your mod also runs on a server, test that entry point independently. Finally build the distributable jar and install it in a separate player instance. This verifies that the packaged mod declares its requirements and includes its own resources instead of relying on files that only existed in the development workspace.
Keep updates controlled and reversible
Once installation works, preserve a small record of the known configuration. A text note or pack manifest should state why GeckoLib is present and which mod requires it. This matters when a future pack cleanup makes the library look unnecessary because it adds no obvious standalone gameplay. Removing an apparently unused dependency can stop several unrelated creatures or items from loading.
Before updating, review the requirements of every mod that depends on the library. Two mods can request compatible ranges, while another may hold the pack to an older branch. Update the pack as a coherent set rather than forcing the library beyond those constraints. Keep the previous working files outside the active mods directory so rollback is straightforward. Test startup, world loading and the animated features your players actually use. A careful update process is usually faster than rebuilding an instance after several untracked replacements, and it gives you useful evidence if you need to describe a reproducible problem.
Recognize a successful setup
A library installation does not necessarily add a new menu, creature or collection of blocks. Judge the result through the mod that requested the dependency and the loader information. If only the library is installed, an ordinary looking world can be the expected result. When helping another player, compare the exact launcher profile and relevant files before recommending replacements. Two people may describe a setup with the same broad version while using different directories or loaders. Once the instance works, keep it self-contained. Do not move files between profiles without checking their individual requirements. A separate known working configuration for each pack prevents a correction in one environment from becoming a new problem in another environment.
Frequently Asked Questions
Is GeckoLib a mod I can play by itself?
GeckoLib adds no blocks, mobs or items of its own; it only powers animations for other mods.
Do servers need GeckoLib too?
GeckoLib must be installed on the server as well as the client whenever the dependent mod is installed on both sides.
Can I install GeckoLib with a launcher like CurseForge or Modrinth?
GeckoLib is usually added automatically by those launchers when you install a mod that lists it as a dependency.
Conclusion
GeckoLib installation works best when the game version, loader and requesting mod agree on one supported library release. Identify the correct instance, install the intact jar, remove duplicate copies and verify the result with a small gameplay test. Developers should also declare the dependency in their build and test the packaged output separately. Keep a known working configuration and use the earliest meaningful log error to guide troubleshooting. These habits make the setup repeatable without relying on trial and error.