-
-
Notifications
You must be signed in to change notification settings - Fork 0
Spawner Types
A spawner type is one entry under TYPES in spawners.yml. It defines what the block looks
like, what it produces, and how fast.
TYPES:
ZOMBIE: # <- the type key, used by /spawner give
DISPLAY_NAME: '&dZombie Spawner' # name on the item and in menus
ENTITY_TYPE: ZOMBIE # mob spinning inside the block
HEAD_TEXTURE: '' # optional custom head for the menu icon
ICON_MATERIAL: ROTTEN_FLESH # fallback icon
BASE_ITEMS_PER_CYCLE: 1 # drop-table rolls per cycle per spawner
XP_PER_CYCLE: 3.7 # optional per-type XP override
DROPS:
ROTTEN_FLESH: # <- the loot key
MATERIAL: ROTTEN_FLESH
MIN: 1
MAX: 3
CHANCE: 1.0The type key is what players and admins actually type. Keep it short, uppercase and memorable. It is matched case-insensitively.
The loot key identifies a drop for filters and storage. It is normally the same as the material, and there is no reason to differ unless you want two entries producing the same material at different rates.
Say you want an Enderman spawner.
1. Add the type
TYPES:
ENDERMAN:
DISPLAY_NAME: '&5Enderman Spawner'
ENTITY_TYPE: ENDERMAN
HEAD_TEXTURE: ''
ICON_MATERIAL: ENDER_PEARL
BASE_ITEMS_PER_CYCLE: 1
DROPS:
ENDER_PEARL:
MATERIAL: ENDER_PEARL
MIN: 0
MAX: 1
CHANCE: 0.52. Price the drop so it can be sold:
SELL:
PRICES:
ENDER_PEARL: 22.03. Reload
/spawner reload
4. Verify
/spawner types
/spawner give <you> ENDERMAN 1
If ENDERMAN does not appear in /spawner types, check the console — an invalid ENTITY_TYPE
or a YAML indentation error is logged there, not in chat.
Work out what a type produces before it reaches players. Per minute, with the default 5-second interval (12 cycles):
items/min = 12 x BASE_ITEMS_PER_CYCLE x stack x CHANCE x ((MIN + MAX) / 2)
money/min = items/min x SELL_PRICE x multiplier
For the Enderman example above, at a 100-stack:
items/min = 12 x 1 x 100 x 0.5 x 0.5 = 300 pearls
money/min = 300 x 22.0 = $6,600
That is $396,000 per hour from one block. Probably too much — either drop the price, drop the
chance, or lower MAX_STACK_PER_BLOCK.
A quick sanity rule: decide what one maxed spawner should earn per hour on your server, then work backwards. It is far easier to loosen a tight economy later than to claw money back.
| Lever | Effect | Good for |
|---|---|---|
CHANCE |
Linear on output | Rare bonus drops |
MIN / MAX
|
Linear on output, via the average | Bulk staples |
BASE_ITEMS_PER_CYCLE |
Linear on the whole table | Making one mob type strictly better |
SELL_PRICE |
Linear on money only | Tuning value without touching output |
Prefer tuning price over output when you can — output is what players see and feel, and cutting it reads as a nerf far more loudly than a price change.
List as many as you like. Each is rolled independently.
PIGLIN:
DISPLAY_NAME: '&dPiglin Spawner'
ENTITY_TYPE: ZOMBIFIED_PIGLIN
ICON_MATERIAL: GOLD_NUGGET
BASE_ITEMS_PER_CYCLE: 1
DROPS:
ROTTEN_FLESH:
MATERIAL: ROTTEN_FLESH
MIN: 1
MAX: 2
CHANCE: 1.0
GOLD_NUGGET:
MATERIAL: GOLD_NUGGET
MIN: 1
MAX: 4
CHANCE: 0.85
GOLD_INGOT:
MATERIAL: GOLD_INGOT
MIN: 0
MAX: 1
CHANCE: 0.06Note that ENTITY_TYPE need not match the type key — the key is PIGLIN but the mob is
ZOMBIFIED_PIGLIN.
Set a price on the drop itself to override SELL.PRICES:
BLAZE_ROD:
MATERIAL: BLAZE_ROD
MIN: 1
MAX: 2
CHANCE: 1.0
SELL_PRICE: 25.0This is a global override, not a per-type one. Prices are resolved by material, so a
SELL_PRICE on any drop entry sets the price for that material everywhere. Two types cannot sell
the same material at different prices.
Both types and individual drops honour an ENABLED flag. It is not in the packaged file — add it
yourself:
BLAZE:
ENABLED: false # the whole type disappears from /spawner types
...
DROPS:
BLAZE_ROD:
ENABLED: false # this one drop stops generating
MATERIAL: BLAZE_RODA disabled type still has its already-placed spawners in the database, but they stop generating, because their definition can no longer be resolved. Re-enable the type and they resume, catching up on all the elapsed time at once. Prefer this over deleting a type outright.
HEAD_TEXTURE accepts a texture URL or a Base64 texture value, and controls the icon shown in
the main menu:
HEAD_TEXTURE: 'https://textures.minecraft.net/texture/d875eb45aca34a4d24c3dc1395fc020ccf37f825a17b054a22fd24b189c24c'Leave it empty to use the default mob head for ENTITY_TYPE. Sources like
minecraft-heads.com provide both formats. ICON_MATERIAL is used
when no head can be built.
| Symptom | Cause |
|---|---|
Type missing from /spawner types
|
Invalid ENTITY_TYPE, ENABLED: false, or a YAML error — check the console |
| Spawner generates nothing | Every drop has CHANCE: 0, or MAX: 0, or the filters are off, or the material hit STORAGE_CAP_PER_LOOT_KEY
|
| Item drops but cannot be sold | No price in SELL.PRICES and no SELL_PRICE on the drop |
| Wrong mob spins in the block |
ENTITY_TYPE does not match the type key — check whether that was deliberate |
| Way more loot than expected |
BASE_ITEMS_PER_CYCLE multiplies the entire table, and stack size multiplies it again |
- How It Works — the exact generation maths
- spawners.yml — every key in reference form
- Selling — prices and multipliers
Repository · Releases · Issues · Discord · MIT License
Getting started
Reference
Configuration
Features
Operations
Development