Rewrote the code for the wiki's laser gun tutorial.
local tool = script.Parent local Player = game.Players.LocalPlayer local Char = Player.Character local Mouse = Player:GetMouse() local start = tool.Handle.CFrame.p --where the ray originates local lookAt = Mouse.hit.p - tool.Handle.CFrame.p -- direction the ray is facing tool.Activated:connect(function() local ray = Ray.new(start, (lookAt - start).unit * 300) -- creates the ray local tPart, pos = game.Workspace:FindPartOnRay(ray, Char) -- returns the part that it touched/intersected(tPart) and position of the part(tPart) local Hum = tPart and tPart.Parent and tPart.Parent:FindFirstChild("Humanoid") if Hum then Hum:TakeDamage(30) end local distance = (pos - tool.Handle.CFrame.p).magnitude local rayPart = Instance.new("Part",Char) rayPart.Name = "RayPart" rayPart.Transparency = 0.5 rayPart.Anchored = true rayPart.CanCollide = false rayPart.TopSurface = 0 rayPart.BottomSurface = 0 rayPart.FormFactor = "Custom" rayPart.Size = Vector3.new(0.2,0.2,distance) rayPart.CFrame = CFrame.new(pos, tool.Handle.CFrame.p) * CFrame.new(0,0, -distance/2) game.Debris:AddItem(rayPart,0.1) end)
the actual ray part seems to only be attatched to the floor on my game(not a baseplate). Wherever i move, the ray always points to a specific part on my floor. I'm not sure what's going on as there is no output.
Hierarchy:
Players > LevelKap > Backpack > PaintballGun(tool) >Local Script > Handle > Mesh