Skip to content

topluci/potassium

Repository files navigation

Potassium

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.

Current Status

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.

1.3.3 Highlights

Added

  • 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.

Improved

  • 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.

Fixed

  • 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.

Stability

  • 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.vector is 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 Matrix

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

Compatibility

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.

Requirements

  • 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

Building

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:build

The 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.

Project Layout

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

Notes

  • 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/libs for GitHub and Modrinth release uploads.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages