All versions
1.1.1
Release
ImprovedHoppers 1.1.1last year 99
Compatibility
Minecraft: Java Edition
1.21
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
Platforms
Bukkit
Paper
Changes
ImprovedHoppers v1.1.1 β Performance & Stability Update
This update focuses on performance optimizations, caching improvements, and safer handling of unloaded chunks, ensuring smoother operation and reduced server load.
π Highlights
Caching Enhancements
- Cached transfer task rate lookups, transferable item checks, and smelt/fuel settings.
- Cached disabled world configs, link distance checks, GUI particle colors, and particle color lookups.
- Cached suction entity buckets, smelter values, hopper filter totals, and experience task nodes.
- Added per-tick link resolution cache for transfer tasks.
- Integrated primitive
LongHashSetand long maps for efficient XP orb handling.
Performance Optimizations
- Optimized XP orb scanning and bucketing for experience hoppers.
- Limited XP searches to boundary chunks to reduce overhead.
- Batched hopper movement stat updates.
- Avoided hopper holder lookups and simplified inventory detection.
- Used live block states for inventories to improve accuracy.
Stability & Compatibility
- Guarded hopper transfers and particle rendering against unloaded chunks.
- Prevented eager chunk loads when resolving containers or handling XP orbs.
- Adjusted chunk loading behavior in transfer tasks.
- Refined hopper activation checks.
- Adjusted internals for Java 8 compatibility.
User Experience
- Return to the filter submenu automatically after linking a single item.
- Experience bottles are now returned when breaking hoppers.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TqOuB4ae:Ob4gAVYF"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TqOuB4ae:Ob4gAVYF"
}

