Improved Model Streaming Breaks Replication of Some Humanoid Properties

Some Humanoid properties fail to replicate from the server to the client when streaming is enabled and ModelStreamingBehavior is set to ‘Improved’. I started getting bug reports sometime in the middle of last week that players names were no longer turned off after respawning. From my testing, Humanoid::HealthDisplayDistance replication breaks after the character is respawned. The property updates on the server but none of the changes are replicated to any clients.

I have attached a minimal repro place.

StreamingEnabledHumanoidReplicationRepro.rbxl (53.6 KB)

1 Like

Thanks for reporting this issue and including a repro place. We are able to reproduce and are investigating.

Are you able to narrow down when this problem started occurring? You believe this is new behavior, correct? That it started in the last week? When was your first report of this problem?

1 Like

The first report of this that I received was on April 11th at 6:27PM EDT. I’ve continuously received reports since then. This is definitely new within the past couple of weeks as hiding your name is frequently used in my game.

I have no way of knowing if it occurred before the 11th since you’d have to be told by another user that your name is showing.

Also I was mistaken in my original post. I meant to say Humanoid::NameDisplayDistance but I believe both are affected. Thanks for looking into it so quickly!

We are still investigating this issue, but I wanted to share that if you change the value of NameDisplayDistance or HealthDisplayDistance AFTER the humanoid is replicated this problem will not occur. This may allow you work around the issue until we identify a fix.

1 Like

Another possible workaround. Change:

		humanoid.HealthDisplayDistance = 0

to something like:

		humanoid.HealthDisplayDistance = 0
		
		local playerService = game:GetService("Players")
		local playerFromCharacter = playerService:GetPlayerFromCharacter(character)
		playerFromCharacter.HealthDisplayDistance = 0

The issue seems to be that when the character is set on the client with ImprovedModelStreaming we are overriding the humanoid’s value of HealthDisplayDistance with the player property for HealthDisplayDistance.

1 Like

Thanks! I’ve changed my legacy code to utilize those properties instead. I had no idea they existed under the Player Instance.