What's the difference between the two functions: FindFirstChild and FindFirstChildWhichIsA?
local child = script.Parent:FindFirstChild("Humanoid")
local child = script.Parent:FindFirstChildWhichIsA("Humanoid")
The difference is that FindFirstChild() looks for an Instance with the given name while FindFirstChildWhichIsA() finds the Instance of a Class regardless of its name. Both methods can be used to find descendants and not just children like so:
local child1 = script.Parent:FindFirstChild("Humanoid", true) local child2 = script.Parent:FindFirstChildWhichIsA("Humanoid", true)
What do we have here? The second parameter, a boolean, can be used to tell the method(s) to either find a child (false) or a descendant (true). Depending on what you are finding, finding a descendant is recommended.