Skip to content
RitomasssCommunity
Product documentation

NexaSpawners Documentation

NexaSpawners is a virtual spawner economy plugin that keeps spawners visible while moving production, storage, XP, selling, boosters and management into configurable systems.

21Java target
Paper/FoliaServer target
SQL/YAMLStorage mode
Vault + PAPIHook posture

Overview#

Product purpose, target audience, main systems, dependencies and quick links.

Quick links: Installation, First Setup, Commands, Permissions, Configuration, GUI, Placeholders, Storage, Integrations, Common Setups, Troubleshooting, Changelog and Support.

What is NexaSpawners?#

A lag-conscious virtual spawner platform with storage, selling, boosters, corruption, ownership, trust and admin tooling.

Who is it for?#

SMP, Lifesteal and SkyBlock servers that need scalable spawner economies.

Supported server types#

SMP, Lifesteal, SkyBlock, Prison and economy servers.

Main features#

  • Virtual production
  • Spawner storage
  • XP and selling
  • Boosters
  • Corruption protection
  • Ownership and trust
  • Setup presets
  • Admin inspection
  • Product Positioning
  • Implemented Core
  • Virtual Spawner Engine
  • Storage, Selling And Economy

Dependencies#

  • Java 21
  • Paper-compatible server
  • Vault optional
  • PlaceholderAPI optional
  • MiniPlaceholders optional

Installation#

Installation gets the plugin to boot. First Setup prepares it for production use.

Do not replace plugin jars while the server is running. Always make a backup before updating.
Download the latest NexaSpawners jar from the official buyer/download source.
Stop the server before replacing the jar.
Upload the jar to /plugins.
Start the server once and confirm the plugin folder was generated.
Configure license, storage and core files listed in the Configuration section.
Restart the server and run the main status/admin command.

First Setup#

Recommended first configuration pass after the plugin has generated its files.

Make one change at a time, reload or restart, then test the player workflow with a real account.

Setup checklist#

  1. Choose modules
  2. Apply a setup preset
  3. Configure storage and sell values
  4. Set trust and ownership rules
  5. Give player/admin permissions
  6. Test place, collect and sell flows

Production notes#

  • Give permissions through LuckPerms or your permission manager.
  • Keep backups of YAML files and database tables.
  • Use a staging server before large updates.
  • Do not claim Folia or network support unless the full setup has been tested.

Commands#

Commands, permissions, and usage examples.

Command entries are read from this product's plugin.yml.
/spawnerCommand
Description

Main NexaSpawners command.

Permission

Not declared in plugin.yml

Example

/spawner

/nexaspawnersCommand
Description

Admin NexaSpawners command.

Permission

Not declared in plugin.yml

Example

/nexaspawners

Permissions#

Permission nodes are based on plugin.yml. Assign admin and bypass permissions carefully.

/lp group admin permission set nexaspawners.admin true
/lp group default permission set nexaspawners.use true
nexaspawners.use

Allows using player spawner actions.

Default: truePlayers
nexaspawners.admin

Allows administrative NexaSpawners commands.

Default: opOwner/Admin
nexaspawners.admin.bypass

Bypasses owner, trust and protection checks.

Default: opOwner/Admin
nexaspawners.reload

Allows reloading NexaSpawners.

Default: opOwner/Admin
nexaspawners.give

Allows giving spawners, boosters and sell tools.

Default: opOwner/Admin
nexaspawners.globalbooster

Allows starting and clearing global boosters.

Default: opOwner/Admin
nexaspawners.personalbooster

Allows applying personal boosters directly to players.

Default: opOwner/Admin
nexaspawners.panel

Allows opening the admin spawner panel.

Default: opOwner/Admin
nexaspawners.setup

Allows opening setup wizard and applying presets.

Default: opOwner/Admin
nexaspawners.editor

Allows opening the configuration editor surface.

Default: opOwner/Admin
nexaspawners.inspect

Allows inspecting spawner internals in-game.

Default: opOwner/Admin
nexaspawners.export

Allows exporting loaded spawner reports.

Default: opOwner/Admin
nexaspawners.seasonreset

Allows running guarded seasonal reset tools.

Default: opOwner/Admin
nexaspawners.sell

Allows selling virtual spawner storage.

Default: truePlayers
nexaspawners.sellnotify

Allows toggling personal sell notifications.

Default: truePlayers
nexaspawners.collect

Allows collecting virtual spawner storage and XP.

Default: truePlayers
nexaspawners.leaderboard

Allows viewing spawner economy leaderboards.

Default: truePlayers
nexaspawners.trust

Allows managing trusted players.

Default: truePlayers

Configuration#

Configuration YAML files below contain short bundled default excerpts, not full files. Message YAML is documented only in Messages & Language.

Validate YAML indentation before restarting the server.
boosters.yml short excerpt, not full file

Plugin-specific YAML settings used by this product.

Short YAML preview only. This block shows selected lines from boosters.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from boosters.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
limits:
  # 0 or lower makes active booster slots unlimited.
  max-active-per-spawner: 3
  per-type:
    iron_golem: 4

application:
  # PER_STACK consumes one booster item per internal spawner stack.
  # FLAT consumes one booster item regardless of stack count.
  item-cost-mode: "PER_STACK"

global:
  enabled: true
  # 0 or lower makes global booster slots unlimited.
  max-active: 3
  allow-duplicate-types: false

personal:
  enabled: true
  max-active-per-player: 3
  allow-duplicate-types: false
  persist: true
  commands:
    give-personal: true

boosters:
  autosell:
    type: "AUTOSELL"
    multiplier: 1.0
    duration-seconds: 1800
    rarity: "EPIC"
    stackable: false
    item:
      material: "EMERALD"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/boosters.yml to review every setting.
# ...
Top-level keys

limits, application, global, personal, boosters, autosell

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

