Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.4–1.21.11
Platforms
Tags
Creators
Details
Licensed MIT
Published 3 days ago
Updated 17 hours ago

Your players pack experience into bottles with a command or automatically. You set the bottle look, the threshold and the conversion rules.
Paper 1.21.4+ Folia Java 21
How it works
- A player runs
/rexp pack bottle 30. - The plugin takes 30 levels and one empty glass bottle.
- The player gets a bottle with 30 levels inside.
- A right-click on the bottle gives the experience back.
Features
Bottles
- Your own look for every level: material, name, lore, glint and CustomModelData. The default config ships with bottles for 15 and 30 levels.
- Free creation mode: a player packs any level up to 500.
- Two ways to redeem: drink with a right-click or throw like a vanilla bottle.
- Two ways to add experience.
ADDadds levels: 15 plus 30 gives 45.FOLDcounts in XP like vanilla: 15 plus 30 gives about 33. - An empty glass bottle as a cost, one line turns it off.
- The empty bottle returns after use, off by default.
Packing
- Custom bottles:
/rexp pack bottle 30 5creates 5 bottles with 30 levels each. - Vanilla bottles o' enchanting:
/rexp pack experience allpacks all experience, 7 XP per bottle. - You set the XP price of one vanilla bottle.
/rexp givehands bottles to a player.
Auto conversion
- A player turns it on with
/rexp auto on bottle. - Experience above the threshold goes into bottles. By default a player keeps 30 levels and each bottle holds 15.
- Two modes: custom bottles or vanilla bottles.
- Two triggers: right after an XP gain or on a timer every 3 seconds.
- A limit of 64 bottles per check.
- A hunger cost per bottle, off by default.
Setup
- MiniMessage in every text: gradients, shadows, HEX colors.
- Any message goes to the action bar when it starts with
[actionbar]. - PlaceholderAPI:
%rexp_auto%and%rexp_mode%, you set the returned texts. - You change the command name and alias in
config.yml. /rexp reloadapplies the settings without a restart.- No built-in menu. You bind the plugin commands to buttons in your own menu plugin, for example DeluxeMenus.
Requirements
| Server | Java | Optional plugins |
|---|---|---|
| Paper 1.21.4+ or Folia | 21 | PlaceholderAPI, only for the placeholders |
Commands
| Command | What it does | Permission |
|---|---|---|
/rexp help |
Shows the command list | rexp.use |
/rexp pack bottle <levels> [amount] |
Packs experience into custom bottles | rexp.pack |
/rexp pack experience <XP or all> |
Packs experience into vanilla bottles | rexp.pack |
/rexp auto <on or off> <bottle or experience> [levels] |
Turns auto conversion on and off | rexp.auto |
/rexp give <player> <levels> [amount] |
Gives bottles to a player | rexp.give |
/rexp reload |
Reloads the configs | rexp.reload |
Alias: /rx. Every player has rexp.use, rexp.pack and rexp.auto. Operators have rexp.give and rexp.reload.
Good to know
- The plugin sends anonymous usage statistics to bStats. Set
metrics: falseinconfig.ymlto turn it off. - The plugin checks for a new version. Set
update-check: falseinconfig.ymlto turn it off.
config.yml
settings:
debug: false # detailed console messages for troubleshooting
metrics: true # anonymous bStats statistics
update-check: true # checks for a new plugin version
commands:
main: rexp # main command name
aliases: # extra command names
- rx
config-version: 2 # internal field, leave it as is
bottle.yml
# true: a player creates a bottle with any level up to bottle.max-levels
# false: /rexp pack bottle accepts only levels from the bottles section
bottle-create: false
# Shared bottle look. Applies to levels missing from the bottles section.
bottle:
material: EXPERIENCE_BOTTLE # bottle item
name: "<white>Experience bottle</white> <gray>({points} xp)</gray>" # {points}: experience in XP
lore: # {levels}: levels inside the bottle
- ''
- " <white>Contains: <#99ff66>{levels} LVL</white>"
- " <gray>Right-click to absorb</gray>"
- ''
glint: true # enchantment glint
custom-model-data: 0 # CustomModelData for a resource pack, 0 turns it off
max-levels: 500 # level cap for one bottle in pack and give
require-glass-bottle: true # true: creating a bottle costs an empty glass bottle
# true: the player gets the empty bottle back after use.
# Works with require-glass-bottle: true here and in auto.yml.
return-glass-bottle: false
# DRINK: experience on right-click. THROW: thrown like a vanilla bottle.
# Only EXPERIENCE_BOTTLE is thrown, any other material is always drunk.
redeem: DRINK
# ADD: levels are added, 15 lvl plus a 30 lvl bottle gives 45 lvl.
# FOLD: experience counts in XP like vanilla, 15 lvl plus a 30 lvl bottle gives about 33 lvl.
exp-give: FOLD
# Bottles with their own look. Key: experience level from 1 to bottle.max-levels.
# material, name, lore, glint and custom-model-data are optional, missing fields come from the bottle section.
# Empty list: bottles: {}
bottles:
15:
material: EXPERIENCE_BOTTLE
name: "<white>Bottle with 15 levels</white>"
lore:
- ''
- " <white>Contains: <#99ff66>15</#99ff66> levels of experience"
- " <gray>Right-click to use</gray>"
- ''
30:
material: EXPERIENCE_BOTTLE
name: "<white>Bottle with 30 levels</white>"
lore:
- ''
- " <white>Contains: <#99ff66>30</#99ff66> levels of experience"
- " <gray>Right-click to use</gray>"
- ''
experience:
xp-per-bottle: 7 # XP price of one vanilla bottle o' enchanting
config-version: 4 # internal field, leave it as is
auto.yml
auto-convert:
enabled-by-default: false # true: auto conversion is on for new players from the first join
default-mode: BOTTLE # default mode: BOTTLE custom bottles, EXPERIENCE vanilla bottles
trigger: EVENT # EVENT: check after an XP gain. PERIODIC: check on a timer
interval-seconds: 3 # timer pause in seconds, read with trigger: PERIODIC
bottle: # custom bottle mode
keep-levels: 30 # levels the player keeps, the rest goes into bottles
bottle-levels: 15 # levels in one bottle
max-bottles-per-cycle: 64 # bottle limit per check
require-glass-bottle: true # true: every bottle costs an empty glass bottle
hunger-per-bottle: 0 # hunger cost per bottle, 0 turns it off. Fractions work: 0.1
experience: # vanilla bottle mode
keep-levels: 30 # levels the player keeps
max-bottles-per-cycle: 64 # bottle limit per check
hunger-per-bottle: 0 # hunger cost per bottle, 0 turns it off
config-version: 1 # internal field, leave it as is


