local function z(z,c,I,u)if not I or typeof(I)~="\116\097\098\108\101"then error("\067\097\108\108 \105\110 \067\097\115\116\087\104\105\116\101\108\105\115\116 \102\097\105\108\101\100\033 \087\104\105\116\101\108\105\115\116 \116\097\098\108\101 \105\115 \101\105\116\104\101\114 \110\105\108\044 \111\114 \105\115 \110\111\116 \097\099\116\117\097\108\108\121 \097 \116\097\098\108\101\046",0)end local F=Ray.new(z,c)return Workspace:FindPartOnRayWithWhitelist(F,I,u)end
-- This function casts a ray with a whitelist.
local function CastWithWhitelist(origin, direction, whitelist, ignoreWater)
	if not whitelist or typeof(whitelist) ~= "table" then
		-- This array is faulty.
		error("Call in CastWhitelist failed! Whitelist table is either nil, or is not actually a table.", 0)
	end
	local castRay = Ray.new(origin, direction)
	-- Now here's something bizarre: FindPartOnRay and FindPartOnRayWithIgnoreList have a "terrainCellsAreCubes" boolean before ignoreWater. FindPartOnRayWithWhitelist, on the other hand, does not!
	return Workspace:FindPartOnRayWithWhitelist(castRay, whitelist, ignoreWater)
end
