Compatibility
Minecraft: Java Edition
1.20.x
Platforms
Tags
Creators
Details
Licensed MIT
Published 1 hour ago
Updated 2 weeks ago
A digital contract system between players — sell, deliver, pay, gather resources, protect, hunt bounties, or offer services, all backed by a secure Vault escrow.
Contracts lets players make binding agreements with each other: define an objective and a reward, set a deadline, and let the plugin automatically track progress and pay out. No more "trust me bro" trades.
✨ Features
- 7 contract types: Sale, Delivery, Payment, Resource Gathering, Protection, Bounty, and Service.
- Guided chat-based creation wizard — no clunky forms, just answer a few prompts in chat.
- One-click acceptance from an in-game GUI or via command.
- Automatic objective tracking:
- Sale / Delivery / Resource Gathering → completes when the required items are handed over.
- Bounty → completes when the target is eliminated.
- Protection → completes if the target survives the agreed duration; fails instantly if they die early.
- Service → completed manually via API/admin for work that can't be auto-verified.
- Secure Vault-backed escrow: the reward is withheld from the creator the moment the contract is created, and released only on completion, or refunded on failure/cancellation.
- Full GUI: Available contracts, My contracts, Active, Completed, and Failed — paginated, with a detailed view for each contract.
- Automatic expiration: a configurable periodic task fails expired contracts and refunds the escrow automatically.
- Anti-duplication safe by design: idempotent transaction log, per-contract locking, and safe handling of logout, death, restarts, and crashes.
- SQLite storage, no external database required.
- Public developer API with dedicated Bukkit events for other plugins to hook into.
🧾 Contract types at a glance
| Type | Verification |
|---|---|
| Sale | Automatic (item delivery) |
| Delivery | Automatic (item delivery) |
| Payment | Semi-automatic (Vault transfer on acceptance) |
| Resource Gathering | Automatic (item delivery) |
| Protection | Automatic (periodic task + death event) |
| Bounty | Automatic (player death event) |
| Service | Manual (API / admin confirmation) |
🖥️ Commands
| Command | Description | Permission |
|---|---|---|
/contracts |
Open the main menu | contracts.use |
/contracts create <type> |
Start the guided creation wizard | contracts.create |
/contracts list |
Browse available contracts | contracts.use |
/contracts mine |
Contracts you created | contracts.use |
/contracts active |
Contracts you're involved in | contracts.use |
/contracts completed |
Completed contracts | contracts.use |
/contracts failed |
Failed / cancelled contracts | contracts.use |
/contracts accept <id> |
Accept a contract | contracts.use |
/contracts cancel <id> |
Cancel your own contract | contracts.use |
/contracts info <id> |
View contract details | contracts.use |
/contractsadmin reload |
Reload config & messages | contracts.admin |
/contractsadmin delete <id> |
Force-delete a contract (auto-refunds escrow) | contracts.admin |
🔑 Permissions
contracts.*— all permissions (default:op)contracts.use— browse, accept, view info, cancel own contracts (default:true)contracts.create— create new contracts (default:true)contracts.admin— administrative commands (default:op)
🔌 Dependencies
- Vault (soft-dependency) — required only for money-based rewards. Item-only contracts work without it.
- Any Vault-compatible economy plugin (e.g. EssentialsX) for money rewards.
- No external database — runs on a bundled, shaded SQLite driver.
🛠️ Developer API
Contracts exposes a public ContractsAPI via Bukkit's ServicesManager, plus dedicated events (ContractCreateEvent, ContractAcceptEvent, ContractProgressEvent, ContractCompleteEvent, ContractFailEvent, ContractCancelEvent) so other plugins can create contracts programmatically, listen for state changes, or integrate custom verification systems — perfect for SERVICE-type contracts.
⚙️ Configuration highlights
- Max active/accepted contracts per player (anti-spam)
- Min/max contract duration
- Max participants per contract
- Expiration check interval
- Whether cancelling an already-accepted contract is allowed
- Fully customizable, colour-coded messages
📋 Roadmap
- PlaceholderAPI support
- Per-contract-type permission nodes
- Web dashboard for server admins

