Latest version | 12.5.8 |
---|---|
Minimum Core | 12 |
Compatible Core | 12 |
Last updated | 3 weeks ago |
Created | 2 years ago |
Authors |
|
Languages |
English Français Português (Brasil) |
Systems |
Dnd5e |
Project source | Project URL |
License | License URL |
2022 Package Jam winner of the 'Most Polished' category and runner-up for 'Best Package'
A module for the Foundry dnd5e
system. After installing this module, you can find a 'Build-a-Bonus' application in any actor, item, or effect, as well as scene regions. This gives you the ability to apply a bonus to any attack roll, damage roll, saving throw DC, saving throw, ability check, or hit die roll, for bonuses that should apply only under specific circumstances.
Interested in following along with development of any of my modules? Join the Discord server.
Any bonuses you create will automatically be calculated and applied when you perform a relevant roll. The module uses filters to determine when and if a bonus should be applied. For example:
@abilities.int.mod
) to the damage rolls of all spell-type items, and have Build-a-Bonus filter the bonus so it only applies to spells, only if it deals acid, fire, necrotic, poison, or healing, and only if it has a material (M) component.@item.level
).The Build-a-Bonus has countless options for how or what to apply and when. Scroll down to the bottom for the full list.
Open any actor's sheet, any item sheet, or any effect config, then click the otter icon in the header. Choose the type of bonus you want to create, then fill out the name, description, and the bonus. Then start narrowing down when and how the bonus should apply, using the available filters.
As of foundry version 12, Build-a-Bonus also supports adding bonuses to Scene Regions. A button for this can be found in the region's sheet.
Below is an example using the artificer's Alchemical Savant feature.
This simple tab allows you to edit the displayed image and description of the bonus.
This tab allows for configuring the bonus that should be applying, assuming all filters are matched. Some babonus types also support dice modifiers.
Depending on the type you choose, Build-a-Bonus can add on top of the value or roll, or even several kinds at once. For example, for attack rolls, you can add bonuses on top of the roll itself, but also increase the critical range and the fumble range. This can be roll data and scale values, such as @abilities.int.mod
, or just integers or dice expressions.
For damage rolls and hit dice rolls, you can also affect die modifiers. The supported modifiers are minimum and maximum values, rerolling, and explosive dice, as well as the quantity of the dice, and the size of dice.
The 'minimum' modifier will be forced to be no higher than the size of the die. E.g., if you input '99', then a d8 will still roll no higher than 8. You can maximize dice by inputting '-1'.
These tabs are for configuring the filters on the babonus. The full list of filters can be found below.
For any fields that support roll data (such as bonuses or comparison fields detailed below), you can use the roll data of the target as well as your own; use roll data as you normally would, and for targets simply prefix with @target
.
In addition, when a bonus is 'transferred' either via an effect being copied through a template aura or regular aura, the roll data used will be source's roll data, if any. This means that your paladin player can have their Aura of Protection set up using @abilties.cha.mod
and all allies within the aura will receive a bonus equal to the paladin's Charisma modifier, not their own Charisma modifier.
One thing to keep in mind is that bonuses use the source's roll data, while the filters use the recipient's roll data.
This tab allows for toggling the bonus, making it exclusive to its parent item, making it opt-in, or configuring consumption or an aura.
You can set the bonus to act as an aura within a set range or within a template created by an item, and define if the aura should apply to allied targets, enemy targets, or all within range or within the template, and whether it applies to the owner or not. The bonus is applied when another token actor makes a relevant roll. The module never makes use of token movement to calculate ranges, so the usage of auras and templates is incredibly lightweight.
You can configure a list of effect statuses that prevent the aura from affecting targets and the owner (such as if the source of the aura is dead or unconscious). The Keys button on the sheet will help you pick out statuses from those that exist on the token HUD. The field itself is not validated; if you are able to give an effect a status of your own choosing, that is respected as well; simply write the status in the field.
Lastly, you can configure a non-template aura to require direct line of sight from the source token to the rolling token's actor, or to require an unobstructed path of movement.
A bonus can be toggled as optional if it affects an attack or damage roll, saving throw, or ability check. The actor will then have the choice when adding the bonus, which is shown in the roll configuration dialog when making the roll.
If the bonus is optional as described above, the bonus can also be configured to consume limited uses, item quantity, spell slots, hit points, currencies, the active effect on which it is created, or even the inspiration granted to the character from the GM. You can configure the minimum required consumption, as well as the maximum if the bonus should scale. For example, if you create an item with 10 limited uses, a bonus of "1d6", configure that the bonus is optional, and consumes between 2 and 6 uses when opted into, the actor making the roll can easily add between 2d6 and 6d6 in the roll configuration dialog, and the expended uses are automatically subtracted. This works similarly for spell slots, instead using 1 slot and scaling with spell level. A bonus consuming its effect or GM inspiration cannot scale.
Lastly, you can toggle 'Optional' on regardless for a bonus that grants no properties or dice modifiers. This will give you the ability to toggle it as a 'Reminder', causing its text to display in the roll configuration dialog.
See the github repository for the list of filters.
An API can be accessed at game.modules.get("babonus").api
or through the global namespace babonus
. Please see the github readme for the complete list of functions, instance methods, and hooks available.
To install this package, open your Foundry Setup screen and navigate to your Module tab and click the Install Module button.
From there, you can either search for the package unique name: babonus or copy its manifest URL:
And paste it to the input box at the bottom of your window.
You can install this package directly to your Forge account.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Advertisement cookies are used to deliver visitors with customized advertisements based on the pages they visited before and analyze the effectiveness of the ad campaign.