This page assumes you have a basic understanding of the Foundry ecosystem, such as familiarity with the concept of Documents, Embedded Documents, Compendium Packs, etc.

Active Effects (“effects” from here-on), on a basic Foundry level, are Embedded Documents that modify properties on its parent (or grandparent) Actor. This happens in the middle of the Actor’s data preparation cycle, which is where all the math happens that calculates various values within the Actor. Data preparation happens upon loading the world or updating the Actor.

Foundry provides the basic implementation of this out of the box, but it is limited to what is described above, it can only modify data points on the Actor. In WFRP4e, this has a few applications, however, the system adds many advanced features to enable effects to perform much more powerful operations.

If you wish to continue with the basics, continue reading through the next sections, if not, skip to the @@SCRIPTS@@ section

Effect Application / Transfer

Before we talk about how an effect changes data, it’s vital to understand the idea of Effect Application (though will likely be renamed at some point to Effect Transfer, as Application is not referring to the UI, but the nature of applying the effect.)

What follows in this section is a paradigm I’ve created specifically for the Warhammer systems and may not be relevant or correct for others.

An important part of the effect system is considering when and how the effect applied and transferred. Consider a basic Talent that increases Strength, this effect simply runs on the owning Actor and increases its strength. But what if the effect was on a spell? A spell’s effect generally should not run on the owning Actor, it needs to go through casting the spell, and may not run on the owner at all, but instead transfer to an entirely different Actor. However, an important paradigm of this system is that all effects owned by the Actor directly are considered applied. Only effects owned by Items need to be configured in this way.

See the diagram below for a visual representation of how effects move around and when they are applied. When an effect moves from Actor A’s Item to Actor B (or vice versa), it always moves to be directly owned by the target, and again, when an effect is directly owned by an Actor, it is always considered applied and modifying that Actor.

The following elements are added to the Active Effect Config to handle the problem described above. Note that these are only added when the Effect is owned by an Item. As discussed above, effects owned by an Actor have been transferred/applied already, so these fields aren’t relevant.

effect-config

1. Effect Application

This is the primary decider on how this effect is applied, but also works in conjunction with Document Type (see below).

The options are as follows:

  1. Owning Document - Transfer this effect directly to the owning Document.
  2. Damage - This effect is transferred to another Actor via damage.
  3. Target - This effect is applied via targeting
  4. Area - This effect is applied via to a Zone, which is simply a Scene Region
  5. Other - This effect is not applied at all (typically used with custom scripts to handle transferring in specific ways)

2. Document Type

The Document Type is used as a specifier with Effect Application. See the examples below.

The options are as follows:

  1. Actor
  2. Item

Using Effect Application and Document Type together is the main way of configuring how effects get transferred.

Effect Application Document Type Result
Owning Document Actor Transferred to the owning Actor, for example, Talents generally use this.
Owning Document Item Trnasferred to the Owning Item. This generally isn’t used.
Damage Actor Transferred when the Actor does damage (transferred to the Actor taking damage)
Damage Item Transferred when the Item does damage (transferred to the Actor taking damage)
Target Actor Transferred to the target Actor
Target Item Transferred to the target Item (which Item is determined by Filter below)
Zone Actor Adds effect data to a Zone, and is transferred to Actors within
Zone Item Adds effect data to a Zone, and is transferred to the Items owned by the Actors within
Other Actor Not transferred
Other Item Not transferred

When an effect uses an Item type and is applied, it is still created on the Actor but usually has some data to tell the system internally to compute on a certain Item(s). This gives some distinct advantages as Foundry does not intend for effects owned by Items to be for the item, but for the Actor who owns it.

3. Avoid Test

When an Effect is transferred, this option can add a method to avoid (abort the creation of) this effect under certain conditions

The options are as follows:

  1. Custom - Define a custom Test that is performed
  2. Script - Write a custom script to determine if the effect is avoided or not (return true to avoid)

4. Test Independent

This is a very specific property used with Target, Area, and Aura types. These can generally only be applied via a Test, like a spell placing an Area. However, with this option checked, the effect can be applied directly from the Actor sheet. This is useful for Items that don’t perform tests, like Armour or Talents.

5. Pre-Apply Script

This is also used with Target, Area, and Aura types, and runs this script before applying the effect. If the script returns true, the effect is applied, if false, it is aborted. This can be used, for example, if the Actor needs to roll a test before applying an effect to another Actor.

6. Equip Transfer

Most often, trappings that have effects apply them specifically when worn or equipped. This uses Owning Document and Actor types, but this does not account for the Item being equipped, and thus always transfers the effect to the owning Actor regardless. This property adds an additional check, requiring the Item to be equipped for the effect to transfer.

7. Enable Script

This script can automate whether the effect is enabled or disabled, the script should return true or false respectively.

8. Filter

This script has some essential uses when used with various Effect Application and Document Types combos. If the script returns true it is considered “Filtered” and not applied.

Effect Application Document Type Result (if filtered)
Owning Document Actor N/A
Owning Document Item N/A
Damage Actor The effect is not created on the damaged Actor
Damage Item The effect is not created on the damaged Actor
Target Actor The effect is not created on the targeted Actor
Target Item The effect is created on the targeted Actor, but only runs on Items not filtered
Zone Actor The effect is not applied to the Actor within the Zone targeted
Zone Item The effect is created on the Actor within the Zone, but only runs on Items not filtered
Other Actor N/A
Other Item N/A

9. Prompt

This is generally only used for Item Document Types, which lets the user select the Item to apply to. For example, if a spell modifies a weapon’s damage (using a Filter to only apply to weapons). If Prompt is false, it would apply to all weapons, if it’s true, a dialog to select which weapon(s) to apply to will be provided..

Scripts

While Application defines where or to whom the effect applies, Scripts are how Effects actually do anything. See the Scripts section for a deep dive on how to implement the mechanics behind effects.


Table of contents