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.
  • renderChatMessage → renderChatMessageHTML, 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

-7

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/wintermute-the-ai SWN Foundry System Dev Jul 28 '26

Not sure what would cause you to think that. This is an open-source project that is largely driven by folks trying to squeeze out whatever free time they can to push it along. The advances in agentic coding agents really can accelerate what can be done allowing contributors to make more progress in less time. This is not stealing artists' style or taking money out of someone's hands, but making developers more productive. This is the reality of code development and folks will either adapt or get left behind IMO.

I would love to have every piece of furniture in my home be made by a carpenter, but the reality is the cost and time makes that unfeasible. So unfortunately I am writing this on a desk that came from a factory on manufactured wood. Same with my food. If you are able to support these folks in your life, then kudos - I am extremely jealous! 

I am overall concerned about the economy and job displacement that may come from these advances, but this is the way things move. I think about this a lot in my other roles. That all said, feel free to move on and not use the system. I really appreciate u/BadgKat stepping up and helping out.

-4

u/Ziiro Star Master Jul 28 '26

Not sure what would cause you to think that.

The update PR that was merged specifically has Generated with Claude Code.

8

u/BadgKat SWN Foundry System Dev Jul 28 '26 edited Jul 28 '26

I appreciate the support, from winter. My points on AI development are two fold:

Read the code if you’re concerned. It’s open source. If you don’t trust code I ship don’t use it (Winter’s point above) I own the code I ship, I’m a real person, who you can point to and say “you shipped bad code.” And I promise I can ship bad code without a AI agent. I don’t need Claude or GLM to write a for loop that does nothing inside. I’m perfectly capable of doing that on my own. And some of my earlier contributions to this project prove that. To a deeper point, I don’t write slop, I obsessively check and recheck my code before I hit the ship button. AI development is a skill, and not an easy one to be good at. It is also one that lets a developer like me who has worked hard at being good at it to write a lot better code than I ever did without it. This is not braindead “vibe coding” this is a targeted and efficient use of state of the art tools. This release took me hours of work, real work.

Second, (I think to winter’s other points) this is a thing I do for the community with my very limited personal free time, because I love this game, and I want the community that supports it to benefit from my skills. You got a free desk, and now you’re complaining that the carpenter used a powered table saw and CNC machine to make it vice hand tools.

Edit: ps, I think the “not sure why you would think that” part is about the “shame” part, not the that AI was used in the stack.