When I kill a player I do the following
I set the health to zero
I do humanoid:TakeDamage(9999)
I even change the humanoid state to dying as a final check
Despite doing all that I still get this issue when a player dies ONLY sometimes. https://gyazo.com/ba1e7c9bf95be6ea1b0d91d530f8cb40
Sometimes people have to wait for a few seconds other times (rarely) they can be stuck forever. More often than not theres no issues with dying but its frustrating that this happens a lot. What is causing this and how can it be fixed?
Well, if a player is stuck for a long amount of time, you could just have it where:
Humanoid.Changed:Connect(function()
-- To get through the .Died Event
if Humanoid:GetState() == 15 or Humanoid.Health == 0 then
wait(5) -- The Default is usually 3 seconds
if Humanoid:GetState() ~= 15 then return end -- am i still dead?
Player:LoadCharacter() -- Reloads the character, so that its not stuck
end
end)
This is probably how I would do it, even if the event wasn’t delayed.
Also changing the HumanoidState to 15, or doing :TakeDamage(9999) will do the same thing, which will just set Humanoid.Health = 0
This solution didnt work unfortunately. Same thing happens. I even tied statechanged and died events and all of them failed. One thing I DID notice however was whenever dying would bug the humanoid state on the client would be dead while on the server it’d be running (and im killing the humanoid on the server)
Maybe the best way is to constantly check for <= 0 health in a loop? I cant think of a better way if all forms of detection are just failing for no reason.