Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
Platforms
Links
Tags
Creators
Details
Licensed MIT
Published 2 months ago


Please contact me on Discord if you have any suggestions or edits.

- DonutScoreboard makes a Scoreboard exactly like the famous Server "DonutSMP"

- Pixel-Perfect Design: The scoreboard matches the original DonutSMP layout exactly โ same icons, same colors, same gradient title.
- Full Customization: Every single line is editable in config.yml. Change text, colors, hex codes, or swap any value with a placeholder.
- Zero Flicker: Lines only update when the content actually changes. Players never see a flash or refresh stutter.
- Built-in Tokens: Kill count, death count, ping, playtime, and keyall countdown all work out of the box with no extra plugins required.
- Keyall Countdown: A server-wide 60 minute countdown that resets automatically. Operators can set it to any time live with a command.
- Player Toggle: Players can show or hide their own scoreboard at any time with
/sb enableor/sb disable. The preference saves across restarts. - World Control: Disable the scoreboard in specific worlds from config or with a command. Players moving between worlds have it handled automatically.
- In-Game GUI: Operators can configure keyall time and manage disabled worlds directly from a chest GUI without touching config files.
- Red Numbers Hidden: The vanilla red score numbers on the sidebar are completely removed on Paper, Purpur, and Spigot 1.21+.
- Hex Color Support: Full
&#RRGGBBhex color support on every line and the title. Gradients, custom colors, anything works. - PlaceholderAPI Support: Any
%placeholder%from PlaceholderAPI works inside scoreboard lines when PAPI is installed. - Config Auto-Recovery: If config.yml gets corrupted or broken the plugin automatically regenerates a clean copy on the next startup.

| Command | Permission | Description |
|---|---|---|
/donutscoreboard |
Everyone | Shows plugin info and available commands |
/donutscoreboard reload |
donutscoreboard.admin |
Reloads the configuration file |
/donutscoreboard reset |
donutscoreboard.admin |
Resets config to defaults and rebuilds all scoreboards |
/donutscoreboard gui |
donutscoreboard.admin |
Opens the in-game configuration GUI |
/donutscoreboard interval <seconds> |
donutscoreboard.admin |
Sets the scoreboard refresh rate (1-60 seconds) |
/donutscoreboard title edit [text] |
donutscoreboard.admin |
Changes the scoreboard title |
/donutscoreboard title reset |
donutscoreboard.admin |
Resets the title to default |
/donutscoreboard line add [text] |
donutscoreboard.admin |
Adds a new line to the scoreboard |
/donutscoreboard line edit <number> [text] |
donutscoreboard.admin |
Edits a specific line |
/donutscoreboard line delete <number> |
donutscoreboard.admin |
Removes a line from the scoreboard |
/donutscoreboard line empty <number> |
donutscoreboard.admin |
Clears a line (makes it blank) |
/donutscoreboard line reset |
donutscoreboard.admin |
Resets all lines to default |
/donutscoreboard line swap <n> with <n> |
donutscoreboard.admin |
Swaps two lines |
/donutscoreboard keyall time set <time> |
donutscoreboard.admin |
Sets the keyall countdown (example: 30m, 1h, 2d) |
/donutscoreboard keyall time reset |
donutscoreboard.admin |
Resets keyall countdown to max duration |
/donutscoreboard keyall duration <time> |
donutscoreboard.admin |
Sets the max keyall duration (example: 2h, 3d) |
/donutscoreboard world list |
donutscoreboard.admin |
Lists all worlds and their status |
/donutscoreboard world disable <world> |
donutscoreboard.admin |
Disables the scoreboard in a world |
/donutscoreboard world enable <world> |
donutscoreboard.admin |
Enables the scoreboard in a world |
/sb |
donutscoreboard.toggle |
Toggles your scoreboard on or off |
/sb enable |
donutscoreboard.toggle |
Shows your scoreboard |
/sb disable |
donutscoreboard.toggle |
Hides your scoreboard |
| Permission | Default | Description |
|---|---|---|
donutscoreboard.admin |
OP | Access to all admin commands |
donutscoreboard.toggle |
Everyone | Access to /sb toggle command |

