Handshake
Handshake gives your players a real trade window instead of trusting a stranger to drop items on the ground. Request a trade, offer items on your side, lock in, and confirm. The trade only completes once both players have locked and confirmed, so nobody can swap items at the last second.
Built for: Survival and SMP servers that want safe player-to-player trading without a shop plugin or a separate economy system.
A trade window, not a gamble
Run /trade <player> to send a request. Once accepted, both players see the same shared window with their own side to fill. Click an item in your inventory to offer it, click it again on the table to take it back. Nothing sits on the cursor, so there is nothing to drop or lose by accident.
Lock and confirm
Each side has a lock button. Lock in once you are happy with your offer. Changing your offer after locking is blocked, and any change to either side clears both confirmations. Confirming is only possible once both sides are locked, and the trade only executes once both players confirm. A last-second item swap has no way to slip through.
Limits and a blacklist
Set a per-item cap so a single trade cannot move more than a set amount of any one material, and block specific items outright. Command blocks, structure blocks, and bedrock are blocked by default. Both are configurable.
Optional money offers
With Vault and an economy plugin installed, each side can add a money offer alongside items, with configurable step sizes and a maximum offer. Without Vault, the money field is simply hidden and item trading works the same as always.
Full trade log
Every completed trade is recorded: who traded with whom, what each side gave, and when. Staff can open the log with /trade log and page through recent trades, which makes item-dupe reports and trade disputes easy to check.
Commands
Permissions
Configuration
config.yml controls the request expiry time, an optional nearby-only range for trade requests, the cooldown between trades, the money step sizes and maximum offer, the item blacklist and per-item caps, trade log size, and feedback sounds. All player-facing text lives in messages.yml with full MiniMessage support. Run /trade reload to apply changes live. Updates add new config keys without wiping your settings.
Requirements
Installation
Try it first
Handshake is live on our test server, hosted here on BuiltByBit. Use the test server link on this page to run a trade before you buy.
Support
Questions and bug reports are welcome. Join the No Click Studios Discord at https://discord.gg/drBwA958bn.
Handshake gives your players a real trade window instead of trusting a stranger to drop items on the ground. Request a trade, offer items on your side, lock in, and confirm. The trade only completes once both players have locked and confirmed, so nobody can swap items at the last second.
Built for: Survival and SMP servers that want safe player-to-player trading without a shop plugin or a separate economy system.
A trade window, not a gamble
Run /trade <player> to send a request. Once accepted, both players see the same shared window with their own side to fill. Click an item in your inventory to offer it, click it again on the table to take it back. Nothing sits on the cursor, so there is nothing to drop or lose by accident.
Lock and confirm
Each side has a lock button. Lock in once you are happy with your offer. Changing your offer after locking is blocked, and any change to either side clears both confirmations. Confirming is only possible once both sides are locked, and the trade only executes once both players confirm. A last-second item swap has no way to slip through.
Limits and a blacklist
Set a per-item cap so a single trade cannot move more than a set amount of any one material, and block specific items outright. Command blocks, structure blocks, and bedrock are blocked by default. Both are configurable.
Optional money offers
With Vault and an economy plugin installed, each side can add a money offer alongside items, with configurable step sizes and a maximum offer. Without Vault, the money field is simply hidden and item trading works the same as always.
Full trade log
Every completed trade is recorded: who traded with whom, what each side gave, and when. Staff can open the log with /trade log and page through recent trades, which makes item-dupe reports and trade disputes easy to check.
Commands
- /trade <player> sends a trade request. Alias: /handshake.
- /trade accept [player] accepts a pending request. The player name is only needed if you have more than one request open.
- /trade deny [player] turns down a request.
- /trade help lists the commands you can use.
- /trade log opens the admin trade log (operators only).
- /trade reload reloads config.yml and messages.yml without a restart (operators only).
Permissions
- handshake.use request trades and use the trade window. Default: everyone.
- handshake.admin reload the plugin and view the trade log. Default: operators.
Configuration
config.yml controls the request expiry time, an optional nearby-only range for trade requests, the cooldown between trades, the money step sizes and maximum offer, the item blacklist and per-item caps, trade log size, and feedback sounds. All player-facing text lives in messages.yml with full MiniMessage support. Run /trade reload to apply changes live. Updates add new config keys without wiping your settings.
Requirements
- Minecraft 1.21 to 26.1.2.
- Paper, Spigot, or Bukkit.
- Java 21.
- Vault and an economy plugin are optional, only needed for money offers.
Installation
- Put Handshake-1.0.0.jar in your plugins folder.
- Start the server once to create config.yml and messages.yml.
- Edit the config if you want, then run /trade reload.
Try it first
Handshake is live on our test server, hosted here on BuiltByBit. Use the test server link on this page to run a trade before you buy.
Support
Questions and bug reports are welcome. Join the No Click Studios Discord at https://discord.gg/drBwA958bn.
