Giter Club home page Giter Club logo

fvtt-minimal-rolling-enhancements-dnd5e's Introduction

Minimal Rolling Enhancements (MRE) for D&D5e

Foundry Core Compatible Version Latest Release Download Count Forge Installs Foundry Hub Endorsements Foundry Hub Comments

Some minimalist enhancements to the core D&D5e rolling workflow. MRE is intended to stay as close as possible to core behavior while improving convenience. A key philosophy for this module is to remain non-disruptive to minimize conflicts with system and core updates.

MRE is targeted at a low-automation workflow. If you are looking for high levels of automation, you should consider using other modules.

Features

Visit the User Guide for more information on each feature and informative screenshots.

A screenshot of a weapon chat card displaying a variety of MRE features

  • MRE inverts the default dialog behavior for attack rolls, ability check rolls, save rolls, skill rolls, and damage rolls.
    • With no modifier keys held, these rolls will happen instantly, rather than showing the dialog. Holding the appropriate configurable modifier key will cause the dialog to appear when you need it.
  • Configurable modifier keys for rolling with advantage, disadvantage, and showing the roll dialog.
    • You can set world-level default modifiers, but players may choose to set a local override if they wish.
  • Settings to automatically roll attack rolls and/or damage rolls when an item is rolled from the character sheet or a macro.
    • These global settings can be overridden on a per-item basis for full configurability.
  • Formula groups allow for you to configure sets of damage formulae to be rolled together.
  • Distinct damage formulae within a damage roll are displayed separately, for ease of selectively applying resistance/vulnerability.

Compatibility

Not compatible with other modules which modify D&D5e item rolls.

Minimal Rolling Enhancements is compatible with libWrapper, however installing the libWrapper module is optional. You are not required to install libWrapper for MRE to work correctly, however installing it may reduce conflicts with other modules.

Fully supported, including options to automatically roll the rollable table when the item is rolled.

License

Licensed under the GPLv3 License (see LICENSE).

fvtt-minimal-rolling-enhancements-dnd5e's People

Contributors

akrigline avatar darkdindon avatar ikaguia avatar paulwroberts avatar schultzcole avatar thegiddylimit avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

fvtt-minimal-rolling-enhancements-dnd5e's Issues

Compatibility with Mr. Primate's DDB Importer

Reported by threz_๐Ÿ‘–#6422 on the discord

TypeError: Failed to initialize data for Item5e GcpXNc4dKUNw0Tk6 (Wand of Paralysis): Cannot read property '1' of undefined}
at _createMreFlags (initialize-formula-groups.js:41)
at Item5e.patchedPrepareData (initialize-formula-groups.js:8)
at Item5e.wrapper (shim.js:40)
at Item5e._initialize (foundry.js:28969)
at new Entity (foundry.js:28958)
at new Item (foundry.js:32344)
at new Item5e (entity.js:7)
at Compendium._toEntity (foundry.js:28481)
at foundry.js:28399
at Array.map ()
_initialize @ foundry.js:28972

@cole This is the error I get when MRE is activated along with the DDB Importer. It's repeated for a number of different items, before this:

foundry.js:28972 TypeError: Failed to initialize data for Item5e lVrnjqBrv90VH96d (Divine Eminence): Cannot read property '1' of undefined}
at _createMreFlags (initialize-formula-groups.js:41)
at Item5e.patchedPrepareData (initialize-formula-groups.js:8)
at Item5e.wrapper (shim.js:40)
at Item5e._initialize (foundry.js:28969)
at new Entity (foundry.js:28958)
at new Item (foundry.js:32344)
at new Item5e (entity.js:7)
at Compendium._toEntity (foundry.js:28481)
at foundry.js:28399
at Array.map ()
_initialize @ foundry.js:28972

And then the DDB Importer errors.

This issue seems to occur when importing a monster (specifically the "Abjurer")

Allow Total Damage Application

Currently, each damage type of a damage roll must be applied (using the context menu) separately. With the total damage setting enabled, it would be convenient to be able to apply the total damage to a token either in addition to or instead of being able to apply single damage parts.

Automatically roll item checks causes no chat card output sometimes

With "Automatically Roll Item Checks" enabled, items without attack rolls (such as saving throw spells), produce no output in chat.

