OrdersPro

The Professional Buy Order & Contract System for Minecraft Servers

297

OrdersPro

📦 OrdersPro

The Professional Buy Order & Contract System for Minecraft Servers

> Not an auction house. Not a shop. A job board. > Players post what they *need*, workers get paid to *deliver it.*

OrdersPro is a fully-featured reverse marketplace plugin. Buyers post financial penalties — "I need 5,000 Diamonds at $10 each" — and workers browse the market, accept contracts, and earn money by fulfilling them. Every transaction is backed by financial penalties, financial penalties, and financial penalties to keep both sides accountable.

Built from the ground up for performance, reliability, and a polished player experience.

---

🎯 How It Works

| Role | What They Do | |------|-------------| | Worker | Posts a buy order with item, quantity, price per unit, and funds escrowed upfront | | Worker | Browses the market, accepts a contract, delivers items in sessions to earn payout |

Unlike auction houses where sellers list items, OrdersPro flips the model — buyers drive demand, workers fulfill it. Perfect for large economies where players need bulk materials and don't want to farm them themselves.

---

✨ Features

🏪 Market Board

- Scrollable, paginated market showing all open buy orders - Newest First or Newest First with a single click - Each order card shows buyer, quantity needed, unit price, total value, and time remaining - Collection bin glows when you have items ready to pick up

📝 Order Creation

- Price warning system — hold an item to skip the material picker entirely - Price warning system with live chat search filter for empty-hand creation - Price warning system with full validation (min/max bounds from config) - Price warning system with full cost breakdown — escrow, tax, total charge, and live balance check - Price warning system — if your price is 300%+ above market average, the confirm button turns red and requires a second click

🤝 Private Orders

- `/order create @PlayerName` sends a directed contract to a specific player - Target sees it in their dashboard and can accept or decline - Same financial rules as public orders — full escrow, tax, penalties

📊 My Business Dashboard

- View all your posted orders with live progress bars, worker name, and time remaining - Cancel orders if they've gone inactive - Cancel orders with proper penalty enforcement — blocked if worker is past 50% delivery - View and manage your active worker contract - Accept or decline incoming private orders

📬 Delivery System

- Workers open a Delivery GUI with +/− quantity selectors - Minimum deposit per session = 10% of total order (configurable) - Live inventory preview shows exactly which item stacks will be consumed - Auto-completes the order and pays out instantly when fully delivered

🗃️ Collection Bin

- Items from completed orders go to a safe collection bin — never dropped on the ground - Collect All button moves everything to your inventory atomically - Overflow drops safely at your feet — nothing is ever lost

📜 Order History

- Last 20 completed, cancelled, or expired orders per player - Shows role (Buyer/Worker), counterparty, outcome, amount earned/spent, and date - Fully read-only — an immutable ledger

⚖️ Financial System

| Event | Result | |-------|--------| | Post order | Escrow + posting tax locked upfront | | Cancel (no worker) | Full escrow returned, tax lost | | Cancel (worker < 50%) | Worker paid pro-rata × 1.5x bonus from escrow | | Cancel (worker > 50%) | ❌ Blocked — cannot cancel | | Order completed | Full escrow paid to worker | | Worker abandons | 10% fine from worker → buyer, trust strike added | | Order expires (no worker) | Full escrow returned to buyer | | Order expires (worker failed) | Fine from worker → buyer, partial pay for delivered items |

🛡️ Trust System

- Workers accumulate strikes for abandoning or failing contracts - Configurable max strikes before cooldown kicks in - Configurable cooldown duration - Strike decay — old strikes are ignored after a configurable number of days - Players on cooldown see remaining time in their dashboard

🔄 Admin Tools

- `/order reload` — reloads config.yml and refreshes the in-memory order cache from the database - All financial constants fully configurable — no hardcoded values - SQLite storage with WAL mode for performance and crash safety - Startup/shutdown logging with full order persistence on server stop

---

🎮 Commands

| Command | Description | Permission | |---------|-------------|------------| | `/order` | Open the market board | `orderspro.use` | | `/order create` | Post a new buy order | `orderspro.use` | | `/order create @<player>` | Send a private order to a player | `orderspro.use` | | `/order dashboard` | Open My Business (your orders & contracts) | `orderspro.use` | | `/order history` | View your last 20 orders | `orderspro.use` | | `/order reload` | Reload config and order cache | `orderspro.admin` |

Aliases: `/orders`, `/market`, `/contract`, `/contracts`

---

🔐 Permissions

| Permission | Default | Description | |------------|---------|-------------| | `orderspro.use` | Everyone | Access the market, dashboard, history | | `orderspro.create` | Everyone | Post buy orders | | `orderspro.work` | Everyone | Accept and fulfill contracts | | `orderspro.private` | Everyone | Send and receive private orders | | `orderspro.admin` | OP | All admin features (inherits all above) | | `orderspro.admin.reload` | OP | Run `/order reload` | | `orderspro.admin.inspect` | OP | Inspect any player's orders (future) |

---

⚙️ Configuration

```yaml settings: currency-symbol: "$" expiration-check-interval-seconds: 30 # How often expired orders are processed

orders: duration-hours: 48 # How long orders stay on the market max-active-orders: 5 # Max orders a buyer can have posted at once min-quantity: 1 max-quantity: 100000 min-price-per-unit: 0.01 max-price-per-unit: 1000000.0 price-warning-multiplier: 3.0 # Warn if price is 300%+ above market average

economy: tax-rate: 0.05 # 5% posting tax (non-refundable) min-deposit-fraction: 0.10 # Worker must deposit at least 10% per session

failure: fine-percentage: 0.10 # Worker fined 10% of order value on expiry payout-modifier: 0.50 # Worker gets 50% of delivered value on failure

cancellation: worker-payout-modifier: 1.50 # Worker gets 150% of pro-rata on buyer cancel cancellation-block-threshold: 0.50 # Buyer can't cancel after 50% delivered

trust: max-strikes-before-cooldown: 3 cooldown-duration-hours: 24 strike-decay-days: 30 # Strikes older than 30 days are ignored

timer: inactivity-nudge-threshold-hours: 1 # Hours before buyer can nudge worker nudge-cooldown-minutes: 30 # Cooldown between nudges ```

---

📦 Requirements

- Storage: 1.21+ - Storage: Paper, Spigot, or Purpur - Storage: Storage: + any economy plugin (EssentialsX, CMI, etc.) - Storage: SQLite (built-in, no setup required)

---

🗺️ Roadmap

- [ ] Admin inspect command — view any player's orders and trust score - [ ] Price negotiation system - [ ] Order watchlist — get notified when new orders for your favourite materials are posted - [ ] PlaceholderAPI support - [ ] Multi-language support

---

Donate (optional)

If you enjoy my work and want to support development: Donate via PayPal 💖

---

💬 Official Support & Community

Need help with this plugin?

Join the official Marbzy Discord server for:

- 🛠 Direct plugin support (ticket system) - 🐛 Bug reports - 💡 Feature suggestions - 🧪 Beta testing access - 📢 Update announcements

👉 Join the Discord

--- *Developed by Marbzy*

ADS