grandseiken / foundryvtt-multilevel-tokens

Multilevel tokens for Foundry VTT
MIT License
42 stars 20 forks source link

All passive effects from 5e character sheet displaying as status icons on cloned tokens #116

Closed PastaBakeWizard closed 2 years ago

PastaBakeWizard commented 2 years ago

Thanks for the recent update boss - this is one of the absolute best foundry modules so I'm glad to see it alive. Per title, in the newest version of MLT the cloned tokens are showing icons for every passive effect on their character sheet (including those currently disabled/inactive), in addition to any icons placed by a player/DM. One very popular content importer uses these effects extensively for AC, buffs that toggle on/off with certain abilities (Barbarian Rage and etc.), so it would help many players if something could be done about this. Not the world's most critical bug though.

Cloned tokens in the target region: image

Original tokens in the source region: image

grandseiken commented 2 years ago

Ah, this is a bit annoying. I'm guessing that maybe I shouldn't copy ActiveEffects with the disabled flag, but would be good to verify that's the difference between these. You could help me out a lot if you could select one of these tokens (one with both a real effect and some of these passive ones) and paste the following into the chrome console: canvas.tokens.placeables.forEach(t => { if (t._controlled) { console.log(t.actor.data.effects.contents); }});

Then copy everything that comes back to me here?

CatbotTsumi commented 2 years ago

I ran into the same problem and found this. Seeing how its been 8 days since the request, having the same issues, I'll just share the data that I have. I hope this helps! Running the console code on the real token output the following.

