Random Optimization
Description
This mod implements the following features to significantly optimize game performance and fix existing bugs. All features can be toggled via the configuration file.
- Fixes MC-249136(1.20.1) / Improve structure location performace(1.21.1): This bug causes severe server lag (hangs) when players attempt to locate Buried Treasure (most notably), or when opening/breaking chests containing maps, or using the
/locatecommand. This mod employs simple checks to drastically reduce the enumeration required during structure searching, thereby optimizing speed. - (Default Disabled in v1.6+)Deterministic Item Drops: The mod de-randomizes the spawn position of dropped items. This makes designing Redstone contraptions much simpler and easier.
- Optimized Resource/Data Pack Loading: Improves the loading speed of Resource Packs and Data Packs. The mod Builds a compact index for compressed Resource Packs and Data Packs on first access, replacing repeated full-ZIP scans during namespace discovery and recursive resource listing. This reduces reload time and temporary allocations, especially for large packs and modpacks containing many assets.
- Boat Fall Damage Fix: Fixes an issue where boats take fall damage when falling from specific heights. This aligns behavior with the MC-Wiki description and newer Minecraft versions, while also improving performance.
- DFU Optimization: Defers (lazy loads) the DataFixerUpper (DFU) to improve game startup speed.
Compatibility & Replacements
This mod completely or partially replaces the functionality of the following mods:
- MC-249136 Fix: This mod fundamentally optimizes the structure search algorithm. In contrast, other mods often move the task to a separate thread to mask the lag. While technically not conflicting, using this mod usually provides sufficient optimization, making the other mod unnecessary. If you strictly require asynchronous loading, Async Locator is recommended instead, as it supports more structures and has a better implementation.
- Shipwreck/Buried Treasure Fixes: This mod shares the same essential optimization logic for MC-249136. There is no need to use those mods if this one is installed.
- Vertical Fall: This mod completely replaces all functionality of this mod.
- Drizzleproof: Partially replaced. If you only need deterministic item drops, you do not need Drizzleproof. However, if you require granular configuration for entity mechanics, please continue using Drizzleproof.
- Quick Pack: When this mod's compressed-pack index is enabled, Quick Pack's replacement resource-pack implementation is automatically suppressed and this mod's faster index is used instead.
- ModernFix: When this mod's compressed-pack index is enabled, ModernFix's overlapping ZIP resource-pack index is automatically suppressed. Other ModernFix resource-pack optimizations and all unrelated features remain enabled.
- Boat Break Fix: This mod completely replaces the functionality of this mod.
- DFU Loading Optimizations (e.g., LazyDFU): This mod completely replaces the functionality of these mods.
Compatibility & License
This mod has good compatibility with other mods and has no known incompatibilities. It is open-source under the LGPL-3.0 license.
Credits
- The MC-249136 by bytzo, which inspired me to speed up the structure locate.
All Versions
+ Add Version2. Fix compat with Quick Pack v1.5
Partly fixed in 1.7.0, but still a remaining issue.
Partly fixed in 1.7.0, but still a remaining issue.
- Brought structure location optimizations and the MC-249136 mitigation to 1.21.1. Both supported versions can now exclude candidate chunks that cannot possibly generate the target structure before reading chunk storage, significantly reducing blocking scans caused by locating rare structures.
- Expanded resource pack indexing: In addition to ZIP archives, it now covers directory/Path-based resource packs, Forge/NeoForge mod resources, and vanilla resources.
- Reduced repetitive ZIP scans, directory traversals, file existence checks, and missing directory exceptions during resource reloads.
optimize_pack_lookupnow uniformly controls the indexing of ZIP archives, Path resource packs, and vanilla resources; modifying it still requires a game restart.
## Compatibility
- Fixed a crash with FancyMenu: Correctly handles its
LinkFileSystemresource paths and file system root directories, safely falling back to the vanilla implementation when indexing fails on non-standard paths. - Fixed resource pack root path enumeration errors, ensuring root-level resources and namespaces can be correctly discovered.
- Automatically disables overlapping Mixins in Boat Break Fix when the boat fall damage fix is enabled.
- The expanded resource pack indexing continues to automatically coordinate with overlapping optimizations in Quick Pack and ModernFix.
- Brought structure location optimizations and the MC-249136 mitigation to 1.21.1. Both supported versions can now exclude candidate chunks that cannot possibly generate the target structure before reading chunk storage, significantly reducing blocking scans caused by locating rare structures.
- Expanded resource pack indexing: In addition to ZIP archives, it now covers directory/Path-based resource packs, Forge/NeoForge mod resources, and vanilla resources.
- Reduced repetitive ZIP scans, directory traversals, file existence checks, and missing directory exceptions during resource reloads.
optimize_pack_lookupnow uniformly controls the indexing of ZIP archives, Path resource packs, and vanilla resources; modifying it still requires a game restart.
## Compatibility
- Fixed a crash with FancyMenu: Correctly handles its
LinkFileSystemresource paths and file system root directories, safely falling back to the vanilla implementation when indexing fails on non-standard paths. - Fixed resource pack root path enumeration errors, ensuring root-level resources and namespaces can be correctly discovered.
- Automatically disables overlapping Mixins in Shipwreck Fix, lazyyyyy, and Boat Break Fix when the corresponding features are enabled; it will not interfere with these mods if the related features in Random Optimization are disabled.
- The expanded resource pack indexing continues to automatically coordinate with overlapping optimizations in Quick Pack and ModernFix.
## Fixed
- Fixed an
IllegalClassLoadErrorthat could crash the game during resource-pack initialization. - Moved the file-pack resource index helper outside the reserved Mixin package.
- Added regression coverage to prevent helper classes from being placed inside the Mixin package again.
Random Optimization 1.5.0 focuses on faster compressed resource/data pack loading and better mod compatibility.
## Highlights
- Reworked compressed resource and data pack lookup around a compact index that is built once when a ZIP pack is first opened.
- Namespace discovery and recursive resource listing now reuse the index instead of repeatedly scanning the full ZIP archive, reducing reload time and temporary allocations—especially in large packs and modpacks with many assets.
- Improved index lifecycle handling so cached data is safely discarded when a pack is closed.
## Compatibility
- Added automatic coordination with **ModernFix**. When
optimize_pack_lookupis enabled, Random Optimization disables only ModernFix's overlapping ZIP index; ModernFix's other resource-pack optimizations and unrelated features remain active. - Changed **Quick Pack** integration. Random Optimization's compressed-pack index now takes precedence when
optimize_pack_lookupis enabled, and Quick Pack's replacement resource implementation is bypassed. In 1.4.0, Random Optimization disabled its own pack lookup optimization when Quick Pack was detected. - Preserved compatibility with resource-pack decorators such as **Fusion**.
- Server-only installations no longer produce Forge's red X for clients that do not have the mod installed.
## Configuration
- The existing
optimize_pack_lookupoption continues to control compressed-pack indexing and remains enabled by default. - Changing this option still requires a game restart.
## Other Changes
- Added automated coverage for compressed-pack indexing and the ModernFix/Quick Pack compatibility paths.
- Bumped the mod version from 1.4.0 to 1.5.0.
### Improved structure locate performance
Structure placements are now cached during locate checks, avoiding repeated registry lookups and placement-list construction. The cache is automatically invalidated whenever the active chunk generator state changes.
### Safer resource-pack lookups
The ZIP resource index is now initialized with proper synchronization and safely published as an immutable map. Closing a resource pack now releases the cached index without mutating data that may still be accessed by another thread.
### Reliable
lazy_dfu configurationThe
lazy_dfu option is now read during early Mixin bootstrap, ensuring that the DFU optimization is enabled or disabled before the affected Mixin is applied.The existing compatibility behavior for Quick Pack is also preserved: resource-pack lookup optimization is automatically disabled when Quick Pack is detected.
### Updated boat fall behavior
Backported modern boat fall-distance handling, including correct vertical-motion tracking, fall-distance accumulation, and reset behavior when landing.
### Maintenance
- Removed an unnecessary Forge event-bus registration.
- Bumped the project version from
1.3.0to1.4.0.
refmap