Raycast has a stud limit of 10 and it works until I zoom out
the yellow parts indicate that the ray has exceeded its bounds
local raycastparams = RaycastParams.new()
raycastparams.FilterDescendantsInstances = {player.Character}
local function RenderPreview()
local mouse = UIS:GetMouseLocation()
local mouseray = camera:ViewportPointToRay(mouse.X, mouse.Y)
local raycastresult = workspace:Raycast(mouseray.Origin, mouseray.Direction * 20, raycastparams)
if raycastresult then -- don't use result.Position, it could lead to errors.
local direction = raycastresult.Position:Lerp((head.Position + Vector3.new(0,5,0)),0.5)
part.Position = raycastresult.Position
part3.Position = head.Position + Vector3.new(0,5,0)
part2.Position = direction
part2.CFrame = CFrame.lookAt(part2.Position,raycastresult.Position)
part4.Position = direction
part4.Size = Vector3.new(0.1,0.1,(part.Position - part3.Position).Magnitude)
part4.CFrame = CFrame.lookAt(part4.Position,raycastresult.Position)
else
warn("outside boundaries")
local pseudo_raycastresult = mouseray.Origin + mouseray.Direction * 20
local direction = pseudo_raycastresult:Lerp((head.Position + Vector3.new(0,5,0)),0.5)
part.Position = pseudo_raycastresult
part3.Position = head.Position + Vector3.new(0,5,0)
part2.Position = direction
part2.CFrame = CFrame.lookAt(part2.Position,pseudo_raycastresult)
part4.Position = direction
part4.Size = Vector3.new(0.1,0.1,(part.Position - part3.Position).Magnitude)
part4.CFrame = CFrame.lookAt(part4.Position,pseudo_raycastresult)
local part5 = Instance.new("Part")
part5.Transparency = 0.75
part5.Anchored = true
part5.CanCollide = false
part5.CanQuery = false
part5.Parent = workspace
part5.Size = Vector3.new(0.5,0.5,.5)
part5.Material = Enum.Material.Neon
part5.BrickColor = BrickColor.Yellow()
part5.Name = "part3"
part5.Position = pseudo_raycastresult
end
end