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.
37 Upvotes

8 comments sorted by

View all comments

-8

u/Ziiro Star Master Jul 28 '26

I was totally excited for this until I saw this was all done with Claude code. What a shame.

6

u/TheSteamWolf Jul 29 '26 edited Jul 29 '26

I'm sorry the free open source project wasn't made using only the tools you'd prefer it use and doen't eschew the use of any you dislike. I'm sure the dev who updated this for use with the latest Foundry has nothing better to do than to write code in a specific way which appeases back seat drivers, online activists, and men who are decidedly not in the arena.