config.yml short excerpt, not full file

Main runtime settings, license, modules, limits, storage and feature behavior.

Short YAML preview only. This block shows selected lines from config.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from config.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
License-key: "LICENSE"

color-format: "minimessage"
debug: false

server:
  supported-modes:
    - VIRTUAL
    - CLASSIC
  default-mode: "VIRTUAL"
  disable-vanilla-spawner-spawns-near-virtual-spawners: true

production:
  tick-interval-seconds: 5
  max-offline-seconds: 43200
  max-productions-per-tick: 720
  max-spawners-per-cycle: 0
  max-spawners-per-chunk-per-cycle: 0
  round-robin: true
  region-dispatch: true
  save-only-when-dirty: true
  offline-production: true

mob-nerfing:
  slime-split:
    enabled: false
    only-near-registered-spawners: true
    radius-blocks: 8
  spawned-mobs:
    enabled: false
    only-near-registered-spawners: true
    radius-blocks: 8
    disable-ai: false
    disable-pickup: false
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/config.yml to review every setting.
# ...
Top-level keys

License-key, color-format, debug, server, production, mob-nerfing

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

corruption.yml short excerpt, not full file

Plugin-specific YAML settings used by this product.

Short YAML preview only. This block shows selected lines from corruption.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from corruption.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
enabled: true
rate-per-production: 1
max-corruption: 100
decay-per-clean: 100
clean-cost: 500.0
clean-item:
  enabled: true
  consume-before-cost: true
  material: "AMETHYST_SHARD"
  name: "<light_purple>Corruption Cleaner"
  lore:
    - "<gray>Use this in the corruption GUI"
    - "<gray>to clean one spawner without paying money."
punishments:
  slow-at: 50
  lock-at: 100
  slow-multiplier: 0.50
  # SLOW, STOP_PRODUCTION, LOCK_STORAGE, DISABLE_SELL, REQUIRE_CHALLENGE
  max-actions:
    - "STOP_PRODUCTION"
    - "REQUIRE_CHALLENGE"
  actions:
    SLOW:
      enabled: true
      at: 50
      multiplier: 0.50
    STOP_PRODUCTION:
      enabled: true
      at: 100
    LOCK_STORAGE:
      enabled: false
      at: 100
    DISABLE_SELL:
      enabled: false
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/corruption.yml to review every setting.
# ...
Top-level keys

enabled, rate-per-production, max-corruption, decay-per-clean, clean-cost, clean-item

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

hooks.yml short excerpt, not full file

Optional plugin hooks, external providers and compatibility toggles.

Short YAML preview only. This block shows selected lines from hooks.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from hooks.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
economy:
  vault: true
  # Price resolution order after explicit spawner drop sell-price values.
  price-provider-order:
    - shopguiplus
    - excellentshop
    - essentials-worth
    - nascraft
    - zshop
    - economyshopgui
  shopguiplus: true
  excellentshop: true
  essentials-worth: true
  nascraft: true
  zshop: true
  economyshopgui: true
holograms:
  decentholograms: true
  fancyholograms: true
  cmi: true
protection:
  worldguard: true
  griefprevention: true
  protectionstones: true
  lands: true
  towny: true
  factions: true
  huskclaims: true
skyblock:
  superiorskyblock2: true
  bentobox: true
  iridiumskyblock: true
lifecycle-cleanup:
  enabled: true
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/hooks.yml to review every setting.
# ...
Top-level keys

economy, holograms, protection, skyblock, lifecycle-cleanup, custom-items

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

modules.yml short excerpt, not full file

Feature modules and ready setup presets.

Short YAML preview only. This block shows selected lines from modules.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from modules.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
virtual-engine: true
gui-menus: true
classic-mode: true
storage: true
selling: true
sellwands: true
boosters: true
corruption: true
ownership-trust: false
stacking: true
admin-panel: true
protection: true
holograms: true
migrations: true
api: true
placeholderapi: true
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/modules.yml to review every setting.
# ...
Top-level keys

virtual-engine, gui-menus, classic-mode, storage, selling, sellwands

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

setup-presets.yml short excerpt, not full file

Feature modules and ready setup presets.

Short YAML preview only. This block shows selected lines from setup-presets.yml. The generated file contains more options than this docs excerpt.
# ...
# Short documentation excerpt from setup-presets.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
presets:
  donutsmp:
    description: "DonutSMP-ready: high storage, fast virtual production and simple protection defaults."
    config:
      production.tick-interval-seconds: 5
      production.max-offline-seconds: 43200
      behavior.require-silk-touch-to-break: true
    storage:
      capacity.default-items: 75000
      capacity.per-stack-bonus: 7500
      overflow.mode: "pause"
    sellwands:
      default-uses: 250
      default-multiplier: 1.15
    holograms:
      enabled: true
      update-interval-seconds: 10
    limits:
      chunk-limit: 35
      player-limit: 300
    corruption:
      enabled: true
      challenge.enabled: true
      challenge.require-at: 80
  skyblock:
    description: "Island-friendly limits, larger stacks and island placement."
    config:
      production.tick-interval-seconds: 5
    storage:
      capacity.default-items: 100000
      capacity.per-stack-bonus: 10000
    limits:
      placement.only-island: true
      chunk-limit: 50
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/setup-presets.yml to review every setting.
# ...
Top-level keys

presets

Production handling

Back up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.

Messages & Language#

Translation and formatting guidance based on the product's bundled resources.

Message reload follows the product's reload command. Restart after jar, storage or license changes.

How to edit messages#

This product ships messages.yml. Edit the generated copy in the plugin folder, keep placeholders intact, then reload the plugin command or restart for startup-level changes.

Formatting#

