COWMODSКаталог модов

ProVouchers

Create vouchers with a powerful ecosystem of integrations, built to help your server stand out.

Автор: alazso2143обновлён 19 окт. 2026 г.
ПриключенияЭкономикаУтилиты

Описание

ProVouchers: a powerful ecosystem of integrations for your server

Build Total downloads Minecraft License

Documentation Source Support Discord


Create vouchers and redeemable codes backed by a powerful ecosystem of integrations, built to help your server stand out. Hand out rewards as items players right-click or codes players type, define everything in plain YAML, and reload it live, with persistent anti-dupe and cooldowns that survive restarts.


At a glance

🌍 Per-player localizationEvery player sees messages in their own Minecraft client language. Ships in 7 languages.
🔒 Soulbound vouchersCannot be dropped, stored, or traded (each toggle configurable), with optional bind-on-pickup.
🎁 Vouchers and codesOne reward system, two ways to deliver it.
🧩 Typed rewardsItems, currency, XP, ranks, permissions, commands, titles, sounds, and weighted random sets.
🧱 Layered conditionsGate redemptions on playtime, rank, region, economy, advancements, PlaceholderAPI, and more.
🛡️ Anti-dupe that holdsPer-item stamps in persistent storage. Clones are rejected; creative, crafting, and item frames are blocked.
⏳ Persistent limitsCooldowns and usage caps survive restarts and apply network-wide on a shared database.
🔌 Drop-in integrationsItemsAdder, Oraxen, Nexo, Head Database, Vault, LuckPerms, PlaceholderAPI, MiniPlaceholders, WorldGuard.

Every feature

Delivery and rewards

  • Vouchers (physical items players right-click) and codes (typed with /voucher redeem).
  • Reward types: items, currency, XP, ranks, permissions, console/player commands, broadcasts, titles, action bars, sounds, Discord webhooks.
  • Weighted random reward sets, on top of always-run rewards.
  • Named random rolls (%random:1-100:loot%): give a roll and announce the exact same number.
  • Decorated reward items: define an item once (name, lore, glow, custom/head) and grant it by reference.
  • Discord webhooks: post a message or a rich embed to a per-voucher webhook on redeem; drop it in a random set to announce only the rare hits.
  • Shift + right-click to mass-open a whole stack at once.

The Stash (virtual, itemless vouchers)

  • Players claim queued rewards from a /stash menu; each claim runs the voucher through the normal pipeline (its conditions and effects), with a Claim all button.
  • /voucher stashgive and the developer API deliver vouchers to offline players.
  • Overflow safety net: a reward that does not fit a player's inventory queues in the Stash instead of dropping on the ground.
  • Optional auto-expiry with a live countdown on each entry.

Conditions (all must pass before a redeem)

  • permission, rank (LuckPerms), world, region (WorldGuard), gamemode, economy balance (Vault), experience level, playtime, item in inventory, advancement completed, PlaceholderAPI comparison, player statistic.

Limits and lifecycle

  • Global usage limits per voucher or code (the first N redemptions server-wide).
  • Per-player usage limits (each player may redeem it N times, ever).
  • Per-player cooldowns that survive restarts, with permission-based tiers so VIPs wait less.
  • Expiry: a fixed date (2026-07-01), a date-time, or relative (30d from when it was given).
  • Active-from: not redeemable until a chosen date.

Security and control

  • Soulbound: block dropping, storing, and trading independently; optionally bind to whoever picks it up.
  • Owner-only vouchers: only the player it was given to may redeem it.
  • Two-step confirmation: require a second click, as a chat prompt or a GUI dialog.
  • Blocked in creative and spectator, and as a crafting ingredient or in anvils, grindstones, looms, item frames, and more.

Localization

  • Per-player locale: Player A sees Polish while Player B sees French, from their client language, no commands needed.
  • Bundled in English, German, French, Spanish, Polish, Danish, and Dutch. Untranslated lines fall back to English, never blank.

Appearance

  • Custom items and heads: ItemsAdder, Oraxen, Nexo, Head Database, vanilla player heads, and custom model data.
  • Redeem effects: play a sound and/or a firework on a successful redeem.

Admin and developer tools

  • Live reload of everything, or a single file by id.
  • /voucher fromhand: capture the item in your hand as a new voucher, behind a confirm GUI.
  • Import from CrazyVouchers (/voucher import): vouchers and codes, with a full report of anything that needs review.
  • /voucher doctor diagnostics and a reward preview GUI.
  • Published developer API with cancellable pre-redeem and post-redeem events.
  • Folia-ready: off-thread storage, region-safe rewards.

A complete voucher

