Blocking Issues

If it hits the body instead of the blockpart first, something is probably wrong with your raycast.
I would check what’s going on with the rays but if you don’t feel like so, you can wait with damaging the player and then check if the attack was blocked.

local lastBlock = {}

hitbox.OnHit:Connect(function(hit)
  if hit.Name == 'Body' then
    task.wait(.2)
    if lastBlock[attacker] and tick() - lastBlock[attacker] < .4 then return end

    -- damage handling
  
  elseif hit.Name == 'Blockpart' then
    lastBlock[attacker] = tick()
  end
end

Remember about initializing lastBlock in PlayerAdded and removing player key in PlayerRemoving.

1 Like