<red>Error message</red>
&cLegacy color message
{player} {amount} {reason}
messages.yml short excerpt, not full file
Short YAML preview only. This block shows selected lines from messages.yml. The generated file contains more message keys than this docs excerpt.
# ...
# Short documentation excerpt from messages.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
prefix: "<gradient:#00ffcc:#0099ff>NexaSpawners</gradient> <gray>|</gray> "
missing-message: "<red>Missing message: <key>"
no-permission: "<red>You do not have permission."
player-only: "<red>Only players can use this command."
reload-complete: "<green>NexaSpawners reloaded."
license-header: "<gold>NexaSpawners License"
license-status-line: "<gray>Status: <white><status>"
unknown-command: "<red>Unknown subcommand. Use <white>/spawner help<red>."
usage-give: "<red>Usage: /spawner give <player> <type> <amount> [stack]"
usage-givebooster: "<red>Usage: /spawner givebooster <player> <booster> <amount>"
usage-givepersonalbooster: "<red>Usage: /spawner givepersonalbooster <player> <booster> [durationSeconds]"
usage-globalbooster: "<red>Usage: /spawner globalbooster <booster|list|clear> [durationSeconds]"
usage-panel: "<red>Usage: /spawner panel [search|owner|type|clear] [query] or /spawner panel bulk <clear|sell|delete|lock|unlock|export> confirm"
usage-givecleaner: "<red>Usage: /spawner givecleaner <player> <amount>"
usage-givesellwand: "<red>Usage: /spawner givesellwand <player> [uses] [multiplier]"
usage-givesellaxe: "<red>Usage: /spawner givesellaxe <player> [uses] [multiplier]"
usage-teleport: "<red>Usage: /spawner teleport <id>"
usage-remove: "<red>Usage: /spawner remove <id>"
usage-clearstorage: "<red>Usage: /spawner clearstorage <id>"
usage-forcesell: "<red>Usage: /spawner forcesell <id>"
usage-setowner: "<red>Usage: /spawner setowner <id> <player>"
usage-holograms: "<red>Usage: /spawner holograms <on|off|refresh>"
usage-logs: "<red>Usage: /spawner logs <id>"
usage-export: "<red>Usage: /spawner export [csv|json]"
usage-seasonreset: "<red>Usage: /spawner seasonreset <economy|storage|xp|corruption|boosters|all> confirm"
usage-operations: "<red>Usage: /spawner operations [list|limit] or /spawner operations resolve <operationId> <completed|failed> [note]"
usage-split: "<red>Usage: /spawner split [amount]"
usage-leaderboard: "<red>Usage: /spawner leaderboard [value|stack|storage|xp|corruption] [owner|spawner]"
usage-setup: "<red>Usage: /spawner setup [preset apply|preset preview|rollback]"
usage-lifecycle: "<red>Usage: /spawner lifecycle <simulate|export|apply> <provider> <delete|lock|transfer|ignore> [all|world|owner|type|id|locked|corrupted|full] [query] [confirm]"
usage-challenge: "<red>Usage: /spawner challenge [answer]"
usage-trust: "<red>Usage: /spawner trust <player> [open,sell,collect,boost,upgrade,break,modify,all]"
usage-untrust: "<red>Usage: /spawner untrust <player> [open,sell,collect,boost,upgrade,break,modify,all]"
usage-migrate: "<red>Usage: /spawner migrate <plugin|scan|confirm|rollback>"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/messages.yml to review every setting.
# ...

GUI / Menus#

GUI cards describe the actual menus available in this product build.

Each card shows the configured menu title, inventory size, item count and detected actions when those values exist.

Admin Panel#

Staff panel for NexaSpawners administration, diagnostics and editor entry points.

  • Configured title: NexaSpawners Admin
  • Size: 54 slots
  • Configured items: 9
  • Actions: close

Boosters#

Spawner booster menu for viewing and applying production modifiers.

  • Configured title: Spawner Boosters
  • Size: 27 slots
  • Configured items: 3

Confirm Sell#

Sell confirmation menu used before bulk-selling stored spawner drops.

  • Configured title: Confirm Sell
  • Size: 27 slots
  • Configured items: 3
  • Actions: sell_all

Corruption#

Corruption state menu for viewing and resolving special spawner risk mechanics.

  • Configured title: Corruption
  • Size: 27 slots
  • Configured items: 4

Corruption Challenge#

Anti-AFK or corruption challenge screen used by the spawner corruption system.

  • Configured title: Anti-AFK Challenge
  • Size: 27 slots
  • Configured items: 3

Editor#

Main in-game editor for NexaSpawners configuration areas.

  • Configured title: NexaSpawners Editor
  • Size: 27 slots
  • Configured items: 6
  • Actions: close

Editor Booster#

Admin editor for a single booster definition, including values used by the booster menu.

  • Configured title: Booster:
  • Size: 54 slots
  • Configured items: 20
  • Actions: close

Editor Boosters#

Admin list editor for configured booster definitions.

  • Configured title: Editor: Boosters
  • Size: 54 slots
  • Configured items: 2

Editor Drop#

Admin editor for one spawner drop entry, including item, chance and value-related settings.

  • Configured title: Drop:
  • Size: 45 slots
  • Configured items: 23
  • Actions: close

Editor Drops#

Admin list editor for configured drop definitions.

  • Configured title: Editor Drops:
  • Size: 54 slots
  • Configured items: 4

Editor Storage#

Admin editor for storage capacity, collection and output behavior.

  • Configured title: Editor: Storage
  • Size: 45 slots
  • Configured items: 12
  • Actions: close

Editor Type#

Admin editor for one spawner type, including production and display settings.

  • Configured title: Editor:
  • Size: 45 slots
  • Configured items: 18
  • Actions: close

Editor Types#

Admin list editor for available spawner type definitions.

  • Configured title: Editor: Types
  • Size: 54 slots
  • Configured items: 2

Logs#