# plugins/ProVouchers/vouchers/daily.yml
id: daily
display-name: "<gradient:#FFD700:#FF8A00>Daily Reward</gradient>"
item:
  material: SUNFLOWER
  glow: true
lore:
  - "<gray>Right-click to claim today's reward"
cooldown: 86400          # once per day, survives restarts
rewards:
  - "currency: give 250"
  - "item: DIAMOND 1"
  - "message: <green>Thanks for playing today!"

That is a working voucher, top to bottom. The documentation covers every reward, condition, and option, with examples.


Migrating from CrazyVouchers?

Drop ProVouchers in beside it and run /voucher import crazyvouchers. It converts your vouchers and codes (both the modern and legacy layouts), translates color codes and placeholders, and prints a complete report of anything that has no equivalent so nothing changes behind your back. Your existing files are never touched.


Requirements

ServerPaper, Folia, or Purpur
Minecraft26.1 or newer
Java25

Optional integrations: Vault (economy), LuckPerms, PlaceholderAPI, MiniPlaceholders, WorldGuard, ItemsAdder, Oraxen, Nexo, Head Database. Each is detected automatically when installed; nothing breaks when it is absent.


Help translate

ProVouchers ships in seven languages, and we would love more. The message files are plain YAML (lang/): copy en.yml to your language code, translate the values, and open a pull request or share it in Discord. Native speakers reviewing the existing translations (Polish and Danish especially) are very welcome too.


Found a bug? Have an idea?

Bug reports and feature ideas are welcome. Open a GitHub issue with your server software and version, your ProVouchers version, and the relevant config plus any console output. For quick questions or to help test, join the Discord.


Released under the MIT License.

Последние версии

Все версии →
release

v1.5.0

1.5.0
19 окт. 2026 г.16Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3folia, paper, purpur
Скачать
Что нового
### Added - `command-aliases` in `config.yml` sets the extra names for `/voucher` (default `vouchers`). `[]` registers none; `/voucher` itself always works. ### Changed - `/voucher` no longer registers `/pv`, which PlayerVaults uses. Add `pv` to `command-aliases` to keep it. - Aliases for `/voucher` and `/stash` are trimmed and lower-cased; blank entries, entries containing spaces, and duplicates are ignored. - Activity metrics (redemptions, blocked duplicates, condition denials, Stash activity) report the count since the previous report instead of a running session total, so they no longer climb with server uptime. - `effects.sound` keys are checked at `/voucher reload`: a key that is not a valid sound key fails its voucher or code file instead of failing at redeem, and upper-case keys now play. - Storage takes queries only once its schema upgrades have finished. Opening storage is retried a few times over about 15 seconds, so servers sharing a database that start together both come up. If it still fails, everything that needs storage stays unavailable until it is fixed, instead of running against a half-upgraded database. - Published for Minecraft 26.2 and 26.3. The plugin still runs on 26.1 or newer. - `/voucher doctor` reports what metrics are actually doing: which providers started, the FastStats SDK version, whether it submits metrics, and whether error reports are sent. It previously showed only the `metrics.enabled` switch, which says nothing about a provider that failed to start or a server that opted out of FastStats. - The API documentation now states that `VoucherPreRedeemEvent` and `VoucherRedeemEvent` also fire for a Stash claim, where the item id is `null`, and that cancelling the pre-redeem event returns the claimed entries to the Stash. - Updated FastStats to 0.30.2, which anonymizes Discord webhook URLs in error reports. ### Fixed - A broken third-party plugin no longer stops ProVouchers from enabling. Checking for an integration searches every plugin on the server, so a plugin that failed to enable and had its jar closed made that check throw. The integration now counts as absent, with a warning naming the class, and a provider that cannot be built is skipped the same way. - Stash: claiming a card no longer deletes vouchers delivered after the menu was opened. Each delivery is stored on its own and the menu combines matching ones into one card, so a claim takes exactly the deliveries on that card. - Stash: concurrent deliveries of the same voucher no longer multiply later deliveries. - Stash: a claim interrupted by a logout restores its rewards, including a logout while the claim is still reaching storage, and Claim all no longer restores rewards that another claim already took. - Soulbound and crafting-station protection now also block number-key swaps, offhand swaps, and bundle placement into containers and stations. - Cooldowns can no longer be skipped by redeeming right after joining, or after moving between servers that share a database, before the player's stored cooldowns have loaded. Until they load, vouchers with a cooldown reply that they could not be verified and loading retries; while storage is unavailable, those vouchers stay unavailable rather than ignoring stored cooldowns. - Use limits (`max-uses` and `uses-per-player`) on vouchers and codes are reserved in storage before any reward is granted, so players redeeming at the same moment, on one server or on several sharing a database, can no longer exceed a limit, and simultaneous uses are no longer undercounted. - Logging out while a voucher or code is being verified no longer uses it up without a reward. An item voucher stays in the inventory until its reward is delivered, and a redeem that cannot be delivered gives back its use and does not mark a stamped voucher as redeemed. - Redeeming several copies of a voucher in quick succession can no longer grant extra rewards before its cooldown or use limit applies: while one redeem of a voucher is being verified, further clicks on that voucher are ignored. - A stamped voucher is no longer removed as a duplicate when storage failed while its unfinished redeem was being undone. Undoing it is retried, and until it succeeds the voucher replies that it could not be verified. - A voucher given to a player who logs out before it arrives is queued in their Stash, or logged when the Stash is disabled, instead of being lost. Player command and `item: @name` rewards that could not be delivered because the player logged out are logged. - A redeem effect that fails, such as a sound that cannot play, no longer stops the rest of a batch open or Stash claim from being granted. - A voucher icon or reward that uses a player head no longer fails with an internal error when its skin lookup fails immediately, such as for an unknown player name. - Redeems, Stash claims, and gives still in progress when the server stops are settled before storage closes: uses and anti-dupe claims are given back, Stash entries are put back, and undelivered gives are queued in the Stash. ### Migration - Use limits are counted in a new `provouchers_use_totals` table, created and filled from the recorded uses on first start. - Update every server that shares a database at the same time. An older version running alongside this one does not count uses in the new table, so global limits could be exceeded, and it can multiply Stash deliveries, because this version stores each delivery as its own row.
release

