Secure Trade lets players exchange items and experience from anywhere, without running back to base or meeting in the same dimension.
It is built for co-op servers and modpacks where players often split up: one player is mining, another is crafting at base, someone else is in the Nether, and a simple handoff should not interrupt what everyone is doing. Send a request with /trade <player>, let the other player accept it in chat, and both players receive a shared trade menu.
By default, trades work across any distance and dimension. Server owners can keep that freedom, restrict trades by distance, block or allow specific dimensions, disable specific items, tune request timing, and keep a lightweight transaction history.
- Player-to-player trades through a shared GUI.
- Trade from anywhere by default, including across dimensions.
- Item and XP exchange in the same trade session.
- Chat-based trade requests with clickable accept and deny actions.
- Offer locking for both sides before completion.
- Automatic readiness reset when offered items or XP change.
- Configurable countdown before the trade is executed.
- Optional distance limit for servers that want local-only trading.
- Optional dimension allowlist or blocklist.
- Optional item blacklist, with
minecraft:bedrockblocked by default. - Request cooldowns to reduce spam.
- One active trade or pending request per player.
- Trade history command for checking recent exchanges.
- Optional async transaction logging to
logs/securetrade.log. - Localization for 23 languages, including English, Russian, Portuguese, German, Spanish, Chinese, French, Polish, Japanese, Korean, Turkish, Italian, Ukrainian, Dutch, Czech, Indonesian, Vietnamese, Arabic, Swedish, Finnish, and Hungarian.
- Fabric and NeoForge support for Minecraft 1.21.1.
| Command | Description |
|---|---|
/trade <player> |
Sends a trade request. If both players request each other, the trade opens immediately. |
/trade accept |
Accepts the current pending trade request. |
/trade deny |
Denies the current pending trade request. |
/trade history |
Shows recent trades for the player, including items and XP. |
Server configuration is stored in config/securetrade-server.toml.
| Option | Type | Default | Description |
|---|---|---|---|
requestTimeoutSeconds |
Integer | 60 |
Seconds before an unanswered trade request expires. |
tradeCooldownSeconds |
Integer | 10 |
Seconds before a player can send another request to the same target. |
maxTradeDistance |
Double | -1.0 |
Maximum distance in blocks. Use -1.0 for no distance limit. If a positive distance is set, players must be in the same dimension and within range. |
countdownSeconds |
Integer | 3 |
Seconds to wait after both players lock their offers. |
enableTradeLogging |
Boolean | true |
Writes completed trades to logs/securetrade.log. |
blacklistedItems |
String list | ["minecraft:bedrock"] |
Item IDs that cannot be traded. |
allowedDimensions |
String list | [] |
Dimension IDs where trading is allowed. Leave empty to allow all dimensions unless blocked. |
blockedDimensions |
String list | [] |
Dimension IDs where trading is blocked. Ignored if allowedDimensions is not empty. |
maxHistoryEntries |
Integer | 5 |
Number of recent trade history entries shown by /trade history. |
- Secure Trade is designed as a server utility for multiplayer worlds and modpacks.
- Both players must confirm the trade before it completes.
- If either side changes offered items or XP after locking, readiness is reset.
- If a player disconnects during a trade, offered items are safely returned or dropped at the player's last known position.
Secure Trade is released under the MIT License. See LICENSE for details.