Live demo

Try the panel

This is the panel players see in your island, rebuilt for the web. Turn the pages and switch variants.

Widget variant

TOP PLAYERSLEADERBOARD
#PLAYERPOINTSBESTWIN RATE
1simnJS48,2501:23.4278%
2NovaRush46,2151:25.3375.7%
3PixelPanda44,1801:27.2473.4%
4Kairo42,0101:29.1571.1%
5LunaByte39,9751:31.0668.8%
6Drift_King37,9401:32.9766.5%
7Mochi35,7701:34.8864.2%
8ZeroGrav33,7351:36.7961.9%
9Talon31,7001:38.7059.6%
10Echo29,5301:40.6157.3%
PAGE
1 / 3
  • Pages per playerEveryone gets their own copy of the panel, nobody flips the page for someone else.
  • Aim and clickFire on PREV / NEXT, or use the interact prompt on mobile and controller.
  • Same size, 1 to 4 statsStat columns share the width; names keep the most room and scroll when too long.

Value formats

12,50012,500.7512.5K1:05.3287.5%

Your rankings, from a spreadsheet

Paste your table in the free board editor, check the panel, copy the Verse file. No account needed.

Open the board editor

Description

A polished leaderboard board that stands in your island. Every player turns its pages on their own copy, by aiming at the buttons: no UI mode, no cursor, gameplay never stops. Four widget variants (1 to 4 stats), podium colours, and your rankings written from a spreadsheet.

Features

  • In-world panel with a refined look: layered card, podium emblem, gold, silver and bronze top three, 3D pill buttons with hover halo and press feedback.
  • Four variants: WBP_Leaderboard_1Stat, _2Stats, _3Stats, _4Stats, all the same size: the stat columns share the width, names take the rest and scroll when they are too long.
  • Per-player pagination: each player gets a personal copy of the panel at the spot you placed it, so nobody flips the page for someone else.
  • Aim and click: fire on a button (optional), or use the native interact prompt, which also works on mobile and controller.
  • Unlimited entries, 10 rows per page (or fewer), automatic ranking on the column you choose, ties share a rank (1, 2, 2, 4).
  • Value formats: integer (12,500), decimal (12,500.75), compact (12.5K, 3.40M), time (1:05.32) and percent (87.5%), with prefix/suffix and four number styles (English, French, German, plain).
  • Colours (accent, card, podium), labels and prompts editable in the Details panel. Goes back to page 1 after a delay.
  • Several boards in one island share one aim pointer per player.

Setup

  1. Close UEFN, copy the LeaderboardPanel folder into your project's Content folder, open the project and build Verse code.
  2. In the Content Browser, open LeaderboardPanel/Widgets and drag the variant you need (as many stats as your board) into the level. Set its scale to 10 and turn it to face the players. Its texts appear when the game starts.
  3. Select it, and in the Details panel add two components: leaderboard_panel_component and leaderboard_demo_board. Launch a session: the demo board is live.
  4. Make your own board: open https://store.simnjs.fr/tools/leaderboard, paste your spreadsheet (or type the rows), pick the formats, then copy the generated Verse file into your project (next to the LeaderboardPanel folder, not inside it, so updates never overwrite it). Build Verse, then replace leaderboard_demo_board with your board component.

You can also write a board by hand: copy leaderboard_demo_board.verse next to the LeaderboardPanel folder, add using { LeaderboardPanel } at the top, rename the class and edit the entries.

Board data

code.verse
1using { /Verse.org/SceneGraph }2using { LeaderboardPanel }3 4top_builders_board<public> := class<final_super>(component, leaderboard_source):5    GetBoard<override>()<transacts>:leaderboard_board = leaderboard_board:6        Title := "TOP BUILDERS"7        Subtitle := "ALL TIME"8        Columns := array:9            leaderboard_column{Title := "BLOCKS", Format := leaderboard_format.Compact}10            leaderboard_column{Title := "BEST TIME", Format := leaderboard_format.Time}11        RankBy := 112        HighestFirst := true13        Entries := array:14            leaderboard_entry{Name := "simnJS", Values := array{125000.0, 83.4}}15            leaderboard_entry{Name := "NovaRush", Values := array{98000.0, 91.2}}
  • RankBy: the column (1 to 4) that ranks the entries; 0 keeps your order. HighestFirst := false for times.
  • MaxEntries: shows only the best N entries (0 = all).
  • An entry without a value for a column shows "-".

Good to know

No dependency: the helper code is included under LeaderboardPanel/LeaderboardPanelLib.

