Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

When the part is Touched why doesn't it deal any damage?

I have two scripts, one is for the FireServer script and the other is the OnServerEvent script, and so I put the part that will deal damage to an enemy by 50 when touched in the OnServerEvent script. But it doesn't seem to work (I'm using the Touched Event), everything seems fine, the only problem is that it doesn't deal any damage.

Can you guys kindly look at the script below to see if there are any problems?

I'm seeking for help... :C The script below is the OnServerEvent script

--// System
local ReplicatedStorage = game:GetService("ReplicatedStorage")

--// Variables
local Explo = ReplicatedStorage.ExploEvent

--// Settings
local Damage = 50

Explo.OnServerEvent:Connect(function(plr, Mouse)
		
		local char = plr.Character or plr.CharacterAdded:Wait()
		
		
		--[==[ Instances
		
		--//  Explo 1		--]==]
		local Explosion1 = Instance.new("Part")
		Explosion1.BrickColor = BrickColor.new("Bright red")
		Explosion1.Anchored = true
		Explosion1.CanCollide = false
		Explosion1.Shape = Enum.PartType.Ball
		Explosion1.Material = Enum.Material.Neon
		Explosion1.Name = "Explosion1"
		Explosion1.Parent = game.Workspace
		Explosion1.Size = Vector3.new(5,5,5)
		Explosion1.CFrame = char.HumanoidRootPart.CFrame
		
		--//  Explo 2
		local Explosion2 = Instance.new("Part")
		Explosion2.BrickColor = BrickColor.new("Neon orange")
		Explosion2.Transparency = .1
		Explosion2.Anchored = true
		Explosion2.CanCollide = false
		Explosion2.Shape = Enum.PartType.Ball
		Explosion2.Material = Enum.Material.Neon
		Explosion2.Name = "Explosion2"
		Explosion2.Parent = game.Workspace
		Explosion2.Size = Vector3.new(6.5,6.5,6.5)
		Explosion2.CFrame = char.HumanoidRootPart.CFrame
		
		--// EXPLOSION EFFECT  AND  OTHER EFFECTUS -------------------
		local ExplosionEffect = Instance.new("Explosion")
		ExplosionEffect.BlastPressure = 0
		ExplosionEffect.BlastRadius = 8
		ExplosionEffect.DestroyJointRadiusPercent = 0
		ExplosionEffect.Parent = game.Workspace
		ExplosionEffect.Position = char.HumanoidRootPart.Position
		
		local LavaEffect = Instance.new("Part")
		LavaEffect.Anchored = true
		LavaEffect.CanCollide = false
		LavaEffect.BrickColor = BrickColor.new("Maroon")
		LavaEffect.Material = Enum.Material.Neon
		LavaEffect.Size = Vector3.new(5.5,1,5.5)
		LavaEffect.Parent = game.Workspace
		LavaEffect.Name = "LavaEffect"
		LavaEffect.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,-3,0)
		--// PARTICLE FOR LAVA
		local LavaPartice = ReplicatedStorage.LavaParticle:Clone()
		LavaPartice.Parent = LavaEffect
		--------------------------------------------------------------
		
		--//   Debris ------------------------------------------------
		-- Back
		local ExplosionDebris1 = Instance.new("WedgePart")
		ExplosionDebris1.Anchored = true
		ExplosionDebris1.CanCollide = false
		ExplosionDebris1.BrickColor = BrickColor.new("Really red")
		ExplosionDebris1.Material = Enum.Material.Neon
		ExplosionDebris1.Name = "ExplosionDebris1"
		ExplosionDebris1.Parent = game.Workspace
		ExplosionDebris1.Size = Vector3.new(4, 1.78, 3.42)
		ExplosionDebris1.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,-2,4)
		-- Front
		local ExplosionDebris2 = Instance.new("WedgePart")
		ExplosionDebris2.Anchored = true
		ExplosionDebris2.CanCollide = false
		ExplosionDebris2.BrickColor = BrickColor.new("Really red")
		ExplosionDebris2.Material = Enum.Material.Neon
		ExplosionDebris2.Name = "ExplosionDebris2"
		ExplosionDebris2.Parent = game.Workspace
		ExplosionDebris2.Size = Vector3.new(4, 1.78, 3.42)
		ExplosionDebris2.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,-2,-4) * CFrame.Angles(0,math.rad (180),0)
		-- Left
		local ExplosionDebris3 = Instance.new("WedgePart")
		ExplosionDebris3.Anchored = true
		ExplosionDebris3.CanCollide = false
		ExplosionDebris3.BrickColor = BrickColor.new("Really red")
		ExplosionDebris3.Material = Enum.Material.Neon
		ExplosionDebris3.Name = "ExplosionDebris3"
		ExplosionDebris3.Parent = game.Workspace
		ExplosionDebris3.Size = Vector3.new(4, 1.78, 3.42)
		ExplosionDebris3.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(-4,-2,0) * CFrame.Angles(0,math.rad (-90),0)
		-- Right
		local ExplosionDebris4 = Instance.new("WedgePart")
		ExplosionDebris4.Anchored = true
		ExplosionDebris4.CanCollide = false
		ExplosionDebris4.BrickColor = BrickColor.new("Really red")
		ExplosionDebris4.Material = Enum.Material.Neon
		ExplosionDebris4.Name = "ExplosionDebris4"
		ExplosionDebris4.Parent = game.Workspace
		ExplosionDebris4.Size = Vector3.new(4, 1.78, 3.42)
		ExplosionDebris4.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(4,-2,0) * CFrame.Angles(0,math.rad (90),0)

		--// Damage BOXXXXXX
		local DamageBox = Instance.new("Part")
		DamageBox.Transparency = .5
		DamageBox.BrickColor = BrickColor.new("Bright red")
		DamageBox.Anchored = true
		DamageBox.CanCollide = false
		DamageBox.Shape = Enum.PartType.Ball
		DamageBox.Material = Enum.Material.Neon
		DamageBox.Name = "DamageBox"
		DamageBox.Parent = game.Workspace
		DamageBox.Size = Vector3.new(9,9,9)
		DamageBox.CFrame = char.HumanoidRootPart.CFrame
		wait()
				local Debounce = false
				DamageBox.Touched:Connect(function(hit)
					if hit.Parent:FindFirstChild("Humanoid") and hit.Parent.Name ~= plr.Name and Debounce == false then
						Debounce = true
						local Enemy = hit.Parent.Humanoid
						Enemy:TakeDamage(Damage)
						wait()
						DamageBox:Destroy()
						wait(1)
						Debounce = false
						
					end
				end)
		
		for i = 1,40 do
			Explosion1.Transparency = Explosion1.Transparency + .125
			Explosion2.Transparency = Explosion2.Transparency + .125
			Explosion1.Size = Vector3.new(Explosion1.Size.X + 1.5, Explosion1.Size.Y + 1.5, Explosion1.Size.Z + 1.5)
			Explosion2.Size = Vector3.new(Explosion2.Size.X + 1.5, Explosion2.Size.Y + 1.5, Explosion2.Size.Z + 1.5)
			wait()
			if Explosion1.Transparency == 1 then
				Explosion1:Destroy()
				Explosion2:Destroy()
				ExplosionEffect:Destroy()
				
					repeat
					ExplosionDebris1.Transparency = ExplosionDebris1.Transparency + .03125
					ExplosionDebris2.Transparency = ExplosionDebris2.Transparency + .03125
					ExplosionDebris3.Transparency = ExplosionDebris3.Transparency + .03125
					ExplosionDebris4.Transparency = ExplosionDebris4.Transparency + .03125
					LavaEffect.Transparency = LavaEffect.Transparency + .03125
					wait(.1)
					until ExplosionDebris4.Transparency == 1
					
					ExplosionDebris1:Destroy()
					ExplosionDebris2:Destroy()
					ExplosionDebris3:Destroy()
					ExplosionDebris4:Destroy()
					LavaEffect:Destroy()
					LavaPartice:Destroy()
			
		end
	end
	