Spawner history menu for reviewing recent production, storage or admin activity.

  • Configured title: Spawner Logs
  • Size: 54 slots
  • Configured items: 2

Main#

Main spawner control menu for production status, XP collection, stack actions and management entry points.

  • Configured title: Spawner
  • Size: 27 slots
  • Configured items: 11
  • Actions: collect_xp, split_stack

Setup#

Setup preset selector used to apply starting configurations such as Skyblock or Lifesteal layouts.

  • Configured title: NexaSpawners Setup
  • Size: 27 slots
  • Configured items: 7
  • Actions: setup_select:skyblock, setup_select:lifesteal, close

Setup Confirm#

Preset confirmation menu shown before applying a setup template.

  • Configured title: Apply Preset?
  • Size: 27 slots
  • Configured items: 5
  • Actions: setup_back, close

Spawner List#

Spawner list menu for browsing owned or managed spawner instances.

  • Configured title: Spawner List
  • Size: 54 slots
  • Configured items: 5
  • Actions: close

Storage#

Storage menu for collected drops, capacity state and withdraw/sell actions.

  • Configured title: Spawner Storage
  • Size: 54 slots
  • Configured items: 5
  • Actions: take_all

Trust#

Trusted players menu for viewing and managing who can interact with owned spawners.

  • Configured title: Trusted Players
  • Size: 36 slots
  • Configured items: 6

Trust Add#

Trust menu for adding a player to a spawner's access list.

  • Configured title: Add Trusted Player
  • Size: 36 slots
  • Configured items: 5

Trust Edit#

Trust editor for changing a trusted player's access level.

  • Configured title: Edit Trusted Player
  • Size: 36 slots
  • Configured items: 4

Upgrades#

Spawner upgrade menu for progression choices, upgrade prices and active upgrade state.

  • Configured title: Spawner Upgrades
  • Size: 27 slots
  • Configured items: 6

Placeholders#

PlaceholderAPI examples available for this product.

Use the exact identifier shown here in scoreboards, chat formats and external display plugins.

Placeholder surface#

Identifier: nexaspawners. PlaceholderAPI and MiniPlaceholders cover totals, player metrics, world/type metrics, spawner metrics, storage, value, boosters and corruption values.

Usage notes#

  • Install PlaceholderAPI before using these values in scoreboards or chat formats.
  • Reload PlaceholderAPI expansions after plugin updates.
  • Keep placeholder identifiers lowercase exactly as shown unless the product uses a legacy mixed-case identifier.
PlaceholderAPI examples documented
PlaceholderExample outputDescription
%nexaspawners_total%64Returns total virtual spawners.
%nexaspawners_player_storage%18,320Returns stored drops for the player context.
%nexaspawners_player_value%,500Returns formatted spawner value for the player context.
%nexaspawners_world_world_total%21Returns total spawners in a named world.
%nexaspawners_spawner_abc123_stack%6Returns stack size for a spawner id.

Storage#

Storage docs explain YAML, SQLite, MySQL, MariaDB and backup expectations when supported.

Always back up before changing storage type or updating a production server.

Storage recommendation#

Use file storage for small tests and SQL storage for production economies, leaderboards and seasonal data.

Backup checklist#

  • Stop the server before copying live flat files.
  • Export SQL databases before updates.
  • Keep plugin version and server version in backup notes.
  • Test migration on a copy first.

Integrations#

Each integration explains purpose, required/optional status, setup steps and troubleshooting.

Soft hooks load after the dependency is available through Bukkit's plugin manager.
Vault Optional hook

Purpose: Provides economy withdrawals, deposits, prices, banks or metadata through Vault.

Troubleshooting: If balances, rewards or banks do not work, confirm Vault has an active economy provider and that no economy plugin loads after this product.

  1. Install Vault and one compatible economy or permission provider.
  2. Restart the server and confirm Vault reports a provider in console.
  3. Enable prices, banks, rewards or currency features that depend on Vault.
  4. Test one deposit and one withdrawal with a non-op account.
PlaceholderAPI Optional hook

Purpose: Registers or consumes PlaceholderAPI values for scoreboards, formats and external displays.

Troubleshooting: If values stay blank, reload expansions and verify the identifier exactly matches the placeholder shown in this docs page.

  1. Install PlaceholderAPI or the listed placeholder provider.
  2. Install required expansions when the provider uses external expansions.
  3. Use the exact placeholder identifiers documented in this page.
  4. Reload the display plugin after changing scoreboard, tablist, menu or chat format files.
MiniPlaceholders Optional hook

Purpose: Registers or consumes PlaceholderAPI values for scoreboards, formats and external displays.

Troubleshooting: If values stay blank, reload expansions and verify the identifier exactly matches the placeholder shown in this docs page.

  1. Install PlaceholderAPI or the listed placeholder provider.
  2. Install required expansions when the provider uses external expansions.
  3. Use the exact placeholder identifiers documented in this page.
  4. Reload the display plugin after changing scoreboard, tablist, menu or chat format files.
WorldGuard Optional hook

Purpose: Connects gameplay behavior to claims, regions or group ownership rules.

Troubleshooting: If region or claim rules do not apply, check region priority, claim ownership, world names and whether the hook is enabled.

  1. Install the claim or region plugin before this product starts.
  2. Create the region, claim, town or faction area you want the plugin to read.
  3. Enable the matching hook in the integration/config file when a toggle exists.
  4. Test the protected workflow inside and outside the region with a normal player.
Shop/economy plugins Optional hook

Purpose: Connects production, sell and price logic to the server's economy/shop stack.

Troubleshooting: If transactions fail, verify the currency id, provider startup order and whether the player has enough balance or inventory space.

  1. Install the economy/shop provider and create the currency key used by this product.
  2. Match the currency id in the product config.
  3. Test a buy/sell/withdraw flow with a player account.
  4. Check transaction logs if balances do not change.
