I have a script that is supposed to punch whenever the f key is pressed, it works perfectly fine when I test it in studio mode, however, when I test it in the actual game it still does the animation but doesn't do any damage, and i'm not getting any errors in the output, so I don't know what is wrong with it. Please help.
This is the script that detects if the button is pressed and does the animation, it is a local script:
plr = game.Players.LocalPlayer if plr.Character == nil then repeat wait() until plr.Character ~= nil end char = plr.Character debounce = false function onKeyPress(input) if debounce == true then return end if input.KeyCode == Enum.KeyCode.F then debounce = true a = Instance.new("Animation") human = char:FindFirstChildOfClass("Humanoid") hitscript = script.Hit:Clone() hand = char:FindFirstChild("RightHand") arm = char:FindFirstChild("Right Arm") a.AnimationId = "rbxassetid://1056939487" a2 = human:LoadAnimation(a) a2:Play() hitscript.Parent = hand end hitscript.Disabled = false wait(1) hitscript:Destroy() debounce = false end game:GetService("UserInputService").InputBegan:connect(onKeyPress)
This is the script that does the damage, it is a server script that is the child of the local script:
debounce = false script.Parent.Touched:Connect(function(hit) if debounce == true then return end h = hit.Parent:FindFirstChildOfClass("Humanoid") if h then if hit.Parent.Name == script.Parent.Parent.Name then return end debounce = true h:TakeDamage(5) s = Instance.new("Sound", script.Parent) s.SoundId = "rbxassetid://329077052" s.PlayOnRemove = true s:Destroy() wait(1) debounce = false end end)