TheMillsFabula/README.md
trotFunky 73d2a08b88 Borders: Make clients check combat updates
In the Fabula Ultima system, the clients cannot
use the combat hooks, only the GM.
So the GM orchestrates the token visiblity changes
for all clients.

Currently, the GM checks the status of tokens when
they run the combat hook.
However, this doesn't work when the GM is on another
scene, as the tokens *do not exist* for their client
in this case, as only those in the current scene do.

To fix this, we need to do the token status check
on all clients, and verify that we are on the proper
scene : otherwise there won't be a token to update.

Change the method called on the clients by the GM
to be a wrapper around token_set_border_visibility()
which checks the scene and the token locally.

Introduce another method to manually set the border
status on clients via SocketLib, used for the end of
combat.

Remove the mentions of this issue in the README and
comments as this commit fixes it.
2025-06-01 22:17:36 +01:00

3 KiB

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 main issue that need to be fixed :

  1. The token borders will be incorrect when switching to a new scene
    • It is unclear why, but apparently switching to another scene is very different from loading a new scene, and the combat encounter of the scene is not available when tokens are created. This means that the combat status, and thus the border type, cannot be properly determined on scene switch.
    • This can be fixed by receiving a combat update, either from the players or the GM, on the scene.

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.