I found it out, it's my shield, it has the Projectile code that changed all projectiles to do 0 damage, so just either delete the Item_Shield.cs and its .dts and item icon, or just uncheck it in the Add-Ons window
Here's the code that breaks the projectile damage :(
function ProjectileData::damage(%this,%obj,%col,%fade,%pos,%normal)
{
if(%col.getMountedImage(1) !$= nametoID(shieldfrontimage) || (%col.getClassname() !$= "Player" && %col.getClassname() !$= "AIPlayer")){
Parent::damage(%this,%obj,%col,%fade,%pos,%normal);return;
}
else
{
%damLoc = %col.getDamageLocation(%pos);
if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3 || getword(%pos, 2) < getword(%col.getWorldBoxCenter(),2) - 4.4 || strstr(%damLoc, "left") $= "-1")
{
Parent::damage(%this,%obj,%col,%fade,%pos,%normal);return;
}
else
{
return;
}
}
}
};