Leaderboard with Billboard

hi does anyone know how to track player name and track player time and update it on a billboard? i want to make a leaderboard with ( PlayerName : Time ), i saw many uefn parkour games made a leaderboard that can do it, But i cant find any tutorial on this, not sure is it too easy that dont need a tutorial? xD, im a newbie on verse so i tried abit, here is my code and im


stuck here.

1 Like

Just a “me too” I have seen some very poorly made islands that have statues and name labels for the leading player, so it cannot be rocket science even if it is undocumented.

Edit:

BTW, have you looked at the scoreboard device? I have not used that yet.

The only ways that I can display player names are through the ‘HUD Message Device’ and I just found out about the 'Player Reference Device. ’

Example of both:

…the HUD message device lets you insert the player name via “Message”, where I entered: ‘I said “{playername}”!’

statues and name plates are the “player reference device”. It’s not possible to get the player name and put it on a billboard yet. They’re not giving that ability (yet?)

Thanks, have you looked at the functions for that device? It sounds like there’s probably nothing useful there.

Edit: never mind, I looked at player_reference_device := class(creative_device_base) and nothing useful is available. You can get and set agents and an int score value, but that’s about it.

And for you young folks, Epic made this capability (getting players’ names) available day 1 on Unreal Engine 1 using UnrealScript twenty years ago.

It’s irrelevant that Epic has allowed private games to see usernames. This is in the Fortnite environment. Imagine a “bad actor” coming in and grabbing all those usernames and saving them somewhere, this is a game that a LOT of kids play. It is HIGHLY unlikely there will ever be the ability to read the user’s names, and we should be advocating for them to make more types of leaderboards, or make ones that are customizable better rather than the only one they provide.

Unreal Tournament was exactly as public as Fortnite, no more no less. And many children played UT. Fortnite publishes in-game names of children on the internet where there are much more easily scraped.

Now none of these are really ‘names’ they are in-game avatar tags that according to Epic cannot be selected by a minor without parental approval, so I don’t have a problem at all with Epic posting leaderboards online like just about every public game.

I don’t fault Epic/Fortnite for not having the capability yet to get in-game tags, since UEFN is still very new and quickly evolving, but I see it as something on a very obvious list of upgrades.

I don’t think you’re understanding the situation and I don’t expect I’m the person to explain it to you well enough to see the problem. I’ve got no dog in this fight and don’t care either way. That said, good luck with your request to them to do it. We’ll see what happens.

1 Like

I’m not going to dwell on it either, since legality and logic has almost zero impact on what they will or will not do.

1 Like

Totally different issue. You gotta let that IP stuff go man… Happy developing friend :slight_smile:

1 Like

You too. Happy developing!

You actually can do this now - you can create a message with a player name like this:

PlayerName<localizes>(Agent:agent):message = "{Agent}"

And then show it on a billboard with SetText

8 Likes

I regret only that I have but one :heart: to give you for your discovery. Where did you find this out?

I noticed that MakeLocalizableValue was added with an agent overload in the digest, which is used internally in functions like the one I shared above

1 Like

So I tried to go further and combined it with a string like:

PlayerGreeting<localizes>(Agent:agent, InString : string):message = "{Agent}{InString}"

And put in on my HUD…

var Message: text_block = text_block{DefaultTextColor:= color{R:=0.053, G:=0.121, B:=0.053}}  
Message.SetText(PlayerGreeting(thisPlayer, ", go win this!"))  
#  inserted Message  text_block  widget into custom canvas

And it worked (see the HUD at the top of the screen)…

I swear I tried to print actor names like this before and it did not work. I thought I got an error like “could not cast Agent to string.” Either I was too inexperienced with Verse, or they added it since then.

But now it looks like it is automatically casting the Agent name to a string (when making messages). Later I will try it on Guards.

3 Likes

It is new but it works because message is not string - meaning you can’t then check if (Name = "LoPing") - it’s strictly for billboards and UI only

3 Likes

It also looks like they unleashed more of UE5’s localization options, for example you can now say:

PlayerResults<localizes>(Agent:agent, Place:int):message = 
   "{Agent}, You came {Place}{Place}|ordinal(one=st,two=nd,few=rd,other=th)!"

#[...]

var Message: text_block = text_block{DefaultTextColor:= color{R:=0.05, G:=0.12, B:=0.05}}                         
 Message.SetText(PlayerResults(thisPlayer, 2))  

and get:
ue5typelocalization

4 Likes

wow… that is information that has not been released anywhere. I’m surprised, but also understand how they got around the security issue of it. So this way you can never save it anywhere, just show it. This changes a lot… Thanks for replying on this thread, I’m glad I was wrong about if they’d ever do this!

3 Likes

Wow!

1 Like

Hey folks! Sorry for the confusion this has caused. The ability to use text argument modifiers from verse is going to be removed in 27.00 and replaced with a pure verse version in the future. Apologies again for the confusion on this one.

Does this mean we can’t get player’s names using Verse in 27.0?
And is it okay to make in-game leaderboards (say a 3d leaderboard on a wall)?

2 Likes