Table of Contents
Text-Based Actors v3.0.0 ships with some breaking changes that might affect macros or custom sheets within your world. This page will go over what those breaking changes are, and what you can do to restore functionality.
If you did not write any custom Macros or world scripts, you do not need to make any changes!
API Location Change
The easiest breaking change to fix, is that the globally available taf constant
now contains multiple subsections. Wherever you used taf previously, can be
directly replaced with taf.api. As there is now a taf.config as well, which
contains all of the code-configurable properties of the system.
You can read more about how stuff was moved in this issue
Actor Attributes into Attribute Items
Attributes used to exist in the Actor using the following format:
system: {
attr: {
attr_key: {
name: "Attr Key",
value: 0,
max: 5,
isRange: true,
}
}
}
however Attributes are now stored as an Item subtype. A one-time migration will
be performed on all world and compendium actors that have attributes in order to
convert them into the item subtypes. However this does not affect any macros or
other shortcuts for creating Actors that you may have. What you should do while
creating Actors programmatically now is to provide an items array with the
required minimum-attribute-item data that you desire. There is no automatic
migration from creating/updating actors in the old style to the embedded items.
There is a short-cut for updating these attributes on the Actor though by doing something similar to:
let actor = game.actors.getName(`Frankie`);
await actor.setAttributeValue("strength", 20);
Which will update the "strength" attribute on the actor named "Frankie" to 20, if that attribute cannot be found, it will do nothing.
- API
- How-To