DDONSUP / ALL IN ONE

DOCUMENTATION / 0.5 DEVELOPMENT

Validation

Automated verification is recorded for this build; it is not a claim of complete gameplay or commercial readiness.

Current 0.5.1-SNAPSHOT — 22 September 2026

125 unit tests and 153 live checks pass on the packaged JAR, across seven isolated server configurations. JAR SHA-256: 8499ca0d8dfd66b49bf83f0e042caf26eae2c9dc82a7d5d548114488de131f7d.

Platform Checks on this JAR
paper12111 27
spigot12111 18
folia12111 18
paper26-translated 27
spigot26-translated 18
folia26-translated 18
purpur12111 27

Exact server builds are unchanged from the 0.5.0 matrix below: Paper 1.21.11 build 132, Spigot BuildTools 4598, Folia 1.21.11 build 14, Paper 26.2 build 126, Spigot BuildTools 4648, Folia 26.2 build 7 and Purpur 1.21.11 build 2568. 1.21.11 uses Java 21; 26.2 uses Java 25 and translated 1.21.11 clients through ViaVersion/ViaBackwards 5.12.0. These are not native 26.2 rendering results.

Every platform repeats nine customization checks: one-command branding, non-admin rejection, dashboard presentation/visibility, action preservation, editable permission feedback, malformed-YAML rollback, conflicting-slot rejection, item preservation across a rename with an open premium vault, and permission-gated dashboard entries. Paper/Purpur also repeat 18 native menu/economy/travel checks; Spigot repeats nine inventory-market/key/RTP checks; Folia repeats nine distant-region payment/trade/vault/TPA/RTP/duel/key checks.

The tests found and fixed a bootstrap-time item-registry dependency and separated menu display names from canonical inventory routing. A result-file naming typo in the test runner was corrected; the affected Folia checks were completed and recorded. Unit tests cover invalid configurations, missing-key defaults, edit preservation, branding templates, literal MiniMessage insertion and inventory identity.

Evidence: artifact manifest (in the release archive), unit summary (in the release archive), and each platform folder under validation/0.5.1. Earlier 0.5.0 screenshots remain historical real-client evidence; no new real-client rendering pass is claimed for 0.5.1. This is still a development preview. Dynamic transaction wording and some legacy lore are not a complete localization system. Production load, external protections and full inventory/world crash recovery remain unqualified.

Historical 0.5.0-SNAPSHOT — 22 September 2026

112 unit tests and 111 live checks pass on the packaged JAR, across seven server configurations. The shared source also compiles against the official Spigot 1.21.11 API, with Paper-only adapters isolated.

Exact server build Java / automated client path Packaged-JAR checks
Spigot 1.21.11, BuildTools revision 4598 21 / direct 1.21.11 9
Spigot 26.2, BuildTools revision 4648 25 / translated 1.21.11 9
Paper 1.21.11 build 132 21 / direct 1.21.11 18
Paper 26.2 build 126 25 / translated 1.21.11 18
Purpur 1.21.11 build 2568 21 / direct 1.21.11 18
Folia 1.21.11 build 14 21 / direct 1.21.11 9
Folia 26.2 build 7 (upstream BETA) 25 / translated 1.21.11 30

JAR SHA-256: 8cc53b9d9ff003a97c7e34586f525a5a9b86910fb320741c8a53148f74ab3e33.

Evidence: artifact and platform manifest (in the release archive), unit summary (in the release archive), Maven log (in the release archive), and the result JSON files named by each platform manifest. Translated 26.2 checks use ViaVersion/ViaBackwards 5.12.0 and do not establish native 26.2 rendering. The Folia 26.2 upstream artifact is labelled BETA.

The Spigot suites check inventory menus, all six Settings categories, persisted preferences, auction item/money conservation, buy-order delivery, seven saved key choices, travel/social entry points and solo RTP. Native baseline suites check dialogs, callback ownership/replay, chat/privacy, payments, auctions, orders, homes, social flows, Quick Buy, the Sell Axe and solo RTP. Folia 26.2 adds nine checks with players 16,000 blocks apart and three remote-admin checks; Folia 1.21.11 repeats the remote-admin checks and six RTP safety cases on the packaged artifact.

