ProgressiveUnlock – Make Minecraft Challenging Again! Want to make Minecraft harder? Are your players advancing too quickly?
Do you want to slow progression and create a more rewarding experience?
We have the solution for you.
ProgressiveUnlock is the ultimate plugin to control player advancement on your server.
It offers two fully customizable progression systems:
✔️XP Mode – players unlock items by gaining XP through various activities
✔️
Farming Mode – players unlock items by collecting specific resources
Whether you run a survival world, RPG server, or custom adventure, this plugin adds
depth, balance, and progression.
It also prevents the use of
locked tools, blocks, armor, crafting recipes, and more – giving you full control over how players evolve.
ProgressiveUnlock is perfect for any server looking to introduce a
deeper, more rewarding system of progression. Give your players the motivation to
grind, explore, and craft with a system that’s both fun and intuitive.
✔️ Two Progression Modes: XP-based or Resource-based ✔️ Block actions: placing, breaking, crafting, equipping, projectiles, potions, trading, portals, etc. ✔️ Advanced crafting restrictions based on player level or gathered resources ✔️ Customizable GUI menu with pagination, item search and filters ✔️ PlaceholderAPI support ✔️ Highly configurable with grouped unlocks and variable support ✔️ Built-in permission and XP multiplier groups ✔️ Configurable messages for every situation ✔️ Simple command aliases setup ✔️ Supports Spigot, Paper, Folia ✔️ MYSQL Support ✔️ 3 predefined example xpmode configs ready to play - save time with setting plugin up! ✔️ Support for custom items based on name and lore! ✔️Ingame editor for easy config settings (XP mode only for now)
XP Mode Players gain XP from various actions like mining, crafting, trading, mob kills, etc. Items and actions unlock based on their level. xpmode.yml
✔️%progressiveunlock_xp% – Current XP
✔️%progressiveunlock_level% – Current level
✔️%progressiveunlock_requiredxp% – XP required for next level
config.yml
Code (YAML):
# XP or Farming mode: xp
prefix: '&0&l
[&b&lProgressive&e&lUnlock&0&l
]'
storage:
database:
useMysql: false
host: localhost
port: 3306
name: mc
user: root
password: ''
debug:
enabled: false
update:
check_interval_minutes: 180
#how often should plugin check for updates? settings:
enchantUnlockedItems: true
# make unlocked recipes in /unlockmenu enchanted showLockedRecipeMessage: true
# show locked recipes in search sendLockedRecipeMessage: true
# send message if player tries to craft locked recipe checkUnlocked:
onInteract:
check: true
# Should plugin check if player unlocked specific tool? sendMessage: true
# Send messcage if not? survivalModeOnly: true
# Check only in survival mode? onPlace:
check: false
# Should plugin check if player unlocked block that is being placed? sendMessage: false
# Send message if not? survivalModeOnly: true
# Check only in survival mode? onBreak:
check: true
# Should plugin check if player unlocked block that is being break? sendMessage: false
# Send message if not?§ survivalModeOnly: true
# Check only in survival mode? onArmorEquip: # Should plugin check if armor is unlocked? check: true
sendMessage: true
survivalModeOnly: true
onProjectile:
arrows: # Should plugin check if specific type of arrow is unlocked when player is trying to shoot? check: true
sendMessage: true
survivalModeOnly: true
trident:
check: true
sendMessage: true
survivalModeOnly: true
snowball: # Should plugin check if snowball is unlocked when player is trying to throw it? check: true
sendMessage: true
survivalModeOnly: true
xpbottle:
check: true
sendMessage: true
survivalModeOnly: true
egg:
check: true
sendMessage: true
survivalModeOnly: true
ender_pearl:
check: true
sendMessage: true
survivalModeOnly: true
onPortal:
end:
sendMessage: true
check: true
survivalModeOnly: false
nether:
sendMessage: true
check: true
survivalModeOnly: false
onPotion:
check: true
sendMessage: true
onEntityActions:
check: true
sendMessage: true
survivalModeOnly: false
onPickup:
check: true
sendMessage: true
survivalModeOnly: false
# XP groups Groups:
VIP:
name: VIP group
multiplier: 1.1
# XP multiplier aliases: # Aliases for playerxp command playerxp: - xplevel
- exp
- xperience
- playerXP
- farming
# Aliases for unlockmenu command unlockmenu: - crafting
- unlock
messages:
playerXP: '&aYou are level
{level
}. &eYou have
{xp
} XP. You need
{nextXP
} more XP
to reach the next level.'
levelUp: '&2 Congratulations! You have reached level
{level
}!'
levelDown: '&cYour level was downgraded to
{level
} by admin!'
noItemsCollected: '&c
No items collected yet.'
unlockPackHeader: '&b Needed items for unlock pack
{pack
}'
unlockItemLine: '&c
{item
}: {current
}/
{required
}'
allItemsUnlocked: '&a
All items unlocked.'
packUnlocked: '&aYou have unlocked the &b
{pack
} &apack!'
notEnoughXP: '&cYou do not have enough XP to craft this item!'
recipeLocked: '&cThis recipe is locked!'
maxLevel: '&aYou are already on max level -
{level
}. You have earned
{xp
} XP so
far. Good job!'
allPacksUnlocked: '&aAll packs unlocked.'
toolOrWeaponLocked: '&cYou cant use this tool yet.'
blockLockedBreak: '&cYou cant break this block yet.'
blockLockedPlace: '&cYou cant place this block yet.'
armorLocked: '&cThis armor is locked!'
eggLocked: '&cYou cant throw egg yet..'
snowballLocked: '&cYou cant throw snowball yet..'
xpbottleLocked: '&cYou cant use XPBottle!'
arrowsLocked: '&cYou cant use this arrow yet!'
tridentLocked: '&cYou cant use trident yet!'
ender_pearlLocked: '&cYou cant use enderpearl yet!'
endPortalLocked: '&cEnd is still locked for you.'
netherPortalLocked: '&cNether is still locked for you.'
noEnchantmentsAvailable: '&cYou dont have unlocked
any enchantments for this tool
yet.'
potionLocked: '&cThis potion is locked!'
entity_action_not_allowed: '&cYou are not allowed to do this.'
blockLockedPickup: '&cYou are not allowed to pickup items that are not unlocked!'
menu:
unlockedRecipes: '&eUnlocked Recipes - Page
{page
}'
searchItems: '&2Search'
nextPage: '&2Next page'
previousPage: '&2Previouss page'
unlockedItem: '&aUnlocked item'
lockedItem: '&cLocked item'
itemSearch: '&aPlease enter the name of the item you want to search for in the chat:'
unlockOnPack: '&7Unlocks in pack
: {pack
}'
unlockOnLevel: '&7Unlocks on level
: {level
}'
searchResults: '&eSearch Results'
filterMenu:
title: '&bFilter items'
blocks:
name: '&aBlocks'
lore:
enabled: '&aShown'
disabled: '&cNot shown'
materials:
name: '&aMaterials'
lore:
enabled: '&aShown'
disabled: '&cNot shown'
craftables:
name: '&aCraftables'
lore:
enabled: '&aShown'
disabled: '&cNot shown'
configuremenu:
item_info:
title: '&eItem info'
name: '&bUnlockInfo'
not_found:
lore: '&4Item not found in config.'
configure:
name: '&eConfigure'
select_level: '&eSelect level'
save:
title: '&eSelect type'
material_only:
title: '&bSave as material only'
lore: Item will be saved as material only.
custom_item:
title: '&bSave as custom item'
lore: Item will be saved as custom item.
messages:
item_already_exists: '
{prefix
} &cThis item is already defined - unlocks on
{level
}.'
saved_material_only: '
{prefix
} &aItem saved as material only for level
{level
}.'
saved_variant: '
{prefix
} &aItem saved as custom item for level
{level
}.'
customItems.yml
Code (YAML):
items:
exampleItem: #Any unique ID. No spaces, no special characters, only numbers and letters. material: WOODEN_PICKAXE
name: "&bExample item"#Ingame name of item ingame. Without _ and | lore: "&aThis is example item with requirement"#Ingame name of item ingame. Without _ and | lockedUntil: "level3"#Name of level or pack where item is unlocked.
# Test this item ingame! # /give <player> wooden_pickaxe 1 name:&bExample_item lore:&aThis_is_example_item_with_requirement
Aliases are configurable!
/playerxp – Show XP and level. progresiveunlock.playerxp
/unlockmenu – Open GUI of unlocks. progresiveunlock.unlockmenu
Admin commands - requires progressiveunlock.admin
/pu addXP <player> <amount> - Adds specific amount of XP to player
/pu removeXP <player> <amount> - Remove specific amount of XP from player
/pu setXP <player> <amount> - Set specific amount of XP for player
/pu changelog <page> - Shows changelog of old updates
/pu checkupdate - immediately checks for update
/pu info - Shows plugin info
/pu configure - enables admin mode and allows items requirements edits directly from GUI ingame! Requires permission progressiveunlock.configure
ProgressiveUnlock supports several
predefined variables to simplify configuring large sets of items. By using these variables, you can configure unlocks for groups of items such as tools, armor, blocks, and more without listing each item individually. Below is a list of all supported variables:
️ Tools WOODEN_TOOLS – wooden shovel, wooden pickaxe, wooden axe, wooden hoe
STONE_TOOLS – stone shovel, stone pickaxe, stone axe, stone hoe
IRON_TOOLS – iron shovel, iron pickaxe, iron axe, iron hoe
GOLDEN_TOOLS – golden shovel, golden pickaxe, golden axe, golden hoe
DIAMOND_TOOLS – diamond shovel, diamond pickaxe, diamond axe, diamond hoe
NETHERITE_TOOLS – netherite shovel, netherite pickaxe, netherite axe, netherite hoe
️ Armor LEATHER_ARMOR – leather helmet, leather chestplate, leather leggings, leather boots
IRON_ARMOR – iron helmet, iron chestplate, iron leggings, iron boots
GOLDEN_ARMOR – golden helmet, golden chestplate, golden leggings, golden boots
DIAMOND_ARMOR – diamond helmet, diamond chestplate, diamond leggings, diamond boots
NETHERITE_ARMOR – netherite helmet, netherite chestplate, netherite leggings, netherite boots
Wood & Nature Materials PLANKS – oak, spruce, birch, jungle, acacia, dark oak, crimson, warped planks
LOGS – oak, spruce, birch, jungle, acacia, dark oak logs, crimson and warped stems
DIRTS – dirt, coarse dirt, podzol, rooted dirt, mycelium, grass block
LEAVES – oak, spruce, birch, jungle, acacia, dark oak, mangrove, azalea, flowering azalea leaves
Colored Blocks WOOLS – all 16 wool colors (white, orange, magenta, light blue, yellow, etc.)
CANDLES – all 17 candles (plain and 16 colored variants)
BEDS – all 16 bed colors
DYES – all 16 dyes
TERRACOTAS – all 16 terracotta colors
CARPETS – all 16 carpet colors
GLASSES – clear glass + all 16 stained glass colors
GLASS_PANES – clear and stained glass panes in all 16 colors
BANNERS – all 16 banner colors
Building Blocks STONES – stone, andesite, granite, diorite, polished versions
STAIRS – stairs of all wood, stone, nether, and quartz types
SLABS – slabs of wood, stone, nether, and prismarine types
DOORS – all wood doors and iron door
FENCES – all wood fences and nether brick fence
SIGNS – all wood signs and nether signs
COPPER_BLOCKS – copper block (normal, exposed, weathered, oxidized), waxed variants, cut versions, slabs and stairs for each
Redstone Components PRESSURE_PLATES – all wood, stone, weighted, and polished blackstone pressure plates
BUTTONS – all wood, stone, and blackstone buttons
Combat & Utility Items ARROWS – regular arrow, spectral arrow, tipped arrow
FIREWORKS – firework rocket, firework star
Food Items COOKEDMEAT – cooked beef, cooked porkchop, cooked mutton, cooked chicken, cooked rabbit, cooked salmon, cooked cod
RAWMEAT – raw beef, raw porkchop, raw mutton, raw chicken, raw rabbit, raw salmon, raw cod
Plants & Nature CROPS – wheat, carrots, potatoes, beetroots, melon stem, pumpkin stem, sugar cane, bamboo, sweet berry bush, nether wart, glow berries, torchflower crop, pitcher crop
FLOWERS – all small and large flowers: dandelion, poppy, allium, tulips, oxeye daisy, cornflower, lily of the valley, wither rose, sunflower, lilac, rose bush, peony, torchflower, pitcher plant
CORALS – live and dead coral blocks, fans, and coral items (tube, brain, bubble, fire, horn types)
Transport & Storage BOATS – all wood boats, bamboo raft, chest variants of each
BUNDLES – bundle
Addons - these features will be available as free addons thats still requires bought ProgressiveUnlock
ProgressiveQuests - allow players to gain XP from quests and also adds whole mode where you can progress through quests instead of farming or XP!
There will be more todo's. I am just getting ideas and feedback over time so make sure to check this section often!
ProgressiveUnlock is the perfect solution for adding depth and control to your server. Create a fully personalized progression system that rewards effort and balances gameplay.
ProgressiveUnlock provides unparalleled flexibility for controlling player progression, crafting, and rewards in Minecraft. With intuitive configuration options, support for large groups of items using variables, and a premium user experience, it’s a must-have for server owners looking to introduce a new level of depth to their Minecraft server.
Feel free to reach out via Spigot or Discord:
lupecz You can also check our Wiki I check messages daily and reply to all feedback and questions.