KAllFix
ModOptimization and multithreading written by n1luik
Type
Mod
Modrinth Downloads
7,130
Modrinth ID
GMjacMKh
Last Updated
May 29, 2026
Description
Overview
- This project is used to fix and optimize issues caused by other mods, and it works on servers.
- The project contains two main parts: k_all_fix and k_multi_threading, with features mainly controlled by JVM parameters.
- No regular config file is provided; configuration is mainly done through startup parameters.
- Client-side usage is supported from 1.0.4.0 onward (requires JVM parameter -DKMT_Client=true).
- Under a multi-mod and single-threaded baseline environment, cause no issues is not guaranteed, but you could create an ISSUE on Github and the author will fix it quickly.
- With some mod combinations, clients may still need to install this mod even if it has no visible effect.
Features and Use Cases
Optimizations
- Optimizes performance for Upgraded Additional Trims.
- Optimizes the April Fools date-check related overhead in Atmospheric.
- Optimizes performance for Upgraded Core.
- Optimizes chicken-coop AI performance in [Let's Do] Farm & Charm.
- Optimize performance for Event Wrapper
- Optimize performance for Create:FluidLogistic
- -DKAF-fluidlogistics.DisabledDynamicUp=true to disable updating old id, if not do so, may cause to preformance slow down.
- Optimize AE2 game computation
- Optimize performance for ItemStack.issameItemsameTags
Fixes
- Fixes performance issues related to entity counts in L_Ender's Cataclysm when used on servers with MineColonies.
- Fixes excessive invalid packet sending in [Let's Do] Farm & Charm.
- Fixes compatibility issues between Biolith and some MCreator worldgen mods (e.g., Terramity).
- Fixes compatibility issues between Gregicality Rocketry and Canary, but collision-box issues may still occur at space-station borders.
- Fixes the issue where Petrolpark's Library 1.4.2 is unusable in some Java environments; this fix can be disabled with -DKAF-DisablePetrolpark=false.
- Fixes/optimizes magnetic-field-related performance issues in Alex's Caves.
- Fixes mixin performance issues in Create: Diesel Generators.
- Fixes server crashes in older Destroy versions caused by database connection failures.
Multithreading
Introduction
- Multithreading supports includes block ticks, block entity ticks, entities, dimensions, player packet receiving (manual toggle, client-only), and player login (manual toggle), and also fixes some problematic single-threaded mods by applying multithreading.
- Multithreading is enabled by default on the server side.
- In multithreaded scenarios, thread-pool interception or limit-exceeded errors may appear, but they usually do not crash the server.
- It is recommended to manually set -DKMT-threadMax=[CPU thread count]; otherwise world generation may be frozen. If freezes still occurs after setting it, increase the value higher.
- Before 1.0.4.0, clients cannot use multithreading; from 1.0.4.0 onward, clients can enable it via -DKMT_Client=true.
- After 1.0.3.3, ParaServerChunkProvider, TaskRun, and some chunk generation code depend more heavily on C2 compilation (the JVM will enter C2 automatically after running for a while).
- In Windows Server 2022 Datacenter 21H2 20348.3091 (author's environment), rare thread scheduling anomalies may occur and causes abnormally high CPU usage; the solution is to restart the server.
Related JVM Parameters
- -DKMT-threadMax=[number]
- Sets thread-pool thread count.
- -DKMT-callMax=[number]
- Sets the default maximum number of threads that multithreaded tasks may use.
- -DKMT-ThreadpoolKeepAliveTime=[milliseconds]
- Sets how long idle threads are kept before recycling.
- -DKMT_D=[any characters]
- Disables multithreading.
- -DKMT-OpenVanillaServerChunkCache=true
- Forces the vanilla ServerChunkCache fix path (added in 1.0.5.3).
JVM Parameter Overview (all retained)
Basic and General
- -DKAllFix_D=[any characters]
- Disables KAllFix.
- -DKMT_Client=true
- Enables multithreading-related features on the client side (1.0.4.0+).
- -DKAF-DisablePetrolpark=false
- Disables the Petrolpark's Library 1.4.2 related fix.
Connection and Timeout
- -DKAF-ClientboundKeepAlivePacket_Max=[milliseconds]
- Changes the timing requirement for ClientboundKeepAlivePacket (default 15 seconds; vanilla must be <30 seconds or the player is kicked for timeout).
- -DKAF-ServerTimeout=[seconds]
- Sets server connection timeout.
- May be ineffective in some cases (both parameters are needed because Forge's forge.readTimeout only covers server packet-read timeout, not client/server network threads with players).
- -Dforge.readTimeout=[seconds]
- Forge packet-read timeout parameter (used together with the previous parameter).
Mixin / NBT / Auto Command
- -DKAF-RemoveMixin:[class name]
- Disables a specified mixin (k_multi_threading mixins can also be disabled).
- -DKAF-NbtIoMixin_NotGZip=true
- Adds try-catch to NBT IO for non-gzip scenarios (unsafe; requires commons-compress in the environment).
- -DKMT-ChunkGeneratorMode2Start=[true,false]
- Automatically runs: /SetterWorldConfig world setM2 %%KMT-ChunkGeneratorMode2Start%%.
Breeding Control
- -DKAF-ChunkBreedingControlSize=[number]
- Disables breeding when chunk entity count exceeds the given value; disabled if the parameter is missing / not a numeric array / empty.
- -DKAF-ChunkBreedingControlSizeEnable=[true,false]
- Internal cache switch for detection results; manual setting may be overridden by the program.
Optional Features
- -DKMT-SafeUnloadChunk=true
- Enables chunk unload in chunk-generation threads (recommended only for <1.0.4.2 when related freezes occur).
- -DIndependencePlayer=true
- Enables asynchronous player handling (likely provides little to no optimization).
- -DFixBiolithBugMode2=true
- Attempts to fix most Biolith compatibility issues (may introduce major bugs).
- -DKAF-gtceu.MedicalConditionTrackerMixin=true
- Disables radiation in GTM.
- -DKAF-RemoveClientboundKeepAlivePacket=true
- Disables vanilla ClientboundKeepAlivePacket (ping can no longer be calculated).
- -DKAF-RemoveFlyingTest=true
- Removes flight checks.
- -DKAF-moonrise_fast_palette=true
- Disable the fast_palette feature from Moonrise.
- -DKAF-FixTFMGDestroy=true
- -DKAF-Fix_fabric-object-builder-api.jar=true
- Fixes compatibility between Sinytra Connector's fabric-object-builder-api and forge-47.3.27.
- -DKAF-FixAllPacket=true
- Fixes network packets (must be enabled on both client and server); related mods: Mekanism Explosives, Create, The Abyss II.
Login Multithreading
- -DKMT-LoginMultiThreading=true
- Enables multithreaded login.
- -DKMT-LoginMultiThreading.ConnectionLock=true
- Waits for async execution completion at tick end (disabling may improve performance somewhat, but lowers login stability and may crash).
- -DKMT-LoginMultiThreading.TaskSizeMax=[number]
- Limits the number of concurrent login tasks (default 8).
- Login multithreading may cause the server to receive ServerboundMovePlayerPacket early, leading to one error log.
Packet Optimization
- -DKAF-packetOptimize=true
- Optimizes some vanilla packets (must be enabled on both client and server).
- -DKAF-packetOptimize.AttributesReOutputTime=[milliseconds]
- Sets forced resend interval for attribute-related data (default 2 minutes).
- -DKAF-packetOptimize.CompatibilityMode.ClientboundBlockEntityDataPacket=true
- Uses more conservative compression for ClientboundBlockEntityDataPacket (impacts performance).
- -DKAF-packetOptimize.CompatibilityMode.ClientboundSectionBlocksUpdatePacket=true
- Uses more conservative compression for ClientboundSectionBlocksUpdatePacket.
Others
- -DKAF-UnsafeCinderscapesFix1=true
- Adjusts limits for the high-overhead enableAshFall function in Cinderscapes.
- -DKAF-fix.asynchronous.ClientboundCustomQueryPacket=true
- Makes handshake asynchronous, reducing the chance of being unable to join when too many mods are installed.
- -DKAF-FixConfigAuto=true
- Automatically changes some config options for compatibility.
Installation and Runtime Notes
- From 1.0.3.18, it can run directly (installation feature is still kept).
- Before 1.0.3.18, run the mod's installer first, or use:
- java -jar k_multi_threading-xxx.jar -i [empty or install directory]
- Installation only generates k_multi_threading-base.jar and k_multi_threading-asm.jar.
- Some features may download dependencies (Zstd-jni 1.5.7-2); if download fails, place them manually in game_directory/lib.
Compatibility Notes
- Using -DKAF-FixConfigAuto=true can automatically disable:
- Cases where -DKAF-FixConfigAuto=true should not be used:
- Possible conflict with mixin.perf.cache_upgraded_structures in ModernFix (disable via mixin.perf.cache_upgraded_structures=false in config/modernfix-mixins.properties).
- With login multithreading enabled, ParCool (listed as Parkour on page) may require one death after player joining before working normally.
- Ars Creo may rarely log Modifier is already applied on this attribute!, but will not crash.
- NuclearCraft: Neoteric fission reactors may rarely calculate cooling incorrectly after server restart.
Commands
-
/debug_GetterClassFile [class name]
- Exports final runtime class data to the game directory, with filename format timestamp_save.class.
-
/SetterWorldConfig [world, ClearErrorSize, RemoveRemoveErrorSize]
- Settings from this command are not persistent.
- ClearErrorSize: clears the recorded count of “errors that caused server crash risk”.
- RemoveRemoveErrorSize: stops recording crash-risk counts and keeps intercepting.
- Under world [dimension registry id], available options:
- setM2 [true,false]: switches to another dimension implementation mode; higher priority than setMultiThreading, but may freeze the game.
- setMultiThreading [number] (default 0): sets multithread parallel task count for this dimension; independent mode from setM2, and may also freeze the game.
Others
- Because Minecraft and many mods are fundamentally designed around single-threaded behavior, complete fixes for all issues cannot be guaranteed.
Source Code Usage
- moonrise_fast_palette uses source code from Moonrise.
- Compatibility fixes for Gregicality Rocketry and Canary use source code from Canary.
Compatibility
Mod Loaders
Game Versions
Similar Mods
(Hordes) Zombie Virus Antidote
Adds in a antidote for a zombie virus. (Hordes)
Trade Enchantment Display
Automatically display the enchantment name of traded items
Create: Automotives
Travel the airways and roads with steam powered planes and cars!
Create Aeronautics: Dyeable Components
This is an addon for Create Aeronautics that makes various components dyeable!
Night's Light
This mod adds working Fireflies to Minecraft!
RegSyncFix
Bypass Fabric API registry sync errors