Hologram providers Optional hook

Purpose: Provides floating display output for spawner, shop or location-based information.

Troubleshooting: If visuals are missing, check asset ids, resource-pack generation and provider reload order.

  1. Install the visual/resource plugin and load its pack or asset registry.
  2. Use valid item, glyph or hologram ids from that plugin.
  3. Reload the visual provider first, then reload this product.
  4. Open the GUI or display feature and check missing material/glyph warnings.

Module Enablement#

Turn the product surface on in a predictable order before tuning individual gameplay systems.

Start with module switches, restart once, then verify generated files before changing economy values.
virtual-engine: true gui-menus: true classic-mode: true storage: true selling: true sellwands: true boosters: true corruption: true ownership-trust: false stacking: true admin-panel: true protection: true holograms: true migrations: true api: true placeholderapi: true

These keys belong to modules.yml. The default build keeps ownership-trust disabled until claim/team rules are reviewed.

Enablement checklist#

  1. Copy the generated plugins/NexaSpawners/ directory before editing.
  2. Enable only systems your server will expose to players.
  3. When trust is needed, set ownership-trust: true and configure trust.enabled in config.yml.
  4. Restart after module changes; use /spawner reload for ordinary YAML tuning.
  5. Verify the corresponding GUI, command and permission with a non-op account.

Virtual Engine & Placement#

Create a real spawner block while production, storage and XP remain virtual and persist by spawner UUID.

Use VIRTUAL for scalable servers; CLASSIC is a deliberate compatibility choice and should be tested separately.

Player placement flow#

  1. Give a typed item with /spawner give <player> <type> <amount> [stack].
  2. Place it in an allowed world or claim. The block becomes a registered virtual spawner.
  3. Open it with right-click, or sneak-right-click in classic mode when behavior.classic-mode-requires-sneak-to-open-gui is enabled.
  4. Watch production use production.tick-interval-seconds, offline cap and per-cycle budgets.
  5. Break it with configured Silk Touch to receive a stateful item containing storage, XP, boosters, upgrades, trust and corruption.

Engine controls#

  • server.default-mode chooses VIRTUAL or CLASSIC.
  • production.round-robin: true prevents early records consuming every cycle.
  • production.region-dispatch: true routes location-sensitive mutations through the scheduler abstraction.
  • Production, chunk and cycle caps protect large networks.
  • Registered virtual spawners cancel nearby vanilla spawn output.
Engine QA test before economy launch
  1. Place two types in different chunks and confirm both produce.
  2. Restart with stored output and an active booster.
  3. Break and replace the stateful item; confirm UUID, owner, storage and XP remain intact.
  4. Fill storage and verify the selected overflow mode.

Spawner Types & Drop Tables#

Define available mobs, production rules, drops, XP and prices in the individual files under spawners/.

Treat each spawner type as an economy product: validate its drop table and sell value before giving it to players.

Type authoring workflow#

  1. Copy a file such as spawners/iron_golem.yml for a controlled variant.
  2. Set type id, entity data, production interval/count and drop definitions.
  3. For every drop define material, min/max amount, chance and explicit sell-price when needed.
  4. Set XP and capacity overrides for high-volume types.
  5. Reload, give one item and validate GUI lore, hologram, storage and sale output.

Per-type controls#

  • limits.type-limits.per-player and per-world override global limits.
  • stacking.per-type.iron_golem can cap a specific internal stack.
  • corruption.types.iron_golem.multiplier applies type-specific pressure.
  • Spawn eggs can change a registered type when enabled in behavior.
  • Keep type ids stable; reports, records and placeholders use them as identifiers.
# Type release checklist type-id: iron_golem drop: IRON_INGOT sell-price: 15.0 test: production -> storage -> sell -> break -> replace

Virtual Storage, Collection & Overflow#

Configure how drops, XP, inventory overflow and storage actions behave for every spawner.

Choose overflow together with your economy policy; pause is the safest production default.

Capacity design#

  • storage.capacity.default-items is the base capacity.
  • per-stack-bonus scales a stacked spawner.
  • per-drop-capacity and per-drop prevent one item consuming all storage.
  • Storage upgrades add capacity on top.
  • storage.overflow.mode accepts pause, void or overfill.
storage.capacity.default-items: 25000 storage.capacity.per-stack-bonus: 5000 storage.capacity.per-drop-capacity: 10000 storage.overflow.mode: "pause"

Player actions#

  1. Open storage from the main spawner GUI.
  2. Use take-one-stack, take-all, drop-all or sell-all according to storage.collect.
  3. Use /spawner collect for collection and XP, or /spawner sell for a normal sale.
  4. Test a full inventory and verify the configured remainder behavior.
  5. Reopen the menu and compare the amount with the storage log.
Do not combine a large overfill limit with unlimited production before measuring database queue and economy impact.

Selling, SellWands & AutoSell#

Connect prices and Vault, then expose single-spawner and area selling without bypassing ownership or trust checks.

Price resolution is deterministic: explicit drop price, external providers, addon providers, then zero when no price exists.

Economy setup#

  1. Install Vault and an economy provider.
  2. Configure hooks.yml price-provider order and confirm the shop plugin is loaded.
  3. Set nexaspawners.sell.multiplier.<number> only for approved ranks.
  4. Run one sale from the GUI and one from /spawner sell.
  5. Verify pre/post result, storage mutation, Vault deposit and SQL operation status.
selling.permission-multipliers.enabled: true selling.permission-multipliers.default: 1.0 selling.permission-multipliers.max: 10.0

Tool rollout#

  • /spawner givesellwand <player> [uses] [multiplier] gives the configured wand.
  • /spawner givesellaxe <player> [uses] [multiplier] gives the configured axe.
  • Scopes include single, chunk, radius, owner or all-loaded with target caps.
  • same-owner-only and require-trust-per-spawner protect area actions.
  • Use /spawner sellnotify to test personal success feedback.
