Bannerlord mechanics

Smithing mechanics

Bannerlord v1.4.8 · checked 2026-11-10 · updated 2026-11-12

What happens around a design at the smithy, at full precision for game v1.4.8: difficulty, crafted quality, stamina, XP, research, materials and refining, part unlocking and orders. The weapon's stats are in Weapon stats, its value in Value and price.

The rules are TaleWorlds.CampaignSystem.GameComponents.DefaultSmithingModel, CraftingCampaignBehavior and the smith perks in DefaultPerks (see Game code). No official module (SandBox, StoryMode, NavalDLC, BirthAndDeath) replaces DefaultSmithingModel. BirthAndDeath's only DLL, TaleWorlds.CampaignSystem.ViewModelCollection.BirthAndDeath.dll, holds its submodule and campaign options and no game model. The formulas were recovered from v1.4.6 IL and compared against v1.4.8 IL: no compared method differs, but 38 were compared by header only and 22 are not in the v1.4.8 dumps (see Value and price). None of them has been checked against game output (see Validation). The snippet tables and worked examples are computed by the Python model in src/bannerlord/crafting/.

Difficulty

Pieces that need no materials are skipped. A piece's difficulty is tier × 50.

difficulty = round(Σ w × tier × 50 ÷ Σ w), rounded half to even.

Worked example, the one-handed sword (piece tiers Blade 1, Guard 5, Handle 2, Pommel 1): (100 × 1 + 20 × 5 + 60 × 2 + 20 × 1) × 50 ÷ (100 + 20 + 60 + 20) = 85.

Smithing difficulty is the average of each piece's tier times 50, weighted by slot and rounded. Pieces that need no materials are left out.

Slot Weight
Blade 100
Guard 20
Handle 60
Pommel 20
Weapon Difficulty Average piece tier Best quality possible Smithing for an order this hard
One-handed sword 85 2.25 Fine 35
Two-handed sword 145 3.25 Fine 95
Dagger 90 2.5 Fine 40
Throwing knife 85 1.75 Fine 35
One-handed axe 156 3.33 Fine 106
Two-handed axe 139 2.33 Fine 89
Throwing axe 200 4 Masterwork 150
Two-handed polearm 150 3 Fine 100
Pike 200 2.5 Fine 150
Javelin 131 1.75 Fine 81
Mace 222 4.67 Legendary 172
Two-handed mace 167 3.33 Fine 117

An order needs Smithing skill + 50 at least the order's difficulty. This is a solver test result, measured with the formulas outside the game, not read from the game's code.

Crafted quality

x = clamp(Crafting skill − difficulty, −300, 300)

S(x, m) = e^(0.018 × (x − m)) ÷ (1 + e^(0.018 × (x − m)))

ItemQuality Weight
Poor 0.36 · (1 − S(x, −70))
Inferior 0.45 · (1 − S(x, −55))
Common S(x, 25)
Fine 0.36 · S(x, 40)
Masterwork 0.27 · S(x, 70)
Legendary 0.18 · S(x, 115)

The weights are normalized to sum to 1.

Perks then apply in order, each giving a target quality a bonus. The bonus is taken evenly from the non-excluded qualities, with any shortfall carried to the next one, and the list is normalized again:

Perk Target Bonus Excludes from reduction, when owned
Experienced Smith Fine 0.1 Masterwork, Legendary (always)
Master Smith Masterwork 0.075 Legendary (always), Fine (with Experienced Smith)
Legendary Smith Legendary 0.05 + max(skill − 275, 0)/5 · 0.01 Fine, Masterwork (with their perks)

Each perk adjusts the list:

  1. share = bonus ÷ (6 − (excluded + 1)), excluded being the number of excluded qualities.
  2. Walk the qualities from Poor to Legendary with carry = 0. The target gains bonus. Every other quality that is not excluded becomes w − (share + carry); if that is negative, it is set to 0 and the shortfall becomes the next carry, else carry = 0.
  3. Normalize the list to sum to 1 again.

The rolled quality is capped by the average tier of all pieces: below 3.5 it cannot exceed Fine, and below 4.5 it cannot exceed Masterwork. A modifier is then chosen uniformly among the template modifier_group entries of that quality.

