Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Best way to check if Explosion.Hit did not hit a actual player character?

I was wondering what is the best way to determine if a explosion hit a character so I can differenciate if it hit a part or a person.

but I came up with using FindFirstAncestor(Player.Name) to check if it was a model or not

is there any other better way to see if it actually hit a character model

Because there's a chance that a players name could mess things up like for example if someones name was weld the script would stop there

if there was a part under weld as a child.

See what im sayin?

Rn the best way I found was to

Check if

:FindFirstAncestor is a Player.Name

Check if FindFirstAncestor is a model

check if FindFirstAncestor has a humanoid

anything else I should check for or any other better solutions?

1 answer

This works:

local Players = game:GetService("Players")

explosion.Hit:Connect(function(hit, distance)
   if Players:GetPlayerFromCharacter(hit.Parent) then
      print("Hit character")
   end
end)

So, for this one, I'll use :GetPlayerFromCharacter() and hit.Parent is the character but if not, then it'll return nil and do nothing. This works because if it returns something that means it becomes true even though the function didn't return a bool.

This discussion is preserved as it was. New answers, comments, and votes are closed.