- A folder named
DonutScoreboardis created in yourpluginsfolder automatically. Inside you will find a cleanconfig.ymlfile.
Config.yml
# ==========================================================
#
# DonutScoreboard โ config.yml
# by SirSnaryo
#
# Works on: Paper ยท Spigot ยท Bukkit ยท Purpur
# Version: 1.21.x
#
# ==========================================================
#
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ COLOR CODES โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
# โ &f = white &7 = gray &0 = black โ
# โ &a = green &c = red &e = yellow โ
# โ &b = aqua &9 = blue &d = purple โ
# โ &l = bold &o = italic &r = reset all โ
# โ &#RRGGBB = any hex color (e.g. &#FF5500 = orange) โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ BUILT-IN TOKENS โ
# โ These work with no extra plugins installed โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
# โ %kills% โ total player kills โ
# โ %deaths% โ total player deaths โ
# โ %ping% โ player ping in ms โ
# โ %playtime% โ time played (e.g. 2d 4h / 3h 20m)โ
# โ %keyall% โ keyall countdown (e.g. 47m 13s) โ
# โ โ
# โ %keyall% also works anywhere via PlaceholderAPI: โ
# โ %donut_keyall_countdown% โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ HOW LINES WORK โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
# โ Every line is a plain string. What you type is โ
# โ exactly what appears on the sidebar. โ
# โ โ
# โ A line with just a space ( " " ) is a blank gap. โ
# โ โ
# โ You can swap any token for hardcoded text. โ
# โ For example: &#FF0000%kills% โ &#FF00005 โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ CONDITIONAL LINES โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
# โ You can make any line appear only when a condition โ
# โ is true by adding a condition key with the same name โ
# โ plus "-condition" at the end. โ
# โ โ
# โ Syntax: โ
# โ line-name: "&fKills %kills%" โ
# โ line-name-condition: "%kills% > 0" โ
# โ โ
# โ Supported operators: > < >= <= == != โ
# โ โ
# โ Both sides can be numbers or placeholder values. โ
# โ If the condition is false, the line is completely โ
# โ hidden โ other lines shift up to fill the gap. โ
# โ โ
# โ Examples: โ
# โ kills-condition: "%kills% > 0" โ
# โ vip-condition: "%vault_eco_balance% >= 1000" โ
# โ ping-condition: "%ping% < 200" โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ COMMANDS โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
# โ /sb enable โ show scoreboard โ
# โ /sb disable โ hide scoreboard โ
# โ โ
# โ /donutscoreboard โ plugin info โ
# โ /donutscoreboard reload โ reload config โ
# โ /donutscoreboard reset โ reset config โ
# โ /donutscoreboard gui โ open GUI โ
# โ /donutscoreboard interval <secs> โ set refresh rate โ
# โ /donutscoreboard title edit "txt" โ change title โ
# โ /donutscoreboard title reset โ reset title โ
# โ /donutscoreboard line add "text" โ add a new line โ
# โ /donutscoreboard line edit <n> โ edit a line โ
# โ /donutscoreboard line delete <n> โ remove a line โ
# โ /donutscoreboard line empty <n> โ blank a line โ
# โ /donutscoreboard line reset โ reset all lines โ
# โ /donutscoreboard line swap <n> with <n> โ swap lines โ
# โ /donutscoreboard keyall time set <time> โ
# โ /donutscoreboard keyall time reset โ
# โ /donutscoreboard keyall duration <time> โ
# โ /donutscoreboard world enable <world> โ
# โ /donutscoreboard world disable <world> โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ BROKEN CONFIG โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
# โ If you break this file the plugin automatically โ
# โ deletes it and regenerates a clean copy on startup. โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
# ==========================================================
# ----------------------------------------------------------
# PLUGIN TOGGLE
# Set to false to completely disable DonutScoreboard.
# No scoreboards will be shown to anyone on the server.
# ----------------------------------------------------------
enabled: true
# ----------------------------------------------------------
# UPDATE INTERVAL
# How often the scoreboard refreshes, measured in seconds.
# Lower = smoother but more CPU usage.
# Recommended: 1
# ----------------------------------------------------------
update-interval: 1
# ----------------------------------------------------------
# KEYALL DURATION
# The total countdown time for keyall in seconds.
# Default: 3600 (60 minutes)
# You can set this higher for longer countdowns.
# Examples:
# 3600 = 1 hour
# 7200 = 2 hours
# 86400 = 1 day
# 259200 = 3 days
# ----------------------------------------------------------
keyall-duration: 3600
# ----------------------------------------------------------
# DISABLED WORLDS
# Worlds listed here will never show the scoreboard.
# Players moving into a disabled world lose their board,
# and get it back automatically when they leave.
# Example:
# disabled-worlds:
# - world_nether
# - minigames
# ----------------------------------------------------------
disabled-worlds: []
# ----------------------------------------------------------
# TOGGLE MESSAGES
# The message and sound played when a player runs
# /sb enable or /sb disable.
#
# command โ the alias players type (letters only, 1-10 chars)
# Default: sb โ /sb enable / /sb disable
# Requires a server restart to take effect after changing.
# sound โ any Bukkit Sound enum name
# full list: hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
#
# For each message type you can independently enable or disable:
# chat-enabled โ true/false โ show/hide the chat message
# actionbar-enabled โ true/false โ show/hide the actionbar message
# title-enabled โ true/false โ show/hide the title message
# sound-enabled โ true/false โ play/mute the sound
# ----------------------------------------------------------
toggle:
# The command players type to show or hide their scoreboard.
# Letters only, 1-10 characters. Requires a server restart after changing.
command: "sb"
# Set to false to disable the /sb command entirely.
# Players will not be able to show or hide their scoreboard.
# Default: false (disabled โ enable it if you want players to use it)
command-enabled: false
# Permission required to use the /sb command.
# Default: donutscoreboard.toggle (given to all players by default in plugin.yml)
# You can restrict it via LuckPerms by setting default: false in plugin.yml
# and granting it only to specific groups.
permission: "donutscoreboard.toggle"
# Whether new players see the scoreboard the first time they join.
default-on: true
# The argument names players type after /sb.
# Example with defaults: /sb enable /sb disable
# Change these to anything you want.
args:
enable: "enable"
disable: "disable"
# ==========================================================
# ENABLE โ shown when a player enables their scoreboard
# ==========================================================
enable:
chat-enabled: true
chat-message: "&aYou have enabled scoreboard."
actionbar-enabled: true
actionbar-message: "&aYou have enabled scoreboard."
title-enabled: false
title-message: "&aScoreboard"
subtitle-message: "&7has been enabled"
title-fade-in: 10
title-stay: 40
title-fade-out: 10
sound-enabled: true
sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
# ==========================================================
# DISABLE โ shown when a player disables their scoreboard
# ==========================================================
disable:
chat-enabled: true
chat-message: "&cYou have disabled scoreboard."
actionbar-enabled: true
actionbar-message: "&cYou have disabled scoreboard."
title-enabled: false
title-message: "&cScoreboard"
subtitle-message: "&7has been disabled"
title-fade-in: 10
title-stay: 40
title-fade-out: 10
sound-enabled: true
sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
scoreboard:
# ----------------------------------------------------------
# TITLE
# ----------------------------------------------------------
title: "DFC&lDXFC&lo\FC&ln	DFC&lu�A8FC<�B3FC&l S�BDFC&lM�C8FC&lP"
lines:
spacer-top: " "
money: "&f�FF00&l$ &fMoney �FF000"
shards: "&f&#A503FCโ
&fShards &#A503FC0"
kills: "&f&#FF0000\uD83D\uDDE1 &fKills &#FF0000%kills%"
deaths: "&f&#FC7703\u2620 &fDeaths &#FC7703%deaths%"
keyall: "&f�A6FF\u231B &fKeyall �A6FF%keyall%"
playtime: "&f&#FFE600\u231A &fPlaytime &#FFE600%playtime%"
team: "�A6FF\uD83E\uDE93 &#FFFFFFTeam �A6FFnone"
spacer-mid: " "
footer: "&f&7NA East &7(�A6FF%ping%ms&7)"
# ----------------------------------------------------------
# KEYALL AUTO-EXECUTE
# When the keyall countdown reaches zero, the plugin can
# automatically run a list of commands as the console and
# optionally notify all online players.
#
# enabled โ set to true to activate this feature
# commands โ list of console commands to run
# Do NOT include the leading slash.
# Example: crates key give @a example
#
# notify settings โ independently toggle actionbar, title,
# and sound sent to every online player
# at the moment the commands fire.
# ----------------------------------------------------------
keyall-execute:
# Master switch โ false by default.
enabled: false
# Commands executed as the console the instant the timer hits zero.
# Do NOT include a leading slash.
commands:
- "crates key give @a example"
- "broadcast &6&lKeyall keys have been distributed!"
notify:
# ------ Actionbar ----------------------------------------
# Shown above the hotbar of every online player.
actionbar-enabled: false
actionbar-message: "�A6FF&lKeyall &7keys have been given to everyone!"
# ------ Title --------------------------------------------
# Big text displayed in the center of the screen.
title-enabled: false
title-message: "�A6FF&lKEYALL"
subtitle-message: "&7Keys have been distributed!"
title-fade-in: 10
title-stay: 60
title-fade-out: 10
# ------ Sound --------------------------------------------
# Played for every online player when commands execute.
# Full list: hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
sound-enabled: false
sound: "ENTITY_PLAYER_LEVELUP"

- Download the latest version of DonutScoreboard.
- Drop the
.jarfile into your server'spluginsfolder. - Restart your server.
- Done! No additional setup required.

ยฉ 2026 DonutScoreboard. All rights reserved to MIT.


