Raycast trail not working correctly

  1. What do you want to achieve? I want to make a trail of a flare gun using raycasts.

  2. What is the issue? The trails don’t function correctly at all, only spawning at the origin
    image

  3. What solutions have you tried so far? I tried changing the trail value using different distance values.



local mouse = game.Players.LocalPlayer:GetMouse()





script.Parent.Parent.Activated:Connect(function()

	local trail = Instance.new("Part")
	trail.Anchored = true
	trail.CanCollide = false



	local camera = workspace.CurrentCamera



	local raycastParams = RaycastParams.new()
	raycastParams.FilterDescendantsInstances = {trail}
	raycastParams.FilterType = Enum.RaycastFilterType.Blacklist

	local mousePos = mouse.Hit

	local mouseRay = camera:ViewportPointToRay(mousePos.X, mousePos.Y)
	

	local direction = mouseRay.Direction
	print(direction)

	local result = workspace:Raycast(script.Parent.Position, direction, raycastParams)


	if result then 
		local distance = (script.Parent.Position - result.Position).Magnitude
		trail.CFrame = CFrame.lookAt(script.Parent.Position, script.Parent.Position + direction) * CFrame.new(0, 0, -distance / 2)
		trail.Size = Vector3.new(distance, 0.5, 0.5)
		trail.Parent = workspace
	else
		local distance = (script.Parent.Position - script.Parent.Position + direction).Magnitude
		trail.CFrame = CFrame.lookAt(script.Parent.Position, script.Parent.Position + direction) * CFrame.new(0, 0, -distance / 2)
		trail.Size = Vector3.new(distance, 0.5, 0.5)
		trail.Parent = workspace
	end



end)