Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
Create a free account

[bug] Official Blades in the Dark Sheet duplicates sections when opened via Show to Players

I've informally confirmed this issue with other people in the community, and done some troubleshooting that indicates it's happening due to an underlying issue with Show to Players, but I'm posting it here to keep the Blades-specific bug separate. Description of the Issue When a GM uses the Show to Players button to reveal a character sheet to logged-in players who haven't opened that sheet themselves at least once already, certain sections of the sheet and attributes will become duplicated for everyone viewing. The most noticeable section affected is the common gear list, though others are as well, namely the rows in Friends, Special Abilities, etc., that allow players to enter custom values. Additionally, the Attributes & Abilities tab will show multiple instances of the version and character_sheet attributes. These screenshots show the repetition described: Steps to Reproduce In a campaign using the official Evil Hat BitD sheet: GM and at least one player belong to the campaign. GM makes a character, adds it to All Players' journals, gives All Players edit access. GM closes the character (not sure if this is necessary, but I've been doing it). (crucially) at least one player does not open the character sheet. GM opens the character to the character sheet and hits Show to Players. At this point, the affected sections will be repeated; I believe that one duplicate will appear for every player currently logged in who hadn't previously opened the sheet. All the duplicated sections will have a different prefix in their IDs. I've anecdotally heard similar behavior happening when switching sheet modes (character/crew/faction), and/or when changing playbooks, but haven't been able to reproduce it myself. Possible Cause I have done some troubleshooting on this myself, and found that there's some weird Roll20 behavior that's a likely cause. The sheet uses a listener for the sheet:opened  event to check the existing sheet version and character_sheet  values, and to set them if they don't exist. The same listener checks whether certain preexisting repeating elements already exist (all of the rows affected by this bug), and adds them if not (using a prefix it generates at the same time). I inserted some log statements into my own fork of the sheet and found out that when a sheet gets opened for a player for the first time, the getAttrs  function cannot get any of the attributes it's looking for, even though they were generated when the character was created. The listener on this sheet, therefore, thinks it needs to create all new values/repeating rows. There's probably some async issue with Roll20 kicking off that event before the player's browser is done fetching attribute values from the server. If I'm right about the cause, this is ultimately something that will need to be fixed on Roll20's end, but I'm making sure there's a record of the bug here because I wasn't able to find anything documented for it before.
Forum Champion
Marketplace Creator
API Scripter
No idea what's going on, but you might have to contact Evil Hat if no one comes up with a solution here. It looks to be an official sheet, but an official sheet created by the publisher, not by Roll20.
keithcurtis said: No idea what's going on, but you might have to contact Evil Hat if no one comes up with a solution here. It looks to be an official sheet, but an official sheet created by the publisher, not by Roll20. Oh, for sure, I was more posting this just to document the issue, and so that anyone else running into it knows how to work around it. I'm also working out a possible fix on a fork I made of the sheets repo, but I think ultimately this is going to continue being a problem until the underlying Roll20 operation changes.