Sell failure QA transaction safety

Disable Vault or return a zero price, attempt a sale and confirm storage is not silently removed. For persistence failures use /spawner operations and resolve only after checking whether money was applied.

Boosters: Spawner, Personal & Global#

Configure temporary production, loot, XP, sell, storage, corruption-protection and AutoSell modifiers with persistence.

Keep booster slot and stacking rules explicit; item cost can be flat or per internal stack.

Booster layers#

  • Spawner boosters apply to one registered spawner from the booster GUI or item.
  • Personal boosters affect the player and stack with spawner/global modifiers.
  • Global boosters affect server runtime and can be listed or cleared.
  • Configured types include INCREASE_SPEED, INCREASE_LOOT, INCREASE_XP, INCREASE_SELL and AUTOSELL.
  • Active duration is preserved through restart and stateful break/re-place.

Admin and player commands#

/spawner givebooster <player> <booster> <amount> /spawner givepersonalbooster <player> <booster> [durationSeconds] /spawner globalbooster <booster|list|clear> [durationSeconds]

Use nexaspawners.give, nexaspawners.personalbooster, nexaspawners.globalbooster and nexaspawners.booster as separate boundaries.

Booster verification persistence and limits
  1. Apply a booster to a stack of two and confirm application.item-cost-mode.
  2. Reach the slot limit and confirm duplicate handling.
  3. Restart with remaining duration and compare timers.
  4. Remove it from the GUI and confirm remaining time is returned.

Corruption & Anti-AFK Challenges#

Add progressive corruption pressure, threshold actions, cleaner items and challenge sessions to high-volume spawners.

A punishment that stops production must also be visible through GUI, hologram or alerts.

Threshold model#

corruption.rate-per-production: 1 corruption.max-corruption: 100 corruption.punishments.slow-at: 50 corruption.punishments.lock-at: 100 corruption.challenge.require-at: 80
  • Actions can slow, stop, lock storage, disable selling or require a challenge.
  • Disabled worlds and nexaspawners.corruption.bypass must be tested.

Player and staff flow#

  1. Open the corruption GUI and read level and alert.
  2. Clean using Vault cost or /spawner givecleaner <player> <amount>.
  3. When a challenge starts, use /spawner challenge [answer] or the challenge GUI.
  4. Verify expiry, cooldown, nearby activity tracking and audit rows.
  5. Inspect again after solve/fail and confirm the threshold action changed.
Do not advertise corruption as anti-AFK protection until challenge, cleaner cost and alert channels pass a real-player test.

Permanent Upgrades#

Build a persistent progression loop for speed, loot, XP and storage without hiding its economic cost.

The default PER_STACK cost scales an upgrade with the internal stack; use FLAT only intentionally.

Upgrade configuration#

upgrades.enabled: true upgrades.cost-mode: "PER_STACK" speed.max-level: 10 loot.max-level: 10 xp.max-level: 10 storage.max-level: 10 storage.capacity-per-level: 10000

Release workflow#

  1. Open the upgrades menu or use /spawner upgrade.
  2. Confirm Vault withdraws the expected amount.
  3. Buy one level for each type and compare production/storage/XP.
  4. Reach max level and confirm no further charge.
  5. Break, replace and restart; levels must remain attached.

Ownership, Trust & Placement Limits#

Define who can open, collect, sell, boost, upgrade, break and modify a spawner, then combine it with claim and island hooks.

Trust is disabled in the shipped module map. Enable it only after deciding whether claim membership should inherit access.

Access model#

  • Set modules.yml: ownership-trust: true and trust.enabled: true.
  • Use /spawner trust <player> [actions] and /spawner untrust <player> [actions].
  • Actions are open, sell, collect, boost, upgrade, break, modify and all.
  • Inherited access can cover claim/island/team members; keep break/modify explicit.
  • Lock with /spawner lock and /spawner unlock.

Limit and placement QA#

  1. Set chunk, player and world limits under limits.
  2. Test nexaspawners.limit.<number> and nexaspawners.stack.<number>.
  3. Test world whitelist/blacklist, claim-only, island-only and spawn-region radius.
  4. Validate the active protection plugin through /spawner hooks.
  5. Retest owner, trusted, claim member, outsider and bypass accounts.

Stacking & Stateful Items#

Scale a spawner economy with internal stack amounts while preserving state and preventing excess merges.

Verify the held-item remainder after a merge; max stack must never silently delete excess.

Stack rules#

stacking.enabled: true stacking.shift-right-click-adds-stack: true stacking.allow-split: true stacking.default-max-stack: 1000 stacking.chunk-max-stack: -1 stacking.per-type.iron_golem: 500
  • Limits can be global, per type, per chunk and permission-based.
  • Booster matching allows configured remaining-time drift.
  • Split items can drop near the player if inventory is full.

Player and admin flow#

  1. Place two compatible items and shift-right-click to merge.
  2. Use /spawner split [amount] to remove part of the stack.
  3. Confirm the split item carries storage, XP, upgrades, trust, lock, boosters and corruption.
  4. Try an over-limit merge and verify the held item becomes the leftover amount.
  5. Use nexaspawners.stack.split to control who may split.

Explosion Protection, Holograms & Anti-ESP#

Make spawner visibility and physical protection match the server's griefing, stealth and staff policies.

Enable explosion protection and Anti-ESP independently; test both from multiple viewer accounts.

Explosion policy#

  • Configure block/entity explosions, TNT, creepers, withers and fireballs under protection.explosions.
  • Choose whether destroyed records unregister and whether natural spawners drop Nexa items.
  • Test protected and unprotected worlds; confirm no stale record remains.

Hologram policy#

  • Provider order can use PacketEvents, FancyHolograms, DecentHolograms, CMI or native.
  • Set refresh interval, throttle, visibility and lines in holograms.
  • Use /spawner holograms on|off|refresh after provider changes.

