Configuration
On this page(8)
SnVirtualSpawners ships with the following YAML files. New keys are auto-merged on boot; your edits and comments are preserved.
Mob files in mobs/ are copied once and never overwritten, so your edits survive updates. Each mob file is its own YAML; the blaze.yml file below is a complete example. The mob id is the file name without .yml, in lowercase.
config.yml
# ============================================================
# SnVirtualSpawners - configuration
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved. Do NOT add a config-version key (retired).
# Set update-configs: false to freeze this file (SnLib only warns about
# missing keys instead of inserting them).
# Sections marked "# sn:extensible" are yours: entries you delete there
# stay deleted.
# ============================================================
# Active language code; loads lang/messages_<code>.yml (falls back to en).
lang: en
# Master switch of the SnLib auto-updater for this plugin's managed files.
update-configs: true
# Runtime debug output (also toggleable live via /vspawner debug).
debug:
# Master toggle of the debug output.
enabled: false
# Verbosity threshold: OFF, INFO, DEBUG or TRACE.
level: DEBUG
# Category filter; an empty list lets every category through.
categories: []
# ------------------------------------------------------------
# Main command.
# ------------------------------------------------------------
command:
# Aliases of /vspawner. Re-read on /vspawner reload.
aliases: [vs, virtualspawner]
# ------------------------------------------------------------
# Database. type=sqlite needs nothing else; type=mysql reads host/port/etc.
# ------------------------------------------------------------
database:
# sqlite or mysql
type: sqlite
# MySQL connection (ignored when type is sqlite).
host: localhost
port: 3306
database: snvirtualspawners
username: root
password: ""
# ============================================================
# 1. MODEL - the virtual spawner and its item.
# ============================================================
spawner:
# Menu template opened by a mob whose "menu:" names a template that does not exist
# (a file name inside menus/, without .yml).
default-menu: dinero
# Look of the spawner item. {mob} is the mob display name, {amount} the spawners it holds.
spawner-item:
# Display name of the item.
name: "₢f2Spawner &8| &f{mob} &7x{amount}"
# Lore lines of the item.
lore:
- "&7Spawners: &f{amount}"
- ""
- "&7Place it to create a virtual spawner,"
- "&7or shift + right-click a spawner of the"
- "&7same mob to stack it."
# ============================================================
# 2. FEATURES - what a spawner does.
# ============================================================
generation:
# A spawner only generates while a player stands within this many blocks of it.
activation-radius: 10
# How often (in ticks) the generation loop checks activation and due cycles.
check-interval-ticks: 20
stacking:
# true: shift + right-click adds every spawner item in the hand; false: only one item per click.
full-hand: true
buy-stacks:
# Spawners the second button of guis/buy-stacks.yml buys ({bulk}, priced as {price-bulk}).
bulk-amount: 64
admin:
# Blocks an admin may be from the spawner that "/vspawner admin set" and "logs here" act on.
# Clamped to 1-32 blocks.
target-range: 6
breaking:
# Only a pickaxe with Silk Touch can break a virtual spawner (a spawner breaker skips this rule).
silk-touch-only: true
# true: the spawner item goes straight to the breaker's inventory (falls on the ground when full).
drop-to-inventory: false
# true: breaking a spawner without a spawner breaker still sells its storage and gives its XP,
# but the spawners are LOST (and vanilla spawners are not converted). Only the breaker gets them back.
require-tool: false
# Spawner breaker: a tool given with "/vspawner admin tool <player> <uses> <chance>". Its uses and
# its chance (percent) are set by that command, never here. Each spawner break spends one use and
# gets the spawners back with the tool's chance; at 0 uses the tool is gone.
breaker-tool:
# false: breaker tools act as plain items and the command refuses to give new ones.
enabled: true
# true: each spawner of a stack rolls the chance on its own (x10 at 50% gives about 5 back).
# false: one roll for the whole stack (all or nothing).
roll-per-spawner: true
# Look of the tool (any key of the SnLib item spec). {uses} uses left, {chance} chance in percent.
# The name and lore are rewritten after every use.
item:
material: GOLDEN_PICKAXE
display-name: "₢f2&lSpawner Breaker"
lore:
- "&7Breaks spawners and gets them back."
- "&a"
- "&7Uses left: &f{uses}"
- "&7Chance: &f{chance}%"
glow: true
unbreakable: true
flags: [HIDE_UNBREAKABLE, HIDE_ENCHANTS, HIDE_ATTRIBUTES]
# Vanilla spawners of a configured mob become virtual (stack 1) the first time a player
# opens, stacks or breaks them.
convert-vanilla: true
holograms:
# Show a hologram above every virtual spawner.
enabled: true
# Height above the spawner block, in blocks.
height-offset: 1.6
# How often (in ticks) changed holograms are redrawn.
update-interval-ticks: 40
# Lines of the hologram. {mob} {stack} {stored} {capacity} {percent} {xp} {max-xp}.
lines:
- "₢f2&l{mob} &7x{stack}"
- "&7Storage: &f{stored}&7/&f{capacity} &8({percent}%)"
logs:
# Days a player action stays in the log before it is purged.
retention-days: 30
# Lines per page of /vspawner admin logs.
page-size: 10
# Also send place, stack and break actions to CoreProtect when it is installed.
coreprotect: true
# ============================================================
# 3. LIMITS - what a spawner forbids.
# ============================================================
limits:
# Maximum spawners stacked in one block.
stack-limit: 20000
# Maximum virtual spawner blocks per chunk.
chunk-limit: 100
cooldowns:
# Milliseconds between two breaks by the same player.
break-ms: 300
# Milliseconds between two stack clicks by the same player.
stack-ms: 150
# Milliseconds between two menu opens by the same player.
open-ms: 1000
# ============================================================
# 4. INTEGRATIONS - what it talks to.
# ============================================================
economy:
# Use ShopGUI+ sell prices when ShopGUI+ is installed; drops it has no price for fall
# back to the sell-price in the mob file.
shopguiplus: true
# ============================================================
# 5. FEEDBACK - what the player is told.
# ============================================================
feedback:
sell:
# Show the sale as a title.
title: true
# Show the sale in the action bar.
actionbar: true
# Send the sale as a chat message.
chat: truemobs/blaze.yml
# ============================================================
# Blaze spawner (mob id: blaze)
# Seeded once from the jar; SnLib never merges this file afterwards.
# ============================================================
# false stops this mob's spawners from generating and hides it from /vspawner admin give.
enabled: true
# Bukkit EntityType name. A server version without this entity skips the mob with a console warning.
entity: BLAZE
# Name shown in menus, holograms and on the spawner item ({mob}).
display-name: "&6Blaze"
# Menu template opened by the spawner: a file name inside menus/ without .yml.
menu: mixto
# Icon of the info button of the menu ({icon}): a material (ZOMBIE_HEAD) or a head texture
# (a textures.minecraft.net URL, or a texture-/base64-/basehead- value). Missing: SPAWNER.
icon: "https://textures.minecraft.net/texture/b20657e24b56e1b2f8fc219da1de788c0c24f36388b1a409d0cd2d8dba44aa3b"
# Seconds between two production cycles; every cycle waits a random time between min and max.
spawn-delay:
# Shortest wait in seconds.
min: 5
# Longest wait in seconds.
max: 15
# Storage of one spawner; both limits are multiplied by the stack size.
storage:
# Total items of all drop types a spawner holds.
max-items: 1000
# XP points a spawner holds.
max-xp: 1000
# XP points one spawner produces per cycle.
xp:
# Lowest XP per cycle.
min: 1
# Highest XP per cycle.
max: 1
# Price of one spawner in the buy-stacks menu; 0 disables buying stacks of this mob.
buy-price: 7500000
# Items one spawner produces per cycle. Each entry: material, chance (percent per cycle),
# min and max amount per success, and the sell-price per item used when ShopGUI+ has no price for it.
# sn:extensible
drops:
blaze-rod: {material: BLAZE_ROD, chance: 100.0, min: 1, max: 1, sell-price: 9.0}
glowstone-dust: {material: GLOWSTONE_DUST, chance: 80.0, min: 1, max: 1, sell-price: 2.0}menus/dinero.yml
# ============================================================
# SnVirtualSpawners - "dinero" spawner menu (money mobs)
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved.
# Every field supported here is listed in SnLib docs/menu-example.yml.
# Mobs open it with "menu: dinero" in their mobs/<id>.yml.
# ============================================================
#
# Placeholders of every template below: {mob} {stack} {limit} {stored} {capacity} {percent}
# {value} {xp} {max-xp} {xp-percent} {speed} {drops} {restriction} {icon}.
# Spawner actions: [vs-storage] [vs-sell-all] [vs-collect-xp] [vs-buy].
# Menu title; replace it with a resource-pack glyph if you use one.
title: "₢f2&lSpawner &8| {mob}"
# Discards clicks outside the four basic mouse buttons.
strict-clicks: true
# Cell map, one string per row.
# f filler i spawner info s storage v sell all b buy spawners x close
# Remove a button by replacing its character with f.
layout:
- "fffffffff"
- "ffffiffff"
- "ffsfvfbff"
- "fffffffff"
- "ffffxffff"
# Static buttons.
# sn:extensible
items:
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
key: f
close:
material: BARRIER
display-name: "&cClose"
key: x
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[close]"
# Buttons that show the spawner. Every template with a key is filled with the placeholders above.
# sn:extensible
templates:
# Summary of the spawner.
info:
# {icon}: the icon of the mob file (its head when it has one).
material: "{icon}"
display-name: "{mob} &7Spawner"
key: i
lore:
- "&7Spawners: &f{stack}&7/&f{limit}"
- "&7Speed: {speed}"
- "&7Restriction: {restriction}"
- ""
- "&7Drops:"
- "{drops}"
# Left-click opens the storage, right-click sells everything.
storage:
material: CHEST
display-name: "₢f2&lStorage"
key: s
lore:
- "&7Stored: &f{stored}&7/&f{capacity} &8({percent}%)"
- "&7Value: &a${value}"
- ""
- "&eLeft-click &7to open the storage."
- "&eRight-click &7to sell everything."
left-click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-storage]"
right-click-actions:
- "[vs-sell-all]"
# Sells every stored item that has a price.
sell-all:
material: GOLD_INGOT
display-name: "₢f2&lSell All"
key: v
lore:
- "&7Sells every stored item with a price."
- ""
- "&7Value: &a${value}"
- ""
- "&eClick to sell."
click-actions:
- "[vs-sell-all]"
# Opens the buy-stacks menu.
buy:
material: EMERALD
display-name: "₢f2&lBuy Spawners"
key: b
lore:
- "&7Add more spawners to this stack."
- ""
- "&7Spawners: &f{stack}&7/&f{limit}"
- ""
- "&eClick to open."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-buy]"menus/exp.yml
# ============================================================
# SnVirtualSpawners - "exp" spawner menu (XP mobs)
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved.
# Every field supported here is listed in SnLib docs/menu-example.yml.
# Mobs open it with "menu: exp" in their mobs/<id>.yml.
# ============================================================
#
# Placeholders of every template below: {mob} {stack} {limit} {stored} {capacity} {percent}
# {value} {xp} {max-xp} {xp-percent} {speed} {drops} {restriction} {icon}.
# Spawner actions: [vs-storage] [vs-sell-all] [vs-collect-xp] [vs-buy].
# Menu title; replace it with a resource-pack glyph if you use one.
title: "₢f2&lSpawner &8| {mob}"
# Discards clicks outside the four basic mouse buttons.
strict-clicks: true
# Cell map, one string per row.
# f filler i spawner info e stored XP c collect XP b buy spawners x close
# Remove a button by replacing its character with f.
layout:
- "fffffffff"
- "ffffiffff"
- "ffefcfbff"
- "fffffffff"
- "ffffxffff"
# Static buttons.
# sn:extensible
items:
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
key: f
close:
material: BARRIER
display-name: "&cClose"
key: x
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[close]"
# Buttons that show the spawner. Every template with a key is filled with the placeholders above.
# sn:extensible
templates:
# Summary of the spawner.
info:
# {icon}: the icon of the mob file (its head when it has one).
material: "{icon}"
display-name: "{mob} &7Spawner"
key: i
lore:
- "&7Spawners: &f{stack}&7/&f{limit}"
- "&7Speed: {speed}"
- "&7Restriction: {restriction}"
# XP bar: stored XP against the XP capacity.
xp:
material: EXPERIENCE_BOTTLE
display-name: "₢f2&lStored XP"
key: e
lore:
- "&7XP: &a{xp}&7/&a{max-xp}"
- "&7Filled: &f{xp-percent}%"
# Gives every stored XP point to the player.
collect-xp:
material: ENCHANTING_TABLE
display-name: "₢f2&lCollect XP"
key: c
lore:
- "&7Receive the stored XP directly."
- ""
- "&7XP: &a{xp}"
- ""
- "&eClick to collect."
click-actions:
- "[sound] ENTITY_EXPERIENCE_ORB_PICKUP"
- "[vs-collect-xp]"
# Opens the buy-stacks menu.
buy:
material: EMERALD
display-name: "₢f2&lBuy Spawners"
key: b
lore:
- "&7Add more spawners to this stack."
- ""
- "&7Spawners: &f{stack}&7/&f{limit}"
- ""
- "&eClick to open."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-buy]"menus/mixto.yml
# ============================================================
# SnVirtualSpawners - "mixto" spawner menu (items and XP)
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved.
# Every field supported here is listed in SnLib docs/menu-example.yml.
# Mobs open it with "menu: mixto" in their mobs/<id>.yml.
# ============================================================
#
# Placeholders of every template below: {mob} {stack} {limit} {stored} {capacity} {percent}
# {value} {xp} {max-xp} {xp-percent} {speed} {drops} {restriction} {icon}.
# Spawner actions: [vs-storage] [vs-sell-all] [vs-collect-xp] [vs-buy].
# Menu title; replace it with a resource-pack glyph if you use one.
title: "₢f2&lSpawner &8| {mob}"
# Discards clicks outside the four basic mouse buttons.
strict-clicks: true
# Cell map, one string per row.
# f filler i spawner info s storage e stored XP (click collects) v sell all
# b buy spawners x close
# Remove a button by replacing its character with f.
layout:
- "fffffffff"
- "ffffiffff"
- "fsfefvfbf"
- "fffffffff"
- "ffffxffff"
# Static buttons.
# sn:extensible
items:
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
key: f
close:
material: BARRIER
display-name: "&cClose"
key: x
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[close]"
# Buttons that show the spawner. Every template with a key is filled with the placeholders above.
# sn:extensible
templates:
# Summary of the spawner.
info:
# {icon}: the icon of the mob file (its head when it has one).
material: "{icon}"
display-name: "{mob} &7Spawner"
key: i
lore:
- "&7Spawners: &f{stack}&7/&f{limit}"
- "&7Speed: {speed}"
- "&7Restriction: {restriction}"
- ""
- "&7Drops:"
- "{drops}"
# Left-click opens the storage, right-click sells everything.
storage:
material: CHEST
display-name: "₢f2&lStorage"
key: s
lore:
- "&7Stored: &f{stored}&7/&f{capacity} &8({percent}%)"
- "&7Value: &a${value}"
- ""
- "&eLeft-click &7to open the storage."
- "&eRight-click &7to sell everything."
left-click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-storage]"
right-click-actions:
- "[vs-sell-all]"
# Stored XP; a click gives all of it to the player.
xp:
material: EXPERIENCE_BOTTLE
display-name: "₢f2&lStored XP"
key: e
lore:
- "&7XP: &a{xp}&7/&a{max-xp} &8({xp-percent}%)"
- ""
- "&eClick to collect."
click-actions:
- "[sound] ENTITY_EXPERIENCE_ORB_PICKUP"
- "[vs-collect-xp]"
# Sells every stored item that has a price.
sell-all:
material: GOLD_INGOT
display-name: "₢f2&lSell All"
key: v
lore:
- "&7Sells every stored item with a price."
- ""
- "&7Value: &a${value}"
- ""
- "&eClick to sell."
click-actions:
- "[vs-sell-all]"
# Opens the buy-stacks menu.
buy:
material: EMERALD
display-name: "₢f2&lBuy Spawners"
key: b
lore:
- "&7Add more spawners to this stack."
- ""
- "&7Spawners: &f{stack}&7/&f{limit}"
- ""
- "&eClick to open."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-buy]"guis/storage.yml
# ============================================================
# SnVirtualSpawners - spawner storage
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved.
# Every field supported here is listed in SnLib docs/menu-example.yml.
# Opened from a spawner menu with [vs-storage].
# ============================================================
#
# Placeholders of the templates with a key: {mob} {stack} {limit} {stored} {capacity}
# {percent} {value} {xp} {max-xp} {xp-percent} {speed} {drops} {restriction} {icon}.
# Placeholders of the entry template: {material} {item} {amount} {amount-short} {value}.
# Menu title; replace it with a resource-pack glyph if you use one.
title: "₢f2&lStorage &8| {mob}"
# Enables the storage pages; the previous/next buttons stop working without it.
pagination: true
# Layout character whose cells each show one stored item.
paged-key: d
# Discards clicks outside the four basic mouse buttons.
strict-clicks: true
# Cell map, one string per row.
# f filler d one stored item v sell all b back i storage summary
# < previous page > next page
# Remove a button by replacing its character with f.
layout:
- "fffffffff"
- "fdddddddf"
- "fdddddddf"
- "fdddddddf"
- "fdddddddf"
- "<ffvbiff>"
# Static buttons.
# sn:extensible
items:
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
key: f
# Back to the spawner menu.
back:
material: ARROW
display-name: "₢f2&lBack"
key: b
lore:
- "&7Return to the spawner menu."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-back]"
previous-page:
material: ARROW
display-name: "₢f2Previous Page"
key: "<"
click-actions:
- "[previous-page]"
- "[sound] UI_BUTTON_CLICK"
nav-disabled:
material: GRAY_STAINED_GLASS_PANE
display-name: "&7No Previous Page"
lore:
- "&8You are on the first page"
next-page:
material: ARROW
display-name: "₢f2Next Page"
key: ">"
click-actions:
- "[next-page]"
- "[sound] UI_BUTTON_CLICK"
nav-disabled:
material: GRAY_STAINED_GLASS_PANE
display-name: "&7No Next Page"
lore:
- "&8You are on the last page"
templates:
# One stored item. It shows the item itself (its name comes from the game, in each
# player's language); these lore lines are added below it.
entry:
material: CHEST
lore:
- ""
- "&7Stored: &f{amount}"
- "&7Value: &a${value}"
- ""
- "&eLeft-click &7to take 1."
- "&eRight-click &7to take 64."
- "&eShift-click &7to take all that fits."
left-click-actions:
- "[vs-take] {material} 1"
right-click-actions:
- "[vs-take] {material} 64"
shift-left-click-actions:
- "[vs-take] {material} all"
shift-right-click-actions:
- "[vs-take] {material} all"
# Sells every stored item that has a price.
sell-all:
material: GOLD_INGOT
display-name: "₢f2&lSell All"
key: v
lore:
- "&7Sells every stored item with a price."
- ""
- "&7Value: &a${value}"
- ""
- "&eClick to sell."
click-actions:
- "[vs-sell-all]"
# Fill level of the storage.
info:
material: HOPPER
display-name: "₢f2&lStorage"
key: i
lore:
- "&7Stored: &f{stored}&7/&f{capacity}"
- "&7Filled: &f{percent}%"
- "&7Value: &a${value}"guis/buy-stacks.yml
# ============================================================
# SnVirtualSpawners - buy spawners into a stack
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved.
# Every field supported here is listed in SnLib docs/menu-example.yml.
# Opened from a spawner menu with [vs-buy]. A mob with buy-price 0 cannot be bought.
# ============================================================
#
# Placeholders of every template below: {mob} {stack} {limit} {stored} {capacity} {percent}
# {xp} {max-xp} {xp-percent} {speed} {drops} {restriction} {icon}, plus {price} (one
# spawner), {bulk} (buy-stacks.bulk-amount of config.yml) and {price-bulk} (its price), {max}
# (spawners the "max" button buys right now), {max-price}, {balance} and {room} (spawners
# left under the limit).
# [vs-buy-add] takes a count or "max"; every purchase is capped by the stack limit.
# Menu title; replace it with a resource-pack glyph if you use one.
title: "₢f2&lBuy Spawners &8| {mob}"
# Discards clicks outside the four basic mouse buttons.
strict-clicks: true
# Cell map, one string per row.
# f filler i stack summary a buy 1 b buy bulk c buy max x back
# Remove a button by replacing its character with f.
layout:
- "fffffffff"
- "ffffiffff"
- "ffafbfcff"
- "fffffffff"
- "ffffxffff"
# Static buttons.
# sn:extensible
items:
filler:
material: GRAY_STAINED_GLASS_PANE
display-name: " "
key: f
# Back to the spawner menu.
back:
material: ARROW
display-name: "₢f2&lBack"
key: x
lore:
- "&7Return to the spawner menu."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-back]"
# Buttons that show the stack and the prices.
# sn:extensible
templates:
# Current stack and balance.
info:
# {icon}: the icon of the mob file (its head when it has one).
material: "{icon}"
display-name: "{mob} &7Spawner"
key: i
lore:
- "&7Spawners: &f{stack}&7/&f{limit}"
- "&7Room left: &f{room}"
- "&7Price per spawner: &a${price}"
- "&7Your balance: &a${balance}"
# Buys one spawner.
add-one:
material: LIME_DYE
display-name: "&a&l+1 Spawner"
key: a
lore:
- "&7Price: &a${price}"
- ""
- "&eClick to buy."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-buy-add] 1"
# Buys buy-stacks.bulk-amount spawners (fewer when the stack limit is closer).
add-bulk:
material: EMERALD
display-name: "&a&l+{bulk} Spawners"
key: b
lore:
- "&7Price: &a${price-bulk}"
- ""
- "&eClick to buy."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-buy-add] {bulk}"
# Buys as many spawners as the balance and the stack limit allow.
add-max:
material: EMERALD_BLOCK
display-name: "&a&lBuy Max"
key: c
lore:
- "&7Spawners: &f{max}"
- "&7Price: &a${max-price}"
- ""
- "&eClick to buy."
click-actions:
- "[sound] UI_BUTTON_CLICK"
- "[vs-buy-add] max"lang/messages_en.yml
# ============================================================
# SnVirtualSpawners - language file (English)
# Managed by SnLib: new keys merge in on boot, your values are kept.
# Restyle any line freely; your edits survive updates.
# ============================================================
# Prefix prepended to every single-line message sent via sn.lang().send(...)
prefix: "₢f2&lSnVirtualSpawners &8| &7"
# snlib.* is SnLib's shared command contract (14 keys; the two help.group-*
# keys exist since SnLib 1.36.0). Every Sn plugin ships
# this block UNCHANGED: SnLib bundles NEUTRAL defaults for any key you omit and
# merges them in on boot, so an incomplete block leaks unbranded lines. Shipping
# the FULL block is what keeps the whole fleet visually identical. Placeholders
# {plugin} {usage} {description} {page} {total} {min} {max} {value} {command}
# {group} {path} are filled by SnLib. NEVER put {prefix} here (it is auto-prepended).
snlib:
no-permission: "&cYou do not have permission to use this command."
usage: "&cUsage: &e{usage}"
invalid-number: "&cInvalid number: &e{value}"
invalid-value: "&cInvalid value: &e{value}"
out-of-range: "&cValue must be between &e{min} &cand &e{max}&c: &e{value}"
number-too-small: "&cValue must be at least &e{min}&c: &e{value}"
player-not-found: "&cPlayer not found: &e{value}"
unknown-subcommand: "&cUnknown subcommand: &e{value}"
reload-done: "&aConfiguration reloaded."
help:
header: "&8&m----------&r ₢f2&l{plugin} &8&m----------"
# Branded no-separator form. SnLib's neutral default is "&e{usage} &7{description}".
entry: "₢f2{usage} &7{description}"
footer: "&7Page &f{page}&7/&f{total} &8- ₢f2/{command} help <page>"
# Own help of a groupHelp() command group (/<cmd> admin <module> help).
group-header: "&8&m----------&r ₢f2&l{group} &8&m----------"
group-footer: "&7Page &f{page}&7/&f{total} &8- ₢f2{path} help <page>"
# Short words substituted into {action}, {player}, {mob}, {location} and {ago} slots of the
# messages below, so a restyle here applies everywhere at once.
status:
# Shown instead of a name when the actor of a log entry is the console.
console: "Console"
# Shown instead of a name that was not recorded.
unknown: "Unknown"
# Shown where a value is missing, e.g. the location of an action that has none.
none: "None"
# Action labels of the log view.
action-place: "&aPlace"
action-stack: "&aStack"
action-break: "&cBreak"
action-convert: "&eConvert"
action-extract: "&bExtract"
action-sell: "&6Sell"
action-collect-xp: "&aCollect XP"
action-buy-stack: "&dBuy stack"
action-admin-give: "&5Admin give"
action-admin-set: "&5Admin set"
action-restrict: "&cRestrict"
action-admin-tool: "&5Admin tool"
# Restriction labels of the {restriction} placeholder of the spawner menus.
restriction-none: "&aNone"
restriction-sell-only: "&eSell only"
restriction-no-open: "&cLocked"
# Unit suffixes of the relative times of the log view, e.g. "2d 5h".
time-day: "d"
time-hour: "h"
time-minute: "m"
time-second: "s"
# Your own plugin messages. Do NOT write {prefix} in any value: SnLib
# auto-prepends the prefix above to every single-line message sent via
# sn.lang().send(...). A literal {prefix} renders verbatim, and SnLib
# logs a one-time WARN when the active lang file contains one.
messages:
# Action log view of /vspawner admin logs. {target} is the player or the spawner position
# being inspected; {page}, {pages} and {total} are the pagination.
logs:
# Top line of a log page.
header: "[noprefix]&8&m----------&r ₢f2&lLogs &7{target} &8&m----------"
# One log line: {ago} {player} {action} {mob} {amount} {money} {location} {details}.
entry: "[noprefix]&8{ago} ago &7{player} &8| {action} &f{mob} &7x{amount} &a${money} &8@ &7{location} &8{details}"
# Sent when nothing was logged for the target.
empty: "&7No log entries found for &f{target}&7."
# Bottom line of a log page.
footer: "[noprefix]&7Page &f{page}&7/&f{pages} &8- &f{total} &7entries"
# Replies of /vspawner admin ... (give, set, restrict, logs). {mob} is the mob display name
# unless noted. Command descriptions and argument names live in the commands: block that
# SnLib seeds into this file.
commands:
# /vspawner admin give: confirmation to the sender. {player} receiver, {amount} spawners
# held by the ONE item given.
give-done: "&aGave &f{player} &aone item holding &f{amount} {mob} &aspawners."
# Notice to the receiver; skipped when the command ended with -s.
give-received: "&aYou received one item holding &f{amount} {mob} &aspawners."
# The amount is above limits.stack-limit, so the item could not be placed. {limit}
give-over-limit: "&cOne item cannot hold more than &e{limit} &cspawners (limits.stack-limit)."
# No mob file defines that id. {mob} is what was typed.
unknown-mob: "&cUnknown mob: &e{mob}&c."
# The mob exists but is disabled in its file. {mob} is its id.
mob-disabled: "&cThe mob &e{mob} &cis disabled, so it cannot be given."
# /vspawner admin set and logs here: no spawner in reach. {range} is the reach in blocks.
look-at-spawner: "&cLook at a spawner within &e{range} &cblocks."
# /vspawner admin set: done. {stack} is the new stack, {before} the old one.
set-done: "&aThis {mob} &aspawner now holds &f{stack} &aspawners &8(was &f{before}&8)."
# The requested amount was above limits.stack-limit and was lowered to it. {limit}
set-clamped: "&eThe amount was limited to &f{limit} &e(limits.stack-limit)."
# /vspawner admin restrict add: done. {mob} is the mob id, {mode} SELL_ONLY or NO_OPEN.
restrict-set: "&aSpawners of &f{mob} &aare now restricted: &e{mode}&a."
# /vspawner admin restrict remove: done. {mob} is the mob id.
restrict-removed: "&aThe restriction of &f{mob} &awas removed."
# The mob already has that restriction. {mob} and {mode} as above.
restrict-unchanged: "&e{mob} &7already has the restriction &f{mode}&7."
# restrict remove on a mob that has none. {mob} is the mob id.
restrict-none: "&e{mob} &7has no restriction."
# A log query failed (the database error is in the console).
logs-failed: "&cThe logs could not be read. See the console."
# /vspawner admin tool: confirmation to the sender. {player} receiver, {uses} uses, {chance} percent.
tool-done: "&aGave &f{player} &aa spawner breaker with &f{uses} &auses and &f{chance}% &achance."
# Notice to the receiver; skipped when the command ended with -s.
tool-received: "&aYou received a spawner breaker: &f{uses} &auses, &f{chance}% &achance."
# breaker-tool.enabled is off, so no tool is given.
tool-disabled: "&cThe spawner breaker is disabled (breaker-tool.enabled)."
general:
# Sent when a player-only action is run from the console.
player-only: "&cOnly players can do this."
# Placing, stacking, opening and breaking spawners. {mob} is the mob display name.
spawner:
# A spawner item was placed. {amount} is the spawners it holds.
placed: "&aPlaced a {mob} &aspawner &7x{amount}&a."
# Spawner items were stacked onto a spawner. {added} were added, {stack} is the new total.
stacked: "&aAdded &f{added} &aspawners, this {mob} &aspawner now holds &f{stack}&a."
# The spawner already holds the maximum stack. {limit} is limits.stack-limit.
stack-full: "&cThis spawner is full (&e{limit} &cspawners)."
# Shift + right-click with spawners of another mob. {mob} is the spawner's own mob.
wrong-mob: "&cOnly {mob} &cspawners can be stacked on this spawner."
# The item holds more spawners than limits.stack-limit allows in one block.
over-limit: "&cThis item holds more spawners than the limit of &e{limit}&c."
# The chunk already holds limits.chunk-limit virtual spawners.
chunk-limit: "&cThis chunk already holds the maximum of &e{limit} &cvirtual spawners."
# Breaking needs a Silk Touch pickaxe (breaking.silk-touch-only).
need-silk-touch: "&cYou need a pickaxe with Silk Touch to break this spawner."
# Another player has the spawner's menu open.
in-use: "&cSomeone else is using this spawner right now."
# The mob is restricted with NO_OPEN.
restricted: "&cThe menu of this spawner is disabled."
# A spawner was broken: its storage was sold and its XP given. {amount} is the stack,
# {items} the items sold, {money} / {money-exact} the money earned, {xp} the XP received.
broken-summary: "&7Broke a {mob} &7spawner &8(&fx{amount}&8)&7: sold &f{items} &7items for &a${money-exact} &7and got &a{xp} &7XP."
# Sent when an action is repeated too fast (cooldowns.*).
cooldown: "&cSlow down a little."
# The player lacks snvirtualspawners.use.
no-permission-use: "&cYou are not allowed to use virtual spawners."
# A vanilla spawner became a virtual spawner on interaction (convert-vanilla).
converted: "&aThis {mob} &aspawner is now a virtual spawner."
# A vanilla spawner broken with Silk Touch dropped as a virtual spawner item (convert-vanilla).
converted-drop: "&aThe {mob} &aspawner dropped as a virtual spawner item."
# Spawners are still loading from the database right after a start.
not-ready: "&cSpawners are still loading, try again in a moment."
# The mob of the spawner or item is disabled or its mob file was removed.
mob-unavailable: "&cThe mob of this spawner is disabled or no longer exists."
# Breaking refused: the storage holds items that would not be paid (no sell price, or the whole sale rounds to zero money). {items} is their count.
unsold-stored: "&cThis spawner stores &e{items} &citems that would not be paid (no sell price). Take them out of its storage before breaking it."
# Same, when a restriction does not let the items be taken out.
unsold-locked: "&cThis spawner stores &e{items} &citems that would not be paid (no sell price) and cannot be taken out. Ask a staff member."
# Breaking refused: the storage holds items of a material this server version lacks. {items} is their count.
unknown-stored: "&cThis spawner stores &e{items} &citems this server version does not know, so it cannot be broken. Ask a staff member."
# Breaking refused: the economy could not pay the stored items; nothing was removed.
break-payout-failed: "&cThe stored items could not be sold, so the spawner was not broken."
# Broken without a spawner breaker while breaking.require-tool is on. {amount} spawners lost.
lost-without-tool: "&cThe &e{amount} &cspawners were lost: only a spawner breaker gets them back."
# Spawner breaker results. {kept} spawners got back out of {amount} broken, {uses} uses left.
tool:
# At least one spawner was kept.
kept: "&aThe spawner breaker kept &f{kept}&a/&f{amount} &aspawners. &7Uses left: &f{uses}"
# The roll kept none.
lost: "&cThe spawner breaker failed: &e{amount} &cspawners were lost. &7Uses left: &f{uses}"
# The last use was spent.
used-up: "&cYour spawner breaker broke."
# Sale feedback; config.yml feedback.sell.* picks the channels. {money} is the short form
# (1.5M), {money-exact} the full one (1,500,000), {items} the items sold, {types} the
# different items sold.
sell:
# Title of a sale: "title;subtitle;fadeIn;stay;fadeOut", times in ticks.
title: "₢f2&lSOLD;&a+${money} &8| &f{items} &7items;5;40;10"
# Action bar of a sale.
actionbar: "&a+${money} &8| &7Sold &f{items} &7items"
# Chat line of a sale.
chat: "&7Sold &f{items} &7items for &a${money-exact}&7."
# Items that have no sell price anywhere; they stay in the storage. {items} is their count.
unsold: "&e{items} &7items have no sell price and stay stored."
# Sent when a sale finds nothing with a price.
nothing-to-sell: "&cThere is nothing to sell."
# Sent when the economy could not pay a sale; the items stay stored.
payout-failed: "&cThe sale could not be paid, your items stay stored."
# Spawner menus, storage and buy-stacks. {item} is the item name in the player's language,
# {amount} a count, {money} the short money form (1.5M), {money-exact} the full one.
menu:
# The menu template of the spawner and spawner.default-menu are both missing.
template-missing: "&cThe menu of this spawner is not available. Please tell a staff member."
# The spawner was removed while its menu was open.
spawner-gone: "&cThis spawner no longer exists."
# The menu lost its hold on the spawner; open it again.
session-expired: "&cThis menu is no longer valid, open the spawner again."
# Stored XP was given to the player. {xp} is the amount.
xp-collected: "&aCollected &f{xp} &aXP."
# Collect XP with no XP stored.
xp-empty: "&cThis spawner has no XP stored."
# Items were taken out of the storage.
extracted: "&aTook &f{amount}x &f{item}&a."
# The inventory changed mid-extraction and some items dropped at the player's feet.
extract-dropped: "&e{amount}x {item} &7did not fit and dropped at your feet."
# The clicked item is no longer stored.
extract-nothing: "&cThat item is no longer stored."
# Not a single item fits the inventory; nothing was taken.
extract-full-inventory: "&cYour inventory is full."
# The mob is restricted with SELL_ONLY: items can be sold but not taken out.
extract-restricted: "&cItems of this spawner can only be sold."
# Spawners were bought. {stack} is the new stack.
bought: "&aBought &f{amount} &aspawners for &a${money-exact}&a. This spawner now holds &f{stack}&a."
# The balance does not cover the purchase. {price} is its cost.
not-enough-money: "&cYou cannot afford that (&e${price}&c)."
# The stack already holds limits.stack-limit spawners. {limit} is the limit.
buy-limit: "&cThis spawner already holds the maximum of &e{limit} &cspawners."
# The mob has no buy-price, so its spawners cannot be bought.
buy-disabled: "&cSpawners of this mob cannot be bought."
# The stack accepted fewer spawners than were paid for; the difference was refunded.
buy-refunded: "&e{amount} &7spawners did not fit; &a${money} &7was refunded."
# The refund of a purchase could not be paid. {amount} is the money not refunded.
refund-failed: "&cCould not refund &e${amount}&c. Contact an administrator."
# No economy plugin is available to charge the purchase.
economy-unavailable: "&cPurchases are not available right now."
# Text fragments of the menu placeholders.
format:
# {speed} when the delay is a range. {min} and {max} are seconds.
speed: "&f{min}s &7- &f{max}s"
# {speed} when the delay is fixed.
speed-fixed: "&f{min}s"
# One line of {drops}. {item} {material} {chance} {min} {max}.
drop-line: "&8- &f{item} &7{chance}%"