v1.4.0

1.4.0
16 июн. 2026 г.81Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
### Added - The Stash: virtual, itemless vouchers a player claims from a menu with `/stash`. A claim runs the voucher through the normal redeem pipeline (its conditions and effects), with no cooldown or use limit, and the entry is removed atomically so a reward is claimed at most once and never lost. - `/voucher stashgive <player> <id> [amount] [argument]`: queue a voucher in a player's Stash, for an online player or any who has joined before. - `VoucherService.stash(uuid, id, amount)`: queue a virtual voucher from the API, for online or offline players. - `stash.overflow: stash`: a give that does not fit a player's inventory queues the remainder in their Stash instead of dropping the items. - `stash.expire-after`: Stash entries can lapse after a duration, swept automatically, with a live countdown on each card. - A join notification reports waiting rewards, a Claim all button takes everything at once, and `stash.command-aliases` / `stash.title` / `stash.rows` tune the menu. - `discord` reward: posts to a Discord webhook, given as an inline URL or an `@name` from the voucher's own `discord-webhooks` map. A named webhook is either a URL (the reward supplies the message) or a `{ url, payload }` whose JSON payload template (embeds, username, ...) is rendered with placeholders resolved. Put it in a `random-rewards` set to announce only rare hits. ### Changed - `redeem.left-click-preview` now defaults to `false`. The left-click reward preview is experimental and unfinished, so it is opt-in until it is complete; servers that set the key explicitly are unaffected. - Updated FastStats to 0.26.1, HikariCP to 7.1.0, and the MariaDB JDBC driver to 3.5.9. ### Fixed - Shutdown is now best-effort: if one teardown step fails (for example a class that cannot load after the plugin jar was replaced under a running server), the remaining steps, including storage cleanup, still run.
release

v1.3.0

1.3.0
14 июн. 2026 г.18Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
### Added - Item appearance: voucher icons and defined items can carry `enchantments`, `damage` (durability), `unbreakable`, an armor `trim`, an `item-model` (1.21.4+), `hide-tooltip`, and a dye `color` (a named color, `#RRGGBB`, or `r,g,b`) on leather armor, potions, and maps. - `enabled` on vouchers and codes: set `false` to keep one loaded but refuse redeems. Distinct from a voucher's display-only `unredeemable`. - `effects` on codes: a sound and/or firework played to the redeemer on a successful code redeem, the same block vouchers use. - `soulbound`: bind a voucher to its holder so it cannot be dropped, stored, or traded. `true` enables every restriction, or toggle `block-drop`, `block-containers`, and `bind-on-pickup` individually. - `auto-give.first-join` in config.yml: grant listed vouchers the first time a player joins. - `/voucher import <source>`: import another voucher plugin's configuration into ProVouchers files. CrazyVouchers is built in (modern and legacy vouchers and codes); every key with no equivalent is reported, never silently dropped. - `redeem.confirm-style: gui`: two-step confirmation can use a clickable GUI instead of the chat prompt. - `/voucher giveall [permission]`: restrict a mass give to players holding a permission.
release