To reproduce, cast "Fire Bolt" from the SRD spells (it has an attack roll) -- a chat card with the roll and damage buttons are output. Then cast "Mage Hand" and note that a chat card is not produced.

Disable auto roll item checks and both spells output as expected.

New feature, autocheck targeted AC for attacks

Hi,
I like the simplicity of your module compared to the others. However I love and find extremely time saving the feature present in Pathfinder 2e quick roll that automatically compare the roll with the targeted token AC. I looked into the code and brutally added a few line in the first place it seems to work to get the message that the target was hit, it's 3 line long and with a bit of polish it could be a nice option in this module.
Note that all other roller doesn't have this feature, the only one that does somethings similar is the super - automator and overcomplicated mqol that autochecks and autoroll damage, but prompt nothing and to chat and as a master you know that the targeted creature has some bonuses or ...

in item-base-roll-patch.js inside the __createWeaponTitle(item, roll)

      // CUSTOM COMPARE AC PART
	game.user.targets.forEach(t => { 
             if (roll._total >= t.actor.data.data.attributes.ac.value) {title += '<br> โœ”๏ธ ' + t.actor.data.name}
             if (roll._total < t.actor.data.data.attributes.ac.value) {title += '<br> โŒ ' + t.actor.data.name}	
        })
    return title;

Situational bonus applied to a scaled cantrip produces extra unexpected damage

Foundry 0.7.9 and 0.8.6. DnD5e 1.2.4 and 1.3.3, respectively

Reproduction steps:

  1. Character level >= 5 (where cantrips scale)
  2. Roll damage for a damage cantrip and give a situational damage bonus
  3. Situational bonus is applied twice, or extra damage dice is thrown

Examples:

0.7.9 Lightning Lure (2d8 damage with +5 situational bonus)
image

0.8.6 Chill Touch (2d8 damage with +3 situational bonus)
image

0.7.9 Create Bonfire (2d8 damage with +5 situational bonus -- an extra 1d8 is applied)
image

Add setting to revert dialog behavior to core?

I think an additional option under "Show Roll Dialog Modifier" titled something like "Default" or "Core" that reverts the roll dialog behavior back to the core behavior would be nice and also more in line with the "minimal" theme of the module.

DnD 5e Roll Type flags

In the MRE version for Foundry 0.7, the "attack" and "damage" flags were passed in the chat message data under [0]data.flags.dnd5e.roll.type

In MRE v 2.0.0 the "attack" flag is passed on attack rolls, but the "damage" flag has fallen off.

Also, neither flag is passed when MRE is set to automatically roll Item Checks and Damage. (Auto-Damage actually errors out at item-base-roll-patch.mjs line 83)

Is it possible to have the damage type flag re-input, and have the "attack" flag passed when automatically rolling item checks/damage?

Double Rolls?

Have been looking for a replacement for Better Rolls for a bit now, but my group really prefers the double roll feature. Is there any way to add this as an option? Thank you.

Show total damage separately in combined damage cards

It may be useful for users to see a "total" damage result below the individual damage formula results in a combined damage card, both for ease of math and also to make it more evident to users that they can right click and apply the total damage for the whole card, rather than only applying damage for each individual roll within the combined card.

It may be worth having a setting to control whether this total damage result is included in damage cards, so that users that don't need the extra clutter in their chat log can forego it.

Grab bag of 0.8.6 issues :)

  • Attack rolls with either Skip or Show roll fine, but with deprecation warnings (re Item#_data and Document#_id).
  • Rolling the Damage button on any attack card nets a actor.getOwnedItem is not a function.
  • Automatically Roll Item Checks causes all item rolls to fail, with Unable to recreate undefined instance from provided data and Cannot read property 'total' of null.
  • MRE modifier keys applied to the Attack button do work without error, but with a deprecation warning of You are passing the speaker argument to the d20Roll function directly which should instead be passed as an internal key of messageData.

Sorry I'm not able to dig deeper to find possible causes/fixes; I'm not at all familiar with the dice/item APIs yet. And of course you'll see all this when you poke around anyway, but, here's a ticket to get things started. :)

Spell with save only shows damage button

Using Hold Person as an example. It has a save, but no direct damage component to the spell. When the "damage" button is clicked, a ui error states that there is no "Primary" damage group.

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.