end)

4 comments

0

Just a tip: It really wasn't necessary to add the whole 120 lines of the explosion animation when it's really just lines 119 to 131 that's relevant to your question. It makes it harder for people to answer your question and debug your code when most of it isn't necessary to the issue.

0

so much code in one script instance x.x

0

What does the output say. Also try to put prints in the code so you can see if it passes.

0

I have now inserted print() in the code but it only stops to the part where the Part is Touched.

1 answer

--// System
local ReplicatedStorage = game:GetService("ReplicatedStorage")

--// Variables
local Explo = ReplicatedStorage.ExploEvent

--// Settings
local Damage = 50

Explo.OnServerEvent:Connect(function(plr, Mouse)

        local char = plr.Character or plr.CharacterAdded:Wait()


        --[==[ Instances

        --//  Explo 1       --]==]
        local Explosion1 = Instance.new("Part")
        Explosion1.BrickColor = BrickColor.new("Bright red")
        Explosion1.Anchored = true
        Explosion1.CanCollide = false
        Explosion1.Shape = Enum.PartType.Ball
        Explosion1.Material = Enum.Material.Neon
        Explosion1.Name = "Explosion1"
        Explosion1.Parent = game.Workspace
        Explosion1.Size = Vector3.new(5,5,5)
        Explosion1.CFrame = char.HumanoidRootPart.CFrame

        --//  Explo 2
        local Explosion2 = Instance.new("Part")
        Explosion2.BrickColor = BrickColor.new("Neon orange")
        Explosion2.Transparency = .1
        Explosion2.Anchored = true
        Explosion2.CanCollide = false
        Explosion2.Shape = Enum.PartType.Ball
        Explosion2.Material = Enum.Material.Neon
        Explosion2.Name = "Explosion2"
        Explosion2.Parent = game.Workspace
        Explosion2.Size = Vector3.new(6.5,6.5,6.5)
        Explosion2.CFrame = char.HumanoidRootPart.CFrame

        --// EXPLOSION EFFECT  AND  OTHER EFFECTUS -------------------
        local ExplosionEffect = Instance.new("Explosion")
        ExplosionEffect.BlastPressure = 0
        ExplosionEffect.BlastRadius = 8
        ExplosionEffect.DestroyJointRadiusPercent = 0
        ExplosionEffect.Parent = game.Workspace
        ExplosionEffect.Position = char.HumanoidRootPart.Position

        local LavaEffect = Instance.new("Part")
        LavaEffect.Anchored = true
        LavaEffect.CanCollide = false
        LavaEffect.BrickColor = BrickColor.new("Maroon")
        LavaEffect.Material = Enum.Material.Neon
        LavaEffect.Size = Vector3.new(5.5,1,5.5)
        LavaEffect.Parent = game.Workspace
        LavaEffect.Name = "LavaEffect"
        LavaEffect.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,-3,0)
        --// PARTICLE FOR LAVA
        local LavaPartice = ReplicatedStorage.LavaParticle:Clone()
        LavaPartice.Parent = LavaEffect
        --------------------------------------------------------------

        --//   Debris ------------------------------------------------
        -- Back
        local ExplosionDebris1 = Instance.new("WedgePart")
        ExplosionDebris1.Anchored = true
        ExplosionDebris1.CanCollide = false
        ExplosionDebris1.BrickColor = BrickColor.new("Really red")
        ExplosionDebris1.Material = Enum.Material.Neon
        ExplosionDebris1.Name = "ExplosionDebris1"
        ExplosionDebris1.Parent = game.Workspace
        ExplosionDebris1.Size = Vector3.new(4, 1.78, 3.42)
        ExplosionDebris1.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,-2,4)
        -- Front
        local ExplosionDebris2 = Instance.new("WedgePart")
        ExplosionDebris2.Anchored = true
        ExplosionDebris2.CanCollide = false
        ExplosionDebris2.BrickColor = BrickColor.new("Really red")
        ExplosionDebris2.Material = Enum.Material.Neon
        ExplosionDebris2.Name = "ExplosionDebris2"
        ExplosionDebris2.Parent = game.Workspace
        ExplosionDebris2.Size = Vector3.new(4, 1.78, 3.42)
        ExplosionDebris2.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,-2,-4) * CFrame.Angles(0,math.rad (180),0)
        -- Left
        local ExplosionDebris3 = Instance.new("WedgePart")
        ExplosionDebris3.Anchored = true
        ExplosionDebris3.CanCollide = false
        ExplosionDebris3.BrickColor = BrickColor.new("Really red")
        ExplosionDebris3.Material = Enum.Material.Neon
        ExplosionDebris3.Name = "ExplosionDebris3"
        ExplosionDebris3.Parent = game.Workspace
        ExplosionDebris3.Size = Vector3.new(4, 1.78, 3.42)
        ExplosionDebris3.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(-4,-2,0) * CFrame.Angles(0,math.rad (-90),0)
        -- Right
        local ExplosionDebris4 = Instance.new("WedgePart")
        ExplosionDebris4.Anchored = true
        ExplosionDebris4.CanCollide = false
        ExplosionDebris4.BrickColor = BrickColor.new("Really red")
        ExplosionDebris4.Material = Enum.Material.Neon
        ExplosionDebris4.Name = "ExplosionDebris4"
        ExplosionDebris4.Parent = game.Workspace
        ExplosionDebris4.Size = Vector3.new(4, 1.78, 3.42)
        ExplosionDebris4.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(4,-2,0) * CFrame.Angles(0,math.rad (90),0)

        --// Damage BOXXXXXX
        local DamageBox = Instance.new("Part")
        DamageBox.Transparency = .5
        DamageBox.BrickColor = BrickColor.new("Bright red")
        DamageBox.Anchored = true
        DamageBox.CanCollide = false
        DamageBox.Shape = Enum.PartType.Ball
        DamageBox.Material = Enum.Material.Neon
        DamageBox.Name = "DamageBox"
        DamageBox.Parent = game.Workspace
        DamageBox.Size = Vector3.new(9,9,9)
        DamageBox.CFrame = char.HumanoidRootPart.CFrame
        wait()
                local Debounce = false
                DamageBox.Touched:Connect(function(hit)
                    if hit.Parent:FindFirstChild("Humanoid") then
if not Debounce then
Debounce = true
                        local Enemy = hit.Parent.Humanoid
                        Enemy.Health = Enemy.Health - Damage
                        wait()
                        DamageBox:Destroy()
                        wait(1)
                        Debounce = false

                    end
end
                end)

        for i = 1,40 do
            Explosion1.Transparency = Explosion1.Transparency + .125
            Explosion2.Transparency = Explosion2.Transparency + .125
            Explosion1.Size = Vector3.new(Explosion1.Size.X + 1.5, Explosion1.Size.Y + 1.5, Explosion1.Size.Z + 1.5)
            Explosion2.Size = Vector3.new(Explosion2.Size.X + 1.5, Explosion2.Size.Y + 1.5, Explosion2.Size.Z + 1.5)
            wait()
            if Explosion1.Transparency == 1 then
                Explosion1:Destroy()
                Explosion2:Destroy()
                ExplosionEffect:Destroy()

                    repeat
                    ExplosionDebris1.Transparency = ExplosionDebris1.Transparency + .03125
                    ExplosionDebris2.Transparency = ExplosionDebris2.Transparency + .03125
                    ExplosionDebris3.Transparency = ExplosionDebris3.Transparency + .03125
                    ExplosionDebris4.Transparency = ExplosionDebris4.Transparency + .03125
                    LavaEffect.Transparency = LavaEffect.Transparency + .03125
                    wait(.1)
                    until ExplosionDebris4.Transparency == 1

                    ExplosionDebris1:Destroy()
                    ExplosionDebris2:Destroy()
                    ExplosionDebris3:Destroy()
                    ExplosionDebris4:Destroy()
                    LavaEffect:Destroy()
                    LavaPartice:Destroy()

        end
    end

end)

i think i fixed that damage part for u, check it out and upvote if it works, u only did a few wrong things but not much

6 comments

0

It now deals damage, but instead of the enemy. It deals damage to the caster instead... o.O

0

Oh it now works! I just inserted another if statement below your 2nd if statement. And no wonder it wasn't working, I was using a dummy with 0 MaxHealth as a damage tester. Thanks so much for the help!!!

0

I still need 25 reputation to upvote. :v

0

accepting the answer works just fine, thanks

0

Unaccepting for no explanation.

0

i changed one tiny thing, there isnt much to explain here

This discussion is preserved as it was. New answers, comments, and votes are closed.