foundryvtt / dnd5e

An implementation of the 5th Edition game system for Foundry Virtual Tabletop (http://foundryvtt.com).
MIT License
339 stars 226 forks source link

Chat Card Buttons add Redundant Clicks when Rolling Items from the Character Sheet #4459

Open alaustin0 opened 1 month ago

alaustin0 commented 1 month ago

THE PROBLEM WITH THE CURRENT ROLLING WORKFLOW:

Currently, rolling items from the character sheet has a common complaint from a chunk of the community: it takes too many clicks to roll. Specifics on this opinion vary, but I can personally attest that almost all of my own players have made a comment like this at some point about the 5e system, and I would agree with it myself.

While “you have to click too many times to do something” is a simple problem on paper, explaining WHY that is the case is more complicated. I’m going to lay out some common workflows for rolling items to help illustrate where the alleged issue is occurring and why.

(The following workflows are all assuming that your character sheet is already open and on the Inventory tab, or the weapon is favorited. If not, there are even more clicks involved than listed, including opening up the Chat tab if it’s not already open. These potential extra clicks are worth noting, but I will not be counting those clicks going forward, because I want to paint the current workflow in the best possible light.)

Let’s go over some common workflows for rolling items from the sheet:

Attack roll from a “basic” weapon

(read: a weapon that only has an Attack activity, isn’t Versatile, doesn’t consume ammo, etc)

This is one of the most common things you will do in the system.

That’s three clicks in three different screen locations:

  1. Character Sheet Click
  2. Chat Card Attack Click
  3. Attack Roll Dialogue Click **

(Clicks marked with ** are skippable by holding a modifier key.)

basic-current

While three clicks may not seem like a lot, that’s three clicks in three different locations just to make an attack roll on an item that only has one function: making attacks (and rolling damage, but that part comes from the Attack activity in this case).

We should note that the last click in this sequence can be skipped by holding “Shift” (which still requires an additional input to skip). So, at best, we are still working with two clicks + a keypress to roll an attack.

In this specific workflow, the Chat Card Attack Click is redundant, as clicking that button serves no purpose other than to actually prompt the Attack Roll Dialogue, which could have easily been prompted when we clicked on the item itself. The Chat Card in this case only serves to give you a Damage button. In terms of rolling an attack, the Chat Card is nothing but an extra click.

Attack from an item that has multiple activities

OR

Now we are up to FOUR clicks in FOUR different spots:

  1. Character Sheet Click (either item or expand)
  2. Activity Click **
  3. Chat Card Attack Click
  4. Attack Roll Dialogue Click **

(It’s worth noting that expanding the item’s activities only saves a click after the item is already expanded. Knowing this, I will not continue to list its workflow separately going forward.)

While these workflows can be simplified by holding Shift to skip the Activity Click and the Attack Roll Dialogue Click — bringing its at-best total to 2 clicks, on par with the basic weapon — they still require moving the cursor across the screen to click buttons in two different places (and remembering to hold a modifier key the whole time).

Of all the clicks in this workflow, the Chat Card Attack Click is once again redundant. We already chose Attack when we made our Activity Click. Having to click Attack a second time in the chat only serves to slow things down.

Rolling damage for a Versatile weapon you are using with two hands.

  1. Character Sheet Click
  2. Chat Card Attack Click
  3. Attack Dialogue Click **
  4. Chat Card Damage Click
  5. Damage Dialogue Click **

Total: 3-5+

The Attack clicks are mandatory if you want to roll the 2-handed damage for the weapon, as the damage defaults to one-handed (at least on official PHB items). This can only be gotten around if you swap the damage entries yourself by editing the item and putting the 2-handed damage in the “Damage” entry and the 1-handed damage in the “Versatile” entry.

If the item has multiple activities, add another click still.

For this workflow, technically every click is necessary. However, the Chat Card Attack Click would NOT be necessary if there was another way to select Damage/Versatile Damage, and I would argue that should 100% be the case, but that’s a separate issue.

Attacking with a Spell that has multiple activities

  1. Character Sheet Click
  2. Activity Click **
  3. Spell Dialogue Click
  4. Chat Card Attack Click
  5. Attack Dialogue Click **

Total: 3-5+

Once again, in this case, the Chat Card Attack Click is completely redundant. We already selected the Attack activity, of course we want to make an attack. There is no reason we should have to click Attack a second time.

THE PROBLEM SUMMARIZED:

As we can see, rolling an attack from an item requires 2 clicks at a minimum, and sometimes 3, 4, or even 5+ clicks, each of which requires moving the cursor over a non-trivial amount of screen real-estate. This is caused by the amount of dialogues you have to go through before you get a roll.

While many of these dialogues are necessary to receive the desired effect, especially for complex items, I think the Chat Card is more often than not adding a completely unnecessary step in its current state.

Primary example: when selecting an Attack Activity, the Chat Card proposes two options to use: Attack and Damage, each their own button. These buttons, regardless of purpose, will heretofore be referred to as “Card Options.”

In this example, the Attack Card Option is the first or “primary” option, and the Damage Card Option is a secondary card option.

When I select the Attack Activity, I believe it’s perfectly reasonable to assume that I will want to make an attack roll almost every single time. And yet, I have to confirm this by clicking the Attack Card Option every single time I want to roll. This is also true for Spells with attacks. If I select the Attack Activity on a spell like Ice Knife, I almost certainly want to roll an attack with it. And yet, I have to click on the Attack Card Option again to make that happen.

A brief diversion: The only reason I would currently not want to roll an attack is if I only needed to roll Damage. The Damage roll is held hostage within the Attack activity, and there is no way to get to it otherwise. As mentioned before, this lack of ability to roll Damage independently is a separate issue that will be addressed below.

The primary issue that needs addressing is that the “Primary Card Option” that comes with any given Activity does not roll by default when that activity is selected.

THE POTENTIAL SOLUTIONS:

I propose two potential solutions to this problem. Each could be implemented on its own, or they could be joined together in some way.

Solution 1: Introduce “PRIMARY CARD OPTIONS” to Activities (name pending)

Preferably, the Primary Card Option on any given activity should be configurable, including a “null” choice that doesn’t set any option as the Primary Card Option.

Here’s a simple example of how this solution would apply to a basic Attack activity:

On any given item with the Attack Activity, the activity has two Card Options: Attack and Damage rolls.

I set the “Attack” Card Option as the Primary Card Option in the item’s settings.

With this solution in place, when I click the Attack Activity in the character sheet, the Attack Roll Dialogue should prompt as soon as I click the activity. This only serves in removing a click from the workflow and has no adverse effects (in this simple use case). Shift + Clicking the Activity would skip the roll dialogue entirely and roll the attack immediately upon click.

basic-proposed

Item with multiple Activities:

  1. Character Sheet Click
  2. Activity Click (Attack) **
  3. Attack Dialogue Click **

In this case, Shift + Clicking on the item in the character sheet would skip two steps: Skip the Activity Click (and choose the default activity) Skip the Attack Dialogue Click (and roll immediately)

Item with one Activity:

  1. Character Sheet Click
  2. Attack Dialogue Click **

This solution would bring the total clicks to attack down to as little as one singular shift + click, bringing the system on-par with other game systems in Foundry as well as 5e on other VTTs.

For something like a Spell item, clicking the Attack activity would immediately prompt the Spell Dialogue, then post the chat card and immediately roll the Attack Card Option at the same time.

For a Feature item, clicking an Activity would prompt the Feature Dialogue to select consumption, etc, and then it would prompt the action of the Primary Card Option.

PROS:

CONS:

Both of these cons can be negated by two other features:

  1. Adding options for rolling damage somewhere besides the chat card
  2. Adding a button that does nothing other than post the item/activity’s chat card

These are both QOL additions that deserve their own tickets - I only include them here to demonstrate that the cons of this proposed solution are not impossible to alleviate.

SOLUTION 2: ADD CARD OPTION BUTTONS NEXT TO THE ACTIVITY ON THE CHARACTER SHEET

With the new capability of expanding of items within the character sheet to show all the available activities, said activities are ripe with free space. I believe the best use for this space would be adding the Card Options that activity provides, see mockup below.

solution2-proposal

Clicking on any of these buttons would function identically to clicking them in the currently existing chat card (in most cases), with one additional function in that they should also post the activity’s chat card (for accessing effects and other edge cases).

PROS:

CONS:

WHY THIS ISSUE IS IMPORTANT:

Rolling is the most common thing you do in a system like 5e. When rolling is even just a little inconvenient, it may seem small, but over time the issue grates on you. It’s like a shoe that’s a little too small - maybe not a big deal when you start your day, but after a long walk, it’s driving you crazy. Even one extra click becomes hundreds over the course of a campaign, and wasted seconds become wasted minutes and then hours.

In general, I believe people are more than willing to put up with dialogues and prompts when it’s clearly necessary due to the system’s complexity - but I don’t think that’s always the case currently. I think any superfluous clicks need to be removed with extreme prejudice whenever possible to keep the play experience as smooth as can be.

The rolling experience is a pain point for many, and it would be well worth the time investment to find a solution to make all rolls speedier whenever possible. It would have a monumental impact on the most common play experience when using the system.

Obligatory: I realize this issue may need to be multiple separate issues, and I also realize the proposed solutions are likely overlooking some use cases. Happy to discuss and cooperate as needed.

JPMeehan commented 1 month ago

One thing I'd like to see addressed is how this interacts with contingent scaling; for example, what's the expected workflow for a fireball cast at 4th level where you are making many damage rolls that need to be upscaled to 9d6? Those all go through the Chat Card still?

alaustin0 commented 1 month ago

One thing I'd like to see addressed is how this interacts with contingent scaling; for example, what's the expected workflow for a fireball cast at 4th level where you are making many damage rolls that need to be upscaled to 9d6? Those all go through the Chat Card still?

Ideally, none of the chat cards are really altered or removed with the proposed solutions.

Under solution 1, if you cast a spell, you would still get the Spell Dialogue which allows you to upcast, and that adjusts the activity's card options accordingly. So the primary card option dialogue would fire immediately after clicking (if there is one, in thise case damage could be the primary option and you would get one damage roll without clicking), and the damage button would still be in the chat card and function the same as it already does.

Someone2345 commented 1 month ago

This should absolutely be a top priority for the system, especially now we are in a new era of v4 and 2024. Explaining the current system to new users is beyond painful. Every single time the current workflow is explained my new users question my sanity and complain about this basic UX / UI issue.

Shift clicking in order to skip rolls is not a user friendly feature and should not be considered a standard work flow for users. (It is an advanced feature for advanced users).

(I actually came over here to try and add this issue if it is not already here/getting attention).

gludington commented 1 month ago

Some popular modules have grown up around this, including:

  1. Ready Set Roll
  2. MidiQOL

These modules often do other things besides just modify/streamline the workflow, but their present and past approaches may inform design decisions.

While as modules they perform this task well, a smoother workflow should still be a core consideration because modules can be dropped, or simply lag behind system or foundry version releases.

lorddaeos commented 1 month ago

I would like to concur with this. Almost all sessions I run will have at least one complaint regarding button bloat. I came to Foundry from Fantasy Grounds (which is, in itself, kind of a mess) and I was stunned how much more work it was to do simple dice rolls.

JPMeehan commented 1 month ago

I want to also chime in that while this is one extra click for a basic Bite attack — which can be mitigated by popping out the chat card and re-using if — it multiplies out whenever you need to use other activities. Sneak attack is 2–3 clicks, secondary saves add a bunch of extra clicks (the new topple mastery!), etc.

DudeAndre commented 1 month ago

I agree that this is paramount. It will take months for MIDI and RSR to catch up with this. I also have another idea, alongside all alaustin have said, to make things smoother: instead of having SHIFT+click to skip to default why not use lefft-click as default and right click as pop-up. That would make things more intuitive and faster yet.

ctbritt commented 1 month ago

Adding my voice here to please streamline the rolling. I tried to move my players to 4.0.x and after they experienced the amount of UX friction, they demanded to do back to 3.3.1 and midi. I agree with them. It's tedious and not fun.

This is an excellent write up of the problem and offers elegant solutions. I also agree with making shift-click a as a way to bring up new options rather skip steps. Just let me click on an item to attack and that's it!

Somel1978 commented 1 month ago

Another one here. Is strange how the actual workflow was even implemented. Foundry core needs to start working on workflow automations. Too Many clicks and checks.

Sayshal commented 1 month ago

Another +1 here. Currently not planning to move to 4.X or develop in 4.X with the state of it. Hoping for big improvements all around based on the above feedback.

nschoenwald commented 1 month ago

Throwing my plus one into this as well. This is the system's biggest pain point in my opinion and makes me not want to update to 4.x before it is addressed.

Zanderaf commented 1 month ago

Yea, gonna throw in my +1 here. I used Ready Set Roll in order to merge the Attack/Damage cards for weapons, ignoring most of it's other features. Having the chat card popped out is nice and all, but on a small monitor I'd rather have the merged cards to save screen real-estate

cs96and commented 1 month ago

+1 from me. I think if you polled the dnd5e community, you would find very few people who use the core rolling mechanics, because they are simply just too painful. I've used Better Rolls, and now Ready Set Roll since day 1.

JPMeehan commented 1 month ago

I mean, I use the core rolling mechanics because I prefer having the upgrades of the core system rather than waiting on module updates, but they could absolutely use some love so there's less of that hard choice.

maxobremer commented 1 month ago

First of all excellent summary. Secondly I would love for this to be added to a milestone like 4.1 or 4.2 as to me this seems like an issue that's (in my opinion) been plaguing foundry/dnd5e for far too long.

thirdly I would like to propose some workflow options/points as well to whoever reads this:

  1. Prioritise Common over Specific Cases. Can the use of shift to fast forward the attack or damage roll dialogue be inverted? Assume people want to make a normal roll unless they specify (using the shift key) that they want the roll to be adjusted in some way or where you check what is rolled. fast forwarding should be the default instead of the exception as most rolls don't need any changes.
  2. Remove chat buttons where possible. When you use a weapon to attack it should be assumed you want to roll for attack unless the activity is different. Why not remove the attack roll button in chat and have it replaced with the result of an attack roll. Similar with damage rolls, after the roll has been made the button doesn't need to be there. If someone wants to do multiple attacks they can just press the button on their character sheet till all attacks are made, which is where their cursor are at anyway when they make the first attack.
  3. Move alternate attack forms to activities. At the moment if you want to roll a thrown attack or versatile attack you do so from the attack roll dialogue. Putting this in separate activities allows for quicker multi/extra attacking as you can open the window in the item and click multiple times. It also allows for alterations to those rolls by default (like giving a thrown weapon the boost from the thrown weapon fighting style or any homebrew)
  4. Minimise chat cards where possible. When you roll for a weapon it creates a chat card, rolling the attack creates a new chat card, rolling the damage creates another chat card. For some people the entire visible chat log is taken up by a single attack. This in my opinion should be reduced to one chat card and in general a second chat card should only be needed for separate items (like sneak attack) or when the activity requires input from a different actor (like when a saving throw is required). This also somewhat links back to bullet point 2 as the attack and damage roll buttons on a card can be replaced by the result of the roll they create, reducing the need for even more chat cards.
  5. Use Alternate Buttons. In a similar vain to @alaustin0 's Solution 2 I think adding buttons to the expanded item cards is a smart idea. If bullet point 3 is not desired that's where thrown and versatile attacks could go. To expand on this general idea of adding buttons, is it maybe an idea to incorporate functionality of the module Retroactive Advantage 5e. This would reduce the need for the attack roll dialogue prompt and can be useful in case of reactions that impose a reroll or the like. It also feels like a clean solution to fix a mistake if something happens (which does come up in play, like forgetting to factor in the poisoned condition or other specific/niche cases). I know this last point sounds opposed to bullet point 2, but the functionality is different as these buttons help with more special/non-standard situations, whereas the ones in point 2 are buttons for common/default things

A small more footnote. Compliments for the fast forwarding logic of activities with multiple damage types. The usage of the last damage type is in my opinion clever and precisely what we need more of.

JPMeehan commented 1 month ago

I think normal-roll-as-default is a bad call specifically because click economy is less of a concern for users who don't look up keybinds; the modifiers don't have great visibility and for a lot of people you'd functionally remove the ability to make rolls at advantage/disadvantage entirely.

nschoenwald commented 1 month ago

I think normal-roll-as-default is a bad call specifically because click economy is less of a concern for users who don't look up keybinds; the modifiers don't have great visibility and for a lot of people you'd functionally remove the ability to make rolls at advantage/disadvantage entirely.

Disagree. Pretty much every other VTT or Character Sheet I know just rolls as-is when you click (including DnDBeyond and Roll20). If you want to modify the behavior, it makes sense to have a modifier key or different button to press.

Zanderaf commented 1 month ago

I think I'm gonna side with JPMeehan on this one. As much as I liked the "Fast Foward" rolling before, it got to be a bothersome as time went on. I do prefer skipping to rolling being behind a keybind rather than the reverse.

cs96and commented 1 month ago

Couldn't the default for fast-forwarding or not be configurable?

Also, rolling the attack, or the damage should update the existing card, rather than creating a new card for each.

thatlonelybugbear commented 1 month ago

Couldn't the default for fast-forwarding or not be configurable?

Also, rolling the attack, or the damage should update the existing card, rather than creating a new card for each.

Agreed. Configurable would be best and less messages always better!

My 2 cents on the topic.

The first thing I tried to alter when started DM'ing with Foundry, was the copious amount of clicks you needed to roll a simple attack (player's side is more bearable). Open character sheet, roll the item, move over to the message, click Attack, then move over to the Roll Dialog, then move back to the messages to click on Damage, move back to the Damage Roll Dialog and finally apply the damage and any effects (that final part at least has improved over the years 👍).

