kakaroto / Beyond20

D&D Beyond Character Sheet Integration in Roll20
GNU General Public License v3.0
484 stars 141 forks source link

Add support for FoundryVTT v12 #1127

Closed JeshinBBRP closed 2 days ago

JeshinBBRP commented 2 months ago

Currently you can still link/cast spells but skill checks and weapon attacks are not sending to the VTT from DNDBeyond and there is no error message.

To Reproduce Go to any character sheet Link to FoundryVTT Attempt to roll skill check Attempt to roll weapon attack Attempt to cast firebolt cantrip

Date of issue was 24-05-22 with newest Chrome and newest Beyond20 versions.

tickleyfeet29 commented 2 months ago

Same issue - Foundry v12. However, damage rolls go through, weirdly.

surestart commented 1 month ago

I'm having the same problem since updating to v12, and disabling all modules doesn't seem to affect the problem. Attacks don't appear in the Foundry chat log, but they do cause dice from Dice So Nice to roll on the screen with the same values as the rolls happening on DNDbeyond, so Foundry is receiving the data in some form. I am also seeing damage rolls work normally, as well as spells linking when the description of the spell is being sent, but not when the spell is asking for a save or sending an attack roll.

kakaroto commented 1 month ago

So weird, I wasn't expecting posting chat messages to break with v12. V12 was just released though, we always recommend people wait a while before switching to new foundry versions because every new version seems to break something in existing modules. I haven't even tried v12 yet, but once I do, I'll tackle the v12 compatibility in beyond20. Thanks for the reports!

JStarks85 commented 1 month ago

I am running v2.9.4 and Foundry V12.327.

Attack rolls and skill checks do not appear in the chat when rolled.

I am using Chrome, but have tested in Edge and still no luck,

I just updated Beyond 20 Companion Module to 1.5.2. and the issue still persists.

malaandm commented 1 month ago

Same: I am running v2.9.4 and Foundry V12.325. No d20 rolls (Attack rolls, ability, saving throw, and skill checks) appear in the chat when rolled. I am using Chrome, and on The Forge

albertholaso commented 1 month ago

In case it's related, the Dndbeyond Monster rolls also do not come through

xuri-ajiva commented 1 month ago

The issue seams to be some kind of chat message parsing from the D&D 5e System:

SyntaxError: Expected [%*/], [+\-], end of input, or whitespace but "u" found. (at foundry-esm.js:62945:22)
    at new peg$SyntaxError (foundry-esm.js:62945:22)
    at peg$buildStructuredError (foundry-esm.js:63320:14)
    at Object.peg$parse [as parse] (foundry-esm.js:64296:13)
    at D20Roll.parse (foundry-esm.js:62523:45)
    at new Roll (foundry-esm.js:61870:37)
    at new D20Roll (d20-roll.mjs:18:5)
    at D20Roll.fromRoll (d20-roll.mjs:30:21)
    at ChatMessage5e._highlightCriticalSuccessFailure (chat-message.mjs:145:36)
    at ChatMessage5e.getHTML (chat-message.mjs:68:10)
    at async foundry.js:88750:20

For a "1d20 + 0" the roll extracted from the chat message evaluates to 1d20 undefined undefined undefined 0, as far as I can tell this roll.terms is the problem.

[
    {
        "class": "Die",
        "options": {},
        "evaluated": true,
        "number": 1,
        "faces": 20,
        "modifiers": [],
        "results": [
            {
                "active": true,
                "result": 11,
                "indexThrow": 0
            }
        ]
    },
    {
        "class": "OperatorTerm",
        "options": {},
        "operator": undefined, <-- problem
        "evaluated": true
    },
    {
        "class": "OperatorTerm",
        "options": {},
        "operator": undefined, <-- problem
        "evaluated": true
    },
    {
        "class": "OperatorTerm",
        "options": {},
        "operator": undefined, <-- problem
        "evaluated": true
    },
    {
        "class": "NumericTerm",
        "options": {},
        "evaluated": true,
        "number": 0
    }
]

