config.yml Reference
Every server-wide setting, annotated.
plugins/ProVouchers/config.yml holds server-wide settings. Per-voucher and
per-code options live in their own files (see Voucher Reference
and Code Reference).
The full file
locale:
# Language for plugin messages. ProVouchers ships English (lang/en.yml); copy it to
# lang/<code>.yml (e.g. lang/de.yml) to translate. Missing keys fall back to English.
default: en
# Serve each player their Minecraft client language when a matching lang file exists.
per-player: true
storage:
# Backend: sqlite | mysql | mariadb | postgres
# SQLite is file-based and needs no extra setup; the others connect to a server.
backend: sqlite
# The settings below are used only by the networked backends.
host: localhost
port: 5432
database: provouchers
username: provouchers
password: ""
pool-size: 10
anti-dupe:
# When a duplicate voucher is detected on redeem, remove the item instead of
# returning it to the player.
remove-on-discovery: true
warning:
# When a returned duplicate is detected, append a warning line to its lore.
enabled: false
text: "<red>This item has been duplicated"
notify:
# Alert staff (players with provouchers.notify) when a duplicate is caught.
enabled: true
redeem:
# Left-click a held voucher to preview its rewards in a GUI.
# Experimental and incomplete: off by default for now.
left-click-preview: false
# When batch-opening a stack, suppress per-item reward feedback and show one summary.
batch-open-quiet: true
# How many seconds a two-step-authentication confirmation stays valid.
confirm-window-seconds: 5
stash:
# Virtual vouchers players claim from a menu with /stash.
enabled: true
command-aliases: [ rewards ]
rows: 6
notify-on-join: true
expire-after: "" # e.g. 30d; blank = never
overflow: drop # drop | stash
metrics:
# Submit anonymous usage statistics (bStats and FastStats).
# Set to false to opt out entirely.
enabled: truelocale
See Localization for translating messages.
| Key | Default | Notes |
|---|---|---|
locale.default | en | The active language, and the language for console output. Add lang/<code>.yml files to translate. |
locale.per-player | true | Serve each player their Minecraft client language when a matching lang/<code>.yml exists, otherwise the default. |
storage
See Storage and Database for full details.
| Key | Default | Notes |
|---|---|---|
storage.backend | sqlite | sqlite, mysql, mariadb, or postgres. |
storage.host | localhost | Networked backends only. |
storage.port | 5432 | Networked backends only. Default 3306 for MySQL/MariaDB. |
storage.database | provouchers | Database name. |
storage.username | provouchers | Database user. |
storage.password | "" | Database password. |
storage.pool-size | 10 | Max pooled connections. |
An unknown backend value falls back to SQLite with a warning in the console.
anti-dupe
See Anti-Dupe and Anti-Exploit.
| Key | Default | Notes |
|---|---|---|
anti-dupe.remove-on-discovery | true | Remove a duplicate voucher when caught, instead of returning it. |
anti-dupe.warning.enabled | false | Append a warning lore line to a returned duplicate. |
anti-dupe.warning.text | <red>This item has been duplicated | The warning lore line (MiniMessage). |
anti-dupe.notify.enabled | true | Alert staff (provouchers.notify) when a duplicate is caught. The message is the staff.duplicate-alert language key. |
redeem
| Key | Default | Notes |
|---|---|---|
redeem.left-click-preview | false | Left-click a held voucher to preview its rewards in a GUI. Experimental and incomplete, so off by default. |
redeem.batch-open-quiet | true | When batch-opening a stack, suppress per-item reward feedback (messages, titles, sounds) and show one summary line. |
redeem.confirm-window-seconds | 5 | How long a two-step-authentication confirmation stays valid. |
redeem.confirm-style | chat | How the confirmation is asked: chat (click again after a prompt) or gui (a confirm/cancel menu showing the voucher). |
Auto-give
Give vouchers automatically to first-time joiners:
auto-give:
first-join:
- welcome_crateIds resolve at join time, so /voucher reload fixes a typo without a restart;
enabling or disabling the section itself needs one. An unknown id is logged.
Cooldown tiers
Permission-based multipliers applied to every voucher cooldown:
cooldown:
tiers:
vip: 0.5 # provouchers.cooldown.vip halves cooldowns
mvp: 0.0 # provouchers.cooldown.mvp removes themA player holding several tiers gets the lowest multiplier. Read once at startup;
changing tiers needs a restart. provouchers.bypass.cooldown still skips
cooldowns entirely.
stash
The Stash of virtual vouchers players claim with /stash. Read at
startup; changing these needs a restart, except stash.overflow, which
/voucher reload applies live.
| Key | Default | Notes |
|---|---|---|
stash.enabled | true | Register /stash and the join notification. |
stash.command-aliases | [ rewards ] | Extra names for /stash. |
stash.title | gradient | The menu title (MiniMessage). |
stash.rows | 6 | Menu height, 3 to 6. |
stash.notify-on-join | true | Greet a joining player when rewards are waiting. |
stash.expire-after | "" | New entries lapse after this (e.g. 30d); blank never expires. |
stash.overflow | drop | When a give does not fit a player's inventory: drop the items, or stash them. |
metrics
| Key | Default | Notes |
|---|---|---|
metrics.enabled | true | Submit anonymous usage stats (bStats and FastStats). Set to false to opt out. |
Metrics report only aggregate, non-identifying data (such as which storage backend is in use and how many vouchers are loaded). They never include player data. See Metrics and Telemetry for the full list of charts and how to opt out.
Applying changes
config.yml is read on startup. After editing it, restart the server for storage,
locale, and redeem settings to take effect. Voucher and code files, and the language
files in lang/, are reloaded live with /voucher reload.