-
-
Notifications
You must be signed in to change notification settings - Fork 0
Storage and Filters
Every managed spawner owns a private, virtual container. This page covers the GUIs, every click, the filter system, XP, and hopper extraction.
Open a spawner by right-clicking it with an empty hand. Right-clicking while holding a matching spawner item stacks instead of opening.
right-click
|
v
+-----------+ chest +--------------+ hopper +-------------+
| MAIN MENU | ---------> | STORAGE MENU | ---------> | FILTER MENU |
+-----------+ <--------- +--------------+ <--------- +-------------+
back back
|
| Sell All
v
+------------------+
| SELL CONFIRM |
+------------------+
Default layout, 27 slots:
| Slot | Button | Click |
|---|---|---|
| 11 | Spawner Storage — chest | Opens storage. Lore lists the top stored materials. |
| 13 | Mob head | Sells all stored loot and claims stored XP in one action |
| 15 | Collect XP — experience bottle | Claims stored XP only |
The title shows the stack size and mob name, e.g. 250 Zombie Spawner. The mob head lore shows
how full storage is as a percentage.
The XP button is hidden when SETTINGS.XP_ENABLED is false, or when the button itself is
disabled in menus.yml.
A 54-slot paged inventory. The first 45 slots hold loot; the bottom row holds controls.
The menu refreshes itself once per second while it is open, so newly generated loot appears live without reopening.
| Click | Effect |
|---|---|
| Left-click | Pick the stack up onto your cursor |
| Right-click | Pick up half (rounded up) |
| Shift-left-click | Move the stack into your inventory; anything that does not fit stays |
| Shift-right-click (or middle-click) | Toggle that material's filter |
| Left-click with a full cursor | Put the cursor stack into storage |
| Right-click with a full cursor | Put a single item into storage |
| Shift-click from your inventory | Push that stack into storage |
Storage accepts items you put in, not just what the spawner generated — it doubles as an extra chest attached to the block. Items you deposit obey the same per-material cap.
| Slot | Button | Effect |
|---|---|---|
| 45 | Back | Return to the main menu |
| 46 | Filter Settings | Open the filter screen |
| 48 | Collect All | Move everything into your inventory |
| 49 | Previous Page | |
| 51 | Next Page | |
| 52 | Drop Loot | Drop this page's stored loot on the ground |
| 53 | Sell All | Open the sell confirmation |
All slots, materials, titles and lore are configurable in menus.yml.
Lists every drop defined by the spawner type, not just what is currently stored — so you can switch a drop off before it ever accumulates. Each icon shows its filter status and drop chance.
| Slot | Button | Effect |
|---|---|---|
| content | A drop | Click to toggle |
| 18 | Back | Return to storage |
| 25 | Enable All | Store every drop |
| 26 | Disable All | Store no drops |
A disabled material is:
- not generated — skipped during the cycle, so it never enters storage,
- not sold by Sell All, and not counted in the sell preview,
- not dropped by Drop Loot,
- not extracted by a hopper.
Anything already in storage when you disable a material stays there. You can still pick it up by hand; it just stops growing and stops selling.
Disabled keys are saved on the spawner row, so they survive restarts. They are per spawner, not per type or per player.
- Turn off rotten flesh on a zombie spawner so only iron accumulates.
- Turn everything off on a spawner you are about to move, so it does not fill up.
- Turn off a cheap bulk drop so the valuable one has the full per-material cap to itself.
Sell All never sells immediately. The confirmation screen shows:
- Total value — the payout at your current multiplier
- Category multiplier — the multiplier being applied
- Total items — how many items will be sold
| Slot | Button |
|---|---|
| 11 | Confirm Sell — green pane |
| 13 | Sell Summary — info icon, no action |
| 15 | Cancel — red pane, returns to storage |
Only materials that both have a price and are not filtered off are included. See Selling.
While SETTINGS.XP_ENABLED is true, spawners accumulate XP alongside items:
xp = cycles x XP_PER_CYCLE x stackAmount
XP_PER_CYCLE defaults to 3.7 and can be overridden per type. XP is stored as a decimal and
rounded to the nearest whole point when claimed.
Claim it from the Collect XP button, or from the mob head (which sells and claims in one click). XP goes straight into your experience bar; it is not dropped as orbs, so it cannot be stolen or lost.
XP is not capped — unlike items, there is no storage ceiling on it.
Each material is capped at SETTINGS.STORAGE_CAP_PER_LOOT_KEY (default 1,000,000). The cap is
per material, not per spawner: a zombie spawner can hold a million rotten flesh and a million
iron ingots at the same time.
At the cap, further generation of that material is silently discarded — nothing errors, nothing is logged. If a player reports that a spawner "stopped working", check its fullest material first.
The main menu's percentage indicator is the fastest way to spot this before it happens.
Off by default. Turn it on in spawners.yml:
SETTINGS:
HOPPER_EXTRACTION:
ENABLED: true
AMOUNT_PER_CYCLE: 64Place a hopper directly beneath a managed spawner. Before each generation cycle, stored loot flows down into it.
- Filtered-off materials are skipped.
- Per material, per cycle it moves
min(stored, material max stack size, AMOUNT_PER_CYCLE). - Extraction stops early for that cycle when the hopper fills.
- Items keep flowing into whatever the hopper feeds — chests, sorters, an autosell system.
There is no ownership check on the hopper. Anyone able to place a hopper under a spawner can drain it. On a survival server, leave this off unless your claim or protection plugin already guards the block below the spawner.
Opening storage requires passing the access check — the same one used for modifying and breaking:
-
SETTINGS.ALLOW_SPAWNER_STEAL: true→ everyone passes. -
ultimatevirtualspawner.admin.spawner→ passes. - You are the owner → passes.
- Otherwise the spawner's own
ACCESS_MODEdecides:PUBLICpasses,OWNER_ONLYandOWNER_AND_TEAMdo not.
Failing the check gives You do not have access to that spawner. See Permissions.
- menus.yml — customise every screen above
- Selling — prices, multipliers, the confirm flow
- sounds.yml — the sound played by each action here
Repository · Releases · Issues · Discord · MIT License
Getting started
Reference
Configuration
Features
Operations
Development