
rVisualBoards
Holographic leaderboards in your world with clickable buttons, period tabs and scrolling up to 100 places
!фото
Holographic leaderboards placed right in your world. Players click buttons, switch leaderboards and scroll through places. No mods, no resource pack.
Paper 1.21.4+ Folia Java 21
How it works
- Stand where you want the board and run
/rvb create spawn loonycube. - The plugin places the board and pulls leaderboard data from ajLeaderboards.
- A player clicks a button and switches the leaderboard: balance, playtime, kills.
- A player looks at the board and scrolls the mouse wheel. Places scroll down to the 100th.
Each line, column and button is a text display entity, so you color, scale and animate every part of the board.
Features
- Holographic leaderboards right in the world, no mods or resource pack.
- Several leaderboards on one board, switched with a click.
- Period tabs: all time, year, month, week, day, hour.
- Mouse wheel scrolling, up to 100 places per board.
- A personal line with the viewing player's place and value.
- Leaderboards from ajLeaderboards or any plugin with PlaceholderAPI placeholders.
- 4 ready-made styles and your own style in a separate file: columns, colors, sizes, texts.
- 4 switch animations:
SLIDE_LEFT,SLIDE_RIGHT,ZOOM,CASCADE. - Buttons and lines grow when a player looks at them.
- In-game editing: rotate, resize from 0.25 to 4, shift, move, teleport.
- No limit on the number of boards and leaderboards.
- MiniMessage, Folia support.
Requirements
| Server | Java | Required plugins | Data source |
|---|---|---|---|
| Paper 1.21.4+ or Folia | 21 | PlaceholderAPI, packetevents | ajLeaderboards or any plugin with placeholders |
Commands and permissions
| Command | What it does |
|---|---|
/rvb help | Shows the command list |
/rvb create <id> <style> | Creates a board where you stand. Style is a file from the tops folder |
/rvb movehere <id> | Moves a board to your position |
/rvb edit <id> | Shows board information |
/rvb edit <id> rotate <0-360> | Rotates the board to an angle |
/rvb edit <id> face | Turns the board to face you |
/rvb edit <id> scale <0.25-4> | Sets the board size |
/rvb edit <id> move <up|down|left|right|front|back> <blocks> | Shifts the board |
/rvb edit <id> tp | Teleports you to the board |
/rvb edit <id> type <style> | Changes the board style |
/rvb edit <id> default-top <top> | Sets the leaderboard that opens first |
/rvb remove <id> | Deletes a board |
/rvb list | Shows the board list |
/rvb reload | Reloads the configs and the tops folder |
Alias: /rvisualboards. Every command requires rvisualboards.admin.
config.yml
update-interval-seconds: 10 # how often leaderboard data refreshes, in seconds
view-radius: 32.0 # distance from which a player sees a board, in blocks
snap-to-grid: true # true: the board sits at the block center and rotates in 90° steps
debug: false # detailed console messages for troubleshooting
metrics: true # anonymous bStats statistics
update-check: true # checks for a new plugin version
command: # applied after a server restart
name: "rvb" # main command name
aliases: # extra command names
- rvisualboards
clicks:
cooldown-millis: 300 # delay between button clicks, in milliseconds
sound:
key: "minecraft:ui.button.click" # click sound ID
volume: 0.6
pitch: 1.4
# Enlarges the element a player looks at.
hover:
buttons: true # enlarge buttons
rows: true # enlarge table lines
scale: 1.15 # button growth factor
row-scale: 1.1 # line growth factor
distance: 6.0 # working distance, in blocks
duration-ticks: 3 # growth duration, in ticks
# Mouse wheel scrolling through places.
scroll:
enabled: true
max-places: 100 # last place a player reaches
step: 1 # places per wheel step
distance: 8.0 # working distance, in blocks
# Animation on leaderboard or period change.
animation:
enabled: true
appear: true # animation when the board appears
types: # SLIDE_LEFT, SLIDE_RIGHT, ZOOM, CASCADE
- CASCADE
duration-ticks: 6 # duration, in ticks
stagger-ticks: 1 # delay between lines, in ticks
distance: 0.6 # offset, in blocks
advanced:
viewer-check-interval-ticks: 20 # how often the plugin checks who sees a board
hover-check-interval-ticks: 2 # how often the plugin checks where a player looks
# Data source placeholders. {board}: board name, {place}: place, {type}: period.
placeholders:
name: "%ajlb_lb_{board}_{place}_{type}_name%" # player name at the place
prefix: "%ajlb_lb_{board}_{place}_{type}_prefix%" # player prefix
value: "%ajlb_lb_{board}_{place}_{type}_value%" # value
position: "%ajlb_position_{board}_{type}%" # the viewing player's place
personal-value: "%ajlb_value_{board}_{type}%" # the viewing player's value
empty-name: "---" # what the source returns for an empty place
# Width of non-standard characters, in pixels. Keeps columns aligned.
char-widths:
"☠": 9
"⛃": 9
"⌚": 9
config-version: 1 # internal field, leave it as is
</details>
<details>
<summary>tops/<style>.yml</summary>
Each file in the `tops` folder is a separate board style. You pass the file name to `/rvb create <id> <style>`.
```yaml
# Leaderboards on this board. Each one gets its own button.
tops:
balance: # leaderboard ID, any name
board: vault_eco_balance # ajLeaderboards board
label: "Balance" # button text
title: "<gradient:#f59e5b:#f5c05b>Top by coins" # board title
button-color: "#B3402709" # selected button color, #AARRGGBB
formats: # texts for this leaderboard, override the shared formats section
header-value: "<#a6a6a6>Balance"
row-place: "<#f9ce5c>{place}"
row-value: "<#ebb857>{value} <#f5a05b>⛃"
empty-place: "<#f9ce5c>{place}"
empty-value: "<#ebb857>--- <#f5a05b>⛃"
# A leaderboard from another plugin: add a placeholders section with its placeholders.
sellers:
board: cakeauction_sellers
label: "Sellers"
title: "<gradient:#3fd97a:#a5f08c>Top sellers"
button-color: "#B30C3618"
placeholders:
name: "%cakeauction_top_raw_name_{place}%"
prefix: "%cakeauction_top_prefix_{place}%"
value: "%cakeauction_top_value_{place}%"
position: "" # empty string: the source has no such placeholder
personal-value: ""
# Periods on the tabs: alltime, yearly, monthly, weekly, daily, hourly.
periods:
- alltime
period-names: # period names on the board
alltime: "All time"
yearly: "Year"
monthly: "Month"
weekly: "Week"
daily: "Day"
hourly: "Hour"
# Board texts, MiniMessage format.
formats:
subtitle: "<#8c8c8c>{period}" # subtitle. {period}: period name
header-place: "<#a6a6a6>#" # place column header
header-name: "<#a6a6a6>Player" # name column header
header-value: "<#a6a6a6>Value" # value column header
row-place: "<white>{place}" # place in a line
row-name: "{prefix}<#f0f0f0>{name}" # name in a line. {prefix}: player prefix
row-value: "<white>{value}" # value in a line
empty-place: "<white>{place}" # place in an empty line
empty-name: "<#f0f0f0>---" # name in an empty line
empty-value: "<white>---" # value in an empty line
personal-place: "<white>{position}" # the viewing player's place
personal-place-unranked: "<white>-" # place of a player outside the leaderboard
personal-name: "<#f0f0f0>{name}" # name in the personal line
personal-value: "<white>{value}" # value in the personal line
button: "<white>{label}" # leaderboard button
button-selected: "<white>{label}" # selected button
arrow-left: "<white>◀" # button scroll arrow, left
arrow-right: "<white>▶" # button scroll arrow, right
tab: "<gray>{period}" # period tab
tab-selected: "<white>{period}" # selected tab
table:
width: 5.5 # board width, in blocks
rows: 15 # places visible at once
text-scale: 1.0 # line text size
title-scale: 1.0 # title size
personal-row: false # true: show the viewing player's line
shadow: true # text shadow
full-bright: true # true: text stays bright at night and in shade
buttons: # leaderboard buttons
enabled: true
visible: 3 # buttons visible at once
arrows: true # arrows when there are more leaderboards than visible
height: 0.3 # button height, in blocks
text-scale: 1.0 # button text size
arrow-width: 0.2 # arrow width, in blocks
tabs: # period tabs
enabled: false
height: 0.24 # tab height, in blocks
text-scale: 0.8 # tab text size
# Columns. from and to: left and right edge in blocks from the board center.
# align: LEFT, CENTER, RIGHT.
columns:
place:
from: -2.75
to: -2.21
align: RIGHT
name:
from: -2.16
to: 1.51
align: CENTER
value:
from: 1.62
to: 2.75
align: RIGHT
# Background colors, #AARRGGBB. The first two digits set opacity.
colors:
title: "#70000000"
header: "#80000000"
column: "#5A000000"
personal-row: "#5A000000"
button: "#66000000"
button-selected: "#B3402709"
arrow: "#66000000"
tab: "#40000000"
tab-selected: "#99000000"
# Heights and gaps, in blocks.
spacing:
padding: 0.1 # board margins
title-height: 0.26 # title height
subtitle-height: 0.0 # subtitle height, 0 hides it
header-height: 0.31 # table header height
gap: 0.03 # gap between lines
cell-padding: 0.05 # text offset from the column edge
buttons-margin: 0.24 # gap between the table and the buttons
buttons-gap: 0.13 # gap between buttons
depth-step: 0.01 # step between background and text layers
Credits
The idea was partly inspired by ModernLeaderboards. Thanks to its author.
Сервер для плагина rVisualBoards - как у профи
Плагин rVisualBoards создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином rVisualBoards для друзей можно за пару минут - BungeeHost всё уже подготовил.
