I got a chance to check some of it out.
WaitForChildOfClass = function(instance, class_name, timeout) -- Wait for a child of class if type(timeout) == "number" then wait(timeout) return instance:FindFirstChildOfClass(class_name) end while not instance:FindFirstChildOfClass(class_name) do instance.ChildAdded:Wait() end return instance:FindFirstChildOfClass(class_name) end
This isn’t the intended functionality of ‘WaitForChild’. If given a Timeout, this will simply stall the entire time duration (ignoring any instances created in the intermission) and then spit-out an already existing Instance that fits the criteria. Check out this post on how you may actually implement this correctly. (Of course, substituting the now deprecated RbxUtility signal for a BindableEvent.)