local gun = {}
function gun:Shoot(boolean,instance)
local Tracer = script.Tracer:Clone()
Tracer.Parent = workspace.Terrain
Tracer.CFrame = instance.CFrame
Tracer.Velocity = Tracer.CFrame.lookVector.unit * (2000 + instance.Velocity.Magnitude) + Vector3.new(math.random(-4,4), math.random(-4,4), math.random(-4,4))
spawn(function()
Tracer.Touched:Connect(function(part)
if part.Name ~= "Tracer" then
local Explo = Instance.new("Explosion")
Explo.Parent = Tracer
Explo.ExplosionType = Enum.ExplosionType.NoCraters
Explo.Position = Tracer.Position
Explo.BlastRadius = 50
Explo.BlastPressure = 1000
Explo.Visible = false
Tracer.Anchored = true
Tracer.Impact:Play()
for i,v in pairs(Tracer:GetChildren()) do
if v:IsA("ParticleEmitter") then
v.Enabled = true
end
end
wait(.3)
Tracer.Impact.Playing = false
for i,v in pairs(Tracer:GetChildren()) do
if v:IsA("ParticleEmitter") then
v.Enabled = false
end
end
local DamageTime = 1 -- amount of time until next check
local DamageAmount = 10 -- how much damage per check
local Part = Explo -- the part
local function GivePlayersInArea()
local region = Region3.new(Part.CFrame.p-Part.Size/2,Part.CFrame.p+Part.Size/2)
local parts = workspace:FindPartsInRegion3(region,nil,math.huge) -- gives all the part in the region3 i picked math.huge so that means we can have no limit on how many parts can be in the region
local tab = {}
for i,v in pairs(parts) do
if v.Parent then
if game.Players:GetPlayerFromCharacter(v.Parent) and not table.find(tab,v.Parent) then
table.insert(tab,v.Parent) -- puts the players character inside the table
end
end
end
return tab
end
while wait(DamageTime) do
for i ,v in pairs(GivePlayersInArea()) do
v.Humanoid:TakeDamage(DamageAmount) -- takes damage
end
end
wait(3)
Tracer:Destroy()
end
end)
wait(10)
Tracer:Destroy()
end)
end
return gun
When the Particle Emitter called Explo(I set it as a variable if you can see)
it should deal damage, but it does not seem to be dealing damage.