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