v1.2.0

1.2.0
12 июн. 2026 г.21Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
### Added - `playtime`, `item`, and `advancement` conditions. Playtime takes a duration (`"2h"`), item checks the inventory without consuming, advancement checks a completed advancement key. - `active-from`: vouchers and codes can start at a date, date-time, or instant. A plain date activates at the start of that day. - `max-uses` and `uses-per-player` on vouchers: persistent global and per-player redemption caps (`-1` = unlimited, the default). Batch open caps at the remaining allowance and refunds the rest. - `/voucher resetuses <id> [player]`: clears the recorded use counters for a voucher or code. - `cooldown.tiers` in config.yml: permission-based cooldown multipliers via `provouchers.cooldown.<tier>`. The lowest held tier wins; `0` removes the cooldown. - `xp` reward type: `"xp: 500"` gives points, `"xp: 30 levels"` gives levels. The amount accepts `%random%`. - `effects.firework`: a firework on redeem with named or hex colors, a shape, and a flight power. Deals no damage. - `items:` map: define decorated items (name, lore, glow, custom or skull bases, model data) once and grant them with `"item: @<name>"`. - `/voucher fromhand <id>`: captures the held item as a new voucher behind a confirm GUI. The preview is rebuilt from the serialized data, so the item shown is exactly what the voucher will give. - Bundled translations: German, French, Spanish, Polish, Danish, and Dutch ship alongside English. Players see their client language automatically. ### Changed - Updated FastStats to 0.26.0.
release

v1.1.0

1.1.0
11 июн. 2026 г.16Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
### Added - Localization: all plugin messages moved to `lang/<code>.yml`. Players see their client language when a matching file exists, otherwise `locale.default`. English fills in any missing keys. - `two-step-authentication`: redeeming requires a second click within `redeem.confirm-window-seconds`. Prompt overridable per voucher. - Reward preview: left-click a held voucher to see its loot and chances before redeeming. Controlled by `redeem.left-click-preview`. - `/voucher doctor`: prints version, server, Java runtime, storage backend and pool state, content counts, detected integrations, locale, and metrics. - `/voucher reload <id>`: reloads a single voucher or code file. A file that fails to parse keeps its loaded version. - Vouchers can no longer be used as crafting ingredients or placed into anvils, grindstones, smithing tables, looms, cartography tables, stonecutters, or brewing stands. - `effects.sound`: plays a sound on redeem, written as `"key [volume] [pitch]"`. Silent during batch open. - `%random:min-max:name%`: a named roll resolves once per redeem and repeats the same value wherever the name is reused, so a reward can give an amount and announce that same amount. - `%expiry%`: renders the voucher's expiry in its name or lore as `in 30d`, `on 2026-12-31`, or `never`. - `expiry` accepts plain dates (`2026-12-31`, valid through the end of that day in server time) and zone-less date-times, alongside durations and ISO-8601 instants. - `redeem.batch-open-quiet`: batch open skips per-item messages, titles, and sounds. - `anti-dupe.notify.enabled`: toggles staff duplicate alerts. The alert message supports `{world}`. ### Changed - Placeholders are now `%player%`, `%arg%`, and `%random:min-max%`. The curly forms still work but are deprecated; `/voucher reload` warns when a file uses them. - Updated FastStats to 0.25.2. ### Fixed - Stackable vouchers from separate gives now stack with each other. The give time is stamped only when a relative expiry needs it.
release

v1.0.0

