Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
Donut Stream Games
Three overlays for running viewer games on DonutSMP: a bid timer for auctions that reads /pay messages, a host vs viewer dropper duel, and a flood vs drain scoreboard.
Client side only, so you just drop it in your own mods folder. Nothing goes on the server.
Everything is configured through Mod Menu, and every panel can be dragged wherever you want it.
Auction HUD
A countdown widget with a progress bar and the current highest bid. Start it, tell chat to pay you to bid, and it tracks whoever sent the most.
Start a 60 second auction:
/auctionstart
Change the length first if you want something else:
/auctiontimeset 180
When the timer runs out it announces the winner in chat. You can end early with /auctionend, which announces straight away.
How bids are read It watches chat for DonutSMP's payment line, the one that looks like this when someone runs /pay you 5m:
a9zdd paid you $ 5M The parsing is loose on purpose so it survives formatting differences. Commas, decimals, K/M/B/T suffixes, a missing $, a space between the $ and the number, rank prefixes in front of the name, colour codes. All handled.
The part worth knowing. A payment only counts if the money is coloured green, which is how DonutSMP renders it. That's what stops someone faking a bid by typing a9zdd paid you 100m in chat or whispering it to you. Their text comes through white, so it gets ignored.
If bids aren't registering, turn on debug and it'll tell you exactly what it saw:
/auctiondebug
Every payment-shaped line then reports whether it matched and whether it found green, so you know in seconds whether it's a wording issue or a colour issue. There's also /auctiontest <message> if you want to check some wording without the colour rule getting involved.
Commands /auction current status, or a command list when idle /auctionstart start the timer /auctionend end now and announce the winner /auctiontimeset <seconds> set duration, 5 to 3600 /auctionreset clear the timer and all bids /auctiontoggle show or hide the HUD /auctiontest <message> check whether a message parses /auctiondebug toggle parse reporting
Dropper Game
Host and viewer each drop a numbered item. Higher number wins. A panel shows the winner with both scores under it and a countdown before it clears itself.
Two ways to read the numbers, depending on how your items are named.
Named mode is the default. It watches your inventory and pulls the first number out of the item name, so an item called Host 6 scores 6. Set the two name prefixes in the config to match. Leave a prefix blank to match anything.
Position mode watches for items landing near two dropper blocks instead. Use this when your items are named with just a bare number, since there's no prefix to tell the sides apart. Look at the host dropper and press the set-host key, then the same for the viewer one. Both of those keys are unbound out of the box, so bind them in Controls first or nothing will happen.
Start a round with Right Bracket, or:
/dropper start /dropper reset /dropper host <number> set a score manually /dropper viewer <number> set a score manually The manual ones save a round when something doesn't get picked up properly.
Flood/Drain Tracker
Scores a flooding team against a draining team. Stand in the middle of the arena, press Left Bracket, and it snapshots every block around you and watches what changes.
Flooding scores when a brand new water source appears. Draining scores when an existing one is gone, whether it got bucketed, sponged, or built over. Water that was already sitting there when you started is recorded and ignored, so nobody gets free points for the existing pool.
Both scores only go up. The draining team removing water doesn't subtract from the flooding team, so the two numbers stay independent instead of being one counter the teams fight over.
Tracking one side only Running a flood-only or drain-only event? Each has its own start button in the config, and the panel collapses to a single row. Or use commands:
/flooddrain start /flooddrain stop /flooddrain reset /flooddrain mode both /flooddrain mode flood /flooddrain mode drain The Y floor It only scans above a Y level you set, defaulting to 100, so a build up in the sky doesn't get polluted by oceans and lakes down at sea level.
If your arena is near sea level you have to lower this or the whole scan area sits under the floor and it won't start. It tells you when that happens instead of silently sitting at zero:
[FloodDrain] Nothing to scan: the whole area (Y 59 to 71) sits at or below the Y 100 floor. Move up, or lower "Minimum Y Level" in the config. Set Minimum Y Level to -64 to switch the restriction off completely.
Overworld only. Leaving the dimension stops tracking, since the snapshot positions don't mean anything anywhere else.
Moving the panels Press Right Shift to open the drag editor, or turn on Launch Drag Editor in the Layout config and save.
left drag move a panel arrow keys nudge one pixel shift + arrows nudge ten tab cycle selection R reset the selected panel escape save and close Panels snap to screen edges and centre lines while you drag them.
Keybinds Right Bracket start a dropper round Left Bracket start/stop flood-drain tracking Right Shift open the drag editor (unbound) set host dropper position (unbound) set viewer dropper position Requirements Minecraft 1.21.11 Fabric Loader 0.16.5 or newer Fabric API Cloth Config Mod Menu Client side. Don't put it on a server, it won't do anything there.
Notes Built against DonutSMP's message formats. The auction is the only part that depends on them, and the green-colour rule is the bit most likely to need checking if the server ever changes how /pay looks. /auctiondebug answers that in about ten seconds.
Dropper named mode reads items as they land in your inventory, so you have to be the one picking them up. If your setup drops items somewhere you aren't standing, use position mode.
Flood/drain scan cost grows with radius. The default radius of 20 with the default heights is roughly 22k blocks per pass and is nothing to worry about. Radius 60 with a tall scan area is well over a million, so raise the scan interval if you go that big.