Earlier 0.5 candidates additionally passed 14 Spigot module cases (kits, duels, warps, teams, trades, physical crates, moderation and menu access), 12 Folia three-dimension RTP cases, baseline tests and multi-region cases. Their individual manifests retain their actual JAR hashes. The RTP-fix artifact passed all 12 dimension/queue cases and six safety cases; the only later production changes schedule drill delivery and returning vanish visibility on their entity owners. Both were exercised on the final Folia builds. These earlier results are not included in the 111 final-artifact count.

Testing found and fixed Paper-only cached-player lookups on Spigot, and Folia operator teleports that did not cancel RTP via the expected events. RTP now rechecks the countdown's player positions on their owners before transferring. Fixture failures from stale open inventory views, a buy order below the server price, pending crate draws and hostile mobs were corrected without weakening money/item or cancellation assertions. Final inspected logs contain no Donsup exceptions. Isolated tests used ports 25580/25581; the original play server at 25579 was not updated or restarted.

Read platform differences: Spigot inventory menus, nearby Folia trades, one vault viewer, disabled Folia Bukkit sidebar, fixed TPA snapshot and region-bounded vein mining. These checks do not establish every feature combination, real-client visual quality, production load, protection integrations or complete world/inventory crash recovery. This remains a development preview.

Historical 0.4.0-SNAPSHOT — 21 September 2026

106 unit tests pass with zero failures, errors or skips. The final JAR also passed 42 live RTP scenarios across the three server builds below. This includes native selection, dimension isolation, expiry, cancellation, nearby paired arrival, Nether/End safety and cooldowns. The additional six Paper scenarios cover non-op native callbacks/replay, damage, attacker combat, external teleport cancellation, replacing RTP with spawn, and disabling queues.

Server build Runtime and client path Final-JAR live checks
Paper 1.21.11 build 132 Java 21; direct 1.21.11 headless clients 12 RTP + 6 safety
Paper 26.2 build 126 Java 25; 1.21.11 headless clients through ViaVersion/ViaBackwards 5.12.0 12 RTP
Purpur 1.21.11 build 2568 Java 21; direct 1.21.11 headless clients 12 RTP

Final JAR SHA-256: 8d345c18d95fe50e6dc21d2d6fe6aa9e3b32665a2da754e1c962e2589e8e404a.

Evidence: build/artifact manifest (in the release archive), Maven log (in the release archive), unit summary (in the release archive), Paper RTP (in the release archive), Paper safety (in the release archive), Paper 26.2 translated-client RTP (in the release archive), and Purpur RTP (in the release archive).

The immediately preceding artifact (6a6db503d28271e7b8a1642d698526b7d19e20bbd2197e24fe6e217365598a5d) passed 119 live scenarios: 59 on Paper 1.21.11, 30 on Paper 26.2 with translated clients, and 30 on Purpur 1.21.11. These comprise chest shops and restart/protection (15), markets and escrow restart (8), account keys and saved-choice restart (11), startup recovery (7), RTP/safety (18), and two platform repetitions of baseline menus/economy plus RTP (30 each). Reports are retained in the platform subdirectories of validation/0.4.0/. The only subsequent production change bounds outstanding RTP chunk requests after cancellation and handles synchronous chunk-request failures. The complete unit suite and the 42 RTP scenarios above were rerun on the final JAR; unrelated live suites were not rerun after that isolated change.

The 23 added unit tests cover FIFO queue behavior, capacity under cancellation, reward replay and disk-write failures, legacy/item-claim exclusion, journal delivery boundaries, and idempotent shop refunds. Seven startup fixtures cover crate claims before/after currency payment, legacy claims, shop payments before delivery, unpaid prepared shops, and ambiguous delivery/legacy records. Repeated restarts preserve the recovered values. These fixtures model persisted commit boundaries; they are not an actual power-loss experiment.