Worked example, the one-handed sword (difficulty 85) at skill 185, so x = 100: with no perks the chances are 1.2%, 1.9%, 58.7%, 19.9%, 12.6% and 5.8%. Experienced Smith adds 10% to Fine (29.9%); its share comes from Poor, Inferior and Common, Poor and Inferior drop to 0, and the shortfall falls on Common (51.8%). The average piece tier, 2.25, caps the roll at Fine.

Chance of each quality with no smith perks. The gap is Smithing skill minus the weapon's difficulty; it counts only up to 300 either way. Skill shown for the one-handed sword example, difficulty 85.

Gap Skill Poor Inferior Common Fine Masterwork Legendary
-50 35 22.3% 32.3% 31.0% 8.9% 4.2% 1.3%
-40 45 19.6% 28.8% 35.0% 10.2% 4.8% 1.5%
-30 55 17.0% 25.2% 39.0% 11.5% 5.5% 1.8%
-20 65 14.5% 21.8% 42.8% 12.7% 6.2% 2.0%
-10 75 12.2% 18.5% 46.3% 13.9% 6.9% 2.3%
0 85 10.1% 15.5% 49.4% 14.9% 7.6% 2.6%
10 95 8.3% 12.8% 52.0% 15.9% 8.2% 2.8%
20 105 6.7% 10.5% 54.1% 16.8% 8.8% 3.1%
30 115 5.4% 8.5% 55.7% 17.5% 9.4% 3.4%
40 125 4.4% 6.9% 56.9% 18.1% 10.0% 3.7%
50 135 3.5% 5.6% 57.8% 18.6% 10.5% 4.0%
60 145 2.8% 4.5% 58.3% 19.0% 11.0% 4.4%
70 155 2.3% 3.6% 58.7% 19.3% 11.4% 4.7%
80 165 1.8% 2.9% 58.8% 19.5% 11.9% 5.0%
90 175 1.5% 2.4% 58.8% 19.7% 12.3% 5.4%
100 185 1.2% 1.9% 58.7% 19.9% 12.6% 5.8%
110 195 1.0% 1.6% 58.5% 20.0% 12.9% 6.1%
120 205 0.8% 1.3% 58.3% 20.0% 13.2% 6.5%
130 215 0.6% 1.0% 58.0% 20.1% 13.5% 6.8%
140 225 0.5% 0.8% 57.7% 20.1% 13.7% 7.1%
150 235 0.4% 0.7% 57.5% 20.1% 13.9% 7.5%

With smith perks, for the same example (difficulty 85):

Skill Perks Poor Inferior Common Fine Masterwork Legendary
185 No perks 1.2% 1.9% 58.7% 19.9% 12.6% 5.8%
185 Experienced Smith 0.0% 0.0% 51.8% 29.9% 12.6% 5.8%
185 Experienced Smith and Master Smith 0.0% 0.0% 44.3% 29.9% 20.1% 5.8%
185 All three smith perks 0.0% 0.0% 39.3% 29.9% 20.1% 10.8%
300 No perks 0.1% 0.2% 56.1% 20.0% 14.6% 9.0%
300 Experienced Smith 0.0% 0.0% 46.5% 30.0% 14.6% 9.0%
300 Experienced Smith and Master Smith 0.0% 0.0% 39.0% 30.0% 22.1% 9.0%
300 All three smith perks 0.0% 0.0% 29.0% 30.0% 22.1% 19.0%

Each quality's weight rises or falls with the gap along an S-curve of steepness 0.018, centred on its midpoint. The weights are then scaled to add up to 100%.

Quality Weight Midpoint As the gap grows
Poor 0.36 -70 falls
Inferior 0.45 -55 falls
Common 1 25 rises
Fine 0.36 40 rises
Masterwork 0.27 70 rises
Legendary 0.18 115 rises
Perk Adds to Bonus
Experienced Smith Fine 0.1
Master Smith Masterwork 0.075
Legendary Smith Legendary 0.05, plus 0.01 per 5 skill above 275 (0.002 per skill point)

Each bonus is taken evenly from the qualities the perk does not exclude, with any shortfall carried to the next one, and the chances are scaled to add up to 100% again.

Average piece tier below 3.5: quality stops at Fine. From 3.5 to below 4.5: it stops at Masterwork. From 4.5: any quality.

