there are no error code, it just doesn't seem to work
local attackCooldown = 1
local attackWindup = 0.5
local attackRange = 3
local attackDamage = 20
local char = script.Parent.Parent
local hum = char:WaitForChild("Humanoid")
local originalWalkSpeed = hum.WalkSpeed
local canAttack = true
script.Parent.AttackRemote.Event:Connect(function(plrRoot)
if not canAttack then return end
canAttack = false
hum.WalkSpeed = 0.1
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://7215836748"
local playAnim = hum:LoadAnimation(anim)
playAnim:Play()
wait(attackWindup)
local newDistance = (char.HumanoidRootPart.Position - -plrRoot.Position).magnitude
if newDistance <= attackRange + 5 then
if plrRoot.parent.Player.isBlocking.Value == true then
attackDamage *= 0.5
end
plrRoot.Parent.Humanoid:takeDamage(attackDamage)
wait(attackCooldown)
hum.WalkSpeed = originalWalkSpeed
canAttack = true
end
end)

2 comments
fixed codeblock
did you use print statements?