Hello, I made a script that removes health from the stone and finds the damage of your pickaxe. I made a stone respawn, and when stone respawns, the damage goes through two or more times and I don’t know what to do.
ToolScript1 =
local ReplicatedStorage = game:GetService("ReplicatedStorage") local collect = game:GetService("CollectionService") local Players = game:GetService("Players") local Tool = script.Parent local Remotes = ReplicatedStorage:FindFirstChild("Remotes") local player = Players.LocalPlayer local character = player.Character local humanoid = character:FindFirstChild("Humanoid") local PickaxeSwingAnim = Instance.new("Animation") PickaxeSwingAnim.AnimationId = "rbxassetid://11458130668" local animationTrack1 = humanoid:LoadAnimation(PickaxeSwingAnim) local ToolConfig = require(ReplicatedStorage:FindFirstChild("Config"):FindFirstChild("ToolConfig")) local OreConfig = require(ReplicatedStorage:FindFirstChild("Config"):FindFirstChild("OreConfig")) local inventory = player:FindFirstChild("inventory") local pickaxeName2 = Tool.Name print("Found", player.Name, "Pickaxe Equipped Name!") local pickaxe = player.Character:FindFirstChild(pickaxeName2) print (pickaxeName2) local pickaxeDmg = ToolConfig[pickaxeName2].Damage local Ore = player.leaderstats.Ore Tool.Activated:Connect(function(player: Player) if Tool.Enabled == true then local punch = false for tool, toolTable in pairs(ToolConfig) do if tool == pickaxeName2 then local Lezvie = script.Parent.Handle.Lezvie Remotes.ToolActivated:FireServer() animationTrack1:Play() Tool.Enabled = false humanoid.WalkSpeed = 0 wait(0.75) Tool.Enabled = true humanoid.WalkSpeed = 16 Lezvie.Touched:Connect(function(hit) if collect:HasTag(hit, "RockHitbox") then if punch == false then Remotes.OreDamaged:FireServer() end punch = true end end) punch = false end end end end) Remotes.OreDestroyed.OnClientEvent:Connect(function() Remotes.OreDestroyed:FireServer() end) Remotes.OreRespawn.OnClientEvent:Connect(function() Remotes.OreRespawn:FireServer() end)
Rock script:
local Players = game:GetService("Players") local ServerStorage = game:GetService("ServerStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Remotes = ReplicatedStorage:FindFirstChild("Remotes") local ToolConfig = require(ReplicatedStorage:FindFirstChild("Config"):FindFirstChild("ToolConfig")) local OreConfig = require(ReplicatedStorage:FindFirstChild("Config"):FindFirstChild("OreConfig")) local OreName = script.Parent.Name local Ore = script.Parent print(OreName) local miningSound = Instance.new("Sound", Ore) miningSound.SoundId = "rbxassetid://5772362759" miningSound.Name = "MiningSound" local OreDestroyed = false Players.PlayerAdded:Connect(function() if not OreName.Health then local HP = Instance.new("IntValue", script.Parent) HP.Name = "Health" HP.Value = OreConfig[OreName].Health end end) Remotes.OreDamaged.OnServerEvent:Connect(function(player: Player) local OreL = player.leaderstats.Ore local pickaxeName = player.inventory.EquippedTool.Value local pickaxeDamage = ToolConfig[pickaxeName].Damage print(pickaxeDamage) local Tool = player.Character:FindFirstChild(pickaxeName) if OreDestroyed == false then local HP = script.Parent.Health print("02") HP.Value -= pickaxeDamage OreL.Value += pickaxeDamage print("02.1") miningSound:Play() print(HP.Value, "Rock HP.") if HP.Value == 0 then Remotes.OreDestroyed:FireClient(player) end end end) Remotes.OreDestroyed.OnServerEvent:Connect(function(player: Player) OreDestroyed = true Ore.Transparency = 1 Ore.CanCollide = false Ore.CanTouch = false Ore.Hitbox.CanCollide = false Ore.Hitbox.CanTouch = false Remotes.OreRespawn:FireClient(player) end) Remotes.OreRespawn.OnServerEvent:Connect(function(player: player) local RespawnTime = 1 wait(RespawnTime) OreDestroyed = false Ore.Transparency = 0 Ore.CanCollide = true Ore.CanTouch = true Ore.Hitbox.CanCollide = true Ore.Hitbox.CanTouch = true print("01") local Health = script.Parent.Health Health.Value = OreConfig[OreName].Health print("Rock health after RESPAWN:", Health.Value) end)
Output:
22:36:19.255 0 Rock HP. - Server - OreScript:46 22:36:19.871 OsipStar4ik Used Pickaxe - Server - toolManger:13 22:36:20.338 01 - Server - OreScript:77 22:36:20.338 Rock health after RESPAWN: 10 - Server - OreScript:80 22:36:22.687 OsipStar4ik Used Pickaxe - Server - toolManger:13 22:36:22.954 1 - Server - OreScript:37 22:36:22.955 02 - Server - OreScript:41 22:36:22.955 02.1 - Server - OreScript:44 22:36:22.955 9 Rock HP. - Server - OreScript:46 22:36:22.955 1 - Server - OreScript:37 22:36:22.955 02 - Server - OreScript:41 22:36:22.955 02.1 - Server - OreScript:44 22:36:22.955 8 Rock HP. - Server - OreScript:46