

Dynamic scoreboards that react to everything. Page rotation, per-profile logos, auto-sizing, conditional rendering, animated text, and deep WiFlowPlaceholderAPI integration. Region-based, rank-based, faction-based, or anything else you can imagine.
The Killer Feature: WiFlow's PlaceholderAPI Integration
Any plugin with a WiFlowPlaceholderAPI expansion can control which scoreboard players see.
Install an expansion. Use it as a condition. Done.
/wpapi ecloud download orbisguard
/wpapi ecloud download luckperms
/wpapi ecloud download hyfaction
Now your scoreboard reacts to everything:
- Player enters spawn → Spawn scoreboard with welcome message & spawn logo
- Player joins a faction → Faction scoreboard with power/members
- Player ranks up to VIP → VIP scoreboard with exclusive logo & perks
- Player enters combat → Combat scoreboard with timer
- Player enters a mine → Mining scoreboard with reset timer
{
"profiles": [
{
"condition": "orbisguard_region",
"equals": "spawn",
"logo": { "image": "spawn_logo.png" },
"title": { "text": "[#55ff55]SPAWN" },
"lines": { "content": ["Welcome to Spawn!", "You are safe here!"] }
},
{
"condition": "luckperms_primary_group",
"equals": "vip",
"logo": { "image": "vip_logo.png" },
"lines": { "content": ["[#ffaa00]VIP Member", "Exclusive perks active!"] }
},
{
"condition": "hyfaction_name",
"notEquals": "",
"lines": { "content": ["Faction: {hyfaction_name}", "Power: {hyfaction_power}"] }
},
{
"isDefault": true,
"pages": [
{ "duration": 5.0, "lines": { "content": ["Player: {player}", "Online: {online}"] } },
{ "duration": 4.0, "title": { "text": "Stats" }, "lines": { "content": ["Playtime: {playtime}", "TPS: {tps}"] } }
]
}
]
}
The entire expansion ecosystem works as conditions:
| Expansion |
Example Condition |
Use Case |
| OrbisGuard |
orbisguard_region |
Region-specific scoreboards |
| LuckPerms |
luckperms_primary_group |
Rank-based scoreboards |
| HyFaction |
hyfaction_name |
Faction member scoreboards |
| CombatLog |
combatlog_active |
Combat warning scoreboards |
| OrbisMines |
orbismines_name |
Mining scoreboards |
| SimpleClaims |
simpleclaims_is_claimed |
Claimed vs wilderness |
| Economy |
economy_balance |
Wealth-based scoreboards |
If a placeholder exists, you can switch scoreboards with it.
Features
- Page Rotation - Multiple pages per profile, auto-cycling with configurable duration and per-page titles
- Per-Profile Logos - Different logos for each profile, placed in
mods/WiFlowScoreboard/images/
- Auto-Sizing - Width and height auto-adjust based on visible content
- In-Game Editor - Edit worlds, profiles, pages, and lines with
/sb edit
- Conditional Profiles - Switch scoreboards based on any placeholder value
- Conditional Lines - Show/hide individual lines with 9 comparison operators
- Animated Text - Rainbow, gradient, pulse, shimmer, breathe, glow, strobe, and custom animations
- Position Presets - 9 positions: center-right, top-left, bottom-center, etc.
- World-Specific Scoreboards - Different scoreboards for each world
- Permission Variants - Fallback to permission checks when no placeholder matches
- Built-in Placeholders - Player info, server stats, playtime, TPS
- Playtime Tracking - Session and total playtime (persisted across restarts)
- Hot Reload - Change configs without restarting (
/sb reload)
Page Rotation
Add multiple pages to any profile. Each page has its own content and optional title override:
"pages": [
{
"duration": 5.0,
"lines": { "content": ["Player: {player}", "World: {world}"] }
},
{
"duration": 4.0,
"title": { "show": true, "text": "Stats" },
"lines": { "content": ["Playtime: {playtime}", "TPS: {tps}"] }
}
]
Pages auto-rotate. When pages is present, it replaces the profile's lines.
Custom Logos
Place images in mods/WiFlowScoreboard/images/ and reference them by filename:
"logo": {
"show": true,
"image": "my_logo.png",
"width": 240,
"height": 137
}
Each profile can override the logo with its own "logo": { "image": "vip_logo.png" }. Per-profile fields merge with the top-level — only set what you want to change.
Conditional Lines
Show different content based on placeholder values within a single scoreboard:
{
"condition": "{orbisguard_flag_pvp}",
"equals": "allow",
"then": "[#ff5555]PVP ENABLED",
"else": "[#55ff55]Safe Zone"
}
Tip: Omit else to completely hide the line when false. Pairs great with auto-height sizing.
Supported comparisons: equals, notEquals, contains, startsWith, endsWith, greaterThan, lessThan, greaterThanOrEquals, lessThanOrEquals
Auto-Sizing
The scoreboard automatically adjusts its width and height based on visible content:
"size": {
"autoHeight": true,
"autoWidth": true,
"minWidth": 200,
"maxWidth": 500
}
When conditional lines hide, the panel shrinks. When long placeholders expand, the width grows. Fully configurable with min/max bounds.
Built-in Placeholders
These work out of the box without WiFlowPlaceholderAPI:
| Placeholder |
Description |
{player} |
Player display name |
{world} |
Current world name |
{online} |
Online player count |
{max_players} |
Server max players |
{server} |
Server name |
{tps} |
Server TPS |
{playtime} |
Session playtime |
{playtime_total} |
Total playtime (all sessions) |
Animations
Add animations to any line:
[anim:rainbow]Welcome to the server!
[anim:gradient:#ff0000:#0000ff]Red to Blue
[anim:pulse:#ffffff:#ffaa00]Pulsing gold
| Animation |
Description |
rainbow |
Full spectrum color cycle |
gradient |
Smooth transition between colors |
pulse |
Fade between two colors |
colors |
Custom color sequence |
shimmer |
Random sparkle effect |
breathe |
Slow brightness fade |
glow |
Pulsing glow |
strobe |
Fast flashing |
typewriter |
Character-by-character reveal |
scroll |
Horizontal marquee |
custom:name |
Load from animations/name.json |
Quick Start
- Drop the JAR in your
mods/ folder
- Install WiFlowPlaceholderAPI (optional, for expansion placeholders)
- Download expansions:
/wpapi ecloud download <name>
- Edit files in
mods/WiFlowScoreboard/scoreboards/
- Place logos in
mods/WiFlowScoreboard/images/
- Use
/sb reload to apply changes
mods/WiFlowScoreboard/
├── config.json # Global settings
├── playtime.json # Persistent playtime data
├── scoreboards/
│ └── default.json # Scoreboard profiles
├── images/ # Custom logos (PNG, JPG)
└── animations/
└── custom.json # Custom animations
Commands
| Command |
Description |
/sb reload |
Reload all configs |
/sb hide |
Hide your scoreboard |
/sb show |
Show your scoreboard |
/sb edit |
Open in-game editor |
/sb set <index> <text> |
Set a line |
/sb add <text> |
Add a line |
/sb remove <index> |
Remove a line |
/sb save |
Save changes to disk |
/sb list worlds |
List loaded configs |
/sb list profiles |
List profiles |
/sb list lines |
List lines |
/sb list pages |
List pages |
Aliases: /scoreboard, /wsb
Need Help?
Join the Discord server for:
- Setup help and questions
- Config examples
- Feature requests
- Bug reports
Contact: w1fl0w on Discord