Anti-ESP policy#

  • Blocks and holograms have separate reveal/hide distances and update budgets.
  • Use nexaspawners.antiesp.bypass for staff.
  • Check fake materials per dimension and cross both distance thresholds.

GUI, Menus & Configuration Editor#

Use bundled GUI files as the player-facing control plane instead of hardcoding module behavior into commands.

Edit one menu at a time, preserve action names and verify click cooldowns after reload.
  • guis/main.yml links storage, XP, boosters, trust, corruption, upgrades, sell, logs, split and info.
  • Storage, boosters, corruption, trust, upgrades, logs, spawner list and admin panel have focused menus.
  • Confirm-sell and setup-confirm protect economic/destructive actions.
  • Materials, lore, colors, model data, provider ids, PDC tags and permissions are configurable.

Editor workflow#

  1. Grant nexaspawners.editor and run /spawner editor.
  2. Use the editor for type, booster, storage and preset summaries.
  3. Complete chat prompts for names, entity, production, drops, prices, booster duration/multiplier and capacity.
  4. Reload and compare generated YAML with a backup.

Admin Panel, Logs & Bulk Operations#

Give staff a searchable operational view with guarded mutations and recoverable reports.

Require a ticket or reason for clear, force-sell, delete, owner transfer and bulk actions.

Panel workflow#

  1. Open /spawner panel and filter by search, owner, type, dimension or status.
  2. Inspect with /spawner inspect <id> before changing a record.
  3. Use teleport, logs, export, clear storage, force sell, lock/unlock or owner transfer only after checking the id.
  4. For bulk work use /spawner panel bulk <clear|sell|delete|lock|unlock|export> confirm.
  5. Verify affected count and action log.

Recovery tools#

/spawner export [csv|json] /spawner backup /spawner operations [list|limit] /spawner operations resolve <operationId> <completed|failed> [note] /spawner seasonreset <economy|storage|xp|corruption|boosters|all> confirm

Reserve nexaspawners.panel, nexaspawners.export, nexaspawners.seasonreset and bypass permissions for a small staff group.

Setup Presets, Editor & Migration#

Use guided server profiles and migration hooks instead of starting from arbitrary economy values.

Preview every preset first; applying one snapshots touched files and reloads the plugin.

Preset workflow#

  1. Choose donutsmp, skyblock, lifesteal, survival or op_economy.
  2. Run /spawner setup <preset> preview and review production, capacity, limits, hooks and corruption.
  3. Apply with /spawner setup <preset> apply during maintenance.
  4. Run player and economy smoke tests.
  5. Use /spawner setup rollback for the current runtime snapshot.

Migration workflow#

  1. Back up SQL and export a report.
  2. Run /spawner migrate <plugin> or /spawner convert.
  3. Use lifecycle simulate/export before claim/island cleanup.
  4. Review owner mapping, type ids, storage and duplicates.
  5. Keep source data until verification is signed off.

Economy, Protection, Items & Webhooks#

Connect optional providers through safe hooks while keeping NexaSpawners functional when a dependency is missing.

Run /spawner hooks after every dependency change and document detected providers.

Economy and prices#

Configure Vault plus ShopGUIPlus, ExcellentShop, Essentials worth, Nascraft, zShop and EconomyShopGUI in hooks.yml. Test a known item, unknown item and provider outage.

Claims and islands#

Enable only active WorldGuard, GriefPrevention, ProtectionStones, Lands, Towny, Factions, HuskClaims, SuperiorSkyblock2, BentoBox or IridiumSkyblock adapters. Test placement, trust inheritance and cleanup.

Items and webhooks#

Custom item ids can come from ItemsAdder, Oraxen or Nexo. Webhooks can filter sell, admin, migration and corruption events with timeout, retry and rate limits.

Lifecycle cleanup unclaim policy

Set lifecycle-cleanup.default-action to delete, unclaim-protect-disable, owner-transfer or ignore. Use /spawner lifecycle simulate ... before apply ... confirm; export the report first.

API, Events & Placeholders#

Expose spawner state to addons, scoreboards and integrations without coupling consumers to internal services.

Treat the API and event contract as boundaries: check disabled services and do not mutate Bukkit state asynchronously.

Public integration surface#

  • The Bukkit service exposes loaded/owned spawners, type and booster definitions, storage, XP, corruption, sell value, active boosters and hook status.
  • Addon providers can register prices, migration adapters, protection resolvers, hologram providers and booster types.
  • Events cover placement, break, open, production, storage, sell, boosters, corruption, migration, access checks and admin actions.
  • StorageChangeEvent observes production, collect, drop, sell, autosell and admin-clear mutations.

Display setup#

  1. Install PlaceholderAPI or MiniPlaceholders and enable the matching module.
  2. Use global, player, world, type and single-spawner placeholders.
  3. Start with %nexaspawners_player_value%, %nexaspawners_total_storage% and %nexaspawners_spawner_<id>_corruption%.
  4. Test offline and unknown-id fallbacks.
%nexaspawners_total% %nexaspawners_player_stack% %nexaspawners_type_iron_golem_value% %nexaspawners_spawner_<id>_storage%

Database, Backups & Persistence#

Choose SQLite for small servers or MySQL/MariaDB for production reporting, then verify queue and backup behavior.

Never change storage type on the live database without a backup and restore test.

Storage selection#

  • SQLite uses nexaspawners.db, WAL and a configurable busy timeout.
  • MySQL/MariaDB use host, port, database, username, password and SSL under database.storage.
  • The async deduplicated queue batches dirty records and flushes on interval and clean shutdown.
  • Schema versioning helps upgrades, but a backup is still required.