Live testing found and fixed destination-chunk unloading during RTP countdown. Test harnesses were also updated for /rtp opening a menu, coexistence with deliberately unresolved recovery records, and reuse of previously funded accounts. Final server logs contain no plugin exceptions. All test servers were isolated on ports 25580/25581; the original play server at 25579 was neither updated nor restarted.

Still unqualified: Folia, native 26.2 client rendering, Bedrock/Geyser, external protection plugins, production load, and complete crash recovery across world/player inventories and all inherited economy paths. The plugin remains an unpublished development preview; no complete DonutSMP parity or production crash-safety claim is made.

Earlier 0.3.0-SNAPSHOT chest shops — 21 September 2026

83 unit tests and 15 live shop scenarios passed. This adds six exact-stock/price tests and three payment-receipt tests to the previous 74. Receipt tests cover replay after reload, altered replay, insufficient/self payments and failed-save rollback. Stock tests cover conservation across stacks, insufficient/full inventories, nonstackable items and invalid quantities/prices.

The 12 live shop scenarios cover creation/sample preservation, permissions, native item preview/confirmation, insufficient funds, foreign/replayed callbacks, changed prices and pauses, full inventories/short stock, renamed-item mismatch, owner editing/distance, hopper blocking, offline-owner payments, a regular player's buy shop, and removal/history. Three further scenarios verify normal-restart stock/ownership/payments, blocked non-owner creative breaking and restoring ordinary container access after removal. The final run used three headless clients and Paper 1.21.11 build 132 at port 25580. The player's existing server at 25579 was not updated or restarted.

Evidence: 12 live scenarios (in the release archive), 3 restart/protection scenarios (in the release archive), 83-test build log (in the release archive), and artifact manifest (in the release archive). Built and tested JARs match SHA-256 1f59fbad128accb602eee1a10bb5a9b3a7ddb231ae9f3ef6eb18d76c15c3afe1.

During harness development, an unsupported fixture money set command was corrected to supported give/take commands, and a missing wait for the client's look-direction packet was corrected before the final restart/protection run. No plugin exceptions occurred in the final runs. Protocol checks establish native item-preview delivery, not human visual rendering. World-save crash atomicity, external protection plugins, explosion/dropper/piston integrations and production load remain unqualified. Earlier key/market/module suites below were not all repeated on this chest-shop artifact; the complete unit suite was run.

Earlier 0.3.0-SNAPSHOT key-only verification — 21 September 2026

The earlier key-only development build passed 74 unit tests (the previous 63 plus eight key-ledger tests and three atomic currency-credit tests). The ledger tests exercise single key debit, saved draws, owner/stale/repeated claim rejection, interrupted-delivery review, invalid types/amounts, batch overflow and failed saves. Currency checks cover shard overflow without partial money credit, disk-failure rollback and persisted combined rewards.

11 live scenarios passed using crate-smoke.cjs and crate-restart.cjs on the isolated Paper 1.21.11 build 132 server at port 25580. Coverage includes denied/invalid grants, saved seven-choice draws, single currency payment, full inventory retry, custom spawner/key rewards, manual key-all, legacy-key conversion, shard-shop purchases, offline grants/reconnects, automatic key-all, and a normal restart with a subsequently changed reward configuration. The saved item reward retained its original quantity and was paid once. The final development JAR passed both scripts. One startup attempt connected before Paper was ready; the restart test was rerun after the server reported ready and passed.

Evidence: 10 live scenarios (in the release archive), restart/configuration scenario (in the release archive), and 74-test Maven log (in the release archive). No plugin exceptions were found in the final key-system server logs. The existing player server at port 25579 remains on its previous build; it has not been restarted or updated. Earlier 0.2.0 live results below are historical and were not all rerun for 0.3.0.

Development JAR SHA-256: a41a86911da91022868591f16ed3cefb3295d03627cd34ea3f635a517ba719da.

