✨ Why admins love it
- One smart hopper per system → far fewer ticking blocks, lower server load.
- Remote routing across the same world with priorities, filters, round-robin/fill-first.
- Lag-aware batching, skips blocked/unloaded targets, optional bounded retry queue.
- Claim & trust built-in (or hook your region plugin); admin bypass supported.
- No commands needed for normal play — everything via a clear in-game GUI.
- Optional power system (free, redstone, or fuel chest → power units).
Demo:
YouTube – Quick Tour
Requirements & Compatibility
- Hard dependency: Vault (for economy; needed for smelter unlocks & upgrades).
- Soft dependencies:
- Servers: Paper/Spigot 1.20+ (API 1.21 targeted).
- Regions: Works with GriefPrevention/WorldGuard; ships a lightweight internal claim system if absent.
What it does (Core Features)
- Remote Item Routing
Link one Improved Hopper to many containers in the same world. Configure:
- Per-target priority (higher first)
- Whitelist/blacklist item filters
- Distribution: Round-robin or Fill-first
- Full In-Game GUI
Right-click: manage links, filters, power, trust, stats, simulate routes, toggle visuals.
- Chat Search for Filters
Click the compass, type to search; Esc or “cancel” to exit.
- Power Modes
- None: free operation
- Redstone: requireRedstonePower or pauseWhenPowered
- Fuel: link a Fuel Chest; fuel items convert to Power Units based on distance & amount
- Trust & Claims
Hoppers must be claimed; owner can /trust users; admins bypass. Crafted nodes auto-claim.
- Lag-Aware Batching
Per-tick caps & smart skipping of empty inputs/blocked/unloaded targets.
- Visual Tools
Particle beams to targets; transfer trails; filter-focus visualization.
- Built-in Smelter (optional)
Virtual smelting with Vault unlock & upgrades.
- Craftable
Recipes configurable for both Improved Hopper and Fuel Chest.
️ Installation
- Place the JAR in /plugins.
- Ensure Vault is installed and an economy plugin is active.
- (Optional) Install DecentHolograms, LuckPerms, and your Skyblock plugin.
- Start server. Edit /plugins/ImprovedHoppers/config.yml if desired.
- /improvedhoppers reload to apply changes.
⚡ Quick Start (Player)
- Craft an Improved Hopper (and a Fuel Chest if using Fuel mode).
- Place & Claim the hopper (crafted nodes auto-claim).
- Open GUI → Add Targets → click containers to link
Tip: /improvedhoppers wand for fast multi-link.
- Set filters, priorities, and distribution mode.
- Choose Power Mode. If Fuel, link Fuel Chest and insert fuel.
- (Optional) Add redstone depending on redstone settings.
⌨️ Commands
Command
Description
Permission
/improvedhoppers Show subcommands
(none)
/improvedhoppers wand Get link wand for multi-linking improvedhoppers.user.wand
/improvedhoppers settings Open settings (node or admin view) improvedhoppers.user.settings / improvedhoppers.admin.settings
/improvedhoppers remote Remote controller (view/manage anywhere) improvedhoppers.user.remote
/improvedhoppers reload Reload config improvedhoppers.admin.reload
/improvedhoppers power apply Re-apply power settings improvedhoppers.admin
Permissions
User
- improvedhoppers.user.wand (default: true)
- improvedhoppers.user.settings (default: true)
- improvedhoppers.user.remote (default: true)
- improvedhoppers.user.* (default: true)
Admin
- improvedhoppers.admin (default: op) — moderation bypass
- improvedhoppers.admin.reload (default: op)
- improvedhoppers.admin.settings (default: op)
- improvedhoppers.admin.* (default: op)
Limits (override config)
- improvedhoppers.limit.player.<n>
- improvedhoppers.limit.island.<n>
- improvedhoppers.limit.links.<n>
- improvedhoppers.limit.trusted.<n>
- improvedhoppers.limit.filter.<n>
- improvedhoppers.hopper.power.<n>
Crafting
Improved Hopper — shaped recipe
(all items configurable)
Code (Text):
I C I
R H R
I C I
Fuel Chest — configurable (e.g.,
coal + chest)
See recipes.yml for exact materials, names, and NBT settings.
⚙️ Config Highlights (sample)
Code (Text):
general:
storage: YAML # YAML | SQLITE
locale: en_US
holograms:
enabled: true
update_ticks: 20
particles:
enabled: true
transfer_trail: true
filter_focus: true
claims:
required: true
auto_claim_on_craft: true
admin_bypass: true
routing:
link:
max_distance: 256
owner_must_be_online: false
cleanup_interval_ticks: 200
distribution: ROUND_ROBIN # ROUND_ROBIN | FILL_FIRST
filters:
default_mode: WHITELIST # WHITELIST | BLACKLIST
per_hopper_max: 32
transfer:
interval_ticks: 10
per_tick_item_cap: 256
suction:
radius: 2.5
enabled: true
cost_per_item: 0
retry_queue:
enabled: true
max_entries: 2048
power:
mode: NONE # NONE | REDSTONE | FUEL
redstone:
require_power: false
pause_when_powered: true
fuel:
enabled: false # flip to true to use fuel
capacity: 10000
regen_per_tick: 0
distance_cost_per_block: 0.25
amount_cost_per_item: 0.05
auto_refuel: true
link_limit: 1
max_link_distance: 16
fuels:
COAL: 160
CHARCOAL: 160
BLAZE_ROD: 240
smelter:
enabled: true
base_cook_ticks: 200
queue_size: 128
unlock_cost: 1000 # Vault currency
upgrade_costs:
level_2: 2500
level_3: 5000
limits:
per_player: 20
per_island: 50
links_per_material: 4
trusted_slots: 8
storage:
sqlite:
file: data/ihoppers.db
Note: Vanilla InventoryMoveItemEvent/InventoryPickupItemEvent are
cancelled for claimed nodes to avoid conflicts.
Routing Logic (at a glance)
- Pull up to per_tick_item_cap from source inventory.
- Filter items (whitelist/blacklist).
- Order targets by priority, remove unloaded or blocked.
- Distribution:
- Round-robin: cycle targets per item type.
- Fill-first: fill the first valid target until it can’t accept more.
- Power accounting (if enabled): distance & amount → PU cost.
- Apply retry queue if a move fails and queue is enabled.
Performance Notes
- Batches and caps per tick to keep TPS smooth.
- Skips empty sources & blocked/unloaded targets to save time.
- Optional distance-scaled power discourages extreme cross-map links.
- Visualizer is per-player; filter-focused trails reduce particle spam.
Compatibility & Hooks
- Hooks: Vault, LuckPerms, DecentHolograms, SuperiorSkyblock2, BentoBox, GriefPrevention, WorldGuard.
- Ships internal claims if none detected.
Admin Tools
- Look at a node and run /improvedhoppers settings (admin view) to live-tune:
link distance, suction/transfer caps, fuel values, smelter rates, limits, particles/holograms, world allowlists, recipes, and more.
API & Events (for developers)
Events (examples)
- HopperSorterTransferEvent — per successful transfer
- HopperSorterFuelConsumeEvent — on fuel → power conversion
- HopperSorterClaimEvent — when ownership/claims change
- Overflow & alert hooks
Example Listener
Code (Text):
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onTransfer(HopperSorterTransferEvent e) {
Player owner = e.getOwner();
ItemStack stack = e.getItem();
Location from = e.getSource();
Location to = e.getTarget();
int moved = e.getAmount();
// e.getCostPU() if fuel mode; e.isSimulated() for dry runs
if (owner != null && owner.isOnline()) {
owner.sendActionBar(Component.text("§aMoved " + moved + "x " + stack.getType() + " → " + pretty(to)));
}
}
Minimal API sketches available for fuel providers & virtual targets.
Storage & Persistence
- YAML (default) or SQLite.
- Persists node power, names, particle colors, links, smelter state safely.
❓ FAQ
Q:
Can I disable the power system?
A: Yes. It’s
off by default; set power.fuel.enabled: true to use Fuel.
Q:
Can players manage hoppers remotely?
A: Yes. /improvedhoppers remote opens a network overview or the node GUI.
Q:
Do vanilla hopper pulls still happen on claimed nodes?
A: No. We cancel vanilla move/pickup events for claimed nodes to prevent conflicts.
Troubleshooting
- No transfers happening → Check claims/ownership and power mode.
- Hologram missing → Install/enable DecentHolograms and ensure holograms.enabled: true.
- Skyblock limits ignored → Ensure SSB2/BentoBox present; confirm LuckPerms dyn-limits if using permission overrides.
- High distance cost → Lower power.fuel.distance_cost_per_block or increase capacity.
![[IMG]](//proxy.spigotmc.org/57e7cc0d29d4ad0efd8380e1955934f0c5f805c4/68747470733a2f2f6273746174732e6f72672f7369676e6174757265732f62756b6b69742f496d70726f766564486f70706572732e737667)