InventoryAdvancementAccelerator

Quick rating

InventoryAdvancementAccelerator

No reviews yet

invadvopt is a dedicated-server NeoForge mod for Minecraft 1.21.1. It accelerates the hot inventory_changed advancement trigger without replacing Minecraft's predicate or award logic. Clients do not install it.

Bug Fixes
Mod Loaders
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Unsupported
Server Required

About

Project Details

Type
Mod
License
MIT License
Latest Version
invadvopt-1.21.1-1.0.1.jar
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

🚀 Inventory Advancement Accelerator

When a server has a large number of advancements, data packs, or online players, vanilla Minecraft frequently iterates through the relevant advancement conditions. This mod creates a per-player item index and filters only the conditions that may match the current inventory change, while continuing to use Minecraft’s vanilla predicates and reward logic for the final evaluation.

Simply put: fewer unnecessary checks, while preserving vanilla behavior. ⚡

🚀 Significantly Fewer Candidate Checks

Relevant advancement conditions are located based on the items that actually changed in the player’s inventory, avoiding a full scan of every listener each time.

🎯 Precise Vanilla Evaluation

Final matching is still performed by Minecraft’s vanilla TriggerInstance, ItemPredicate, and context predicates. The vanilla reward logic is not replaced.

🧩 Support for Complex Item Conditions

Correctly handles item counts, tags, data components, empty-slot changes, item removal, and combinations of multiple conditions.

🖥️ Server-Side Installation Only

Clients do not need to install this mod. Vanilla clients can connect to the server directly.

🛡️ Safe Fallback Mechanism

When unknown conditions, asynchronous calls, resource reloads, Mixin injection failures, or internal exceptions are encountered, the mod preserves or falls back to the vanilla processing flow.

🔍 Shadow Verification and Circuit-Breaker Protection

By default, the mod samples and compares optimized results against full evaluation results. If a mismatch is detected, the full result is used, and the mod can automatically disable the affected index or switch back to vanilla mode.

📊 Built-In Runtime Metrics

View trigger counts, candidate reduction ratios, full-scan counts, fallback reasons, latency distributions, and the most active players and items.

💾 No World Data Modifications

The mod does not add player attachments, capabilities, save-format changes, or network channels. Removing the mod does not require save migration.

The project includes a deterministic candidate-layer microbenchmark with:

  • 5,000 item-condition listeners
  • 1,000 unique item IDs
  • 50 simulated players
  • One item type changed per player per operation

Test results:

  • Approximately 5.014 candidate conditions generated per operation on average
  • Approximately 99.9% reduction in candidate count
  • Approximately 4.04× speedup in candidate-layer testing

⚠️ These results are from a microbenchmark of the candidate-filtering layer and do not mean that every server will receive the same MSPT improvement. Actual performance depends on data packs, advancement count, online player count, and the modpack environment.

After the first startup, NeoForge generates:

config/invadvopt-common.toml

The safe EXACT mode is enabled by default:

mode = "EXACT"
enabled = true
shadowVerifyRate = 0.01
periodicFullScanTicks = 200
fallbackOnUnknownPredicate = true
fallbackOnOffThreadCall = true
disableOnMismatch = true
metricsEnabled = true
debugLogging = false

To disable the optimization immediately, switch the mode to VANILLA. You do not need to uninstall the mod or restart the server.

The following commands require server administrator permission level 4:

/invadvopt status
/invadvopt stats
/invadvopt verify
/invadvopt mode vanilla
/invadvopt mode exact
/invadvopt reset-stats

🎮 Minecraft 1.21.1

🔧 NeoForge 21.1.x

☕ Java 21

🖥️ Dedicated Server

👤 No Client Installation Required

Place the mod JAR in the server’s mods folder and start the server.

The mod is specifically designed with hybrid NeoForge/Bukkit/Paper server environments in mind, including servers such as Youer:

  • Does not use @Overwrite
  • Does not depend on Bukkit internals
  • Does not use Unsafe or ClassLoader hacks
  • Automatically preserves vanilla logic when Mixin targets change
  • Provides sampled verification and circuit-breaker protection for possible runtime differences

The following similar advancement-optimization mods are incompatible with this mod:

  • achiopt
  • cerulean
  • icterine

When a conflict is detected, this mod logs an error and preserves the vanilla trigger-processing flow.

This mod is especially suitable for:

📚 Servers with large data packs

🏆 Modpacks with a large number of custom advancements

👥 Multiplayer survival servers

🧱 Modded servers that frequently modify player inventories

📉 Servers seeking to reduce advancement-evaluation overhead

