Contracts

A digital contract system between players: sales, delivery, payment, resource gathering, protection, bounty, and services, with secure Vault-backed escrow.

34 downloads 1 followers

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

No gallery available for this project.

Version Minecraft Loader Download

Contracts 1.0.0

1.0.0

1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6
paper, spigot
Download