Skip to content

spawners.yml

BeestoXd edited this page Aug 15, 2026 · 1 revision

spawners.yml

Spawner behaviour, anti-ESP, sell prices and drop tables. This is the file you will spend the most time in.

Four top-level sections: SETTINGS, ANTI_ESP, SELL, TYPES.

Everything here is picked up by /spawner reload, with one caveat noted under GENERATION_INTERVAL_SECONDS.


SETTINGS

SETTINGS:
  ENABLED: true
  ACCESS_MODE: OWNER_ONLY
  ALLOW_SPAWNER_STEAL: false
  GENERATION_INTERVAL_SECONDS: 5
  PROCESS_ONLY_LOADED_CHUNKS: true
  REQUIRE_PLAYER_NEARBY: false
  PLAYER_NEARBY_RADIUS: 16
  MAX_STACK_PER_BLOCK: 100000
  STORAGE_CAP_PER_LOOT_KEY: 1000000
  DROP_ON_BREAK_IF_INVENTORY_FULL: true
  REQUIRE_SILK_TOUCH: true
  CANCEL_MOB_SPAWN: true
  XP_ENABLED: true
  XP_PER_CYCLE: 3.7
  HOPPER_EXTRACTION:
    ENABLED: false
    AMOUNT_PER_CYCLE: 64
Key Type Default Description
ENABLED boolean true Master switch. false disables the whole spawner system — no generation, no GUIs, no placing. Existing data is untouched.
ACCESS_MODE enum OWNER_ONLY Default access for newly placed spawners. See below.
ALLOW_SPAWNER_STEAL boolean false true lets anyone open, modify and break any managed spawner, overriding ACCESS_MODE.
GENERATION_INTERVAL_SECONDS int 5 Seconds between generation cycles. Minimum 1.
PROCESS_ONLY_LOADED_CHUNKS boolean true Skip spawners in unloaded chunks. Their elapsed time still accrues.
REQUIRE_PLAYER_NEARBY boolean false Only generate when a player is within PLAYER_NEARBY_RADIUS.
PLAYER_NEARBY_RADIUS int 16 Blocks, used by the setting above. Minimum 1.
MAX_STACK_PER_BLOCK long 100000 Ceiling for one spawner block. Minimum 1.
STORAGE_CAP_PER_LOOT_KEY long 1000000 Ceiling per material in a spawner's storage. Minimum 1.
DROP_ON_BREAK_IF_INVENTORY_FULL boolean true Drop spawner items on the ground when the breaker's inventory is full. false retries the inventory instead.
REQUIRE_SILK_TOUCH boolean true Require a Silk Touch pickaxe to break and collect spawners — including vanilla ones.
CANCEL_MOB_SPAWN boolean true Prevent managed spawners from spawning real mobs.
XP_ENABLED boolean true Generate and allow collection of XP.
XP_PER_CYCLE double 3.7 XP per cycle, per spawner in the stack. Overridable per type.
HOPPER_EXTRACTION.ENABLED boolean false Pull stored loot into a hopper directly under the spawner.
HOPPER_EXTRACTION.AMOUNT_PER_CYCLE int 64 Items moved per material, per cycle. Also capped by the material's max stack size.

ACCESS_MODE

Applies to non-owners who do not hold ultimatevirtualspawner.admin.spawner.

Value Non-owner can open / modify / break
OWNER_ONLY no
OWNER_AND_TEAM no — there is no team system yet, so this behaves like OWNER_ONLY
PUBLIC yes

The mode is stored per spawner, snapshotted at placement time. Changing this setting affects newly placed spawners only; existing ones keep whatever they were placed with.

Opening, modifying and breaking share a single check — there is no read-only tier.

GENERATION_INTERVAL_SECONDS

Higher values are cheaper and pay out in larger lumps; the long-run total is identical, because the drop maths multiplies by the number of elapsed cycles.

Reload caveat: the repeating task keeps the period it was created with until the server restarts. After a reload the value is used for the catch-up maths — so output rates change immediately — but the task still fires on the old rhythm.

REQUIRE_SILK_TOUCH

Applies to all spawners, vanilla ones included: without Silk Touch, breaking any spawner is cancelled with SPAWNER.SILK_TOUCH_REQUIRED.

Exemptions are Creative mode and ultimatevirtualspawner.spawner.bypass. Being an operator is not in itself an exemption, although ops hold that node by default.

CANCEL_MOB_SPAWN

true (recommended) stops managed spawners producing entities, in three layers — see How It Works. The third layer writes maxNearbyEntities = 0 into the block itself, so the spawner stays inert across restarts and even after the plugin is removed. The mob inside the block still spins visually, as usual.

false lets managed spawners spawn real mobs in addition to generating virtual loot. That is almost never what you want.

HOPPER_EXTRACTION

Place a hopper directly beneath a managed spawner and stored loot flows into it automatically, before each generation cycle.

  • Filtered-off materials are skipped.
  • Per material, per cycle it moves min(stored, maxStackSize, AMOUNT_PER_CYCLE).
  • Extraction stops early for the cycle once the hopper is full.
  • There is no ownership check on the hopper. Anyone who can place a hopper under a spawner can drain it. Leave this false on a survival server unless your claim plugin protects the block below.

ANTI_ESP

