Download

Actor Relevancy between specific Actor(s)

Good evening,

Hoping to find a workaround for this issue.

I am working on a party system, which works just fine. However, when the players are extremely far from each other (big map), they stop sending each other the information (hp, etc) because they are outside each other’s net cull distance area, hence turning not relevant.

Is there a way to make two player/actors (and only between those two actors) to share information, no matter the distance?

  • Adding an actor in map (placed), to pass out that kind of information, has the same issue: doesnt work
  • I believe it to playerstate is a no-go, as I dont want all players to have the party information, only keep transfering the info between the party members.

Img example:

So yeah, in the image, when actor1 and actor2 are nearby, it works fine. as soon as actor2 leaves the netcull distance, they wont receive the party info, even the UI of hp/mp/name goes blank because of that, as the reference just doesnt exists anymore.

Thanks in advance.

Set the “Always Relevant” to true. Actor Relevancy and Priority | Unreal Engine Documentation

Playerstate is a better option because that’s where you’re supposed to store the player’s state (health, score, team, etc.). If you only want to access members in a party, then only access members in a party. You can store the player’s party in their playerstate, then access the other members of the party from an array in the gamestate.

Blueprint doesn’t expose custom replication rules but in C++ you can do this:

You could make a derived Actor class with a TeamId Property (don’t replicate this property) and have the Server set this when appropriate. Then override the “IsNetRelevantFor” function and if it returns false check again if the RealViewer belongs to the same TeamId then return true.

Without C++ you would have to make it always relevant which is a bad solution not only for network traffic but also cheating.

Not a good place if you don’t want to share it with everyone though.

Obviously, but the question is about replication.