CrazyVouchers 5.1.1
on Oct 23, 2025Bugs Fixed 🐛
- Fixed an issue with the
out of boundsexception involvingrandom-commands - Fixed an issue where PlaceholderAPI placeholders weren't being parsed.
CrazyVouchers 5.1.0
on Oct 22, 2025Changes
- Added a new configuration option
has-argumentto vouchers/codes which was a result of fixing{arg}not being replaced in commands. - Added a new configuration option to the
config.ymlthat allows you to choose whether to allow off-hand usage or not. - Added a new permission
crazyvouchers.bypass.2fawhich lets you bypass 2fa when right-clicking. - Added a new configuration option
override-anti-dupeto vouchers which lets you override the anti dupe option in the config.yml- It defaults to false, which is the default behavior out of the box.
- Added a new configuration option
allow-vouchers-in-item-framesto vouchers, which lets your players place vouchers in item frames if set to true. chance-commandsandrandom-commandshave been combined, They were not working properly anyway. We opted for a weight based system when picking random commands, The lower the number. The less likely the command(s) will be run.- You can specify one command in the list, or multiple. It's up to you!
- If there is no weight option present, It will be considered how
random-commandsfunctioned before, which is run separately and has no relation to the weight based options. - You will need to run
/crazyvouchers migrate -mt VouchersDeprecatedfor the changes to take effect, You will see console nagging regarding outdated configurations until you do.
random-commands:
"1":
# The chance for these to run
weight: 45.0
# The commands to run
commands:
- "eco give {player} 100"
"2":
# The chance for these to run
weight: 25.0
# The commands to run
commands:
- "eco give {player} 1000"
# No chance is provided, thus we will pick random commands.
"6":
# The commands to run
commands:
- "give {player} diamond 5"
Technical Changes
- Cleaned up internals when creating a voucher, or a code.
- This allows us to add newer features easier as it's more readable, and less prone to human error.
{random}:1-10000has been improved, and has better logging when a problem happens i.e. due to invalid numbers being used.- Updated the interaction internals to account for off-hand usage by using PlayerInventory & EquipmentSlots
Bugs Fixed
- Voucher Codes when broken were being put in the wrong list which could lead to confusion when viewing what broke.
{arg}was not being replaced when a command was being run.- We no longer check the name/lore if
{arg}is present which in hindsight was a bad idea. - Please read the Changes for further information on how this works now.
- You can manually add this to your existing configurations that do use the
{arg}variable.
- We no longer check the name/lore if
CrazyVouchers 5.0.2
on Aug 11, 2025- Fixed another issue with the LegacyColorMigrator.
- Added new config option to vouchers.yml / vouchers folder
voucher:
# The material.
item: 'diamond_helmet'
# An example of how to use custom model data
custom-model-data: -1
vouchers: # Where you make your vouchers.
# The name of the voucher.
money:
# The material.
item: 'diamond_helmet'
# An example of how to use custom model data
custom-model-data: -1
- Added a new migrator type called
VouchersDeprecatedwhich at the moment only migrates old custom model data usage to the format above.- The condition to migrate is that
itemmust follow the formatdiamond_helmet#1347
- The condition to migrate is that
- Fixed startup issue with old custom model data format i.e.
diamond_helmet#1347 - Added more verbose logging to all existing migrators.
- Fixed issues with whitelist/blacklist checks.
CrazyVouchers 5.0.1
on Aug 6, 2025- Fixed issue with the migration messages not sending.
CrazyVouchers 5.0.0
on Aug 6, 2025Please report any bugs to our GitHub issues tab!
https://github.com/Crazy-Crew/CrazyVouchers/issues
New Items section
I've made a new Items section which is currently in use in CrazyCrates, I am simply bringing it to CrazyVouchers.
You can experiment with this option by enabling it in your config.yml
- The command /crazyvouchers migrate -mt NewItemFormat will update all
Itemssection to the best it can.- The migration is one way, Please be wary of this and take backups.
Legacy Color Codes
Legacy color codes are no longer supported, They have been replaced by MiniMessage, https://docs.advntr.dev/minimessage/format
Migrate
- https://toolbox.helpch.at/converters/legacy/minimessage
- https://www.birdflop.com/resources/rgb/
- Use the "Decode" option labeled experimental, I complained about legacy color code garbage about 2 years ago, they remembered and pinged me.
- /crazyvouchers migrate -mt VouchersColor which will try it's best to convert them.
Other migration types
We offer migration types for the following
- VouchersDeprecated
- Any deprecated option will be replaced/removed with this
- VouchersNbtApi
- Migrates old vouchers to new vouchers
- VouchersSwitch
- Switches between single and multiple files
- VouchersRename
- Renames voucher-codes.yml to codes.yml, This takes a backup of the previous file.
Permissions
Permissions are no longer the same, Permissions were renamed and the old nodes were always meant to be a temporary usage, This allows more control over what you can give a player.
/vouchers and /voucher are considered aliases for /crazyvouchers
Commands
| New | Old | Command | Aliases |
|---|---|---|---|
crazyvouchers.giveall |
vouchers.admin |
/crazyvouchers giveall |
N/A |
crazyvouchers.migrate |
vouchers.admin |
/crazyvouchers migrate |
N/A |
crazyvouchers.reload |
vouchers.admin |
/crazyvouchers reload |
N/A |
crazyvouchers.redeem |
vouchers.redeem |
/crazyvouchers redeem |
N/A |
crazyvouchers.types |
vouchers.admin |
/crazyvouchers types |
/crazyvouchers list |
crazyvouchers.help |
vouchers.admin |
/crazyvouchers help |
N/A |
crazyvouchers.open |
vouchers.admin |
/crazyvouchers open |
/crazyvouchers admin |
crazyvouchers.give |
vouchers.admin |
/crazyvouchers give |
N/A |
crazyvouchers.access |
vouchers.admin |
/crazyvouchers |
N/A |
Other
| New | Old |
|---|---|
crazyvouchers.notify.duped |
vouchers.notify.duped |
crazyvouchers.bypass |
vouchers.bypass |
Other Changes
Trim Material
Before
voucher:
# The items to give when claiming the voucher.
items:
- 'Item:DIAMOND_HELMET, Trim-Pattern:SENTRY, Trim-Material:QUARTZ, Amount:1'
- 'Item:DIAMOND_CHESTPLATE, Trim-Pattern:DUNE, Trim-Material:REDSTONE, Amount:1'
After
voucher:
# The items to give when claiming the voucher.
items:
- 'Item:DIAMOND_HELMET, Trim:SENTRY!QUARTZ, Amount:1'
- 'Item:DIAMOND_CHESTPLATE, Trim:DUNE!REDSTONE, Amount:1'
Enchantments
| New | Old |
|---|---|
protection |
PROTECTION_ENVIRONMENTAL |
fire_protection |
PROTECTION_FIRE |
feather_falling |
PROTECTION_FALL |
blast_protection |
PROTECTION_EXPLOSIONS |
projectile_protection |
PROTECTION_PROJECTILE |
respiration |
OXYGEN |
aqua_affinity |
WATER_WORKER |
sharpness |
DAMAGE_ALL |
smite |
DAMAGE_UNDEAD |
bane_of_arthropods |
DAMAGE_ARTHROPODS |
looting |
LOOT_BONUS_MOBS |
sweeping |
SWEEPING_EDGE |
efficiency |
DIG_SPEED |
unbreaking |
DURABILITY |
fortune |
LOOT_BONUS_BLOCKS |
power |
ARROW_DAMAGE |
punch |
ARROW_KNOCKBACK |
flame |
ARROW_FIRE |
infinity |
ARROW_INFINITE |
luck_of_the_sea |
LUCK |
- No longer rely on ItemMeta anymore which means a large performance increase due to the nature of how ItemMeta works.
- Commands have been overhauled which will make adding new commands easier!
- Replaced plugin.yml with paper-plugin.yml.
- Added support for item models which serves as a replacement for
Custom Model Data - Fixed an issue with anti-craft not working.
- Sounds are now mojang mapped, i.e. we use sounds from minecraft.wiki sounds.json, https://minecraft.wiki/w/Sounds.json
Updated to 1.21.8- Added new config option to fusion.yml,
recursion_depthwhich lets you define how many folders to loop through incodesorvouchers
voucher:
# Any generic component for the Item.
components:
# Hides the entire tooltip
hide-tooltip: false
# Hides components defined in this list. It allows more control than above.
# Leave the hide-tooltip false if you plan to use this.
hide-tooltip-advanced:
- "enchantments"
# The item model, Mojang introduced this in 1.21.4... this replaces custom model data!
# Set this to blank for it to do nothing.
item-model:
# The namespace i.e. nexo
namespace: ""
# The key i.e. emerald_helmet
key: ""
CrazyVouchers 4.1.1
on Jan 31, 2025- Fixed an issue with dupe protection
CrazyVouchers 4.1.0
on Jan 30, 2025- Added /crazyvouchers migrate which will migrate old vouchers to the new vouchers
- The permission for the command is
crazyvouchers.migrate
- The permission for the command is
- Deprecated use of
voucher.adminandvoucher.redeem- They have been replaced by
crazyvouchers.adminandcrazyvouchers.redeem - Old permissions starting with
voucherwill work for the time being.
- They have been replaced by
- Deprecated old /voucher command, please use /crazyvouchers as /voucher will be removed in future updates.
- Fixed an issue where dupe protection uuids were applied twice.
CrazyVouchers 4.0.0
on Dec 16, 2024Update
- Removed NBT API as warned previously since 3.8.
- Previous vouchers created prior to 3.8 will be useless.
- Updated to 1.21.4.
CrazyVouchers 3.9.0
on Nov 3, 2024Changes:
- Updated to 1.21.3
- Bumped nbt-api
- Please make an effort to migrate existing vouchers made prior to v3.8 as nbt-api will be removed.
- This is a notice, to give you more time until that happens.
CrazyVouchers 3.8.3
on Oct 31, 2024Changes:
- Check if player is null on /voucher give, and return early.
Fixed:
- The argument was not being applied to the voucher, due to checking if it was empty. We have to check if it's not empty.
CrazyVouchers 3.8.2
on Oct 22, 2024Changes
- Check if item is air everywhere, before going forward to please NBT-API
CrazyVouchers 3.8.1
on Oct 21, 2024A fix, but not really a fix.
- I simply told nbt-api to shut up about the material being air.
CrazyVouchers 3.8
on Oct 21, 2024Notice:
- Once 1.21.2 drops, NBT-API will be stripped from the plugin.
- This is your warning to migrate old vouchers players have and technically the second warning, I forgot to push this update.
- All old vouchers will stop working once NBT-API is removed!
- The migration for old configurations has been removed.
- If you need to migrate, use 3.7.4 as the migration works there.
Future Changes:
- MiniMessage Support
- There will be a migration from Legacy Color Codes -> MiniMessage
- Updates to configurations with materials, sounds, and how items work
- Internally, all materials, and trims will be handled internally, so need not worry about that.
- Sounds will have to be migrated manually, not much I can do about that.
- This change with sounds will allow custom sounds from resource packs.
- This is a step in removing a large chunk of deprecated, or otherwise outdated ways of doing things as Minecraft has changed a lot internally.
Additions:
- Added dupe protection for vouchers which is toggled false.
- A config option was also added to append a line to the lore.
Changes:
- Switched vouchers to use PersistantDataContainer which is much more performant, and achieves a similar goal.
- Previous vouchers will work until 1.21.2, so please migrate them.
- Allowed switching between file systems on
/crazyvouchers reload- There will not be a migration to switch between.
- Updated vital api
Fixes:
- Fixed an issue on Folia #73
CrazyVouchers 3.7.4
on Aug 11, 2024Changes:
- Bumped to 1.21.1
- Bumped nbt api
CrazyVouchers 3.7.3
on Jul 12, 2024Fixed:
- Issue with file manager not properly loading/reloading files.
CrazyVouchers 3.7.2
on Jul 12, 2024Fixed:
- Apply
MaxStackSizeto the player's inventory when using Player#addItem, so now instead of 99 items popping up in the inventory if giving 99 keys or any items, it'll split 64/35- Spigot for some odd reason made Player#addItem use the max stack size for the inventories. #hardforkwhen
CrazyVouchers 3.7.1
on Jul 12, 2024Changes:
- Simplified parsing messages internally with placeholders
CrazyVouchers 3.7
on Jul 11, 2024Removed:
- Migration for the old folder
Vouchers->CrazyVouchers
Changes:
- Moved all i/o operations off the main thread.
- Bumped nbt-api out of snapshot state to 2.13.1.
- Added PlaceholderAPI support to all messages.
Fixed:
- Issue with voucher-codes path not being correct in the
codesfolder.
CrazyVouchers 3.6.4
on Jul 1, 2024Fixed:
- Player Heads were not stacking previously, they should now.
CrazyVouchers 3.6.3
on Jun 25, 2024Fixed:
- Null pointer exception with HeadDatabaseAPI