ANTI_ESP:
  ENABLED: true
  REVEAL_RADIUS: 7
  OWNER_SEE_RADIUS: 9
  TRACKING_RADIUS: 128
  REQUIRE_LINE_OF_SIGHT: true
  STAFF_BYPASS_PERMISSION: ultimatevirtualspawner.admin.spawner.seeall
  CAMOUFLAGE:
    OVERWORLD: DEEPSLATE
    NETHER: NETHERRACK
    THE_END: END_STONE
Key Type Default Description
ENABLED boolean true Master switch for spawner concealment.
REVEAL_RADIUS int 7 Distance at which a spawner becomes visible to a non-owner. Minimum 1.
OWNER_SEE_RADIUS int 9 Reveal distance for the owner. Clamped to at least REVEAL_RADIUS.
TRACKING_RADIUS int 128 How far out spawners are considered at all. Clamped to at least REVEAL_RADIUS + 8.
REQUIRE_LINE_OF_SIGHT boolean true Also require an unobstructed view, not just proximity.
STAFF_BYPASS_PERMISSION string ultimatevirtualspawner.admin.spawner.seeall Node that disables concealment for its holder.
CAMOUFLAGE.OVERWORLD material DEEPSLATE Block sent instead of the spawner.
CAMOUFLAGE.NETHER material NETHERRACK
CAMOUFLAGE.THE_END material END_STONE

Full explanation and tuning advice: Anti-ESP.


SELL

SELL:
  ENABLED: true
  MULTIPLIER: 1.0
  PERMISSION_MULTIPLIERS:
    ultimatevirtualspawner.sell.multiplier.vip: 1.25
    ultimatevirtualspawner.sell.multiplier.mvp: 1.5
    ultimatevirtualspawner.sell.multiplier.elite: 2.0
  PRICES:
    PORKCHOP: 2.5
    BEEF: 2.5
    LEATHER: 3.0
    ROTTEN_FLESH: 0.75
    IRON_INGOT: 12.0
    CARROT: 1.5
    POTATO: 1.5
    STRING: 2.0
    SPIDER_EYE: 3.5
    BONE: 2.0
    ARROW: 1.25
    GUNPOWDER: 4.0
    GOLD_NUGGET: 1.5
    GOLD_INGOT: 13.5
    BLAZE_ROD: 18.0
    POPPY: 0.5
Key Type Default Description
ENABLED boolean true Master switch for selling. Also requires a working economy.
MULTIPLIER double 1.0 Applied to every payout. Negative values are clamped to 0.
PERMISSION_MULTIPLIERS map 3 examples <permission>: <multiplier>. Only the highest one a player holds applies, multiplied on top of MULTIPLIER.
PRICES map 16 materials <MATERIAL>: <price per single item>.

A material with no price cannot be sold. It stays in storage, it is not counted in the sell preview, and Sell All ignores it. That is the intended way to make something collect-only.

Unknown material names are logged as [Worth] Unknown material in SELL.PRICES: … and skipped. Prices of 0 or less are dropped, which is equivalent to omitting them.

A per-drop SELL_PRICE inside a TYPES entry overrides the value here for that material, globally. See Selling.


TYPES

Each key under TYPES is a spawner type, referenced by /spawner give <player> <TYPE>.

TYPES:
  ZOMBIE:
    DISPLAY_NAME: '&dZombie Spawner'
    ENTITY_TYPE: ZOMBIE
    HEAD_TEXTURE: ''
    ICON_MATERIAL: ROTTEN_FLESH
    BASE_ITEMS_PER_CYCLE: 1
    DROPS:
      ROTTEN_FLESH:
        MATERIAL: ROTTEN_FLESH
        MIN: 1
        MAX: 3
        CHANCE: 1.0
      IRON_INGOT:
        MATERIAL: IRON_INGOT
        MIN: 0
        MAX: 1
        CHANCE: 0.05

Type keys

Key Type Default Description
ENABLED boolean true Set false to switch a type off without deleting it. Not present in the default file — add it yourself.
DISPLAY_NAME string &d<Key> Spawner Shown on the item and in menus. Colour codes supported.
ENTITY_TYPE Bukkit EntityType the type key The mob shown spinning inside the block. An invalid value logs a warning and the type is skipped.
HEAD_TEXTURE string '' Custom head texture URL or Base64 for the menu icon. Empty = default mob head.
ICON_MATERIAL material SPAWNER Fallback icon material.
BASE_ITEMS_PER_CYCLE long 1 Drop-table rolls per cycle, per spawner in the stack. Minimum 1.
XP_PER_CYCLE double SETTINGS.XP_PER_CYCLE Per-type XP override.
DROPS section The drop table.

Drop entries

Each key under DROPS is a loot key — the identity used for filters and storage.

Key Type Default Description
ENABLED boolean true Set false to disable one drop without deleting it.
MATERIAL material STONE What is produced.
MIN long 0 Minimum per roll. Negative values clamp to 0.
MAX long MIN Maximum per roll. Clamped to at least MIN.
CHANCE double 1.0 Probability per roll, 0.01.0. Values outside the range are clamped.
SELL_PRICE double Optional. Overrides SELL.PRICES for this material, everywhere.

Output per cycle for one entry is cycles x BASE_ITEMS_PER_CYCLE x stackAmount x CHANCE x ((MIN + MAX) / 2) — see How It Works for the exact rounding rule, and Spawner Types for a full walkthrough of adding your own.

Default types

PIG, COW, ZOMBIE, SPIDER, SKELETON, CREEPER, PIGLIN (entity ZOMBIFIED_PIGLIN), BLAZE, IRON_GOLEM.

See also

Clone this wiki locally