local player = game:GetService("Players").LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local cloudsFolder = workspace:WaitForChild("clouds")

local head = character:WaitForChild("Head")
local leftFoot = character:WaitForChild("LeftFoot")
local rightFoot = character:WaitForChild("RightFoot")
local newRay = workspace:Raycast(head.Position, Vector3.new(0, 10, 0))
local newRay2 = workspace:Raycast(rightFoot.Position, Vector3.new(0, -10, 0))
local newRay3 = workspace:Raycast(leftFoot.Position, Vector3.new(0, -10, 0))

humanoid.StateChanged:connect(function()
	local hit, position = workspace:FindPartOnRayWithWhitelist(newRay, cloudsFolder:GetChildren())
	local hit2, postion2 = workspace:FindPartOnRayWithWhitelist(newRay2, cloudsFolder:GetChildren())
	local hit3, position3 = workspace:FindPartOnRayWithWhitelist(newRay3, cloudsFolder:GetChildren())
	
	if hit then
		hit.CanCollide = false
	end
	
	if hit2 then
		hit2.CanCollide = true
	end
	
	if hit3 then
		hit3.CanCollide = true
	end
end)

At line 15 which is local hit, position = workspace:FindPartOnRayWithWhitelist(newRay, cloudsFolder:GetChildren())

cloudsFolder is a folder with no subfolders containing cloud mesh parts "Unable to cast Raycast Result to Ray"

2 comments

0

You cant whitelist the Children of a parent if its not in a table. try doing {cloudsFolder:GetChildren()} with brackets!

0

I tried, didnt work same error. I found another way to do this with updated versions (raycastparams and such) but I have no idea why this old version still doesn't work?