expTrade
1.3.0Trade XP levels with other players via commands. Send offers or requests, accept or decline with clickable chat buttons. Accurate per-level XP math ensures fair transfers. Includes admin controls an
expTrade
Trade XP between players
Ever finished a mob grinder with 40 spare levels while a friend is scraping to enchant their first pickaxe? expTrade lets players hand XP back and forth like any other resource — give it, ask for it, and confirm the exchange through a clean chest-GUI queue. No dropping bottles o' enchanting on the floor, no trust games: every transfer is explicit, previewed before it happens, and time-boxed so stale offers clean themselves up.
New in 1.3.2: one jar now runs on every Minecraft 26.x release — 26.1, 26.1.1, 26.1.2, 26.2 and 26.3.
It's fully server-side — a vanilla client can join a modded server and it just works. Runs in single-player too. No new blocks, no new items, no library mods: just /exptrade and a virtual chest menu built from vanilla items.
Why expTrade?
| expTrade | |
|---|---|
| Give XP away or request it — the other player always confirms | |
Whole levels, exact raw XP, or all — the mod does the curve math | |
| A live chest-GUI queue with per-player TTL and countdown clocks | |
| Personal level thresholds + re-validation at the moment of accept | |
| Server-side only — vanilla clients connect and play as normal |
✨ Key features
Give or request, either direction. Push your own XP to someone with
give, or ask them for some withrequest. The other player always gets the final say.Levels or raw XP. Trade a round number of levels or an exact raw XP amount — or
allto empty your bar in one go. The mod does the vanilla XP-curve math for you.A live chest-GUI queue.
/exptrade pendingopens a virtual chest showing every incoming offer as its own row: a clock ticking down the time left, the sender's player head, an offer/request marker, a details page, and one-click Accept / Decline buttons.Per-player queue with TTL. Each player has their own incoming queue (default cap 10). Offers expire automatically after a timeout (default 60s), notifying both sides — nothing lingers forever.
Threshold protection. Set a personal level floor with
/exptrade thresholdand the mod refuses any trade that would drop you below it — great insurance against fat-fingeringgive … all.Balance preview before you commit. Every offer shows a before → after readout of both players' levels and XP, so nobody agrees blind.
Clickable chat controls. Offers come with
[View Queue],[Cancel], and (for admins)[Confirm]/[Cancel]buttons wired straight to the commands.Double-checked at execution. Amounts are validated when the offer is made and re-validated the instant it's accepted — if the giver spent their XP in the meantime, the trade fails cleanly instead of going negative.
Admin transfers. Operators can move XP between any two online players with a two-step confirm, bypassing thresholds — handy for events, refunds, and prizes.
No item risk. The GUI slots are display-only; you can't pull items out or drop your own in. The only interactive slots are Accept and Decline.
⌨️ Commands
Everything lives under /exptrade. <player> targets are online players; amounts are positive integers, or the literal all to move your entire bar.
| Command | What it does |
|---|---|
/exptrade give <player> levels <amount> | Offer that many levels to a player |
/exptrade give <player> levels all | Offer all your XP (expressed as levels) |
/exptrade give <player> exp <amount> | Offer that many points of raw XP |
/exptrade give <player> exp all | Offer all your raw XP |
/exptrade request <player> levels <amount> | Ask a player for that many levels (converted to raw XP at your level) |
/exptrade request <player> levels all | Ask a player for all their XP |
/exptrade request <player> exp <amount> | Ask a player for that much raw XP |
/exptrade request <player> exp all | Ask a player for all their XP |
/exptrade accept [<player>] | Accept the first offer in your queue — or the one from a specific <player> |
/exptrade decline [<player>] | Decline the first offer — or the one from a specific <player> |
/exptrade cancel | Cancel your own outgoing offer |
/exptrade pending | Open the chest-GUI trade queue |
/exptrade threshold <levels> | Set your personal minimum level floor (0 = no floor) |
Admin commands
Require operator / gamemaster-level permission.
| Command | What it does |
|---|---|
/exptrade admin transfer <from> <to> levels|exp <amount> | Stage an XP transfer between two players (bypasses thresholds) |
/exptrade admin transfer <from> <to> levels|exp all | Stage a transfer of all the source player's XP |
/exptrade admin confirm | Confirm your staged transfer |
/exptrade admin cancel | Discard your staged transfer |
/exptrade config timeout <seconds> | Set the offer timeout (10–300s) and save |
/exptrade config maxqueue <size> | Set the per-player queue cap (1–50) and save |
/exptrade config reload | Reload the config file from disk |
⚙️ Configuration
Settings live in config/exptrade.json (created on first launch). Both values are also editable live in-game via /exptrade config …, which writes the file for you; /exptrade config reload re-reads it from disk.
| Key | Default | Range | Meaning |
|---|---|---|---|
timeoutSeconds | 60 | 10–300 | How long a pending offer stays in the queue before it auto-expires |
maxQueueSize | 10 | 1–50 | Maximum number of pending offers a single player can have waiting at once |
Per-player thresholds set with /exptrade threshold are stored separately in config/exptrade/playerdata.json and persist across restarts.
✅ Compatibility
| Loaders | Fabric and NeoForge — one jar |
| Minecraft | 26.1 – 26.3 — one jar, v1.3.2 · 1.21.11 and 1.21.9 – 1.21.10 — v1.3.0 |
| Fabric API | Required on Fabric · not needed on NeoForge |
| Side | Server-side — vanilla clients supported, single-player too |
| Extra libraries | None — standalone |
Enjoying it? Hop in the Discord · the repo · explore the rest of Lunixia's Minecraft QOL Mods
⛏️ Small, focused mods that cut out the boring stuff.
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta