XP bar in Creative and Adventure (level + 24-segment bar + percentage).
Players earn XP like in Survival from mining, mobs, trades, smelting, fishing and breeding.
Full Mending support for tools and armor.
Optional: loose XP orbs are forwarded to nearby Creative/Adventure players.
Built for Paper 1.21+, Java 21, no player data files.
Example: XP orbs & bar Example: Mending repair Command feedback
Install
Put CreativeXP-2.1.4.jar into your plugins folder.
Start the server to generate plugins/CreativeXP/config.yml.
Edit the config to match your server.
Run /creativexp reload to apply changes.
Default behaviour
XP bar is shown in ADVENTURE and CREATIVE.
XP is earned like Survival in CREATIVE and ADVENTURE.
XP-orb catchall is disabled until you enable it.
Typical use cases
Creative build worlds with real progression.
Adventure maps where the bar should always be visible.
Staff worlds and hubs where admins still repair gear with Mending.
XP sources for Creative/Adventure
Blocks – ores and selected blocks give XP when mined with a tool that meets the required mining level; no XP with Silk Touch. Spawners and several sculk blocks can give XP even without normal drops.
Entities – uses vanilla droppedExp when available; otherwise tuned values (passive mobs around 1–3 XP, standard hostile mobs 5 XP, bosses and elites higher, Ender Dragon 12000/500).
Smelting – XP is taken from FurnaceExtractEvent and the vanilla value is cleared.
Fishing – XP for caught fish or entities, close to vanilla ranges.
Breeding – XP when a player breeds animals.
Trading (Paper) – XP for villager trades that normally give XP; vanilla orbs are suppressed so CreativeXP handles them.
XP bar behaviour
24-segment green actionbar bar with level label and percentage.
Updates on join, respawn, XP/level changes and gamemode changes.
Sync task every experience-bar.sync-interval-ticks ticks (default 20; 0 disables).
If the player’s gamemode is not in experience-bar.enabled-gamemodes, the bar is cleared.
Mending logic
Whenever XP is applied, one random damaged item with Mending (hands + armor) is repaired first.
Remaining XP is added to the player’s XP bar.
Orbs are split with vanilla logic (max 32767 XP per orb) so pickup sounds and timing feel natural.
Pickup bridge (Paper)
Uses PlayerPickupExperienceEvent in gamemodes from survival-xp.enabled-gamemodes.
Cancels the original pickup, removes the orb, applies Mending and then gives remaining XP directly.
Plays a quiet pickup sound and refreshes the bar on the next tick.
XP-orb catchall (optional)
When experience-orb-catchall.enabled is true, EntitySpawnEvent intercepts XP orbs.
Searches the nearest player within experience-orb-catchall.radius (default 12.0) whose gamemode is enabled for survival XP (Survival is ignored).
Removes the orb, applies Mending, adds remaining XP and refreshes the bar.
The listener is registered on reload – after changing this setting, run /creativexp reload once after a restart.
Main options (config.yml)
experience-bar.enabled-gamemodes – gamemodes that show the actionbar XP bar. Default: ADVENTURE, CREATIVE
experience-bar.sync-interval-ticks – sync interval in ticks. Default: 20; 0 disables the task.
survival-xp.enabled-gamemodes – gamemodes that earn XP like Survival. Default: CREATIVE, ADVENTURE
experience-orb-catchall.enabled – forwards loose XP orbs to eligible players. Default: false
experience-orb-catchall.radius – radius for the catchall search. Default: 12.0, minimum 0.5
messages.* – MiniMessage texts (prefix, usage, unknown-command, no-permission, reloaded). <prefix> is filled automatically; extra placeholders (for example <command>) can be added per message.
Default config (config.yml)
Code (YAML):
# Controls how and where the experience display is shown. # In Creative the vanilla bar is hidden by the client, so the plugin mirrors it in the action bar. experience-bar: # Game modes in which the experience display should be visible. # Options: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR # Add SPECTATOR if you want the bar while spectating (vanilla hides it). enabled-gamemodes: - ADVENTURE
- CREATIVE
# How often the plugin should resync the bar for all online players. # 20 ticks = 1 second. Set to 0 to disable the periodic sync task. sync-interval-ticks: 20
# Treat selected game modes like Survival for XP gain (e.g., pickup XP orbs). # Useful if you want Creative/Adventure players to actually collect XP. survival-xp:
enabled-gamemodes: - CREATIVE
- ADVENTURE
# Optional catch-all for experience orbs: forward orbs near Creative/Adventure players. experience-orb-catchall:
enabled: false
# Radius in blocks to search for a player to receive the orb (only if enabled). radius: 12.0
# Public-facing messages. MiniMessage format is supported. messages:
prefix: "<gray>[<gradient:#9CFF6E:#00D06B>CreativeXP</gradient>]</gray>" usage: "<prefix> <yellow>Use: /creativexp reload</yellow>" unknown-command: "<prefix> <red>Unknown subcommand.</red> <gray>Try: /creativexp reload</gray>" no-permission: "<prefix> <red>You do not have permission to do that.</red>" reloaded: "<prefix> <green>Configuration reloaded.</green>"
/creativexp reload – reloads the config, refreshes the bar and re-registers the XP-orb catchall if enabled.
Alias: /showxp
Permission: creativexp.reload (default: OP)
Built for Paper 1.21 (api-version: 1.21, Paper API 1.21.10-SNAPSHOT).
Recommended Java runtime: Java 21.[/ICODE].
No player data files; only config.yml.
XP bar missing – check the player’s gamemode is listed in experience-bar.enabled-gamemodes.
No XP in Creative/Adventure – verify survival-xp.enabled-gamemodes.
Orbs not forwarded – enable experience-orb-catchall.enabled, set a suitable radius and run /creativexp reload after restart.
No XP from ores – avoid Silk Touch and use a tool with the correct mining level.
Sounds – pickup sounds are intentionally quiet (around volume 0.1, pitch 0.9–1.1) and play in Creative as well.