Skip to content

Backport Immersive Engineering Crusher process queue sync fix - #894

Merged
ACGaming merged 2 commits into
ACGaming:mainfrom
kaduvill:main
Aug 2, 2026
Merged

Backport Immersive Engineering Crusher process queue sync fix#894
ACGaming merged 2 commits into
ACGaming:mainfrom
kaduvill:main

Conversation

@kaduvill

@kaduvill kaduvill commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Backports the later Immersive Engineering Crusher synchronization fix to Minecraft 1.12.2.

IE 0.12-98 synchronizes the Crusher's full process queue to clients. The client then reconstructs every queued process and resolves its recipe from NBT, causing substantial client-thread load in large modpacks.

This patch:

  • stops Crushers from syncing their full process queue to clients;
  • keeps the full queue for world saves;
  • syncs only the render-active state;
  • leaves processing, recipes, energy, redstone, inputs and outputs unchanged.

Upstream fixes

Original fix, on the newer 1.18 codebase:
7d76b1c — Allow multiblocks to opt out of syncing the process queue to the client, and sync active state independently

Official 1.16.5 backport:
68816c8 — Backport: Allow multiblocks to opt out of syncing the process queue to the client, and sync active state independently

Both close the original report:

Issue #5077 — Degraded FPS when crushers are being overloaded with items

Profiling

same conditions, multiple profiles.
/sparkc profiler --interval 1 --timeout 60

Before:

fked

After:
fixed

@what-the-diff

what-the-diff Bot commented Aug 1, 2026

Copy link
Copy Markdown

PR Summary

  • Introduction of README Fix for Crushers
    A new fix has been incorporated in the README for Crushers. This prevents the repeated synchronization of their process queue on clients, eliminating potential inefficiencies.

  • Setting-up of Configuration Option for Crusher Sync Fix
    A new configuration option has been introduced in the UTConfigMods.java file for the Crusher Process Queue Sync Fix. This gives the user flexibility, though it requires a restart to apply settings.

  • Application of New Mixin in UTMixinLoader
    The UTMixinLoader.java file has been updated to load a new tool, called a mixin, for the Crusher synchronization fix. This ensures better integrated operation of multiple functionalities.

  • Implementation of Mixin Logic in New File
    A new file UTIECrusherSyncMixin.java has been added, which contains the mixin logic to manage the synchronization behavior of Crushers. This ensures that the client does not reconstruct the process queue excessively and manages the render-active state correctly, bringing about a smoother user experience.

  • Creation of New Mixin Configuration File
    A new mixin configuration file mixins.immersiveengineering.crushersync.json has been created to include the newly added mixin for Crusher synchronization. This helps in a more organized structure of the code while letting users customize specifics of the synchronization.

@kaduvill
kaduvill marked this pull request as ready for review August 1, 2026 19:57
@ACGaming
ACGaming merged commit fc23289 into ACGaming:main Aug 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants