Punch Animation works but no damage

So currently, I am having problems on my air combo. The combo consists of an uppercut, a left and right hook, and a “slam” attack. All of the moves of the combo work perfectly except the right hook which has some bugs I can’t find.

Here’s the right hook’s code:

elseif MainCombo == 2 and ComboAllower == true then --Right Hook
				RightHookAnim:Play()
				Whoosh:Play()
				HookDamage = true
				delay(0.65, UnHookDamager)
				HRP.Anchored = true
				delay(0.85, UnAnchorer)
				MainCombo = 3
--Magnitude (For the hook anims)--
elseif hit.Parent:FindFirstChild("Humanoid")and HookDamage == true then
			local HRP2 = hit.Parent:WaitForChild("HumanoidRootPart")
			RmtEvent:FireServer(hit.Parent)
			HookDamage = false
			ComboAllower = true
			delay(1, ComboChange)
			print("Hook Damage Fired!")
			HRP2.Anchored = true
			delay(0.85, function()
				if HRP2.Anchored == true then
					HRP2.Anchored = false
				end
			end)
			Punch:Play()

Any mistakes I need to fix? let me know! :slightly_smiling_face:
P.S. if anyone’s confused, the Anim’s priority is set to "Action

1 Like

Is there any errors in the output? And I scanned through the code and I found this: delay(1, ComboChange) and I can’t see anything specifying ComboChange. Is this the problem?

Did you use the Function
“TakeDamage(Number)” for the Damage on the Humanoid?

Yes, yes I did. I already checked on the function and it’s working properly

Oh yeah, the function you’re talking about sets ComboAllower’s value to false

May I see the server script? Perhaps we can find the problem there.

--Variables--
local RmtEvent = game.ReplicatedStorage.RmtEvents.Punch
local RmtEvent2 = game.ReplicatedStorage.RmtEvents.Heavy
local RmtEvent3 = game.ReplicatedStorage.RmtEvents.Uppercut
local F1RmtEvent = game.ReplicatedStorage.RmtEvents.Finisher1
local SlamEvent = game.ReplicatedStorage.RmtEvents.Slam
local Debris = game:GetService("Debris")

local Force = 16000

--Damage Values--
local Dmg = game.ReplicatedStorage.DamageValues.Normal.Value
local FinisherDmg = game.ReplicatedStorage.DamageValues.Finisher.Value
local UppercutDmg = game.ReplicatedStorage.DamageValues.Uppercut.Value
local HeavyDmg = game.ReplicatedStorage.DamageValues.Heavy.Value

RmtEvent.OnServerEvent:Connect(function(Player, Character) --The event I'm having problems with
	print("Remote Event #1 fired!")
	local Humanoid = Character:FindFirstChild("Humanoid")
	Humanoid:TakeDamage(Dmg)
	if Humanoid.Health == 0 then
		Player.leaderstats.Points.Value = Player.leaderstats.Points.Value + 1
	end
end)

Can I see how you send the event please?

I send the event by this snippet:

elseif hit.Parent:FindFirstChild("Humanoid")and HookDamage == true then <---
    RmtEvent:FireServer(hit.Parent) --This is how I send my event

I meant the full code, I wanted to see the hit detection but i’m guessing it’s a .Touched event. I had problems too with it, I mean sending the hit from the client to the server. The best thing you can do to fix it right now is send the player name instead (game.Players:GetPlayerFromCharacter(hit.Parent).Name) and then just find its character in the server script.