# Configurable Reactions **Configurable Reactions** is a Foundry VTT 14 module for configurable automatic reactions assigned to actors or concrete token instances. The module is designed as a generic reaction engine: ```text Trigger -> Conditions -> Consumption -> Actions ``` ## Current scope This repository is an initial module skeleton. It includes: - World-level reaction storage - World-level assignment storage - A GM configuration app opened through Foundry module settings - A graphical drag-and-drop builder for trigger and action JSON blocks - Assignment of a configured reaction to selected tokens - Linked-token handling: linked tokens assign the reaction to the Actor - Unlinked-token handling: unlinked tokens assign the reaction to the TokenDocument - Managed flags and optional managed ActiveEffects - A reaction engine skeleton - A damage-received trigger skeleton for dnd5e - Action handlers for: - applying statuses - teleporting a token - opening/using an inventory item placeholder - casting a spell placeholder ## Important design rules For teleport actions: - `askOwner === true`: the owner should choose the target, then the GM validates it. - `askOwner === false`: the GM chooses a random valid target. - The target must always be reachable. - The target must never be blocked by movement walls. - The target must never be occupied by another token. - The target must remain inside scene bounds. - If no valid random target is found within `maxAttempts`, the teleport fails. - `consumeOnFailure` is configurable. ## Installation during development Clone or copy this repository into Foundry's `Data/modules` directory: ```bash cd /path/to/FoundryVTT/Data/modules git clone configurable-reactions ``` Restart Foundry and enable **Configurable Reactions** in the world. The configuration dialog is available under **Configure Settings → Module Settings → Configurable Reactions → Configure**. ## Development workflow This repository is initialized as a Git repository. You can set a remote URL afterwards: ```bash git remote add origin git push -u origin main ``` ## Status Initial development scaffold. Not yet a production-ready automation module.