Doing that, give or take around 10 times each round (rough estimate 😛), personally I find it bothersome.

Workarounds like popping out chat cards or whatnot exist, as well as modules, but beyond the point really as each of these have counter arguments. I feel re-evaluating the way that is handled will give vanilla 5e a significant boost.

alaustin0 commented 1 month ago

I really appreciate everyone's enthusiasm and support behind this issue - like I said in the original post, I know this has been a pain point for many users so I'm happy to see people rally behind in support of a change in this area! ❤️

However I do want to encourage us all to stay on topic - while it's helpful to an extent to suggest additional potential solutions (which are all great to consider), I don't believe this is the place for debating their viability.

This issue, if/when the team decides to tackle it, is already going to need a lot of thought, planning/scoping, and then splitting down into multiple different issues, because as we've all continued to demonstrate this is far from a simple "single-solution" kind of issue. The feedback and debate on those solutions should be saved for those tickets, I think.

I do encourage everyone to continue leaving comments with their vocal support for prioritizing this issue, which lets the devs know that many people consider it important and hopefully will lead to it being considered and potentially implemented sooner. But let's let the team decide what solutions would be best to consider, and we'll work from there!

Somel1978 commented 1 month ago

I Disagree with you.

Your concern is that this creates a lot of "noise" and deviates the goal of havimg something done, is acceptable. However is also important that foundry team engages even more in practices of KYC and feedback is key for that, therefor i would argue that people should keep leaving their insight into the issue at hand. Is upon FoundryVTT to take all that insight/feedback and separate what is actionable and what is not.

