expTrade-multi
No reviews yet
Trade 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 and per-player thresholds.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Paper is a fork of Spigot that adds its own plugin API on top of the Bukkit API. All Spigot plugins are compatible with paper, not all paper plugins are compatible with Spigot.
Spigot is a popular software for running dedicated servers that can load Plugins created with the Bukkit API.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
💱 expTrade
Trade XP between players — give it, request it, and confirm every exchange through a chest-GUI queue.
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.
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 | |
|---|---|
| 💱 Direction | Give XP away or request it — the other player always confirms |
| 📊 Units | Whole levels, exact raw XP, or all — the mod does the curve math |
| 📦 Queue | A live chest-GUI queue with per-player TTL and countdown clocks |
| 🛡️ Safety | Personal level thresholds + re-validation at the moment of accept |
| 🎒 Client | 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.2.x · 26.1, 26.1.1, 26.1.2 · 1.21.11 · 1.21.9–1.21.10 |
| 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.
💱 expTrade
Trade XP between players — give it, request it, and confirm every exchange through a chest-GUI queue.
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.
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 | |
|---|---|
| 💱 Direction | Give XP away or request it — the other player always confirms |
| 📊 Units | Whole levels, exact raw XP, or all — the mod does the curve math |
| 📦 Queue | A live chest-GUI queue with per-player TTL and countdown clocks |
| 🛡️ Safety | Personal level thresholds + re-validation at the moment of accept |
| 🎒 Client | 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.2.x · 26.1, 26.1.1, 26.1.2 · 1.21.11 · 1.21.9–1.21.10 |
| 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.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers