ModernFix Launch and Runtime Performance Patches Explained
ModernFix speeds up Minecraft's launch and runtime through a set of performance patches you control from its config screen, not through crafting or items. This guide covers the key patches tied to dynamic resources, blockstate caching, datapack reloading, and model loading, and explains how to operate them.
Opening and Using the Config
Open the config screen to view and change every patch. The screen groups options under headings with short descriptions, such as features that improve game and launch performance, core bugfixes for stability, troubleshooting and diagnostic tools, and a section you should not change unless you know exactly what you are doing.
Some changes require a restart. When a restart is needed, the screen shows done restart. If a mod config file changes while the game is running, a reload must be triggered manually by running the `/mfrc` command, because loading files that are not finished saving could cause problems.
There is also a mixin config for finer control. Warnings about missing performance mods can be turned off by disabling the relevant warning option in the config.
Dynamic Resources
dynamic resources lets resource data load on demand rather than all at once. It is not compatible with Connectedness: if both are present, either remove Connectedness or turn dynamic resources off. Several compatibility patches exist so dynamic resources works alongside other mods, including patches for AE2, CTM, LDLib, Refined Storage, SuperMartijn642CoreLib, and Diagonal Fences.
Related dynamic options include dynamic sounds, which lets the game unload sounds instead of keeping them loaded forever, dynamic structure manager, which unloads structure files after generation finishes, and dynamic entity renderers, which builds entity models the first time they appear instead of during launch. Note that some mods break with dynamic entity renderers and cause renderer crashes.
Blockstate Cache Patches
reduce blockstate cache rebuilds is a key optimization. After 1.12, Minecraft caches information about each blockstate, and rebuilding that cache is slow when many mods add blockstates. This patch makes rebuilds lazy, so each blockstate builds its cache only when its data is first needed, and full rebuilds are replaced by simply invalidating caches. It should not affect tick rate after startup.
cache blockstate cache arrays avoids recreating enum arrays every time a blockstate cache initializes. state definition construct is enabled only when FerriteCore is present and speeds up blockstate creation, which helps with mods that add many blockstates.
Datapack Reload Patches
skip first datapack reload is a key optimization for 1.16 and 1.19. Forge caused datapacks to reload twice when loading an existing world, and since reloads can take a long time, this badly hurt world loading. The patch avoids the redundant reload. In 1.19 the extra reload is limited to world creation, but it still doubles the lag spike when creating a new world.
reuse datapacks (1.16) skips datapack reloading when switching between singleplayer worlds where possible, though it may conflict with some mods. datapack reload exceptions reduces log spam and may slightly speed loading by not printing stacktraces for common exceptions during reload, while still printing the message.
dedicated reload executor moves resource and data pack reloading onto a dedicated worker pool instead of the default worker threads.
Model and Resource Loading
model optimizations speeds up the model loading process. cache model materials stores the texture collection and dependency list models return, so they are not recalculated on every request, accelerating model load and bake.
faster texture loading (pre-1.19.4) avoids reading textures twice through a slow path. A related patch enables a faster texture stitching system, though rare block or GUI artifacts have been reported. faster font loading speeds up resource reload.
A key optimization caches listings of all resources inside mod-provided and vanilla resource packs, removing most filesystem bottleneck during launch. The cache rebuilds on resource reload, except for vanilla resources. OptiFine's CTM resources do not load correctly with this patch.
faster item rendering avoids drawing the sides of items in GUIs and can greatly raise FPS with JEI or REI on weaker GPUs, but it is off by default. blast search trees disables vanilla creative search tree construction when JEI or REI is present, saving time and memory during world loading.