Key debit and choices share one atomic file replacement. Money/shards share a separate atomic credit. Item delivery, key rewards, physical-key redemption and purchases do not form a transaction across these files and Minecraft player/world data. Interrupted claims require staff review; full crash recovery and commercial qualification remain incomplete.

Packaged 0.2.0-beta.2 verification (historical)

Unit and configuration tests

63 tests passed on Java 21 for 0.2.0-beta.2, with zero failures, errors or skips. The final Maven verification completed on 21 September 2026. Coverage: 30 preset tests, 10 economy/exchange/duel-escrow tests, 3 session-gate tests, 3 configuration-contract tests, 3 market-validation tests, 3 exact-order tests, 4 listing-split tests, 4 daily-streak tests and 3 batch-inventory-capacity tests.

New economy checks exercise insufficient second-player funds, idempotent duel settlement, startup refund of interrupted stakes, and failed-disk rollback. Daily tests distinguish consecutive days, same-day display, missed days and malformed/future dates. Capacity tests cover competition for the same empty slot, stack sharing and nonstackable rewards.

Live Paper checks

Test environment: Paper 1.21.11 build 132, Java 21, an isolated flat-world loopback server at 127.0.0.1:25580, and two headless Java protocol clients. The user's existing server at port 25579 remained running and was not used by this audit. Paper download SHA-256 was verified against its official download metadata.

The original 18 live checks passed again on the 0.2.0-beta.2 audit build:

  1. Native Settings packet has six category buttons, one column, width 300.
  2. All six category forms open and return.
  3. A different player cannot use or consume an owner-bound callback.
  4. Public-chat preferences persist and filter recipients.
  5. Friend request/accept creates mutual persisted friendship; private messaging works.
  6. Disabling private messages blocks incoming messages.
  7. Payments debit/credit the correct amounts and reject NaN.
  8. Sell routing fills a higher order then uses the base price for leftover items.
  9. Filled order claims deliver items and remove the order.
  10. Empty orders cancel with a complete escrow refund.
  11. An auction purchase transfers money/items once; replay does not charge twice.
  12. Homes persist and appear in the native menu.
  13. Teleport requests and denial work.
  14. The registered pause-menu action opens Settings.
  15. Main commands open native dialogs.
  16. Quick Buy purchases a real listing at its confirmed price.
  17. The shard shop charges the configured price and issues a tagged Crystal Sell Axe.
  18. Asynchronous RTP locates a safe destination and records a cooldown after teleporting.

The test-client library's custom-click serializer needed a local adapter for Minecraft 1.21.11's length-prefixed NBT payload. The plugin itself uses Paper APIs and needs no such adapter.

Market expansion and restart checks

Six additional live scenarios passed on the 0.2.0-beta.2 audit build:

  1. An order buys 10 of 64 emeralds; the seller's remainder retains 54 items and the proportional price. The previous listing ID disappears, a replayed old confirmation charges nothing, and the remaining purchase conserves all 64 items and the original asking value.
  2. One listing fills two better orders and posts its remaining three items for the proportional asking price.
  3. A native exact-item order keeps its sample, rejects a different enchantment, protects the item from ordinary bulk selling, accepts explicit exact selling, preserves enchantments on claim and refunds unfilled demand only once.
  4. Pig spawners cannot fulfil a skeleton-spawner order. The matching skeleton item delivers and claims with its original custom data.
  5. Shulker contents sell to a better order and then the server price; the named box and enchanted sword remain intact, sold diamonds disappear, and repeating the sale pays nothing.
  6. An exact-item order auto-buys an identical enchanted auction listing and refunds the difference from its maximum price.

Two checks after a normal server shutdown and restart verify persisted partially filled custom escrow, and a full-inventory claim that preserves escrow until space is available, then refunds/delivers once. These 26 market/core scenarios do not establish crash or power-loss recovery.

