[FilteringEnabled] Humanoid:ChangeState() replication issue

I’m not sure if this is intentional or not, if you call :ChangeState() on a Humanoid that the server controls it will function properly, however if you call :ChangeState() on a humanoid that a player controls, the changes are not replicated to the client. However if you call :ChangeState() on a humanoid that a player controls in a non-FilteringEnabled game, the method acts as it is supposed to.

This makes sense because each client should control their own character, including its parts and Humanoid, so not really a bug?

The behavior of the server changing the state of a client-owned character being different between FE/non-FE is a bug though. FE blocks client>server communication, so there shouldn’t be any difference when it’s server>client.

1 Like

In my viewpoint the premise of FilteringEnabled is literally that the clients control their character and UI, and the server controls everything else by default, rather than everyone controlling everything in non-FE.

It doesn’t really help either that all the pages on FilteringEnabled on the wiki seem to not have been updated in a while.

This happens FE or not. FE stops certain client>server traffic – that’s all.

FE’s expected behavior isn’t a matter of opinion. It is what is written on the tutorial page in the wiki. The server should be able to do anything it can do in non-FE unless an exception is explicitly stated somewhere.

1 Like

Either way – if I test this myself I can’t get the Humanoid’s state to change for either FE enabled or disabled.

This code isn’t doing anything on either FE or non-FE:

game.Players.PlayerAdded:connect(
	function(plr)
		wait(10)
		while wait() do
			plr.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Seated)
		end
	end
)

Can OP include a repro file that shows difference in behavior between FE/non-FE?

EDIT: It seems expected behavior that you have to use it locally if I have to believe the header of this page as well:
http://wiki.roblox.com/index.php?title=API:Enum/HumanoidStateType

"When altering the Humanoid of a player, this should be done from a localscript ran by that player."

2 Likes

Shouldn’t this also be on the ChangeState() page as well?

Yes, it should be.

1 Like