Projectile Damage Attribute

A small API-style mod that adds a generic “projectile damage” attribute so ranged-weapon damage (bows, crossbows, and anything else that fires a projectile) can be modified independently of vanilla’s hardcoded bow math — the same role RangedWeaponAPI plays for weapon creation, but scoped specifically to the damage stat itself.

This server’s config (projectile_damage.json) sets default_bow_damage to 4.0 and default_crossbow_damage to 2.0 as the baseline the attribute scales from, and disables add_default_attributes_for_unspecified_bows/crossbows — meaning only weapons explicitly configured to use this attribute get the custom scaling; anything unlisted falls back to vanilla behavior rather than silently inheriting these defaults. There’s also a status_effect_impact_multiplier_per_stack (0.2) governing how status-effect stacks (e.g. from other RPG mods) scale projectile impact.

This is core plumbing for the Ranger/Archer archetype, working alongside RangedWeaponAPI (whose ranged_weapon:damage attribute is what Gun Scaling actually reads) rather than exposing that exact attribute itself.

Anticipated questions

What does this mod do? It adds a generic “projectile damage” attribute so ranged-weapon damage (bows, crossbows, and anything else that fires a projectile) can be modified independently of vanilla’s hardcoded bow math.

What baseline damage does the server config set? projectile_damage.json sets default_bow_damage to 4.0 and default_crossbow_damage to 2.0 as the baseline the attribute scales from.

Do all bows automatically get this scaling? No — add_default_attributes_for_unspecified_bows/crossbows are disabled, so only weapons explicitly configured to use this attribute get the custom scaling; anything unlisted falls back to vanilla behavior.

What does status_effect_impact_multiplier_per_stack do? Set to 0.2, it governs how status-effect stacks (e.g. from other RPG mods) scale projectile impact.

How does it relate to RangedWeaponAPI? It’s core plumbing for the Ranger/Archer archetype, working alongside RangedWeaponAPI (whose ranged_weapon:damage attribute is what Gun Scaling actually reads) rather than exposing that exact attribute itself. See Archetypes & Builds.