The test fixture initially exposed two test-client issues: using vanilla execute as did not change the Bukkit command sender, and an oversized test /give command exceeded the protocol's command length. The scripts were corrected and rerun; these were not plugin transaction failures.

Module audit: 14 passing scenarios

  1. A full inventory cannot discard a normal kit or consume its cooldown; a successful claim gives all items once.
  2. Premium kits also reject full inventories and apply cooldown only after delivery.
  3. Daily rewards credit money/shards and reject another same-day claim.
  4. Kit preview items cannot be extracted.
  5. Repeated, denied and no-arena duel invitations do not charge either account.
  6. Accepted duels reserve both stakes, block RTP, settle a forfeit to one winner, clear escrow and return players.
  7. Unfunded duel requests cannot charge either account.
  8. Player warps reject another owner's overwrite/deletion and do not charge a second promotion.
  9. Existing team membership survives another invitation; team banks reject NaN and transfer valid funds.
  10. Live trades protect opponent slots, reject fractional shards and exchange items/net money.
  11. Closing an unfinished trade returns the original offered items.
  12. A deterministic fixture crate pays its reward before the animation, and a disconnect does not lose it.
  13. Normal players cannot use staff commands; reports persist and public mute blocks chat.
  14. Fourteen legacy menus open and close: duels, teams, warps, daily, kits, staff, creator, prices, drills, spawners, server shop, premium, private vault and workbench. This last scenario is a menu smoke check, not complete action coverage.

Survival audit: 8 passing scenarios

  1. Full-inventory spawner and drill purchases do not charge shards.
  2. A real survival block break with a drill removes a connected three-block coal vein.
  3. The Sell Axe sells plain barrel stock while retaining a renamed diamond.
  4. Real survival spawner placement/stacking persists two spawners and generates virtual drops/XP.
  5. Full inventory retains stored spawner drops; XP collection works and freed space permits item collection.
  6. Breaking the virtual spawner returns the complete two-spawner stack and removes its world block.
  7. Moving during a home warmup cancels the actual teleport.
  8. Player-caused damage blocks combat travel; a resulting death pays a funded bounty once and increments kill/death statistics.

The survival fixture uses a one-second spawner interval for practical verification, not the default production interval. Combat attribution uses vanilla damage commands with an explicit player attacker; it is not a human PvP balancing test.

An initial real placement attempt exposed a Paper exception from setting minimum spawn delay above the current maximum. The final JAR sets maximum first and uses signed-short-compatible delay values. The 63 unit tests and all 8 survival scenarios passed after that fix, with no plugin exceptions in that final server log. The 18 core, 14 module, 6 market and 2 restart scenarios passed immediately before this narrowly scoped initialization fix; they were not all repeated afterward. Across the audit there are 48 passing live scenarios, not 48 independent features or a proof of total parity.

The survival client's enchantment representation did not match its dig-time helper. Its adapter uses conservative unenchanted timing; the server still validates every block break. Other fixture corrections included reading NBT window titles correctly, recognizing initially absent storage files and calculating the configured premium sell multiplier. These adapter fixes are separate from the product bugs listed in CHANGELOG.md.

Documentation and media

The wiki and $12 listing drafts use seller VexyAUS and the supplied Discord invite. Six original artwork frames were inspected. The 42-second, 1920x1080, 30-fps H.264/AAC teaser decoded without errors, and an exported-video frame was inspected. It is labelled as a development feature preview and contains no gameplay footage. Final playback with sound and genuine Minecraft capture remain outstanding.

Not established

Human-rendered UI fidelity; every creator/editor action; complete team-vault concurrency and leader lifecycle; protection-plugin, raid, portal and combat-logout interactions; cross-file physical-item crash recovery; large-server capacity; exact DonutSMP parity; Folia/Spigot/Bedrock or 26.x compatibility. See RELEASE-CHECKLIST.md and wiki/Feature-Coverage.md. The desktop/browser kernels failed before opening a session, so Lunar visual inspection, gameplay recording and BuiltByBit submission were not completed. No paid listing was published.