BadOptimizations is a client-side Minecraft Java mod that targets small pieces of work outside the main rendering replacement handled by mods such as Sodium. Its creator documents lightmap caching, avoiding unused debug-renderer work, particle and toast checks, and other micro-optimizations. Each switch has a narrow scope; the package is not a promise that every PC gains the same FPS.
The current creator-listed release checked August 28, 2026 is BadOptimizations 2.4.1 for Minecraft 26.2. MineBrush has not launched it or reproduced the creator's benchmark. Visual correctness, frame time, input feel, renderer interaction, and performance remain unknown for any reader's profile.
Loader label note: this guide uses Fabric as the primary walkthrough route in the compatibility card. Fabric is not the only supported loader: the exact creator records below also include a separate NeoForge JAR for 2.4.1. Use one file for the loader in your active profile.
Choose the correct 2.4.1 file
| Profile | Version ID | Declared relations |
|---|---|---|
| Minecraft 26.2 + Fabric | JmPs4Wie |
No project dependency declared |
| Minecraft 26.2 + NeoForge | IDYkXahy |
No project dependency declared |
The creator notes that Fabric and NeoForge variants are separate JARs for this release line. Use one file for the loader in the active profile. The project metadata marks the mod client-side and unsupported on the server.
Understand the 26.2 scope
The project page describes skipping lightmap updates when relevant brightness inputs have not changed and avoiding debug-renderer work when no debug data exists. The branch configuration also includes particle-manager, toast, FOV, tutorial, and renderer-caching switches.
Some older optimizations no longer apply to newer Minecraft code. The 2.4.1 notes say sky color became data-driven and its caching was removed for the newer line, while lightmap caching no longer uses time directly. Do not copy a 1.20-era tuning tip into a 26.2 profile without checking the current config comments.
Install without losing the baseline
- Confirm Minecraft Java 26.2 and the active loader.
- Copy the working profile, including config and current mod list.
- Install the matching 2.4.1 JAR and launch with its default config.
- Use a copied world and a repeatable route that includes daylight change, darkness, particles, a toast, inventory, and F3.
- Save, quit, reopen, and repeat before changing any switch.
Keep renderer, shaders, resource packs, resolution, frame cap, Java arguments, and background applications unchanged. A different scene or uncapped title screen can produce an impressive number that says little about actual play.
Bisect a visual or input regression
Record the exact symptom and the smallest scene that produces it. Examples include stale lighting, an entity model that fails to update, missing particles, odd FOV behavior, or a renderer crash. Disable half of the active BadOptimizations switches in a copied config, restart, and repeat. Continue until one switch or interaction remains.
The creator's configuration says some options require a restart. It also documents automatic compatibility disables for selected mods and warns against overriding them blindly. Leave the full config log enabled when preparing an issue report.
Measure performance without copying someone else's result
The creator publishes one hardware-specific FPS comparison. It establishes that the maintainer measured their own setup, not that a reader will see the same gain. Record average frame time, stutter, and visual correctness over the same route. Repeat with only BadOptimizations changed.
If the profile already uses Sodium, ImmediatelyFast, culling, dynamic lights, shaders, or a large modpack, test interactions one layer at a time. A micro-optimization can be redundant, disabled, or conflict with another mod's assumptions.
Read the current config before copying old advice
The 26.2 configuration template explains which settings require restarts and which no longer affect current Minecraft code. It also exposes logging for the full config. Preserve that log when reporting a problem so the maintainer can see which optimizations were active, disabled automatically, or overridden.
Do not enable ignore_mod_incompatibilities or ignore_mod_cache_hooks just to make a warning disappear. The template warns that those overrides can cause crashes or lighting problems. First test the creator-selected compatibility state, then isolate one specific option in a copied profile.
BadOptimizations FAQ
Does a server need this mod?
No. The current project metadata marks it client-side and unsupported on the server.
Does it replace Sodium?
No. Its stated focus is micro-optimizations outside a renderer replacement. Treat each mod's scope separately.
Can I expect the creator's FPS numbers?
No. Those figures belong to the maintainer's hardware and test scene. Repeat your own route with one changed variable.
What should I include in a bug report?
Include Minecraft, loader, BadOptimizations, renderer and shader versions; the full config log; the smallest repeatable scene; and the switch that restores or reproduces the issue.
Creator, license, and evidence
BadOptimizations is created by thosea and licensed MIT. Use the official project, exact 2.4.1 records, source repository, and current configuration template. This rewrite includes no mirrored JAR, benchmark image, or creator media.

PLAYER QUESTIONS
Discussion
Include the exact edition, version and step when asking for help.