release-3.1.0
The 3.1 release of the system brings with it a whole host of long-awaited features including damage application automation, concentration automation, and summoning. The full list is much longer, so please read ahead for an overview of the new features with full patch notes at the bottom.
3.1.0
release of the system ONLY SUPPORTS Foundry Virtual Tabletop version 11 (release) and greater. To use this new game system version you must also use Foundry VTT version 11. If you do not wish to update your core software, please continue using a previous version of the dnd5e system.
Installation: To manually install this release, please use the following manifest URL: https://github.com/foundryvtt/dnd5e/releases/download/release-3.1.0/system.json
New Features
Dark Mode Character Sheet
Any kobold players suffering from Sunlight Sensitivity will appreciate the new dark mode theme for the character sheets.
Character portrait art by mikiko.art
If your OS is set to prefer dark mode then your character sheets will render in dark mode by default. If you would like to force a particular theme for the dnd5e system, you can do so from the settings menu. At the moment, only character sheets have a dark theme but as more sheets are shifted to the v2 styles they will also come with dark mode designs.
Concentration Automation
The system now includes robust automation around casting and maintaining concentration on spells and other features.
Firstly, if you'd like to continue tracking concentration manually, you may opt-out of the automation via the system settings:
For those using the new automation, the system will now keep track of when a character casts a spell that requires concentration:
And it will remind that character when they attempt to cast another spell that requires concentration:
Finally, it will prompt the character's owner to make a Concentration saving throw whenever that character takes damage, with an appropriate DC based on the damage taken.
Ad-hoc Concentration saving throws can be made from the character sheet:
And various modifiers and bonuses relating to Concentration saves can also be configured:
When applying the effects of a spell that requires concentration to other creatures, those effects become linked to the caster's concentration effect. If concentration is ever broken, the linked effects are removed.
Summoning
The system includes the ability for automatically bringing summoned creatures into your world. This allows you to reference a list of creatures to be summoned from a feature or spell, modify the actors before they are brought into the world, and place them where you wish in the scene.
Summoning items can be set up by selecting the new "Summon" action type on an item's details tab and then opening the summoning configuration window. Multiple summons profiles can be configured which will be selectable by the player when using the spell to bring different creatures into the world. Variable parts of the summoned creature's stat block can be tweaked based on level of spell cast or other details from the summoner.
More information on summoning can be found on the wiki.
Resistances, Immunities, & Vulnerability Automation
The damage roll card has now been expanded to offer a live preview of damage application, appropriately taking into account any of the target's resistances, immunities, or vulnerabilities.
The tray allows the DM to choose between a fixed list of creatures that were targeted at the time the damage roll was made, or to preview the damage against any tokens they have currently selected.
In addition to the buttons which control a fixed multiplier to the damage dealt, any resistances, vulnerabilities, or immunities that are affecting the damage the creature would take are also displayed. These toggles are interactable and allow for ad-hoc ignoring of any given resistance, vulnerability, or immunity, or optionally downgrading an immunity to resistance. The damage preview will automatically update to show the amount of damage the creature will take.
⚠️ Breaking Changes
- [#3099] Clicking anywhere in the item description in a chat card collapses the description.
- As part of fixing this, we have moved to a new CSS-only technique for handling collapsibles in the system. This changes the markup of chat messages very slightly, and will mean that old chat messages render expanded always, and cannot be collapsed. Messages made after the update will work as expected.
- [#3035] Improve detection of when a creature takes damage and provide appropriate hooks.
- As part of implementing this, the old
dhp
anddtemp
options that were sometimes sent as part of Actor update requests have been removed. They would only be available some of the time and did not cover all cases where an Actor might take damage. The newdnd5e.damageActor
anddnd5e.healActor
hooks should appropriately fire whenever an Actor is damaged or healed now.
- As part of implementing this, the old
- [#3264] Deprecated
LimitedUseFormulaPeriods
in the config.CONFIG.DND5E.limitedUsePeriods
entries have become objects. Theformula
property of these objects determines whether the period has a recharge formula, obviating the need forCONFIG.DND5E.limitedUseFormulaPeriods
.
- [#3248] Apply healing based on damage type rather than requiring a negative multiplier.
Actor5e#applyDamage
now accepts theinvertHealing
option which is true by default. When encountering a healing damage part, it will automatically apply the value as healing rather than damage. Code that previously called this method with a negative multiplier in order to apply healing should be updated to passinvertHealing: false
.
- [#3255] Migrate ItemGrant & ItemChoice Advancements to store configured Items as objects rather than UUID strings.
- There is an automatic migration & compatibility path in effect for this change, but code that creates these Advancements should update to pass an array of
{ uuid: string }
objects rather than an array of strings to the Advancement'sconfiguration
.
- There is an automatic migration & compatibility path in effect for this change, but code that creates these Advancements should update to pass an array of
- [#3031] The metadata on abstract data models is now frozen.
- [#2747] Added support for advancements on custom module types.
Advancement.metadata#validItemTypes
has been deprecated in favour of configuring valid types viaCONFIG.DND5E.advancementTypes
. This config variable has also had its entries migrated to objects.
Bug Fixes
- [#3254] Fixed an issue with Dynamic Token Rings flashing if the
colors
object has null values. - [#3224] Stored item data in chat cards can now contain Active Effects. This means using the last of a consumable with an Active Effect and a 1/1 destroy on empty charge will still be able to apply the Active Effect.
- [#3200] Empty values in the
Available Uses
field no longer show asnull
. - [#3195] Fixed the Wing Attack on the SRD Adult White Dragon.
- [#3182] Dropping an advancement with "Any Level" onto a class no longe rprevents them from being displayed.
- [#3180] Invalid Actor sizes no longer prevents the Actor sheet from rendering.
- [#3178] Dropping a Spell onto an Equipment Item no longer initiates the prompt for copying advancements.
- [#3165] The system no longer offers to place a measured template if no Scene is open.
- [#3163] Spell damage now always include the
magical
property for overcoming resistances. - [#3130] Improved CSS for the indicator on exploded dice to prevent it from becoming misplaced in some circumstances.
- [#3099] Fixed chat messages collapsing when clicking on the details element.
- [#3075] The system now prevents duplicates targets from the same Actor and no longer throws an error if the Actor is missing.
- [#3065] Roll commands no longer throw an error when using multiplication or division and the
_enrichRollTooltip
method now passes the roll's original formula. - [#3058] Improved CSS to better support alternate font sizes in the 3.0.0 character sheet.
- [#2935] Revise AE application methods to enable correct duration tracking.
- [#2920] Formula data in attack bonuses now works on ammunition.
- [#2918] Added a modifiers Set to dice scale values. Now, if an active effect modifies a dice scale value or any of its specific properties (.number or .faces) by appending a string, the remaining properties are no longer completely lost.
- [#2224] An Item's sheet height is now only set automatically on tab change.
Improvements
- [#3250] Damage types are now aggregated before being passed to
applyDamage
. - [#3248] Automatically invert healing parts in
calculateDamage
rather than using a negative value. - [#3185] Modified
HitPointsAdvancement
to allow changing NPC HP max. - [#3153]
_configureTrackableAttributes
no longer ignores custom configs. - [#3149] Added support for advancement to NPCs.
- [#3147] Added magical bonus to weapons, armor, and ammo.
- [#3126] Separated damage calculation from damage application.
- [#3125] Moved damage calculation to its own method to better support modules making changes to the multipliers used.
- [#3116] Expanded the embed enricher to support embedding Item/Actor descriptions.
- [#3108] Improved chat card collapsing behavior.
- [#3040] Added the ability to bypass resistances or downgrade immunities.
- [#3038] Created a system setting to enable or disable automated tracking of concentration which can be changed in the Settings.
- [#3037] When using an item that requires concentration, the system now supplies the appropriate context in the
AbilityUseDialog
for if, when, and why its use would end or replace concentration. - [#3035] Added damage and healing hooks for when an actor is updated to better support module developers.
- [#3033] Added an actor method (
rollConcentration
), with associateddnd5e.preRollConcentration
anddnd5e.rollConcentration
hooks. - [#3030] Added a config property for the global default ability used for concentration saving throws.
- [#3029] Extended the actor data model with a new object (
attributes.concentration
) for concentration related properties. - [#3028] Added support for concentration automation.
- [#2944] Modified how inventory styles are defined to not rely on
dnd5e-inventory
element. - [#2874] Added a fallback path to use current message's data for calculating visibility if
flags.dnd5e.originatingMessage
isn't provided. - [#2864] Added a theme picker interface for changing between light, dark, and other themes.
- [#2849] Damage modification is now displayed on the sheet and added an interface for manually configuring it.
- [#2824] Added a token ring effect indicating the current turn.
- [#2749] Added support for registering new sections in the Actor sheet Spellbook and made it easier to add entirely new spellcasting types that can support upcasting.
- [#2668] Added support for Races on NPCs.
- [#2628] When a leveled spell is set to scale to "spell level" but it has no value set in the scaling formula it now falls back to the first damage part.
- [#1871] Added support for configuring starting equipment on classes.
- [#1372] Added buttons in chat messages with options to apply damage and healing.
- [#1058] Added starting equipment options to classes and backgrounds.
- [#1019] Added a long rest and short rest button to the Group actor.
- [#1015] Added
Quarter Damage
to theApply Damage
dropdown. - [#997] Added Actor data templating for description fields to better support building new Actors from existing features.
- [#865] Added support for the
Concentration
status effect which is automatically applied by spells which require concentration and may (optionally) be automatically tested when the character who is concentrating takes damage. - [#456] The NPC sheet can now also display Death Saves.
Contributors
Many thanks to the following contributors in particular: @arbron, @DJ4ddi, @dev7355608, @kgar, @krbz999, @Hoppyhob, @Larkinabout, @luccavp12, @schultzcole, as well as all those who submitted bug reports and issues.
Installation: To manually install this release, please use the following manifest URL: https://github.com/foundryvtt/dnd5e/releases/download/release-3.1.0/system.json