Backup runbook#

  1. Enable startup and periodic backups with retention.
  2. Install the configured mysqldump or mariadb-dump executable for SQL backups.
  3. Run /spawner backup and confirm a readable artifact.
  4. Restore a copy on staging and verify owners, storage, XP, boosters and logs.
Do not expose database passwords in support screenshots or webhook/debug output.

Production Rollout & Verification#

Move from a single test spawner to a live economy with staged load, permission and recovery checks.

Production is ready only when placement, storage, sell, booster, corruption, restart, backup and rollback paths pass.

Stage 1 — sandbox#

  • Use one type, one player and SQLite.
  • Test every GUI action and command with non-op accounts.
  • Confirm no duplicate drops, XP or Vault deposits.

Stage 2 — pilot#

  • Apply the chosen preset on a copy.
  • Test 10–50 spawners across chunks, worlds and ownership states.
  • Measure production queue, storage growth, database flushes and webhook limits.

Stage 3 — live#

  • Use SQL and verified backups for network-scale data.
  • Restrict admin/bypass and seasonal reset permissions.
  • Record plugin, server, Java, hook and preset versions.
Go-live acceptance checklist sign off each item
  1. Restart with active storage, XP, booster, upgrade and corruption state.
  2. Break/re-place a stateful item and verify all fields.
  3. Run successful and failed sales; inspect /spawner operations.
  4. Test protected explosion, claim denial, Anti-ESP reveal and hologram refresh.
  5. Export, back up and restore staging before player-wide access.

Operational Reference#

Operate spawners through ownership, storage, boosters, selling and upgrade checks.

Run destructive panel actions only after exporting or confirming the selected spawner id; bulk actions require an explicit confirmation step.

Player spawner loop#

  1. Give/place a spawner and open /spawner panel or /spawner list.
  2. Inspect type, amount, owner, storage, sell value and active boosters.
  3. Configure trusted players with /spawner trust <player> [actions].
  4. Apply an upgrade or booster and verify duration/stack behavior.
  5. Sell through the panel, sell wand/axe or configured auto-sell path, then inspect logs.

Admin recovery loop#

  1. Use /spawner inspect <id> before changing ownership.
  2. Export the selected spawner before clear/delete/forcesell.
  3. Use /spawner setowner, clearstorage or remove only with a ticket/audit reason.
  4. For lifecycle actions run preview/simulate, review the filter, then apply with confirmation.

Booster baseline#

limits:
  max-active-per-spawner: 3
application:
  item-cost-mode: "PER_STACK"
global:
  enabled: true
personal:
  enabled: true
  persist: true

Economy test#

Test one storage fill, one sale, one blocked item and one economy-provider failure. Confirm items are not removed when the transaction cannot be completed and that the audit/log entry explains the result.

Common Setups#

Ready-to-follow scenarios reduce support tickets and make the product easier to configure.

Tune durations, limits, prices and permissions with the YAML files above.

SkyBlock Spawners Setup#

Apply this setup by editing the related config files, assigning permissions and testing the full player workflow.

Lifesteal Economy Setup#

Use stricter cooldowns, staff visibility, abuse protection and clear player feedback for high-conflict gameplay.

Small SMP Setup#

Use conservative defaults, SQLite or simple file storage, readable messages and relaxed limits for community servers.

Seasonal Reset Setup#

Map permissions to progression tiers, test upgrades, then document reset or season migration behavior.

Network Economy Setup#

Use production SQL, unique server IDs, shared sync secrets and a controlled Redis or proxy transport.

Troubleshooting#

Start with console logs, config diffs, plugin version and reproduction steps.

The first error in console is usually more useful than repeated follow-up errors.
Spawner does not produce issue

Check chunk/activity rules, owner permissions, production interval, storage capacity and whether the spawner type has a valid drop table.

Storage does not fill issue

Verify virtual storage is enabled, capacity is not zero and production is not blocked by chunk, world or ownership rules.

Sell command fails issue

Confirm economy provider, sell permission, item/drop value and whether the player has enough stored items to sell.

Booster does not apply issue

Check booster scope, expiry time, stacking rules and whether the spawner/player/server target matches the active booster.

Ownership checks block trusted players issue

Review trusted player lists, team/claim integration and admin bypass permissions. Test with a fresh non-op account.

Database connection failed issue

Verify host, port, database name, credentials, firewall access and the storage type in the generated YAML file.

FAQ#

Short answers for common buyer and staff questions.

Does NexaSpawners support Folia?#

Yes. The product descriptor or docs metadata marks this product as Folia-oriented; keep third-party hook thread-safety in mind during production testing.

Does it support old Minecraft versions?#

This page targets Paper/Folia with Java 21. Legacy 1.8 support is not part of this docs page.

Does it require MySQL?#

Use file storage for small tests and SQL storage for production economies, leaderboards and seasonal data.

Can I disable modules?#

Yes. Use the Configuration section to manage the product modules and behavior exposed by YAML.

Can I edit all messages?#

Yes. Edit messages.yml and reload or restart according to the setting changed.

Does it support PlaceholderAPI?#

Yes. The documented identifier and examples are listed in the Placeholders section.

Changelog#

Product release notes grouped by version. Major public changes are written for buyers and server owners, not as raw commit logs.

v1.0.0#

Changed
  • Version documented from plugin metadata.

Support#

Send enough information to reproduce the issue.

Join Discorddiscord.gg/fANhQcyA7XInclude logs, config snippets and exact steps. Screenshots alone are not enough for config or database issues.

Before asking for support#

  • Test on the latest available plugin version.
  • Check server version and Java version.
  • Temporarily remove unrelated plugins when debugging conflicts.
  • Attach changed YAML files when config is involved.
Plugin: NexaSpawners
Plugin version:
Server version:
Java version:
Server software:
Database type:
Installed hooks:
Error log:
Steps to reproduce:
Expected behavior:
Screenshots/video: