Skip to content

Extensibility

Ben Straub edited this page Aug 9, 2022 · 10 revisions

Moves and oracles can be customized in two ways. Both of these methods rely on using the Starforged-style move/oracle sheets, which is turned on by default for the Starforged system, but is not for Ironsworn. If you'd like to use these with the Ironsworn data, enable the "New Ironsworn move-sheet UI" beta switch in the system settings.

Using Folders

The system will look for an item folder called "Custom Moves" and a roll-table folder named "Custom Oracles" (these names may be localized; check the lang folder for your language, and search the file for "Custom Oracles").

If either of these folders are found, the system will include its contents in the moves and/or oracles area of the sheet:

 

Only top-level items will be shown for moves, but oracles will import the entire tree.

Using Hooks

This method is more useful for modules, and involves intercepting the ironswornOracles hook. The type of object in the tree is shown in customoracles.ts. Here's a simple hook that adds more rows to the "Background Assets" oracle:

Hooks.on('ironswornOracles', (root) => {
  root.children[0].children[0].tables.push(game.tables.get('MSjHr7AahxxJXAqe'))
})

There is also an ironswornMoves hook, which passes the final tree before display. See custommoves.ts for the structure of those objects.

Custom moves can be added in similar ways. They must be placed in an item folder called "Custom Moves" (translated), and regardless of the structure inside, they will show up in a "Custom Moves" section of the move sheet.

Clone this wiki locally