A module of our own for Fabula Ultima campaigns
Find a file
trotFunky 9bc73100f3 Borders: Move main call in init hook
The main function is called at script invocation, which is nice and early
but everything we do is done in hooks.
This makes it not really useful, and harder to properly disable the module
with the settings.

So, register our `init` hook at script invocation and call the main function
from within.
This makes handling the disabling via the setting trivial, and ensures that
*everything* is properly disabled.

However, the `socketlib.ready` hook fires earlier than the `init` one, so
register the socket at invocation as well, but only register the remote
methods in the main function.
2025-06-02 00:00:42 +01:00
assets/default-borders Initial commit - v0.1.0 2025-05-12 22:55:13 +01:00
lang Implement Token UI adjustments 2025-06-01 18:37:22 +01:00
packs/macros v0.2.0: Add setting to disable dynamic borders 2025-05-28 18:55:08 +01:00
scripts Borders: Move main call in init hook 2025-06-02 00:00:42 +01:00
.gitattributes Initial commit - v0.1.0 2025-05-12 22:55:13 +01:00
.gitignore Initial commit - v0.1.0 2025-05-12 22:55:13 +01:00
LICENSE Initial commit - v0.1.0 2025-05-12 22:55:13 +01:00
module.json module: Add compendium folder 2025-06-01 20:26:08 +01:00
README.md Borders: Don't rely on .inCombat to check combat status 2025-06-01 23:49:35 +01:00

The Mill's Fabula - v0.3.0-dev

This little FoundryVTT module is a collection of compendiums and functionalities to power our Fabula Ultima campaigns.

Compatibility

This is only compatible with Foundry v12 currently.

Installation

Currently, this can only be installed via manifest file, using the following URL :

https://git.tfk-astrodome.net/trotFunky/TheMillsFabula/raw/branch/release/module.json

Features

This module is an aggregate of different things that are useful for us or that the GM wanted to play with, so they don't necessarily connect with each other and can be disabled if wanted.

They are described below in their own sections.

Combat border

This part of the module adds a dynamic border around player tokens, which changes during combat.

The border is always visible, but after a player has taken their turn it will switch to a different border, highlighting the tokens that have played for this combat turn.

The module supports going back and forth in the combat rounds, as well as going back in the turn order. (Though because of limitations of the Fabula Ultima system, does not allow going forward in the turn order.)

Settings

  • An image to use for the default/idle border
  • An image to use for the took turn/played/inactive border

Limitations

There are currently one minor issue that might be fixed :

  1. The token borders will be incorrect when switching between different encounters in the same scene
    • Producing a combat event or switching away and back to the scene will fix it.
    • It doesn't appear that there is an event on combat switch that could be hooked into, which makes fixing the issue uncertain.

Token UI adjustments

Given that we add a border on the tokens, it conflicts with the base attribute bars which are drawn over the token's square.
The token UI adjustments move the two attribute bars below the token, outside its space, first HP then mana.
As this is where the nameplate of the token should be, move it above the token instead.

Limitations

  • The token's detailed UI when right-clicking will overlap the bars in their new positions (it already overlapped the name)
  • The current implementation relies on monkey patching, which make it vulnerable to compatibility issues with other modules manipulating the same methods.

Compendia

  • The only thing in the compendium pack is a macro automating the tinkerer's alchemy potions, allowing to choose how many PIs to spend, how to allocate the results, previews and a final chat message with the results.

Dependencies

Modules:

  • socketlib

System:

  • Fabula Ultima

License

The code present in this repository is licensed under the Mozilla Public License 2.0.

Assets that we created in this repository are licensed under CC-BY-SA 4.0, unless otherwise specified.