{"id":58220,"date":"2026-06-03T07:48:16","date_gmt":"2026-06-03T04:48:16","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/"},"modified":"2026-06-03T07:48:16","modified_gmt":"2026-06-03T04:48:16","slug":"donut-orders","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/","title":{"rendered":"Donut Orders"},"content":{"rendered":"<p align=\"center\">\n  <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/f1XMMjn.png\" alt=\"logo\" width=\"600\"\/>\n<\/p>\n<p align=\"center\">\n  <img decoding=\"async\" src=\"https:\/\/i.imgur.com\/MPFRlrF.png\" alt=\"Orders\" width=\"400\"\/>\n<\/p>\n<p align=\"center\">\n<p>  <img decoding=\"async\" src=\"https:\/\/cdn.prod.website-files.com\/5c14e387dab576fe667689cf\/670f5a0171bfb928b21a7e00_support_me_on_kofi_beige.png\" alt=\"logo\" width=\"300\"\/><\/p>\n<p align=\"center\">\n<p>    <img decoding=\"async\" alt=\"Discord Server\" src=\"https:\/\/img.shields.io\/static\/v1?label=&#038;message=Discord&#038;color=ECEBE6&#038;labelColor=2F4858&#038;style=for-the-badge&#038;logo=discord&#038;logoColor=white\" \/><\/p>\n<p>    <img decoding=\"async\" alt=\"Nightbeam Studio YouTube\" src=\"https:\/\/img.shields.io\/static\/v1?label=&#038;message=YouTube&#038;color=ECEBE6&#038;labelColor=2F4858&#038;style=for-the-badge&#038;logo=youtube&#038;logoColor=white\" \/><\/p>\n<p>    <img decoding=\"async\" alt=\"Nightbeam Studio GitHub\" src=\"https:\/\/img.shields.io\/static\/v1?label=&#038;message=GitHub&#038;color=ECEBE6&#038;labelColor=2F4858&#038;style=for-the-badge&#038;logo=github&#038;logoColor=white\" \/><\/p>\n<p>    <img decoding=\"async\" alt=\"Nightbeam Studio CurseForge\" src=\"https:\/\/img.shields.io\/static\/v1?label=&#038;message=CurseForge&#038;color=ECEBE6&#038;labelColor=2F4858&#038;style=for-the-badge&#038;logo=curseforge&#038;logoColor=white\" \/><\/p>\n<p>    <img decoding=\"async\" alt=\"Nightbeam Studio Modrinth\" src=\"https:\/\/img.shields.io\/static\/v1?label=&#038;message=Modrinth&#038;color=ECEBE6&#038;labelColor=2F4858&#038;style=for-the-badge&#038;logo=modrinth&#038;logoColor=white\" \/><\/p>\n<p>Players post buy orders for items, other players fulfill them for instant payment. No chest shops. No admin setup. Just a clean GUI and automatic economy.<\/p>\n<p>&#8212;<\/p>\n<p>## How It Works<\/p>\n<p>1. **Buyer** opens `\/orders`, clicks **New Order**, picks an item, types the quantity and price-per-unit in chat.<br \/>\n2. Funds are escrowed immediately \u2014 the buyer can&#8217;t spend money they don&#8217;t have.<br \/>\n3. **Sellers** browse the public marketplace, pick an order, drop their items into the delivery GUI, and get paid on the spot.<br \/>\n4. If an order only partially fills, the buyer&#8217;s purchased items wait in a personal **stash** until they collect them.<br \/>\n5. Orders expire automatically after a configurable number of days \u2014 any unspent funds are refunded and any collected items stay in the stash ready to pick up.<\/p>\n<p>&#8212;<\/p>\n<p>## Features<\/p>\n<p>### Buyer Side<br \/>\n&#8211; **Post buy orders** for any material on the server&#8217;s allowed-materials list<br \/>\n&#8211; **Escrow system** \u2014 funds withdrawn on order creation, never double-spent<br \/>\n&#8211; **Order status tracking** \u2014 Active, Completed, Expired, or Cancelled<br \/>\n&#8211; **Virtual stash** \u2014 delivered items are stored safely server-side until you collect them, even if your inventory is full<br \/>\n&#8211; **Overflow protection** \u2014 stash items that don&#8217;t fit on collection are dropped at your feet<br \/>\n&#8211; **Cancel &#038; refund** \u2014 cancel an active order at any time and receive the unspent balance back<br \/>\n&#8211; **Order detail view** \u2014 see progress, price, expiry, and stash status from a single GUI<\/p>\n<p>### Seller Side<br \/>\n&#8211; **Browse all active orders** in a paginated marketplace GUI<br \/>\n&#8211; **Delivery GUI** \u2014 dedicated 45-slot input grid; only the correct material is accepted<br \/>\n&#8211; **Wrong-item rejection** \u2014 the GUI refuses incompatible items immediately with a clear message<br \/>\n&#8211; **Partial fills** \u2014 deliver as many or as few items as you want; payment is per-item<br \/>\n&#8211; **Anti-duplication lock** \u2014 concurrent delivery attempts on the same order are serialized server-side<br \/>\n&#8211; **Excess item return** \u2014 any items beyond what the order needs are automatically returned to your inventory<\/p>\n<p>### Economy<br \/>\n&#8211; Powered by **Vault** \u2014 works with any Vault-compatible economy plugin (EssentialsX, CMI, etc.)<br \/>\n&#8211; Optional **configurable tax** applied to seller payouts as an economy sink (disabled by default)<br \/>\n&#8211; Refunds are always exact \u2014 no rounding errors<\/p>\n<p>### Admin &#038; Configuration<br \/>\n&#8211; **`\/orders admin reload`** \u2014 hot-reload `config.yml` and `messages.yml` without a server restart<br \/>\n&#8211; Fully configurable **max orders per player**<br \/>\n&#8211; Configurable **order expiry duration** (days)<br \/>\n&#8211; Configurable **allowed materials list** \u2014 control exactly which items can be traded<br \/>\n&#8211; All player-facing strings in **`messages.yml`** \u2014 fully translatable, supports `&#038;` color codes and `#RRGGBB` hex colors<\/p>\n<p>### Technical<br \/>\n&#8211; **Full Folia support** \u2014 all scheduling uses regionised entity\/global schedulers; also works on standard Paper\/Spigot<br \/>\n&#8211; **SQLite + HikariCP** \u2014 orders are persisted to a local database with WAL mode; no external database required<br \/>\n&#8211; Async database I\/O \u2014 DB reads and writes never block the main thread or region threads<br \/>\n&#8211; Shaded &#038; relocated dependencies \u2014 no classpath conflicts with other plugins<\/p>\n<p>&#8212;<\/p>\n<p>## Commands<\/p>\n<p>| Command | Description | Permission |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `\/orders` | Open your orders (aliases: `\/order`, `\/market`) | `donutorders.use` |<br \/>\n| `\/orders admin reload` | Reload config and messages | `donutorders.admin` |<\/p>\n<p>&#8212;<\/p>\n<p>## Permissions<\/p>\n<p>| Permission | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `donutorders.use` | Everyone | Use `\/orders` and all GUI features |<br \/>\n| `donutorders.admin` | OP | Access admin sub-commands |<\/p>\n<p>&#8212;<\/p>\n<p>## GUI Overview<\/p>\n<p>| Screen | Purpose |<br \/>\n|&#8212;|&#8212;|<br \/>\n| **Your Orders** | View your own buy orders, check status and stash, cancel orders |<br \/>\n| **New Order** | Pick an item, set amount and price via chat prompts |<br \/>\n| **Browse Market** | Paginated list of all active orders posted by any player |<br \/>\n| **Deliver Items** | 45-slot grid to drop items into for a chosen order |<br \/>\n| **Confirm Delivery** | Review the delivery before it is processed |<br \/>\n| **Order Detail** | Full info on one of your own orders with cancel and collect options |<br \/>\n| **Collect Stash** | Take all delivered items out of your virtual stash |<\/p>\n<p>&#8212;<\/p>\n<p>## Configuration<\/p>\n<p>&#8220;`yaml<br \/>\norders:<br \/>\n  max-per-player: 10        # Max simultaneous active orders per player<br \/>\n  default-expiry-days: 7    # Days before an unfilled order expires<br \/>\n  tax-percent: 0.0          # % of seller payout taken as economy sink (0 = off)<\/p>\n<p>database:<br \/>\n  filename: donutorders.db  # SQLite file in the plugin&#8217;s data folder<\/p>\n<p>allowed-materials:<br \/>\n  &#8211; DIAMOND<br \/>\n  &#8211; EMERALD<br \/>\n  &#8211; GOLD_INGOT<br \/>\n  &#8211; IRON_INGOT<br \/>\n  &#8211; NETHERITE_INGOT<br \/>\n  &#8211; COAL<br \/>\n  &#8211; LAPIS_LAZULI<br \/>\n  &#8211; REDSTONE<br \/>\n  &#8211; QUARTZ<br \/>\n  &#8211; AMETHYST_SHARD<br \/>\n  &#8211; GLOWSTONE_DUST<br \/>\n  &#8211; BLAZE_ROD<br \/>\n  &#8211; ENDER_PEARL<br \/>\n  &#8211; GHAST_TEAR<br \/>\n  &#8211; NETHER_STAR<br \/>\n  &#8211; ELYTRA<br \/>\n  &#8211; TOTEM_OF_UNDYING<br \/>\n  &#8211; SHULKER_SHELL<br \/>\n  &#8211; HEART_OF_THE_SEA<br \/>\n  &#8211; TRIDENT<br \/>\n  &#8211; OAK_LOG<br \/>\n  # &#8230; and any other Bukkit Material name<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## Requirements<\/p>\n<p>| Requirement | Version |<br \/>\n|&#8212;|&#8212;|<br \/>\n| Paper \/ Folia | 1.20+ |<br \/>\n| Java | 17+ |<br \/>\n| Vault | Any compatible release |<br \/>\n| Economy plugin | EssentialsX, CMI, or any Vault economy |<\/p>\n<p>&#8212;<\/p>\n<p>## Installation<\/p>\n<p>1. Drop `DonutOrders-1.0.0.jar` into your `plugins\/` folder.<br \/>\n2. Make sure **Vault** and an economy plugin are installed.<br \/>\n3. Start the server \u2014 `config.yml` and `messages.yml` are generated automatically.<br \/>\n4. Edit `allowed-materials` and other options, then run `\/orders admin reload`.<\/p>\n<p>&#8212;<\/p>\n<p>## Support &#038; Source<\/p>\n<p>Open an issue or pull request on the project repository.<\/p>\n<p align=\"center\">\n<p>    <img decoding=\"async\" src=\"https:\/\/www.bisecthosting.com\/partners\/custom-banners\/db9c3eef-25e8-4ac0-93b6-bf386644dcef.webp\" alt=\"BisectHosting partner banner\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A player-driven buy-order marketplace.<\/p>\n","protected":false},"featured_media":58221,"template":"","meta":{"_minecraft_slug":"donut-orders","_minecraft_project_id":"Tu41GNf3","_minecraft_author":"NAIZO","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":2112,"_minecraft_follows":2,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"donut-orders.zip","_minecraft_size_bytes":27539536,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-16T06:19:38.071012Z","_minecraft_date_created":"2026-04-15T22:48:26.367752Z","_minecraft_date_modified":"2026-05-03T08:49:36.220001Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/donut-orders","_minecraft_icon_attachment_id":58221,"_minecraft_imported_at":"2026-06-03T04:48:18+00:00","_minecraft_import_hash":"60e345575cef16e11893d7193c9fc5e4","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,844,125,873,126,127,128,129,91,92],"mod_loader":[130,131,132,133,134],"minecraft_version":[59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-58220","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-economy","mod_category-folia","mod_category-library","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-storage","mod_category-utility","mod_loader-bukkit","mod_loader-folia","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Donut Orders - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Donut Orders - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A player-driven buy-order marketplace.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i.imgur.com\/f1XMMjn.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/\",\"name\":\"Donut Orders - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/donut-orders-icon-3ae20457a562027d717cb46deaac59dee98bfcb9_96.webp\",\"datePublished\":\"2026-06-03T04:48:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/donut-orders-icon-3ae20457a562027d717cb46deaac59dee98bfcb9_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/donut-orders-icon-3ae20457a562027d717cb46deaac59dee98bfcb9_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/donut-orders\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Donut Orders\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Donut Orders - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/","og_locale":"en_US","og_type":"article","og_title":"Donut Orders - Minecraft","og_description":"A player-driven buy-order marketplace.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/i.imgur.com\/f1XMMjn.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/","name":"Donut Orders - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/donut-orders-icon-3ae20457a562027d717cb46deaac59dee98bfcb9_96.webp","datePublished":"2026-06-03T04:48:16+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/donut-orders-icon-3ae20457a562027d717cb46deaac59dee98bfcb9_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/donut-orders-icon-3ae20457a562027d717cb46deaac59dee98bfcb9_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/donut-orders\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Donut Orders"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/58220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/58221"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=58220"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=58220"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=58220"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=58220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}