[
    {
        "_id": "ijAteLyliPn1E1Ly",
        "changes": [
            {
                "key": "data.bonuses.rwak.attack",
                "value": "2",
                "mode": 2
            }
        ],
        "disabled": false,
        "duration": {
            "startTime": 0,
            "startRound": 0,
            "startTurn": 0
        },
        "icon": "systems/dnd5e/icons/skills/green_01.jpg",
        "label": "Fighting Style: Archery",
        "origin": "Actor.lHXeoUPiUnPmhL4e.Item.58IlM3gucrj8qSzf",
        "tint": null,
        "transfer": true,
        "flags": {}
    },
    {
        "_id": "qAFJz2MmdmZ0gy3R",
        "changes": [
            {
                "key": "data.abilities.cha.value",
                "value": "2",
                "mode": 2,
                "priority": 20
            },
            {
                "key": "data.abilities.int.value",
                "value": "1",
                "mode": 2,
                "priority": 20
            }
        ],
        "disabled": false,
        "duration": {
            "startTime": null
        },
        "icon": "systems/dnd5e/icons/spells/wind-red-3.jpg",
        "label": "Tiefling Ability Score Increase",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": true,
        "flags": {
            "dae": {
                "specialDuration": "None"
            }
        }
    },
    {
        "_id": "T5crfYLoeTsceQjh",
        "changes": [
            {
                "key": "data.bonuses.abilities.save",
                "value": "1d4",
                "mode": 0,
                "priority": 20
            },
            {
                "key": "data.bonuses.mwak.attack",
                "value": "1d4",
                "mode": 0,
                "priority": 20
            },
            {
                "key": "data.bonuses.msak.attack",
                "value": "1d4",
                "mode": 0,
                "priority": 20
            },
            {
                "key": "data.bonuses.rsak.attack",
                "value": "1d4",
                "mode": 0,
                "priority": 20
            },
            {
                "key": "data.bonuses.rwak.attack",
                "value": "1d4",
                "mode": 0,
                "priority": 20
            }
        ],
        "disabled": true,
        "duration": {
            "startTime": null,
            "seconds": 60,
            "rounds": 10,
            "startTurn": 4
        },
        "icon": "systems/dnd5e/icons/spells/haste-sky-1.jpg",
        "label": "Bless",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": true,
        "flags": {
            "dae": {
                "specialDuration": []
            },
            "ActiveAuras": {
                "isAura": false,
                "ignoreSelf": false,
                "hidden": false,
                "height": false,
                "aura": "None",
                "radius": null
            }
        }
    },
    {
        "_id": "fWyO6J4wSMN5zobq",
        "changes": [
            {
                "key": "data.bonuses.mwak.damage",
                "mode": 2,
                "value": "+1d4[Hunter's Mark]",
                "priority": "21"
            },
            {
                "key": "data.bonuses.rwak.damage",
                "mode": 2,
                "value": "+1d4[Hunter's Mark]",
                "priority": "21"
            }
        ],
        "disabled": false,
        "duration": {
            "startTime": 4560,
            "startRound": 1,
            "startTurn": 0
        },
        "icon": "icons/svg/aura.svg",
        "label": "Hunter's Mark",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": false,
        "flags": {
            "ActiveAuras": {
                "isAura": false,
                "radius": null,
                "aura": "None",
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false
            },
            "dae": {
                "specialDuration": []
            }
        }
    },
    {
        "_id": "Nl2CPPjnOQ8YHoZM",
        "changes": [
            {
                "key": "data.bonuses.rwak.damage",
                "mode": 2,
                "value": "+1d6[Sneak Attack]",
                "priority": "20"
            },
            {
                "key": "data.bonuses.mwak.damage",
                "mode": 2,
                "value": "+1d6[Sneak Attack]",
                "priority": "20"
            }
        ],
        "disabled": true,
        "duration": {
            "startTime": 4590,
            "startRound": 1,
            "startTurn": 7
        },
        "icon": "icons/svg/aura.svg",
        "label": "Sneak Attack",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": false,
        "flags": {
            "ActiveAuras": {
                "isAura": false,
                "aura": "None",
                "radius": null,
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false
            },
            "dae": {
                "specialDuration": []
            }
        }
    },
    {
        "_id": "2mfPOoaOHfx89Rfi",
        "changes": [
            {
                "key": "data.attributes.ac.value",
                "mode": 5,
                "value": "{@abilities.dex.mod,2}kl + 14",
                "priority": "20"
            }
        ],
        "disabled": false,
        "duration": {
            "startTime": 4734
        },
        "icon": "icons/svg/aura.svg",
        "label": "Mythril Breastplate",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": false,
        "flags": {
            "ActiveAuras": {
                "isAura": false,
                "aura": "None",
                "radius": null,
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false
            },
            "dae": {
                "specialDuration": []
            }
        }
    },
    {
        "_id": "0acGOZOQsg91Nezi",
        "changes": [
            {
                "key": "data.attributes.ac.value",
                "mode": 2,
                "value": "1",
                "priority": "20"
            },
            {
                "key": "data.bonuses.abilities.save",
                "mode": 2,
                "value": "1",
                "priority": "20"
            }
        ],
        "disabled": true,
        "duration": {
            "startTime": 4734
        },
        "icon": "icons/svg/aura.svg",
        "label": "Magical Cloak",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": false,
        "flags": {
            "ActiveAuras": {
                "isAura": false,
                "aura": "None",
                "radius": null,
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false
            },
            "dae": {
                "specialDuration": []
            }
        }
    },
    {
        "_id": "YCj68IkKjrNUpVvI",
        "changes": [
            {
                "key": "data.attributes.ac.bonus",
                "mode": 2,
                "value": "1",
                "priority": "20"
            },
            {
                "key": "data.abilities.cha.bonuses.save",
                "mode": 2,
                "value": "1",
                "priority": "20"
            },
            {
                "key": "data.abilities.con.bonuses.save",
                "mode": 2,
                "value": "1",
                "priority": "20"
            },
            {
                "key": "data.abilities.dex.bonuses.save",
                "mode": 2,
                "value": "1",
                "priority": "20"
            },
            {
                "key": "data.abilities.int.bonuses.save",
                "mode": 2,
                "value": "1",
                "priority": "20"
            },
            {
                "key": "data.abilities.str.bonuses.save",
                "mode": 2,
                "value": "1",
                "priority": "20"
            }
        ],
        "disabled": false,
        "duration": {
            "startTime": 4734
        },
        "icon": null,
        "label": "",
        "origin": "Actor.lHXeoUPiUnPmhL4e.Item.hw7cff4npH5e2ZmW",
        "tint": null,
        "transfer": false,
        "flags": {
            "dae": {
                "transfer": true,
                "specialDuration": []
            },
            "ActiveAuras": {
                "isAura": false,
                "aura": "None",
                "radius": null,
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false,
                "displayTemp": false
            },
            "core": {
                "statusId": ""
            }
        }
    },
    {
        "_id": "2migYr4h7ZbFuetB",
        "changes": [],
        "disabled": false,
        "duration": {
            "startTime": 1578
        },
        "label": "",
        "origin": "Actor.lHXeoUPiUnPmhL4e.Item.hw7cff4npH5e2ZmW",
        "transfer": false,
        "flags": {
            "dae": {
                "transfer": true
            }
        }
    },
    {
        "_id": "bED7HlGcRFCZDDib",
        "changes": [
            {
                "key": "data.bonuses.mwak.damage",
                "mode": 2,
                "value": "+1d8[Colossus Slayer]",
                "priority": "20"
            },
            {
                "key": "data.bonuses.rwak.damage",
                "mode": 2,
                "value": "+1d8[Colossus Slayer]",
                "priority": "20"
            }
        ],
        "disabled": true,
        "duration": {
            "startTime": 5148,
            "startRound": 7,
            "startTurn": 6
        },
        "icon": "icons/svg/aura.svg",
        "label": "Colossus Slayer",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": false,
        "flags": {
            "ActiveAuras": {
                "isAura": false,
                "aura": "None",
                "radius": null,
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false
            },
            "dae": {
                "specialDuration": []
            }
        }
    },
    {
        "_id": "ZA05zHjMWUSvyDiM",
        "changes": [
            {
                "key": "data.skills.ste.bonuses.passive",
                "mode": 2,
                "value": "10",
                "priority": "20"
            }
        ],
        "disabled": true,
        "duration": {
            "startTime": 3828
        },
        "icon": "icons/svg/aura.svg",
        "label": "Pass Without Trace",
        "origin": "Actor.lHXeoUPiUnPmhL4e",
        "tint": null,
        "transfer": false,
        "flags": {
            "ActiveAuras": {
                "isAura": false,
                "aura": "None",
                "radius": null,
                "alignment": "",
                "type": "",
                "ignoreSelf": false,
                "height": false,
                "hidden": false,
                "hostile": false,
                "onlyOnce": false
            },
            "dae": {
                "specialDuration": []
            }
        }
    },
    {
        "_id": "dxLzcRLUdbqZ9pBD",
        "changes": [],
        "disabled": false,
        "duration": {
            "startTime": 2178,
            "startRound": 3,
            "startTurn": 10
        },
        "icon": "worlds/shards-and-shadows/!Shards%20and%20Shadows/Random%20Assets/Status%20markers%20by%20Jinx/Poisoned.png",
        "label": "Poisoned",
        "transfer": false,
        "flags": {
            "core": {
                "statusId": "combat-utility-belt.poisoned",
                "overlay": true
            },
            "combat-utility-belt": {
                "conditionId": "poisoned",
                "overlay": false
            },
            "dae": {
                "transfer": true
            }
        }
    },
    {
        "_id": "KunhpYmrfONBdrrq",
        "changes": [],
        "disabled": false,
        "duration": {
            "startTime": 2208,
            "startRound": 8,
            "startTurn": 14
        },
        "icon": "worlds/shards-and-shadows/!Shards%20and%20Shadows/Random%20Assets/Status%20markers%20by%20Jinx/Reaction%20Used.png",
        "label": "Reaction Used",
        "transfer": false,
        "flags": {
            "core": {
                "statusId": "combat-utility-belt.reaction-used"
            },
            "combat-utility-belt": {
                "conditionId": "reaction-used",
                "overlay": false
            },
            "dae": {
                "transfer": true
            }
        }
    }
]

Running the console code on the clone token outputs an error

Uncaught TypeError: Cannot read properties of null (reading 'data')
    at <anonymous>:1:82
    at Array.forEach (<anonymous>)
    at <anonymous>:1:26
GregorHak commented 2 years ago

I have the same problem (Warhammer 4) obraz obraz

tjlanza commented 2 years ago

This issue does not appear to be system-specific, though it does appear to be v9-specific. I have seen it in Shadowrun 5E as well, but only after upgrading Foundry.

I don't use any mechanism to run a clock on timed effects, but the ones that are both "temporary" and activated ones are the only ones that show on original tokens. I make them temporary for exactly this behavior. On the cloned tokens, every active effect appears, regardless of state (temporary, active, disabled).

Original: image

Clone: image

neovatar commented 2 years ago

I am having the same effect - using 5e characters.

grandseiken commented 2 years ago

Just released 1.5.4 which I believe should fix this.

neovatar commented 2 years ago

Can confirm that 1.5.4 fixed it for me. Thank you @grandseiken !

GregorHak commented 2 years ago

I also can confirm that update fixed for Warhammer 4.