A bit more in depth of MMO style name plates.

So I have the name plates and floating text when people heal or take damage. Everything is working correctly except for one problem.


Well the issue is that while it SEEMS like its a simple task, I cant quite decide what is the best way to make it so these floating numbers and name plates only render when you are within a certain distance. I also for the life of me cant quite figure out why I am unable to hide my OWN name plate over my own character.


I have Owner no see checked which should at least prevent me from seeing my own name plate but that isn’t working. Also any attempt to hide or show someones name plate seems to end up being replicated even if its a client side only action. This means one person can stand off on a corner of the map and watch as the other player toggles all of the name plates on and off.

So what is the best way to handle this? Imagine large open outdoor environments.

I know the problem is probably fairly simple, I just cant seem to settle on something I am happy with.

Hey, I have a similar name-plate setup in one of my projects and the check box didn’t do anything for me either, however calling it in a function using http://blueprintue.com/view/xDK1i_Wc/ and calling that function on begin play seems to work perfectly fine for setting it invisible to self, I guess also by using that you could set all other nameplates invisible to just yourself as well.
As for the render distance of nameplates and floating combat text, I guess a large sphere component around the actor?

Yep!

I have a large sphere around my actor and I use this for all kinds of stuff to determine if the name plates should render and floating text ect. I ended up doing something different than what you suggested for making the name plate invisible to myself. Also its important to keep in mind that if you use line tracing for any kind of visibility/distance checks you have to be ready to change those trace checks to find specific component on the actor or you will mess up all of those checks.

What I was doing wrong the entire time was that I didn’t realize I need to pass this function on the player controller then make the visibility changes I need. After that I managed to get everything in working order! Its kind of crude but it seems to be ok now.

Yeah actually instead of a large sphere I think I’d get all actors of class, for each loop get distance to self vs a float, that is probably the most elegant way to do it. To be honest I realised that straight after posting but had to wait for a moderator to approve the post for it to appear :/.

The large sphere is better for situations where there are a lot of people in the area but I only want to focus on just the ones around each player. It possibly reduces net traffic and sanity.