Bug
After a recent Battle Brothers update, the game throws a mod error on startup:
Mod mod_msu (Modding Standards & Utilities (MSU)) is adding a new field IsSpent to bb class scripts/skills/perks/perk_quick_hands, but that field already exists in scripts/skills/perks/perk_quick_hands which is either the class itself or an ancestor
Root Cause
The base game now declares IsSpent natively in scripts/skills/perks/perk_quick_hands. MSU's hook at msu/hooks/skills/perks/perk_quick_hands.nut still tries to add it:
```squirrel
::MSU.MH.hook("scripts/skills/perks/perk_quick_hands", function(q) {
q.m.IsSpent <- false; // ← conflicts with vanilla field
...
```
The <- (new slot) operator fails when the field already exists in the class or any ancestor.
Fix
Remove the q.m.IsSpent <- false; line from msu/hooks/skills/perks/perk_quick_hands.nut. The rest of the hook (isHidden, getItemActionCost, onPayForItemAction, onTurnStart) may still be valid depending on whether vanilla's implementation matches MSU's — worth verifying against the updated game script.
Environment
- MSU version: 1.8.0
- BB version: 1.5.2.2
- Reported: June 2026
Bug
After a recent Battle Brothers update, the game throws a mod error on startup:
Root Cause
The base game now declares
IsSpentnatively inscripts/skills/perks/perk_quick_hands. MSU's hook atmsu/hooks/skills/perks/perk_quick_hands.nutstill tries to add it:```squirrel
::MSU.MH.hook("scripts/skills/perks/perk_quick_hands", function(q) {
q.m.IsSpent <- false; // ← conflicts with vanilla field
...
```
The
<-(new slot) operator fails when the field already exists in the class or any ancestor.Fix
Remove the
q.m.IsSpent <- false;line frommsu/hooks/skills/perks/perk_quick_hands.nut. The rest of the hook (isHidden,getItemActionCost,onPayForItemAction,onTurnStart) may still be valid depending on whether vanilla's implementation matches MSU's — worth verifying against the updated game script.Environment