Skip to content

Summary of Patches

embeddedt edited this page Mar 24, 2023 · 12 revisions

A common problem with many performance mods is that the changes they make to the game are unclear. This documentation aims to rectify that by providing an explanation for each mixin option. It is aimed towards mod developers/players familiar with Minecraft internals, although it should still be a useful guide for those trying to understand what the various options in modernfix-mixins.properties do.

Not all options are available for every Minecraft version, as some patches are only needed on certain versions.

I will try my best to keep this up to date, but some new patches may take a while to get added.

bugfix.concurrency

The patches in this group fix concurrency-related issues within Minecraft and/or Forge. Most of them result in rare, hard-to-diagnose crashes during loading.

bugfix.edge_chunk_not_saved

This option is a port of SuperCoder's Chunk Saving Fix mod (because I didn't realize it was already available for Forge at the time).

bugfix.mc218112

This option fixes a deadlock that can occur if an exception is thrown while processing entity data. Vanilla does not correctly unlock the data manager when it should. This is tracked as MC-218112 on the bug tracker, and was fixed by Mojang in 1.17.

bugfix.packet_leak

Experimental, not enabled by default. An attempted fix for the memory leak issue that occurs after playing long enough on 1.16.

bugfix.structure_manager_crash

1.16 only, fixes a CME that can occur during worldgen when using newer Java versions.

bugfix.tf_cme_on_load

Patches Twilight Forest to perform non-thread-safe client setup using the main thread as it should, rather than the FML worker thread.

feature.branding

Adds ModernFix to the branding list on the title screen, and also to the F3 screen.

feature.direct_stack_trace

Normally off, can be enabled to force the raw stack trace to be dumped to the log when a crash occurs. Occasionally vanilla's crash report system fails to work properly and gives an entirely irrelevant stack trace/report.

feature.measure_time

Uses a couple injections to measure world load time, datapack reload time, resource reload time, bootstrap time, and adds the necessary hooks to enable vanilla's unused profiler logic for resource reloading if so configured.

Clone this wiki locally