… tier
A stat template can now add a stat per tier of an ingredient type
(tier-bonus: {leather: attack_damage(0.125)}), centred on
tier-bonus-neutral. Craft, refresh and the ingredient-station preview all
use it; templates without it keep their revision.
Default configs follow the 2026-11-11 animal-material pass: sword damage
-0.25/0/+0.25/+0.5 by leather/wool tier, spear and polearm take reach
from leather and wool (0.03-0.10 each), greataxe movement is leather/wool
x1.5, leather/wool/feather damage reduction 2/4/6/8 and toughness
0.25/0.5/0.75/1.0, and entity_interaction_range shows as Reach.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What
A stat template can now add a stat for each tier of an ingredient type:
The bonus is
per-tier x (average tier of that type's materials - neutral), so this sword gets -0.25 / 0 / +0.25 / +0.5 attack damage with common / rare / epic / legendary leather and wool. The sword keeps steady damage and gets no crit, damage reduction or movement speed. The stat must also be in the template'sstatslist (a load warning says so otherwise).CraftStatCalculatoradds the bonus before the template filter. The craft-record refresh path uses the same code. The ingredient-station preview shows a hovered leather or wool item's bonus on the templates that use it.tier-bonusadd it to their revision hash, so no other crafted item refreshes.StatDatarounds to 2 decimals on every merge, so adding -0.125 twice gave 3.26 instead of 3.25. The unit test caught this.Default configs
These follow the 2026-11-11 animal-material pass that ships on Main with this release:
stats.yml: swordtier-bonus; spear and polearm acceptentity_interaction_range; greataxe movement is leather/wool x 1.5 with no fixed part.ingredients.yml: leather, wool and feathers give damage reduction 2 / 4 / 6 / 8 and toughness 0.25 / 0.5 / 0.75 / 1.0. Leather and wool also give reach 0.03 / 0.05 / 0.08 / 0.10.config.yml:entity_interaction_rangeshows as "Reach".The bundled defaults have no lute or shortsword template. Main's live config gets the lute
tier-bonusand the shortsword movement change separately.Testing
mvn verify: 181 tests and 100% coverage. The only failures are the 4 known Windows file-permission tests inEdgeCoverageTestandStationDatabaseCoverageTest, which fail onmaintoo; Linux CI runs them.TierBonusTest: parsing (including invalid entries), the neutral tier, mixed tiers, alloys, ignored materials, the refresh path and the preview.ac give equipmentat filler tiers 1-4, and I read the exact values from the item data:🤖 Generated with Claude Code