On Thu, 17 Oct 2024, 13:06 alaustin0, @.***> wrote:

I really appreciate everyone's enthusiasm and support behind this issue - like I said in the original post, I know this has been a pain point for many users so I'm happy to see people rally behind in support of a change in this area! ❤️

However I do want to encourage us all to stay on topic - while it's helpful to an extent to suggest additional potential solutions (which are all great to consider), I don't believe this is the place for debating their viability.

This issue, if/when the team decides to tackle it, is already going to need a lot of thought, planning/scoping, and then splitting down into multiple different issues, because as we've all continued to demonstrate this is far from a simple "single-solution" kind of issue. The feedback and debate on those solutions should be saved for those tickets, I think.

I do encourage everyone to continue leaving comments with their vocal support for prioritizing this issue, which lets the devs know that many people consider it important and hopefully will lead to it being considered and potentially implemented sooner. But let's let the team decide what solutions would be best to consider, and we'll work from there!

— Reply to this email directly, view it on GitHub https://github.com/foundryvtt/dnd5e/issues/4459#issuecomment-2419357022, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIPNFIHQMJUNK3JXATGKTLDZ36R57AVCNFSM6AAAAABO75NBBCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMJZGM2TOMBSGI . You are receiving this because you commented.Message ID: @.***>

jambo81 commented 1 month ago

