Well, all to say is my welds don’t work. Maybe there’s a better way that I don’t know please tell me.
CODE:
local deb = game:GetService("Debris")
local shot = game:GetService("ReplicatedStorage").shot
local rs = game:GetService("ReplicatedStorage")
local range = 200
local headDam = 100
local dam = 10
local function laser(dir, originPos, hit, origin)
local mid = originPos + dir / 2
local distance = (hit.Position - originPos).Magnitude
local weld = Instance.new("WeldConstraint")
local laser = Instance.new("Part")
laser.Name = "laser"
laser.BrickColor = BrickColor.new("Really red")
laser.Material = Enum.Material.Neon
laser.CanCollide = true
laser.Anchored = true
laser.Parent = workspace.Lasers
laser.Size = Vector3.new(0.3, 0.3, distance)
laser.CFrame = CFrame.new(originPos, hit.Position) * CFrame.new(0, 0, -distance / 2)
weld.Part0 = laser
weld.Part1 = origin
deb:AddItem(laser, 0.2)
deb:AddItem(weld, 0.2)
end
shot.OnServerEvent:Connect(function(player, hit, origin)
local originPos = origin.Position
local hitPos = hit.Position
local dir = (hitPos - originPos).Unit * range
local res = workspace:Raycast(originPos, dir)
if res then
local char = res.Instance.Parent
local hum = char:FindFirstChild("Humanoid")
if hum and hum ~= player.Character.Humanoid then
if res.Instance.Name == "Head" then
hum:TakeDamage(headDam)
else
hum:TakeDamage(dam)
end
end
laser(dir, originPos, hit, origin)
end
end)