-
What do you want to achieve? I want to make a trail of a flare gun using raycasts.
-
What is the issue? The trails don’t function correctly at all, only spawning at the origin

-
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)