idk if that helps, or if this can be fixed.

rikmarais commented 1 month ago

Encountered this as well, similar to https://github.com/kakaroto/Beyond20/issues/1127#issuecomment-2171363675 image

kakaroto commented 4 weeks ago

I tested today, drove me crazy cause I couldn't reproduce the issue. I tried on the first stable v12 and on the latest (released today), and it worked every time. I did see the error in the console about "Expected [%*/], etc..." but it didn't prevent the rolls from going through without issues. I then updated to the latest dnd system and it stopped working. So it looks like it might be something in the dnd5e system that is preventing the rolls from appearing? Note that I was on dnd5e 2.x before and it worked with it. The weird thing is that it looks like it's failing even with digital dice enabled, which should not be anything more than posting of the html result to the chat. There shouldn't be even be dice rolling or formulas or broken operators, etc... As far as I can see from the stack trace reported by @xuri-ajiva it sounds like the dnd5e system tries to parse html from chat messages and then it tries to created d20 rolls off of the html data, and then it fails to parse it for some reason and crashes and doesn't display the actual chat message. I'm not sure at all that this is a beyond20 bug, but it sounds like it might be a dnd5e bug instead.

adotpawi commented 3 weeks ago

Should i go ahead and create an issue over there at Foundry/DND5e? https://github.com/foundryvtt/dnd5e/issues

Maybe linking this one here.

jpbarany commented 3 weeks ago

I am not sure what is triggering so many new Roll() and/or parse(formula, data) calls (not as familiar with the codebase), but I have found that the formula/data fields in the DND system mutates while looping through -- "1d20 + @dex" to "1d20 + 2" to "1d20 + 1d20" to "1d20 undefined undefined undefined 0" for example when initiated from Beyond. The undefined is what is triggering the error messages posted above.

Coax88 commented 3 weeks ago

I also have the issue, attack rolls doesn't go through, Damage does, but I can't apply damage to monsters.

i found out that monsters roll is showing in foundry if it does not contain an attack/hit roll - and can be apply as damage, but damage roll from character sheet, can not be applied as damage.

maximeclement10 commented 3 weeks ago

I was having the same issue and was able to fix it by returning to DnD 5e system v2.4.1. You can do it with the manifest URL: https://github.com/foundryvtt/dnd5e/releases/download/release-2.4.1/system.json

Here's where I found the fix: https://discord.com/channels/170995199584108546/486930822465716249/1256474024360280084

Coax88 commented 3 weeks ago

I was having the same issue and was able to fix it by returning to DnD 5e system v2.4.1. You can do it with the manifest URL: https://github.com/foundryvtt/dnd5e/releases/download/release-2.4.1/system.json

Here's where I found the fix: https://discord.com/channels/170995199584108546/486930822465716249/1256474024360280084

That worked, but now the beyond20 button is missing in the character sheet, and can't import my character from dnd beyond

albertholaso commented 3 weeks ago

I was having the same issue and was able to fix it by returning to DnD 5e system v2.4.1. You can do it with the manifest URL: https://github.com/foundryvtt/dnd5e/releases/download/release-2.4.1/system.json Here's where I found the fix: https://discord.com/channels/170995199584108546/486930822465716249/1256474024360280084

That worked, but now the beyond20 button is missing in the character sheet, and can't import my character from dnd beyond

I was the person who wrote that ^_^ It's not a 'fix', it's just a workaround until others can resolve it properly.

surestart commented 2 days ago

This is still broken for me. Are there any updates regarding a fix?

kakaroto commented 2 days ago

This is still broken for me. Are there any updates regarding a fix?

no update from the dnd5e team, you can follow that issue here: https://github.com/foundryvtt/dnd5e/issues/3805 There's a workaround submitted here though: https://github.com/kakaroto/Beyond20/pull/1144 I'll be testing/merging this for the next release (soon)