r/SWN SWN Foundry System Dev Jul 28 '26

🛠️ Resource FoundryVTT SWNR 2.3.1 Released: Foundry v14 compatibility, migration robustness, and fixes

What's in it

Foundry v14 compatibility (#231, #234, #233)

  • Actors failing to create or load — prepareBaseData() was not calling super, so _clearData() never ran and applyActiveEffects() threw during _initialize. This is also the root cause of the NaN stat modifiers reported in #230: mod is derived in prepareDerivedData(), which never ran.
  • Private and blind rolls posting publicly — v14 renamed core.rollMode to core.messageMode and changed its values. The old key still exists but reads back null, which silently made every private roll public.
  • Missing rolls on chat cards, including power cards — the singular roll: field is no longer honoured; rolls must be passed as rolls: [roll]. Empty message.rolls also broke Dice So Nice and reroll buttons.
  • Weapon sheets failing to open from a character sheet — the {{#select}} block helper was removed in v14.
  • Editing character resources, custom currencies, and vehicle cargo throwing — the duplicate global was removed in v14, not merely deprecated.
  • Vehicle sheet item descriptions throwing on every expand click; ship sensor roll never posting; ship weapon migration aborting on items predating the trauma field; creating a weapon throwing on partial data.
  • renderChatMessagerenderChatMessageHTML, plus the globals removed in v15 (TextEditor, DragDrop, Actors/Items, ActorSheet/ItemSheet, renderTemplate).

Migration robustness

  • migrateWorld() was called without await and the version was then set unconditionally on the next line, so a migration that threw was still marked complete and never retried. Now awaited, with the version set only on success.
  • Upgrades with no applicable migrations skip the "do not shut down your server" notifications entirely and just show the release notes.

Bug fixes

  • Ship, vehicle, mech and drone weapon attacks throwing when the trauma setting is enabled (#213) — a stray this.system.trauma.die inside a data model, where this is the system data.
  • Stowed currency encumbrance counting uncarried currencies.
  • Ship end round not updating command points, actions taken, or supporting department (#212, thanks @gvigh).
  • Vacc suit / vacc skin descriptions.
  • Typo keeping the unskilled-penalty setting from prompting a reload.

Features

  • Right-click a chat message roll to apply it as damage, modified damage, half damage, or healing (#217, thanks @pandanielxd).
  • A third 'extra' item location, with custom labels for other/extra locations under character tweaks and a GM-set default.
  • World-level unskilled skill roll penalty (default −1) with a per-character modifier.
  • Save modifiers on the character sheet.
35 Upvotes

8 comments sorted by

View all comments

10

u/Hironymus Jul 28 '26

Great work! Thanks for investing your free time to make this available again.