/sodium-fabric

A Fabric mod designed to improve frame rates and reduce micro-stutter

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

Project icon

Sodium (for Fabric)

GitHub license GitHub issues GitHub tag

Sodium is a free and open-source optimization mod for the Minecraft client that improves frame rates, reduces micro-stutter, and fixes graphical issues in Minecraft.

⚠️ Sodium has had a lot of time to shape up lately, but the mod is still alpha software. You may run into small graphical issues or crashes while using it. Additionally, the Fabric Rendering API is not yet supported, which may cause crashes and other issues with a number of mods.


Installation

Manual installation (recommended)

You will need Fabric Loader 0.10.x or newer installed in your game in order to load Sodium. If you haven't installed Fabric mods before, you can find a variety of community guides for doing so here.

Stable releases

GitHub release

The latest releases of Sodium are published to our Modrinth and GitHub release pages. Releases are considered by our team to be suitable for general use, but they are not guaranteed to be free of bugs and other issues.

Usually, releases will be made available on GitHub slightly sooner than other locations.

Bleeding-edge builds (unstable)

GitHub build status

If you are a player who is looking to get your hands on the latest bleeding-edge changes for testing, consider taking a look at the automated builds produced through our GitHub Actions workflow. This workflow automatically runs every time a change is pushed to the repository, and as such, the builds it produces will generally reflect the latest snapshot of development.

Bleeding edge builds will often include unfinished code that hasn't been extensively tested. That code may introduce incomplete features, bugs, crashes, and all other kinds of weird issues. You should not use these bleeding edge builds unless you know what you are doing and are comfortable with software debugging. If you report issues using these builds, we will expect that this is the case. Caveat emptor.

CurseForge

CurseForge downloads

If you are using the CurseForge client, you can continue to find downloads through our CurseForge page. Unless you are using the CurseForge client, you should prefer the downloads linked on our Modrinth or GitHub release pages above.

The CurseForge client does not natively support Fabric modding, so you will need to install Jumploader in order to set up your Fabric environment. Due to the extra complexity and startup overhead this workaround adds, we generally do not recommend using this method unless you have an existing setup with it.


Reporting Issues

You can report bugs and crashes by opening an issue on our issue tracker. Before opening a new issue, use the search tool to make sure that your issue has not already been reported and ensure that you have completely filled out the issue template. Issues which are duplicates or do not contain the necessary information to triage and debug may be closed.

Please note that while the issue tracker is open to feature requests, development is primarily focused on improving hardware compatibility, performance, and finishing any unimplemented features necessary for parity with the vanilla renderer.

Community

Discord chat

We have an official Discord community for all of our projects. By joining, you can:

  • Get installation help and technical support with all of our mods
  • Be notified of the latest developments as they happen
  • Get involved and collaborate with the rest of our team
  • ... and just hang out with the rest of our community.

Building from sources

Support is not provided for setting up build environments or compiling the mod. We ask that users who are looking to get their hands dirty with the code have a basic understanding of compiling Java/Gradle projects. The basic overview is provided here for those familiar.

Requirements

  • JRE 8 or newer (for running Gradle)
  • JDK 8 (optional)
    • If you neither have JDK 8 available on your shell's path or installed through a supported package manager (such as SDKMAN), Gradle will automatically download a suitable toolchain from the AdoptOpenJDK project and use it to compile the project. For more information on what package managers are supported and how you can customize this behavior on a system-wide level, please see Gradle's Toolchain user guide.
  • Gradle 6.7 or newer (optional)
    • The Gradle wrapper is provided in this repository can be used instead of installing a suitable version of Gradle yourself. However, if you are building many projects, you may prefer to install it yourself through a suitable package manager as to save disk space and to avoid many different Gradle daemons sitting around in memory.

Building with Gradle

Sodium uses a typical Gradle project structure and can be built by simply running the default build task. After Gradle finishes building the project, you can find the build artifacts (typical mod binaries, and their sources) in build/libs.

Tip: If this is a one-off build, and you would prefer the Gradle daemon does not stick around in memory afterwards, try adding the --no-daemon flag to ensure that the daemon is torn down after the build is complete. However, subsequent builds of the project will start more slowly if the Gradle daemon is not available to be re-used.

Build artifacts ending in dev are outputs containing the sources and compiled classes before they are remapped into stable intermediary names. If you are working in a developer environment and would like to add the mod to your game, you should prefer to use the modRuntime or modCompile configurations provided by Loom instead of these outputs.


License

Sodium is licensed under GNU LGPLv3, a free and open-source license. For more information, please see the license file.