ProVouchers

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

config.yml
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: true

locale

See Localization for translating messages.

KeyDefaultNotes
locale.defaultenThe active language, and the language for console output. Add lang/<code>.yml files to translate.
locale.per-playertrueServe each player their Minecraft client language when a matching lang/<code>.yml exists, otherwise the default.

storage

See Storage and Database for full details.

KeyDefaultNotes
storage.backendsqlitesqlite, mysql, mariadb, or postgres.
storage.hostlocalhostNetworked backends only.
storage.port5432Networked backends only. Default 3306 for MySQL/MariaDB.
storage.databaseprovouchersDatabase name.
storage.usernameprovouchersDatabase user.
storage.password""Database password.
storage.pool-size10Max pooled connections.

An unknown backend value falls back to SQLite with a warning in the console.

anti-dupe

See Anti-Dupe and Anti-Exploit.

KeyDefaultNotes
anti-dupe.remove-on-discoverytrueRemove a duplicate voucher when caught, instead of returning it.
anti-dupe.warning.enabledfalseAppend a warning lore line to a returned duplicate.
anti-dupe.warning.text<red>This item has been duplicatedThe warning lore line (MiniMessage).
anti-dupe.notify.enabledtrueAlert staff (provouchers.notify) when a duplicate is caught. The message is the staff.duplicate-alert language key.

redeem

KeyDefaultNotes
redeem.left-click-previewfalseLeft-click a held voucher to preview its rewards in a GUI. Experimental and incomplete, so off by default.
redeem.batch-open-quiettrueWhen batch-opening a stack, suppress per-item reward feedback (messages, titles, sounds) and show one summary line.
redeem.confirm-window-seconds5How long a two-step-authentication confirmation stays valid.
redeem.confirm-stylechatHow 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_crate

Ids 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 them

A 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.

KeyDefaultNotes
stash.enabledtrueRegister /stash and the join notification.
stash.command-aliases[ rewards ]Extra names for /stash.
stash.titlegradientThe menu title (MiniMessage).
stash.rows6Menu height, 3 to 6.
stash.notify-on-jointrueGreet a joining player when rewards are waiting.
stash.expire-after""New entries lapse after this (e.g. 30d); blank never expires.
stash.overflowdropWhen a give does not fit a player's inventory: drop the items, or stash them.

metrics

KeyDefaultNotes
metrics.enabledtrueSubmit 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.

On this page