Commands and Permissions
The /voucher command tree and every permission node.
All commands live under /voucher, with the aliases /pv and /vouchers.
Commands
| Command | Permission | Role | Description |
|---|---|---|---|
/voucher give <id> [amount] [player] | provouchers.give | admin | Give a voucher to yourself or another player. |
/voucher giveall <id> [amount] [permission] | provouchers.giveall | admin | Give a voucher to every online player. |
/voucher stashgive <player> <id> [amount] [argument] | provouchers.stashgive | admin | Queue a voucher in a player's Stash, online or offline. |
/stash | provouchers.stash | player | Open your Stash of claimable virtual vouchers. |
/voucher redeem <code> [arg] | provouchers.redeem | player | Redeem a typeable code. |
/voucher preview | provouchers.preview | admin | Browse loaded vouchers in a GUI and give yourself a copy. |
/voucher list | provouchers.list | admin | List loaded vouchers and the code count. |
/voucher reload [id] | provouchers.reload | admin | Reload all voucher and code files, or just one by id, reporting per-file errors. |
/voucher resetuses <id> [player] | provouchers.resetuses | admin | Clear the recorded use counters for a voucher or code, for one player or everyone. |
/voucher import crazyvouchers | provouchers.import | admin | Import CrazyVouchers configs as ProVouchers voucher files. |
/voucher fromhand <id> | provouchers.fromhand | admin | Capture the held item as a new voucher file, behind a confirm GUI. |
/voucher doctor | provouchers.doctor | admin | Print a diagnostic health report (storage, integrations, content, locale). |
give
/voucher give crate_key # to yourself (if you are a player)
/voucher give crate_key 5 # 5 copies, to yourself
/voucher give crate_key 5 Steve # 5 copies, to SteveWhen the player argument is omitted, the voucher goes to the command sender.
Running give from the console requires naming a player. By default vouchers stack;
a voucher set to stackable: false is stamped per item and does not stack (see
Anti-Dupe).
giveall
/voucher giveall crate_key 1
/voucher giveall crate_key 1 group.vip # only players with this permissionGives the voucher to every player currently online, or only to those holding the
optional permission node. To reach an offline player, use stashgive.
stashgive
/voucher stashgive Steve crate_key
/voucher stashgive Steve crate_key 3 vip # 3 copies, with %arg% = vipQueues a voucher in a player's Stash instead of handing over an item.
The target may be online or any player who has joined the server before, so this is how
you deliver a reward to someone who is offline. They claim it with /stash.
redeem
/voucher redeem WELCOME
/voucher redeem REFER Steve # with an argument, if the code uses onePlayers use this for codes. The code must be typed exactly, honouring
case-sensitive when the code sets it.
preview
/voucher previewOpens a paginated GUI listing every loaded voucher. Right-click a voucher to give yourself a copy, or left-click it for a per-voucher info menu. Handy for checking how a voucher's item, name, and lore actually render before handing it out.
reload
/voucher reload # everything
/voucher reload <id> # one fileReloads every file in vouchers/ and codes/. If a file has a mistake (an unknown
reward type, a bad material, an invalid expiry, a malformed condition), the reload
reports it with the file name and the reason, and keeps loading the rest.
Pass an id to reload only the vouchers/<id>.yml and/or codes/<id>.yml file by
that name, leaving every other loaded entry in place. This is handy for quick edits
on a busy server. The id tab-completes from the loaded vouchers. A file that now
fails to parse keeps its previously loaded version, so a typo never drops a working
voucher.
import
/voucher import <source> # e.g. /voucher import crazyvouchersImports another voucher plugin's configuration into ProVouchers files. The source is tab-completed from the plugins whose data is present. CrazyVouchers is built in; the importer is a pluggable framework so more sources can be added.
For CrazyVouchers it reads both vouchers (modern per-file and the legacy
vouchers.yml) and codes (modern per-file and the legacy codes.yml), and
writes each as a ProVouchers file: legacy & color codes convert to MiniMessage,
{player} and {arg} become %player% and %arg%, give-items (including their
enchantments, damage, and trim) become defined items,
and commands, random and chance commands, sounds, fireworks, heads, cooldowns,
world whitelists, usage limiters, permission whitelists, required placeholders, dye
colors, the enabled toggle, and item models map to their ProVouchers equivalents.
A disabled CrazyVouchers code keeps its enabled: false, and a code's own sound and
firework become its redeem effects. Existing ids are
never overwritten.
Every key with no ProVouchers equivalent is reported, never silently dropped,
so a migration can be audited completely: preview-only visuals (display damage and
trim), tooltip/item-model components, blacklist permissions, item enchantments, and
the like each produce a line in the result. The full report is printed without
truncation. Review the imported files, then adjust and /voucher reload.
resetuses
/voucher resetuses <id> # everyone
/voucher resetuses <id> <player> # one playerClears the persistent use counters behind max-uses and uses-per-player (and a
code's use limits). Run it after reconfiguring a capped voucher, or to let a
specific player redeem again.
fromhand
/voucher fromhand <id>Captures the item in your main hand as a new voucher: a confirm GUI shows the item
rebuilt from its serialized form (exactly what the voucher will give, full
fidelity), and confirming writes vouchers/<id>.yml and loads it immediately.
Cancelling or closing the menu writes nothing.
doctor
/voucher doctorPrints a quick health report: plugin version and server flavor, the storage backend and whether the pool is connected, how many vouchers and codes are loaded, which integrations were detected (economy, permissions, item providers, regions), the active locale and loaded languages, and whether metrics are on. Use it to confirm a fresh install or to diagnose a misconfiguration.
Bypass and utility permissions
| Permission | Effect |
|---|---|
provouchers.bypass.cooldown | Ignore per-voucher redemption cooldowns. |
provouchers.bypass.gamemode | Redeem in any game mode (creative and spectator are blocked by default). |
provouchers.bypass.owner | Redeem an owner-only voucher belonging to another player. |
provouchers.notify | Receive a staff alert when a duplicate voucher is detected. |
Permission nodes you define
Conditions of type permission reference whatever node you choose, by convention
under provouchers.use.<id>:
conditions:
- type: permission
permission: "provouchers.use.crate_key"Grant that node to the players or groups who should be able to redeem the voucher. These are normal permissions you manage in your permissions plugin; they are not auto-created.
Redeeming items
Holding a voucher and right-clicking redeems it (main or off hand). The item is validated, checked for duplication, consumed, and the rewards are granted. Placing a voucher into an item frame is blocked, to keep it tied to its anti-dupe stamp.