So, I have this script which is supposed to make a beam, and if you touch it you die But for some reason it doesn't create the beam right, I've asked this multiple times but the script still isn't fixed nor does it give errors
Script:
local gun = workspace.Turret.Gun
local originpoint = gun.CFrame.p
script.Parent.Radar.radar.Touched:connect(function(plr)
if plr.Parent:IsA("Model") and plr.Parent:FindFirstChild("Humanoid") and game.Players.LocalPlayer.Character:FindFirstChild("Head") then
script.Parent.Gun.alert:Play()
local ignore = {script.Parent,game.Players[plr.Parent.Name]}
local ray = Ray.new(originpoint,plr.Parent.Head.CFrame.p.Unit*100)
local gun,position = workspace:FindPartOnRayWithIgnoreList(ray,ignore,false,true)
local beam = Instance.new ("Part")
beam.BrickColor = BrickColor.Red()
beam.Material = "Neon"
beam.Transparency = 0.5
beam.Anchored = true
beam.Locked = true
beam.CanCollide = false
beam.Parent = gun
beam.Name = "Beam"
local Distance = (script.Parent.Gun.CFrame.p-position).magnitude
local distance = Distance/8
repeat
beam.Size = Vector3.new(.15,.15,distance)
beam.CFrame = CFrame.new(script.Parent.Gun.CFrame.p,position)*CFrame.new(0,0,-distance/2)
distance = distance*2
wait (0.01)
until distance == Distance*2
print ("kimpie paarntie")
beam.Touched:connect(function(hit) -- this is where the script stops, whats wrong?
if hit.Parent:IsA("Model") and hit.Parent:FindFirstChild("Humanoid") then
local human = hit.Parent:FindFirstChild("Humanoid")
human:TakeDamage(10^308)
game:GetService("Debris"):AddItem(beam,.1)
end
end)
end
end)
Can someone PLEASE help, this script is very important, and noone knows the answer, thank you for your time.

2 comments
http://robloxdev.com/articles/Writing-Clean-Code
try identifying the beam from the workspace, not the instance.new statement