1.0.0
10 июн. 2026 г.13Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
The first standalone release. ProVouchers no longer needs the Strata library: scheduling, text rendering, storage, the GUI, conditions, metrics, and every integration (Vault, LuckPerms, ItemsAdder, Oraxen, Nexo, HeadDatabase, WorldGuard) now ship inside the plugin. It installs as a single jar and runs on Paper, Folia, and Purpur 26.1+. 0.6.0 was never published; its work is included here. ### Added - Standalone install: one jar, no Strata. The connection pool and JDBC drivers are downloaded by Paper's library loader on first start. - Database storage on SQLite out of the box, or MySQL, MariaDB, or PostgreSQL for shared and networked setups. - Admin preview GUI (`/voucher preview`): a paginated browser of every loaded voucher. Right-click to give yourself one, left-click for a per-voucher info menu. - Batch open (`batch-open: true`): shift-right-click a stack to redeem all of it at once. Needs a stackable voucher with no cooldown. - Full-fidelity custom items: a voucher or reward item can be a serialized item that preserves enchants, name, lore, model data, attributes, and other components exactly. - Duplicate warning lore (`anti-dupe.warning.enabled` / `anti-dupe.warning.text`): mark a returned duplicate with a lore line to deter resale scams. - Dynamic tokens (`%player%`, `{player}`, `{arg}`, `{random:min-max}`) now resolve in a voucher's display name and lore, not just in rewards. ### Changed - Anti-dupe is now opt-in per voucher through a `stackable` flag (default `true`). A stackable voucher stacks freely and is not dupe-tracked. Setting `stackable: false` stamps each item with a unique id, recorded once on redeem, so duplicates are caught and those items do not stack. This replaces the old always-on batch/nonce scheme and fixes the stacking complaints. - The redeem event exposes a single `uid` in place of `batchId` and `nonce`. - Custom item references resolve strictly: a `provider:id` reference is served only by that provider, and an unknown provider prefix now fails at load instead of silently falling through. ### Migration - The schema upgrades in place on first start: a used-voucher table is added and the old stamp table is dropped. A pre-1.0.0 install is detected and its recorded schema version carried over, so migrations are not re-run. Vouchers minted before the upgrade redeem as ungoverned (they carry the old data, not a `uid`).
beta

v0.5.0

0.5.0
8 июн. 2026 г.19Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
### Added - **Command help menu**: `/voucher` and `/voucher help` show a clickable, permission-filtered list of every subcommand with its syntax. - **Comprehensive tab completion** across `/voucher`: voucher ids on `give`/`giveall`, predefined amounts (1, 16, 32, 64), and online players. Codes are intentionally never suggested, so loaded code values are not leaked. - **Usage metrics**: configuration-shape charts (reward, condition, and item-provider distributions, count buckets, feature adoption, and which integrations are installed) and runtime counters (redemptions, voucher vs. code split, duplicates blocked, condition denials, and the most-granted reward), reported through bStats and FastStats and governed by the existing `metrics.enabled` switch. - **Token amounts for item rewards**: `item: GOLD_INGOT {random:1-3}` is resolved at redeem time, the same way `currency` already worked. - **Optional integration dependencies** declared in the plugin manifest (Vault, MiniPlaceholders, Nexo, Head Database) so server load order reflects every integration ProVouchers can use. ### Changed - **Standardized command output**: a consistent `ProVouchers »` prefix, a single palette, and uniform error, success, and usage messages across `/voucher`. - **Requires Strata 0.10.0+** (previously 0.9.0+) for the new command-suggestion API. ### Fixed - Item reward amounts containing a token (such as `{random:1-3}`) no longer fail to load; they are now accepted and resolved at redeem time. - Giving a voucher to a target that matches no online player now reports a clear error instead of throwing. - Removed two no-op trailing argument slots from `/voucher give` and `/voucher giveall`. [0.5.0]: https://github.com/alazso/provouchers/releases/tag/v0.5.0
beta

ProVouchers 0.4.0

0.4.0
7 июн. 2026 г.14Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать
Что нового
## ProVouchers 0.4.0 ### Added - Persistent cooldowns: voucher cooldowns are now stored in the database and reloaded when a player joins, so they survive restarts. On a network sharing one database, a cooldown applies across all servers. - Player-head and custom-skull voucher items via a new `item.skull` block, with four sources: `texture` (base64), `url`, `name`, and `uuid`. Texture and URL are stable and need no lookup; name and UUID resolve a skin asynchronously. - HeadDatabase (Arcaniax) heads are supported through the existing `custom:` field and `item:` reward (for example `custom: "headdatabase:7129"`). - Public developer API: a new `provouchers-api` artifact (`so.alaz.provouchers:provouchers-api`) exposing a `VoucherService` (query vouchers and codes, programmatic give) through Bukkit's services manager. - Redeem events for other plugins: cancellable `VoucherPreRedeemEvent` and `VoucherCodePreRedeemEvent` to veto a redemption, and non-cancellable `VoucherRedeemEvent` and `VoucherCodeRedeemEvent` fired after a successful redeem. ### Changed - Now requires Strata 0.9.0 or newer (adds the ItemsAdder/Oraxen/Nexo/HeadDatabase item hooks and the vanilla skull builder used above). - Item creation is now fully asynchronous, so skull sources that resolve a skin from Mojang never block the server. ### Developer - `provouchers-api` is published to `https://repo.alaz.so/releases`. Add it as a `compileOnly` dependency; the runtime classes ship inside the plugin. - See the new Developer API documentation at https://alaz.so/provouchers/docs/developers.
beta

ProVouchers 0.3.0-beta

0.3.0
6 июн. 2026 г.16Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur
Скачать