The mods have 3 properties, armor damage reduction ignored, penetration through objects and damage reduction after penetrating objects.

Armor reduction means that for every projectile fired at an armored opponent has a flat value subtracted from its damage. The value depends on the difficulty, it is 50 damage on gold. Armor damage reduction ignored reduces this value, it stacks but maxes out at 100% in which case no damage is subtracted.

Penetration means the distance a projectile can go through objects and walls to hit targets on the other side. Weapons, weapon mods and ammo can have this property and they stack indefinitely.

Damage reduction after penetrating objects means that when a projectile manages to fully penetrate an object or wall and come out on the other side it will hit with reduced damage. This does not stack and the lowest reduction % is valid here. Please note that weapons with innate piercing have no damage reduction, they will always hit for full damage.