Renaming Character Humanoid or not having a Humanoid will cause an Infinite YIeld for Script Context ServerCoreScript EmoteSkinningDisable

Recent change by Roblox that causes this issue (July 7, 2026, for ref can currently be seen at Roblox-Client-Tracker/scripts/CoreScripts/ServerCoreScripts/EmoteSkinningDisable.lua at roblox · MaximumADHD/Roblox-Client-Tracker · GitHub).

If the humanoid of the character is renamed to anything that is not “Humanoid” or if the character does not have a Humanoid then ServerCoreScript EmoteSkinningDisable will cause an infinite yield and not finish what its supposed to do.


Script Context.ServerCoreScripts/EmoteSkinningDisable, line 110, function OnCharacterAdded

Reproduction place:

This spams that log for my other games, like for reference Sniper Tag | Play on Roblox that renames the character humanoid and services to break several exploit scripts but it seems now that Roblox´s code has issues with such method

Expected behavior

Renaming humanoid should not cause an infinite yield issue, instead of using something like

Character:WaitForChild("Humanoid")

it could instead use something like this, references:

WaitForChild without timeout

local Humanoid = Character:FindFirstChildOfClass("Humanoid")
while not Humanoid do
	Humanoid = Character:FindFirstChildOfClass("Humanoid")
	task.wait()
end

For timeout, like Character:WaitForChild(“Humanoid”,5)

local Humanoid = Character:FindFirstChildOfClass("Humanoid")
do
	--// Max time to search for
	local MaxTimeSearch = 5
	
	--// Track total time searching for it
	local SecondsSpent = 0
	
	--// Search
	while not Humanoid do
		Humanoid = Character:FindFirstChildOfClass("Humanoid")
		SecondsSpent += 0.1
		if SecondsSpent >= 5 then
			break
		end
		task.wait(0.1)
	end
end

Could aswell just use FindFirstChildOfClass aka

local Humanoid = Character:FindFirstChildOfClass("Humanoid")

so it does not yield (do not just use FindFirstChild for fetching Humanoid Roblox Engineers).

I expect the script to work correctly.

For Roblox Staff: you may also see Renaming Character Humanoid or not having a Humanoid will cause an Infinite YIeld for Script Context ServerCoreScript EmoteSkinningDisable - #2 by Guruu_G

11 Likes

I dont even use humanoids, since im using cutom rigs however I get this error and it yields my services everytime. Hope this gets fixed quick. I also have user emotes disabled and character auto load disabled

6 Likes

Same for me, I don’t use humanoid in my game, and everytime a new character is loaded, this error happens

2 Likes

Same issue for me. The console is now spammed with this warning. I use a custom character without Humanoid in one of my places.

2 Likes

I’m having this problem too in my game. It doesn’t affect gameplay, but I load characters a lot in my game. Since my character doesn’t use humanoid, it just fills the console every time the character is loaded.

1 Like

Please fix this Roblox or add some kind of option to disable, its extremely obnoxious to have it flood the server log.

1 Like

Seems like the fix regarding this is being worked on, which is nice


Though they have not set FFlagEmoteSkinningDisableUseClassLookup to true, i wonder why they use a FFlag for toggling the fix but good to see its being worked on.

Correction regarding a reference from my topic

I see for the second reference i by accident did not use the var MaxTimeSearch,

So if SecondsSpent >= 5 then would always wait 5 seconds, the fix for that reference is very simple though, simplying replacing the 5 with the var aka if SecondsSpent >= MaxTimeSearch then
Just mentioning since it does not let me edit the topic anymore.