stomboard is a focused Kotlin library for Minestom scoreboards/sidebars.
It provides:
- lightweight sidebar creation with plain text templates
- placeholder replacement for dynamic lines/titles
- per-player sidebar assignment
- builder-style full sidebar updates
- built-in title/line/replacer animation helpers
- an internal packet sidebar implementation tuned for Bedrock-friendly rendering
repositories {
mavenCentral()
maven("https://jitpack.io")
}dependencies {
implementation("com.github.bed-dev:stomboard:<tag>")
}import codes.bed.minestom.sidebars.Sidebar
import codes.bed.minestom.sidebars.SidebarManager
val manager = SidebarManager.global
val lobbySidebar = Sidebar(
initialTitle = "Lobby",
lines = listOf(
"Player: {player}",
"Rank: {rank}",
"",
"Online: {online}"
)
)
fun showSidebar(player: net.minestom.server.entity.Player, online: Int) {
manager.assign(
player,
lobbySidebar,
mapOf(
"{player}" to player.username,
"{rank}" to "Default",
"{online}" to online.toString()
)
)
}manager.updateTitle(player, "Matchmaking")
manager.updateLine(player, 1, "Rank: Premium")
manager.addReplacers(player, mapOf("{online}" to "128"))
lobbySidebar.update {
line("Online: {online}")
line("Rank: {rank}")
}manager.animateTitle(player, listOf("Lobby", "Queue", "Arena"), 500)
manager.animateLine(
player = player,
lineIndex = 0,
frames = listOf("Player: Steve", "Player: STEVE"),
intervalMs = 300
)
manager.animateReplacers(player, 1000) {
mapOf("{online}" to getLiveOnlineCount().toString())
}See additional documentation in docs/:
docs/README.md(docs entry page)docs/getting-started.mddocs/sidebar-basics.mddocs/animations.mddocs/lifecycle.md
Each page includes Kotlin and Java examples.