function Headshot(ply, hitgroup, dmginfo)
if ply:Health() > dmginfo:GetDamage() then
if hitgroup == HITGROUP_HEAD then
ply:EmitSound(table.Random({pathtosound.wav, pathtosound.wav, pathtosound.wav}), 100, 100)
end
end
end
hook.Add("ScalePlayerDamage", "HeadshotStuff", Headshot)
pathtosound is the sound relative to the 'sound' directory.
Might not work. I don't know if checking the player's health on scaleplayerdamage will return their health before or after the damage is added.