NetworkOwner of RootPart controls not only Humanoid Physics but also Health

Hello, I was working on a NPC system in which the NPC’s movement is controlled by the client so it’s movement can be smooth and reliable. The problem however is that not only is the NPCs phyics and Humanoid physics controlled by the client (which I find acceptable), but the health is controlled by the client as well. This is a problem as exploiters could use this to kill the humanoid, I have been considering possible workarounds yet all of them would require very intensive modifications to the game design. Are there any plans for this to be changed, and if not would my best course of action be to leave all NPC logic server side?

I would also like to mention that this has been a problem since around 2019, evident by this topic.

UPDATE:
It is not the Humanoid.Health which is replicating, but rather the Humanoid.Died (possibly??). Updating health on the client does not replicate to the server, but rather the Humanoid’s death on the client replicates to the server.

UPDATE 2:
Upon disabling the Humanoid.Died state, the NPC’s death does not replicate to the server.

This is intended behavior and probably wont be changed as it would be a very specific exception to how replication works. The best fix would probably be to keep track of health separately inside of something the player doesn’t own.

This isn’t a viable option as I am using the Humanoid object to keep track of everything from physics to movement to health. To keep track of health separately would require me to program an entirely custom humanoid controller, as the Humanoid is responsible for the movement as well.

This may actually be the solution though unfortunately :frowning:

Update: Disabling the Died state on a Humanoid disables this behavior. I don’t know why but it works.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.