Tags
Creators
Details
2.0.0
Compatibility
Changes
DonutShards 2.0.0 "Sweet Spots"
The biggest DonutShards update yet: AFK zones you draw in game with their own payouts, a boss bar that counts down to every payout, server-wide boosters, a shop with Daily Deals and leaderboards that stand in your world. One jar for Paper, Folia and Purpur on Minecraft 1.20.1 to 26.3. Your balances, zones and settings carry over: no migration.
New
- Sweet Spot Wand (
/shardmanager zone wand): left-click and right-click two blocks, then/shardmanager zone create <name>makes a box zone.zone pos1|pos2sets a corner where you stand. Spheres from 1.x still work. - Per-zone settings:
/shardmanager zone set <zone> shards|interval|permission|display-name <value>. A VIP zone that pays 3 shards every 30 seconds is two commands. - AFK boss bar: zone name, the next payout, a live countdown and the session total.
- Per-player timers: the interval starts when you walk in; walk out (or log off) and it stops. No more payouts for arriving one second before a server-wide tick.
- Session summary when you leave a zone: time spent and shards earned.
- Boosters:
/shardmanager booster start 2 1h Weekenddoubles AFK and kill rewards for everyone, with a booster boss bar; it survives restarts./shards boostershows it. - Rank multipliers:
shards.multiplier.<x>(the highest wins). - Daily Deals: a rotating row of offers in
/shardshop, the same for every player, with a countdown and a per-player limit that is checked together with the payment. - Leaderboard boards:
/shardmanager board create <name>puts a live top 10 in the world (no hologram plugin). - History:
/shards historyfor players,/shardmanager history <player>and/shardmanager info <player>for staff (also from the console and RCON). - Placeholders:
%donutshard_zone%,%donutshard_next_reward%,%donutshard_session%,%donutshard_booster%,%donutshard_booster_time%. - API:
getActiveBoosterMultiplier(),getHistory(...);ShardRewardEvent,ShardPurchaseEventandShardTransferEventare now fired (they never were in 1.x).
Fixed
- A second kill within the same second paid nothing (but still showed "+N Shard").
%donutshard_balance%queried the database on the server thread; placeholders never block now./shards paynever told the recipient;transfer.minimum,maximumandconfirmation-thresholdwere ignored.- Escaped placeholder values showed a stray
\before>in chat. shards.admin.give/take/setandshards.bypass.cooldownwere declared but not checked.- The API kept the transfer tax from startup after
/shardmanager reload. gui.ymlprevious,nextandfillerwere ignored by the leaderboard menu.
Changed
- Requires Paper, Folia or a Paper fork. 1.x listings claimed Spigot and Bukkit, which could never run it.
- Java 17 is enough on 1.20.1 servers (1.x needed Java 21).
rewards.ymlandanti-abuse.ymlare no longer created (no version ever read them); old copies are ignored.- Six permission nodes that did nothing are no longer declared (
shards.admin.reset,rollback,migrate,gui,debug,shop).
Upgrading
Drop in the new jar. New config keys are added to your files without touching your values. An existing shop.yml
keeps its layout and gets Daily Deals switched off (set deals.enabled: true and pick free slots). See
CONFIGURATION.md.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:4krPhA6H:pyq1JGOk"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:4krPhA6H:pyq1JGOk"
}

