PDA

View Full Version : 5e - Effect Lifecycle Tools (ELT)



Vaall
February 8th, 2026, 22:17
Effect Lifecycle Tools (ELT)
Current Version: v1.1.2 • Updated: 2026‑06-22

https://forge.fantasygrounds.com/shop/items/2834/view

Effect Lifecycle Tools (ELT) adds a small set of utility tags to Fantasy Grounds 5E effects to control how they are applied, refreshed, or removed.


REMOVE: – instantly remove matching effects from the target
PULSE - apply an effect once, then immediately expire it after 1 seconde (Ultimately, this corresponds to a REMOVE of oneself)
EXP: – applies another effect when the current one expires
RELOAD - automatically re‑applies an effect when it expires (Ultimately, this corresponds to a EXP of oneself)



A note from the author
This extension was built with the help of AI to speed up iteration and refactoring, but that does not replace the work of a human developer — there may be mistakes, edge cases, or wording issues.
Please report any problems or odd behaviours so we can make it better for everyone!

The REMOVE tag is primarily due to Darrenan's work, which I've simply adapted to 5e and my playstyle.
I also created EXP to replace EXPIREADD, which no longer workds in BCEG with FGU update 5.1.9


What it does

Utiliy tags extends the effect system with three utility behaviors:

Effect Removal (REMOVE)

Searches the target’s active effects
Removes all effects whose label contains the given text (case‑insensitive, substring match)
Multiple REMOVE statements may be included in the same effect


*Greater Restoration; REMOVE: exhaustion; REMOVE: charmed; REMOVE: petrified*

One‑Shot Effects (PULSE)

Applies the effect normally
Then immediately triggers expiration through the standard pipeline
Useful for temporary markers, instant‑clear effects, or one‑shot logic triggers

Example:
*AURA one-shot; PULSE; AURA: 10 all; AoE protection of poison; REMOVE: poisoned*

Expiration Effects (EXP)

When an effect expires, any EXP: entries are applied
IF / IFT conditions are respected
Multiple EXP tags can be used


*Bite of ankheg; DMGA: 1d6 acid; PULSE; IF: SIZE(<H); EXP: Gripped by an ankheg*
And in your effects list you must have "Gripped by an ankheg; grappled; (escape DC 13)"

Effect Refresh (RELOAD)

When an effect containing RELOAD expires or is deleted, it is automatically re‑applied
When re‑applied, the effect label is re‑evaluated through the standard 5E pipeline


Example (with CAT extension):
*Unarmored Movement; SPEED: [SPRINT]; RELOAD*

Note:
The effect must also be present in the list of effects
The effect is re‑evaluated each time it reloads.
If the character’s stats or level change, the effect will update accordingly.


Changelog

v1.1.2 — Correction to the native filtering of FG immunities
v1.1.1 — Correction to ensure that the tags contained in the effect added by RELOAD and EXP are correctly decoded.
v1.1.0 — Updated for FGU. Added real‑time PULSE deletion (1‑second timer). Added EXP expiration‑trigger system. Improved REMOVE parsing and label cleanup. Improved RELOAD pipeline (CAT + FG evaluation). Fixed PULSE + REMOVE interaction
v1.0.1 — Fixed the PULSE tag not applying if the effect also contained the REMOVE tag
v1.0.0 — Initial public release.


If you try it, feedback and edge cases are highly appreciated!
Contributions welcome — especially for a safe, clean approach to player‑side prompts or robust handling of damage type augmentation.

Vaall

66540
66541

nephranka
June 7th, 2026, 20:33
I am getting an error on the client side for my players:
[6/6/2026 1:03:07 PM] [ERROR] Handler error: [string "..ect Lifecycle Tools:scripts/lifecycle.lua"]:413: setValue: Unable to create node

Vaall
June 7th, 2026, 21:25
Could you please provide more information about the circumstances surrounding this error so I can reproduce it?

(e.g., action performed, extension loaded simultaneously, etc.).

Thank you.

nephranka
June 7th, 2026, 22:35
Just when the player loads in. They sent me the logs. I am using RELOAD on an item. That is all I have.