Multi-zone encounters allow creating multiple linked encounters, through which tracking will flow between rounds. This relies on catching the "roundChanged" hook and flagging the encounters with the list of linked encounters and their index, allowing us to go from one to the other. We also hook on "preDeleteCombat" in order to remove all linked encounters together, though it could be possible to update them instead. Tokens must be unique within the linked encounters, as it represents one big encounter, so make sure to remove them from other encounters if they are added to another one. Make sure to preserve the ordering of our multi-zone encounters, as by default there is none and they will probably be jumbled up when reloading. This is mostly very hacky around Foundry's encounter system. A better solution would be to replace the combat tracker altogether and create a new Combat document type, but this is much more involved. There are a number of issues still, as highlighted in the README. |
||
---|---|---|
assets | ||
lang | ||
packs | ||
scripts | ||
styles | ||
.gitattributes | ||
.gitignore | ||
LICENSE | ||
module.json | ||
README.md |
The Mill's Fabula - v0.8.0
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
Token UI adjustments
Given that we add a border on the tokens, it conflicts with the base attribute bars and status effect indicators 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.
The status effect indicators are moved entirely outside the token space as well, to the right, but as it is not useful
for NPCs this is only done for PC tokens.
For "Champion" NPC tokens, if their health bar is visible the token UI adjustments will detach it from the token and
turn it into a "boss bar" centered at the bottom of the screen, in a Dark Souls fashion.
The nameplate will also be moved there if both it and the health bar are shown.
Multiple bosses are supported at the same time and the bars will update their positions dynamically.
Take care though, as it can quickly cover the screen up !
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.
- The "boss bars" do not refresh when the screen size changes, only when created.
Fortune integration
In our game, "Fortune" is a key currency in the world.
This adds an interactable display in the character sheets, allowing it to be tracked, and in the party sheet,
for a nice overview.
The value is stored in flags, and will not be lost when disabling the module or option.
Similarly to the Fabula header, the Fortune header can be clicked, allowing players to send Fortune
to other player characters.
The whole transaction and updating is automated for both sides.
GMs have a new tool added under the Fabula Ultima system toolbar on the left that allows them to
distribute Fortune to players.
The dialog that pops up is very similar, but allows choosing multiple recipients at once (which can be pre-filled
depending on the needs of the GM) and has no maximum limit.
Multi-zone encounters
Our GM added a tactical element for some important fights, with multiple encounters taking place in parallel in multiple zones, with all characters in a zone taking their turns before moving to the next.
This was quite hard to keep track of, even more so without proper support, so this introduces a way to track it automatically.
The GM can create a multi-zone encounter zone by zone, adding the tokens they wish to start in each zone.
An arbitrary number of zones can be created, and they can be empty. The dialog window keeps track of the tokens
already assigned and allows going back to edit previous zones.
Once submitted, all the encounters are created and are "linked":
- Changing rounds in one encounter will move to the next
- Adding a token to an encounter will remove it from the other ones
- Deleting one encounter deletes them all
To make it more bearable and usable, tokens which are not in the active encounter are hidden and moved to the back, while tokens in the active encounter are visible and brought to the front.
Limitations
- There are multiple issues when working with dynamic borders
- The deletion of encounters sometimes raises errors, but completes
- Going back in the encounter order rewinds the wrong encounter (the source one rather than the destination one)
- The tracker displays the tokens of the first encounter as "hidden" for the first round, despite it not being the case.
- The GM's view gets quite cluttered, as tokens don't fully disappear for them.
- A Foundry bug makes the already selected tokens selectable
Compendia
- The only thing in the player's 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.
- The GMs have their own compendium with macros that replicate the functionality of the toolbar tools.
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.