You can revert at any time by:

  • Using /invadvopt mode vanilla to switch back to vanilla mode
  • Setting mode = "VANILLA" in the configuration file
  • Stopping the server and removing the mod JAR directly

Real-World Test Results on a Server with 380 Mods:

alt text alt text

🚀 Inventory Advancement Accelerator

When a server has a large number of advancements, data packs, or online players, vanilla Minecraft frequently iterates through the relevant advancement conditions. This mod creates a per-player item index and filters only the conditions that may match the current inventory change, while continuing to use Minecraft’s vanilla predicates and reward logic for the final evaluation.

Simply put: fewer unnecessary checks, while preserving vanilla behavior. ⚡

🚀 Significantly Fewer Candidate Checks

Relevant advancement conditions are located based on the items that actually changed in the player’s inventory, avoiding a full scan of every listener each time.

🎯 Precise Vanilla Evaluation

Final matching is still performed by Minecraft’s vanilla TriggerInstance, ItemPredicate, and context predicates. The vanilla reward logic is not replaced.

🧩 Support for Complex Item Conditions

Correctly handles item counts, tags, data components, empty-slot changes, item removal, and combinations of multiple conditions.

🖥️ Server-Side Installation Only

Clients do not need to install this mod. Vanilla clients can connect to the server directly.

🛡️ Safe Fallback Mechanism

When unknown conditions, asynchronous calls, resource reloads, Mixin injection failures, or internal exceptions are encountered, the mod preserves or falls back to the vanilla processing flow.

🔍 Shadow Verification and Circuit-Breaker Protection

By default, the mod samples and compares optimized results against full evaluation results. If a mismatch is detected, the full result is used, and the mod can automatically disable the affected index or switch back to vanilla mode.

📊 Built-In Runtime Metrics

View trigger counts, candidate reduction ratios, full-scan counts, fallback reasons, latency distributions, and the most active players and items.

💾 No World Data Modifications

The mod does not add player attachments, capabilities, save-format changes, or network channels. Removing the mod does not require save migration.

The project includes a deterministic candidate-layer microbenchmark with:

  • 5,000 item-condition listeners
  • 1,000 unique item IDs
  • 50 simulated players
  • One item type changed per player per operation

Test results:

  • Approximately 5.014 candidate conditions generated per operation on average
  • Approximately 99.9% reduction in candidate count
  • Approximately 4.04× speedup in candidate-layer testing

⚠️ These results are from a microbenchmark of the candidate-filtering layer and do not mean that every server will receive the same MSPT improvement. Actual performance depends on data packs, advancement count, online player count, and the modpack environment.

After the first startup, NeoForge generates:

config/invadvopt-common.toml

The safe EXACT mode is enabled by default:

mode = "EXACT"
enabled = true
shadowVerifyRate = 0.01
periodicFullScanTicks = 200
fallbackOnUnknownPredicate = true
fallbackOnOffThreadCall = true
disableOnMismatch = true
metricsEnabled = true
debugLogging = false

To disable the optimization immediately, switch the mode to VANILLA. You do not need to uninstall the mod or restart the server.

The following commands require server administrator permission level 4:

/invadvopt status
/invadvopt stats
/invadvopt verify
/invadvopt mode vanilla
/invadvopt mode exact
/invadvopt reset-stats

🎮 Minecraft 1.21.1

🔧 NeoForge 21.1.x

☕ Java 21

🖥️ Dedicated Server

👤 No Client Installation Required

Place the mod JAR in the server’s mods folder and start the server.

The mod is specifically designed with hybrid NeoForge/Bukkit/Paper server environments in mind, including servers such as Youer:

  • Does not use @Overwrite
  • Does not depend on Bukkit internals
  • Does not use Unsafe or ClassLoader hacks
  • Automatically preserves vanilla logic when Mixin targets change
  • Provides sampled verification and circuit-breaker protection for possible runtime differences

The following similar advancement-optimization mods are incompatible with this mod:

  • achiopt
  • cerulean
  • icterine

When a conflict is detected, this mod logs an error and preserves the vanilla trigger-processing flow.

This mod is especially suitable for:

📚 Servers with large data packs

🏆 Modpacks with a large number of custom advancements

👥 Multiplayer survival servers

🧱 Modded servers that frequently modify player inventories

📉 Servers seeking to reduce advancement-evaluation overhead

You can revert at any time by:

  • Using /invadvopt mode vanilla to switch back to vanilla mode
  • Setting mode = "VANILLA" in the configuration file
  • Stopping the server and removing the mod JAR directly

Real-World Test Results on a Server with 380 Mods:

in-game test spark

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works