Line chart of the chance of each quality with no smith perks against Smithing skill minus difficulty, from −50 to +150, chance 0% to 60%. At −50: Poor 22.3%, Inferior 32.3%, Common 31.0%, Fine 8.9%, Masterwork 4.2%, Legendary 1.3%. At 0: Poor 10.1%, Inferior 15.5%, Common 49.4%, Fine 14.9%, Masterwork 7.6%, Legendary 2.6%. At +150: Poor 0.4%, Inferior 0.7%, Common 57.5%, Fine 20.1%, Masterwork 13.9%, Legendary 7.5%.

Stamina, XP, research

Stamina is truncated to int after perks. XP and research use the crafted or material item's value.

Action Stamina Perk factor XP
Smithing 10 + 5·tier Practical Smith ×0.5 free build round(0.02·value); order round(0.1·value)
Smelting 10 Practical Smelter ×0.5 round(0.02·value)
Refining 6 Practical Refiner ×0.5 round(0.3·output value·output count)

research needed for the next part = sqrt(100 ÷ template piece count) × (9 × opened piece count + 10)

smelting research gain = trunc((1 + round(0.02 × value)) × (1 + Curious Smelter 1.0))

smithing research gain = 1 + floor(0.1 × value × factor), with factor = 1 + Curious Smith 1.0 + 0.1 when the method's bool argument is true.

Worked example: a template of 100 pieces with 1 unlocked needs sqrt(100 ÷ 100) × (9 × 1 + 10) = 19 points for the next part.

Research points needed to unlock the next piece, by the number of pieces in the template and the number already unlocked.

Pieces in the template 0 unlocked 1 unlocked 2 unlocked 5 unlocked 10 unlocked 20 unlocked
25 20 38 56 110 200 380
100 10 19 28 55 100 190
400 5 9.5 14 27.5 50 95

Materials

Smithing cost is the sum of each piece's Materials, plus 1 Charcoal.

Smelting returns the same sum with two changes: the highest of Iron6..Iron2 present loses 1 unit and the next lower grade gains 1, and it costs 1 Charcoal.

Refining recipes:

Input Charcoal Output By-product Condition
Wood ×2 Charcoal ×1, ×3 with Charcoal Maker
IronOre ×1 1 Iron1 ×2, ×3 with Iron Maker
Iron1 ×1 1 Iron2 ×1
Iron2 ×2 1 Iron3 ×1 Iron1 ×1
Iron3 ×2 1 Iron4 ×1 Iron1 ×1 Steel Maker
Iron4 ×2 1 Iron5 ×1 Iron1 ×1 Steel Maker 2
Iron5 ×2 1 Iron6 ×1 Iron1 ×1 Steel Maker 3

Part unlocking and orders

Evidence labels:

Rule Evidence
Order passes when the crafted stat sum, with the quality modifier, meets the order sum and damage types match IL
An order has no per-stat minimums; CanHeroCompleteOrder returns true IL
Unlocks are per template across the campaign, not per hero IL
OpenNewPart picks randomly among the lowest-tier unopened, non-hidden pieces of a template IL
IsGivenByDefault pieces are always open IL
SetDesignManually skips missing pieces silently and adds no history key after loading IL
ScaleThePiece does not clamp; the slider is ±10 IL
HaveUnlockedAllSelectedPieces disables crafting for locked parts IL
Materials limit a design through HaveMaterialsNeeded IL
Stamina is a hero-level check only IL
Difficulty does not block free-build crafting IL
GenerateItem calls DetermineValue, so a panel can read value from GetCurrentCraftedItemObject IL
Orders need skill + 50 >= order difficulty Test, not re-run
10% excess pays 1% extra gold; failure pays at most 50% Test, not re-run

Validation

Not validated against game output, because the exports hold no usable values: difficulty (difficulty is 0 throughout), quality probabilities, cap and perks, stamina, XP, research, materials and refining. These are read from IL only.

Game code

Formula Method
Difficulty, quality, stamina, XP, materials TaleWorlds.CampaignSystem.GameComponents.DefaultSmithingModel
Research CraftingCampaignBehavior.AddResearchPoints
Perk values CharacterDevelopment.DefaultPerks.InitializeAll

IL decoded from game v1.4.8:

The other methods named in Part unlocking and orders (CanHeroCompleteOrder, IsGivenByDefault, SetDesignManually, ScaleThePiece, HaveUnlockedAllSelectedPieces, HaveMaterialsNeeded, GenerateItem, DetermineValue) have no dump in the folder.

Changelog