Potassium is a Fabric performance optimisation mod focused on safer rendering, smoother frame pacing, and compatibility-friendly stability fixes. It keeps vanilla-critical visual feedback intact while reducing repeated render work in particle-heavy scenes, UI rendering, map updates, and the newer 26.x renderer paths.
The current release line is Potassium 1.3.3.
| Minecraft target | Java | Status | Release jar |
|---|---|---|---|
| 1.21-1.21.10 | 21+ | Supported | versions/1.21-1.21.10/build/libs/potassium-1.3.3+1.21-1.21.10.jar |
| 1.21.11 | 21+ | Supported | versions/1.21.11/build/libs/potassium-1.3.3+1.21.11.jar |
| 26.1 | 25+ | Supported | versions/26.1/build/libs/potassium-1.3.3+26.1.jar |
| 26.1.1 | 25+ | Supported | versions/26.1.1/build/libs/potassium-1.3.3+26.1.1.jar |
| 26.1.2 | 25+ | Supported | versions/26.1.2/build/libs/potassium-1.3.3+26.1.2.jar |
Each build also produces a matching -sources.jar in the same build/libs folder. Terra-Unbound is separate and is not part of these Potassium release builds.
- Particle light caching to reduce repeated brightness lookups during particle-heavy scenes.
- Entity light caching to reduce repeated packed-light calculations during rendering.
- Safer ignore rules for local scratch files, side projects, generated output, and release artifacts.
- Render smoothness with bounded time-based map update pacing.
- Memory behavior with tighter text and wrapped-layout caches.
- 26.x texture sharpness with safer anisotropic sampler uplift on supported GPUs.
- Repo and release consistency across all maintained version targets.
- Preserved mining, HUD, and other gameplay-critical visual feedback on vanilla-safe paths.
- Fixed client crashes on launchers that do not add the Java Vector API incubator module by default.
- Kept 1.21.x platform fallbacks Java 21-safe by avoiding preview native API hooks.
- Kept unstable hooks out of the grouped 1.21-1.21.10 build to avoid cross-version regressions.
- Cleaned up release docs and version metadata so jars, changelogs, and supported versions match correctly.
- Kept renderer caches bounded so long sessions do not grow unbounded memory.
- Kept particle distance checks on an always-loadable scalar path when
jdk.incubator.vectoris unavailable. - Kept macOS native scheduling fallbacks conservative on Java 21 builds.
- Kept feature gates conservative when renderer internals differ between Minecraft versions.
- Retained fail-safe behavior for unsupported JVM, GPU, renderer, or platform paths.
- Kept dedicated-server-safe mixin loading by keeping client-only hooks in client mixin configs.
| Feature | Area | 1.21-1.21.10 | 1.21.11 | 26.x |
|---|---|---|---|---|
| Particle light caching | Particle rendering | Active | Active | Active |
| Entity light caching | Entity rendering | Active | Active | Active |
| Particle distance and LOD safeguards | Particle engine | Active | Active | Active |
| Group-level particle LOD | Particle groups | Not enabled | Active | Active |
| Text width and wrapped-layout caching | Text rendering | Active | Active | Active |
| HUD extraction safety fixes | GUI rendering | Active | Active | Active |
| Sound engine distance tracking | Sound manager | Active | Active | Active |
| Bounded map render cache | Map renderer | Not enabled | Active | Active |
| Entity animation LOD | Entity rendering | Not enabled | Active | Active |
| Dynamic chunk compile budgeting | Level renderer | Not enabled | Not enabled | Active |
| Beacon/block entity render caching | Block entity rendering | Not enabled | Not enabled | Active |
| Sampler anisotropy uplift | Texture sampling | Not enabled | Not enabled | Active |
| Scoreboard differential sync | Server scoreboard | Active | Active | Active |
Potassium is designed to coexist with common optimisation stacks, including Sodium-oriented modpacks, Lithium, Starlight, FerriteCore, C2ME, ServerCore, Krypton, Entity Culling, Dynamic FPS, and LazyDFU.
Client mixins are gated through PotassiumMixinPlugin so incompatible paths can be skipped at runtime. Platform-specific optimisations degrade gracefully when a JVM, renderer path, operating system, or GPU does not support them.
- Fabric Loader
0.18.4+ - Fabric API matching the selected Minecraft target
- Java 21 or newer for 1.21.x builds
- Java 25 or newer for 26.x builds
- Gradle installed on PATH, or an IDE Gradle runner
Build every Potassium 1.3.3 jar from the repository root:
$env:JAVA_HOME='C:\Program Files\Eclipse Adoptium\jdk-25.0.2.10-hotspot'
$env:Path="$env:JAVA_HOME\bin;$env:Path"
gradle :versions:26.1:build :versions:26.1.1:build :versions:26.1.2:build :versions:1.21-1.21.10:build :versions:1.21.11:buildThe 26.x targets require Gradle to run on Java 25. The 1.21.x targets can compile on Java 21, but Java 25 works for the full aggregate build.
versions/
1.21-1.21.10/ Shared conservative 1.21 patch-range build
1.21.11/ Dedicated 1.21.11 build with newer render hooks
26.1/ 26.x base build with the full renderer feature set
26.1.1/ 26.1.1 build target
26.1.2/ 26.1.2 build target
*/src/main/ Common code and server-safe mixins
*/src/client/ Client-only rendering, particle, GUI, and platform mixins
*/build/libs/ Built release jars and matching source jars
- The 1.21-1.21.10 jar builds against Minecraft 1.21 while keeping the release label for the supported patch range.
- 26.x-only hooks stay out of 1.21.x builds when renderer internals differ too much to share safely.
- Built jars are intentionally kept under
versions/[version_name]/build/libsfor GitHub and Modrinth release uploads.