Couldn't the default for fast-forwarding or not be configurable? Also, rolling the attack, or the damage should update the existing card, rather than creating a new card for each.

Agreed. Configurable would be best and less messages always better!

My 2 cents on the topic.

The first thing I tried to alter when started DM'ing with Foundry, was the copious amount of clicks you needed to roll a simple attack (player's side is more bearable). Open character sheet, roll the item, move over to the message, click Attack, then move over to the Roll Dialog, then move back to the messages to click on Damage, move back to the Damage Roll Dialog and finally apply the damage and any effects (that final part at least has improved over the years 👍).

Doing that, give or take around 10 times each round (rough estimate 😛), personally I find it bothersome.

Workarounds like popping out chat cards or whatnot exist, as well as modules, but beyond the point really as each of these have counter arguments. I feel re-evaluating the way that is handled will give vanilla 5e a significant boost.

Just to chime in - I'm in complete agreement with this.

I want to try and stay up to date with the core system - I like the direction its going in, but this kind of change should be an absolute priority for me.

Someone2345 commented 1 month ago

So... Dnd5e players have been given a reprieve as MangoFVTT has diligently updated their excellent Ready Set Roll module - but the main thrust of this feature request still stands. It is ridiculous to rely upon a mod to bring such basic yet necessary usablity to what is one of the three core systems of foundry!

alaustin0 commented 1 month ago

Arbron has submitted a pull request adding a version of my first proposed solution here, slated for 4.1 if approved: https://github.com/foundryvtt/dnd5e/pull/4555