Rankings are written in your Verse code, so they change when you publish an update of your island (Verse has no global leaderboard API).

What you get

  • Refined in-world panel: trophy header, gold/silver/bronze podium, 3D pill buttons
  • 4 widget variants, from 1 to 4 stats
  • Per-player pagination: each player turns their own pages
  • Aim-and-click buttons plus native interact prompt (mobile and controller)
  • Unlimited entries, automatic ranking, shared ranks on ties
  • Integer, decimal, compact, time and percent formats
  • Colours, labels and prompts in the Details panel
  • Free online board editor: paste a spreadsheet, copy the Verse

Code preview

leaderboard_panel.verse
1# Add it to a WBP_Leaderboard_* entity placed in your level, next to a board component (leaderboard_demo_board or yours).2# Every player gets their own copy of the panel at that spot, so each one turns the pages alone.3leaderboard_panel_component<public> := class<final_super>(component):4 5    @editable_number(int){ToolTip := RowsPerPageTip, Categories := array{ContentCategory}, MinValue := option{1}, MaxValue := option{10}}6    RowsPerPage<public>:int = 107 8    @editable{ToolTip := NumberStyleTip, Categories := array{ContentCategory}}9    NumberStyle<public>:leaderboard_number_style = leaderboard_number_style.English10 11    @editable{ToolTip := LabelTip, Categories := array{ContentCategory}}12    PrevText<public>:string = "PREV"13 14    @editable{ToolTip := LabelTip, Categories := array{ContentCategory}}15    NextText<public>:string = "NEXT"16 17    @editable{ToolTip := LabelTip, Categories := array{ContentCategory}}18    PageCaption<public>:string = "PAGE"19 20    @editable{ToolTip := LabelTip, Categories := array{ContentCategory}}21    EmptyText<public>:string = "No entries yet"22 23    @editable{ToolTip := AccentTip, Categories := array{LookCategory}}24    AccentColor<public>:color = color{R := 1.0, G := 0.658, B := 0.0436}25 26    @editable{ToolTip := PanelTip, Categories := array{LookCategory}}27    PanelColor<public>:color = color{R := 0.008, G := 0.007, B := 0.0273}28 29    @editable{ToolTip := PodiumTip, Categories := array{LookCategory}}30    GoldColor<public>:color = color{R := 1.0, G := 0.658, B := 0.0436}31 32    @editable{ToolTip := PodiumTip, Categories := array{LookCategory}}33    SilverColor<public>:color = color{R := 0.693, G := 0.730, B := 0.807}34 35    @editable{ToolTip := PodiumTip, Categories := array{LookCategory}}36    BronzeColor<public>:color = color{R := 0.768, G := 0.325, B := 0.122}37 38    @editable{ToolTip := InteractTip, Categories := array{InteractionCategory}}39    InteractPrompts<public>:logic = true40 41    @editable{ToolTip := PromptTip, Categories := array{InteractionCategory}}42    PrevPrompt<public>:string = "Previous page"43 44    @editable{ToolTip := PromptTip, Categories := array{InteractionCategory}}45    NextPrompt<public>:string = "Next page"46 47    @editable{ToolTip := FireTip, Categories := array{InteractionCategory}}48    ClickWithFire<public>:logic = true49 50    @editable{ToolTip := CursorTip, Categories := array{InteractionCategory}}51    ShowCursor<public>:logic = true52 53    @editable_number(float){ToolTip := ResetTip, Categories := array{InteractionCategory}, MinValue := option{0.0}}54    BackToFirstPageAfter<public>:float = 30.055 56    @editable{ToolTip := DebugTip, Categories := array{InteractionCategory}}57    DebugClicks<public>:logic = false

What’s in the download

  • leaderboard-panel-0.1.1.zip452 KB

Version history

0.1.1 - 2026-10-16

  • Copies, interact proxies and leftovers of a previous run are handled at round start: no more stacked pages after a live update. Hitboxes aligned on the widget (0.0263 cm per unit). Fully opaque panels.

0.1.0 - 2026-10-13

  • First release: 4 widget variants (1 to 4 stats), per-player pagination with page transitions, aim-and-click and interact buttons, 5 value formats, online board editor

Reviews

No reviews yet

Only buyers can review a product: after your purchase, you get a link to rate it.

How reviews work
  • Only verified buyers can leave a review, through the private link of their order. Each review shows its date and the purchase date.
  • Reviews are published right away, without prior moderation, newest first. Nobody is paid or rewarded for a review.
  • A review may be hidden if it isn’t about the product, contains abusive language, personal information or advertising. Its author is told why and can edit it.