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

[Script] [Beta] BeyondImporter - Import DNDBeyond Character Sheets.

Dang, unfortunate that I found this just after it stopped working.
Good Morning, I just found this after perusing some of the forums i was intrigued by the current state of affairs of the importer, I noticed that the code can still work, it's just either the CSS styling is out of date currently, given any polish it should be able to properly maintain it's workability given if the script page isn't broken for it.
I just paid for Pro again and decided to try out 0.4, updating from 0.3.9. The importer worked for me for two different characters, one with spells, one without.
Does it still work with the OGL sheet?
The_Car_a_carn said: Does it still work with the OGL sheet? The answers on the previous page of this thread are still accurate, with the exception of what Dejan said about D&D Beyond changing their format.   This hasn't been an issue, except the one time when they had the large character sheet rewrite, which naturally required Robin to change a lot of the script.   I am not aware of any other times that the format changed. The status of the script is as follows: 1) the OGL version of the script (the one referenced in this thread) essentially works.   The Shaped sheet version is abandoned and does not work. 2) the OGL sheet changes that are currently being done are causing the imports to not correctly update any "dependent" or "calculated" parts of the sheet.   Even when the script does the right thing, certain things (like spell attacks) won't update unless you manually refresh them, because the hooks in the OGL sheet no longer react to changes from an API script (as opposed to changes from clicking on the sheet UI.)   There are also other calculated things, such as proficiency or saving throws that are calculated from class or level selections, which may break as soon as the OGL sheet author changes those properties to also no longer react to API changes.   There's no way to tell if this will happen.  The OGL sheet's structure and behavior aren't a published API and the Roll20 person working on it has made it very clear to me that they don't care about breaking API scripts that rely on their internals.   That's when I quit :).  3) there are probably some simple bugs in the current script causing the double calculations Dejan mentioned, which would be easy enough to fix, if there was a developer willing to take over the script.  I made 0.3.9 available in addition to 0.4.0 because such bugs are likely not present in 0.3.9, which is from before the most recent radical change in that area.   This should help narrow down what is going on.   I'm pretty confident these are small bugs introduced when I redesigned how features' bonuses and partial proficiencies are combined, which was a complex change in 0.4.0. 4) there aren't any developers working on this script at the moment, as nobody responded to my call to please take over.   I was the last one.   If anyone is willing to take over, please let me know.
I work somewhat heavily with Node and I was chewing on the idea of taking this on as a personal project -- I find myself with some time and was mulling over a side project or two outside of work anyways. The codebase is pretty readable and I largely understand what it's doing. One thing that concerns me, though, is this: 2) the OGL sheet changes that are currently being done are causing the imports to not correctly update any "dependent" or "calculated" parts of the sheet.   Even when the script does the right thing, certain things (like spell attacks) won't update unless you manually refresh them, because the hooks in the OGL sheet no longer react to changes from an API script (as opposed to changes from clicking on the sheet UI.)   There are also other calculated things, such as proficiency or saving throws that are calculated from class or level selections, which may break as soon as the OGL sheet author changes those properties to also no longer react to API changes.   There's no way to tell if this will happen.  The OGL sheet's structure and behavior aren't a published API and the Roll20 person working on it has made it very clear to me that they don't care about breaking API scripts that rely on their internals.   That's when I quit :). So the sheet is relying on human-triggered events to calculate fields on the sheet, thus breaking functionality when updated from the API since no event is triggered? And the sheet author isn't willing to consider API scripting in their design? It honestly sounds like there's little way forward with the project, then. :/ I may fork the project and poke at it for funsies to see if I can maybe find a way forward that others overlooked, but honestly I doubt I will, and if I do who's to say when that will break too?
I pretty much stink at coding but can read it. I am going to look over it and have performed a fork of my own. No guarantees any of it will do any good, but I'll post if I get it functioning again.
Scott: Yes, that was basically it at the time.   When an event is received by a sheet worker event handler (running in the char sheet context), the event source can be the API, a sheet worker, or interactive use.  There is a field in the event structure to tell you which one it was.  They added some data (new value for change event) to the data structure that will only be present when the event type is not API (different code path.)   This was done to optimize the interactive performance of the sheet, but it wasn't property implemented (the data is not there in the API case.)   So then they changed the sheet to rely on this data being there but didn't address the API case.   It could easily be resolved if you get them to cooperate with you.   All they would need to do is either fix the new fields being added in the Roll20 core (the code path delivering API change events) or change every event handler to check event.source and handle them the slow way if the event source is API.   I didn't have the patience to try to get this to happen. Justin: Cool beans.    Both: Go ahead and fork away.  I still have access to the original repo so I can pull your stuff even if we can't get Robin's attention to add you to the repo.
1560211722
Victor B.
Pro
Sheet Author
API Scripter
Ammo, I sent you a private PM.  I'll look at this.  Also I'd like to add CombatTracker/StatusInfo to "forks".  Both scripts are now stable.  They had issues causing intermittent API server crashes.  I've never forked off anything before, not a big github user.   However, I'm not a beyondd&d user, so if anyone has sample export that's currently failing OR acting strangely please PM me and I'll send you my email.  You can send me something that's failing.   I'll start with OGL and time allowing, see if the shaped can get going again.  
Victor: Its possible to view character sheets on the site without an account, you just need a link to a character page and to view the json you can just add /json at the end. Here's an example:&nbsp; <a href="https://www.dndbeyond.com/profile/Ayrshire/characters/12783131" rel="nofollow">https://www.dndbeyond.com/profile/Ayrshire/characters/12783131</a> &nbsp;. Let me know if I can help with any other testing,&nbsp;I'd love to see the shaped sheet importer working .
You can't see the Json for characters that you aren't the owner or creator of.
Justin M. said: You can't see the Json for characters that you aren't the owner or creator of. If you are the DM of the game you can view and get the JSON for each of your players.
1562501074

Edited 1563205936
DM Maru
Translator
List of things to do after importing: - delete action entries for weapons - change every weapon in equipment to "has an attack" - reset level (if starting level is not 1) - set spell attribute - change every spell from "output: Attack" to "output: Spellcard" and then back to attack That's it?
1562508007
Victor B.
Pro
Sheet Author
API Scripter
I'm getting about ready to start this.&nbsp; To set some expectations, my first goal is to get sheets to load without error.&nbsp; There's no guarantee that I'll do much of anything beyond that.&nbsp; There have been changes to the Roll20 Sheets as well as BeyondD&amp;D that have been causing these issues. There may also not even be an ability anymore to do much more than a clean load.&nbsp; &nbsp;&nbsp;
I was trying to use this but I got a message stating: (Your scripts are currently disabled due to an error that was detected. Please make appropriate changes to your scripts and click the "Save Script" button and we'll attempt to start running them again. For reference, the error message generated was:&nbsp; SyntaxError: Illegal break statement ) Any advice as to what might have happened or what I need to do/change to fix the issue?
Victor, if you're still looking for a character or two that error out, I've got one that continually breaks the script. Others are importing fine, but not this one.&nbsp;
1567101249
Victor B.
Pro
Sheet Author
API Scripter
Ok, I haven't had time to even look at this script yet.&nbsp; I'll reach out when I'm ready
I just found this and absolutely love it. I got pro just to use it, and its amazing.&nbsp; I imported a level 4 warlock and the main thing I find not to have moved over are the spells. They converted in the spells list, but not in the attacks list so I can't click on it to roll for damage automatically. Has anyone seen this? Can I fix it somehow?
Patrick: &nbsp; Read back in this thread. &nbsp; It is discussed there. &nbsp; You can work around it by just visiting each spell in the sheet and switching “has attack” off and back on. &nbsp;&nbsp;
I'm trying to import my Aasimar with a UA subclass but its not working at all. I'm following the steps to import it but its not happening.
Hey everyone. I am getting an "possible infinite loop detected error" every time I've ran this today. I've disabled the script, deleted it and reinstalled it. etc.&nbsp; Not sure what else to do.&nbsp; &nbsp;
1575951305
Victor B.
Pro
Sheet Author
API Scripter
At one point I committed to taking this over from Robyn but I haven't had the time.&nbsp; But I have to ask this question?&nbsp; What is the issue with re-entering your DND beyond character sheet manually into Roll20?&nbsp; Use charactermancer.&nbsp; Not that hard.&nbsp; BTW, UA is not supported.&nbsp;&nbsp;
Or using an addon like Beyond 20, makes this completely pointless.
Just wow. &nbsp; Victor, Jerry: &nbsp;How about you try to not poop all over other devs' work? &nbsp; A lot of hours went into this tool and it was pretty great before the OGL sheet changes broke it permanently. &nbsp; So maybe you don't need to come on this thread and say everyone but you is stupid and wasted their time. &nbsp;A bunch of folks used to use this tool, because they prefer to keep their master copy of their characters in Beyond and use the Beyond char generation / level ups. &nbsp;&nbsp; And no, Beyond20 is absolutely not equivalent. &nbsp; Because it does not do the dice rolling inside a char sheet that the Roll20 GM can see and validate, you can easily cheat whatever dice rolls you want. &nbsp;All you have to do is fudge the client-side scripts a little bit and the DM will never know. &nbsp;The true equivalent won't come until Beyond does their own dice rolling rooms / virtual table top thingy, so that the dice rolls are in a secure sandbox together with the char sheets. &nbsp;That way, you can reasonably claim that all rolls were made in front of a DM for Adventurers League, for example. Gonna now unsubscribe this thread, because that was really annoying. &nbsp;I was keeping an eye on it in case anyone taking over needs a hand. &nbsp;
1576167461

Edited 1576167629
Actually it does Mr. Ammo. If you want proof of it's abilities you can see it on my stream. And if someone is doing that, well damn, cheating at RPGs is just the lowest form of skum. Also my comment was in no way meant to be mean or ugly, I was only pointing out that because this API is not supported any longer there is other means to use DnDBeyond with Roll20. Sorry if it hurt your feelings, but not really sorry.
1576194954
Victor B.
Pro
Sheet Author
API Scripter
I'm not trying to down anyone's efforts. I'm just wondering about need. If the need is there I'll eventually have time to take this on and work through remaining bugs.
1576298743
Victor B.
Pro
Sheet Author
API Scripter
So Ammo bailed.&nbsp; Can someone convince me of need of this versus re-entering everything into charactermancer?&nbsp; &nbsp;I'm willing to fix this, but I need to be convinced of need
Someone pointed to Beyond20 chrome extension.&nbsp; I haven't taken it through its paces yet, but doesn't it "pretty much" do what this was doing?&nbsp; (I love using D&amp;D Beyond, I have almost all the content, and re-buying content just for roll20 isn't a nice prospect..
1576357222
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Some thoughts on this issue. A character importer would have value for: Groups where only a few members (probably players) have purchased assets on D&amp;DBeyond, but the GM is invested in Roll20. A GM has a reasonable expectation to see and have access to all characters in their game. A DDB player can import their character into an R20 game and work with it from there. Working with APIs and Macros. A don't know the details, but I doubt that an R20 macro or ability can read all of the necessary hooks to cover all situations a GM has set up to automate their game. I use all manner of chat menus for instance to quickly resolve many rules and settings issues. These require access to resident character sheets. I know this because I had to re-write many of them when I switched from the Shaped sheet to the Official sheet. This point is really big and far-reaching. Getting help or assistance from R20 staff or the user base. The number of people using a hybrid solution is by definition smaller than the people using a "pure" solution. It would be harder to find people who can help you solve a problem if you constrain that to a smaller population. And realistically, R20 is (and should be) under no obligation whatsoever to provide support when something breaks. I'm sure there are more reasons, but the ability to simply click on something on a DDB character and send to chat is only a small part of the activity of running a Roll20 game.
1576387436
Victor B.
Pro
Sheet Author
API Scripter
Wait, I thought this was an importer.&nbsp; You copy JSON out of DND Beyond and import into Roll20.&nbsp; Keith, I'm reading much more than that in your post.&nbsp;&nbsp;
1576397604
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
No, that's what I'm talking about: the value of importing the sheet into Roll20. It's my understanding that the Beyond20 extension allows you to use a DnDBeyond character from outside the game, using it to send rolls to Roll20. The contention was that Beyond20 would make an importer superfluous, and I was showing reasons that users might want to import, rather than just send messages from an external character. Someone correct me if any of these assumptions is incorrect. Also, I'm not sure how much talking about Beyond20 is proper on the forums. I trust a mod or dev will caution us if it is getting outside the bounds of discussion.
Excellent point on the advantage of a "native" character on Roll20 over housing it somewhere else.&nbsp; I would use an actual importer into Roll20 over what Beyond20 is, but not so badly to be a primary reason for someone to go through the effort to keep it updated.&nbsp; (All the cool custom stuff you are doing within Roll20 is pretty cool, but I don't see myself using it anytime soon.)
1576441921
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Personally, I don't need either option as our group doesn't have any investment in DnDB. I was approaching this to answer the posited question over why such functionality might be advantageous.
1576471498
Victor B.
Pro
Sheet Author
API Scripter
Sorry Ammo left this, but one of the rules of ANY IT development (Information Technology) is determining need.&nbsp; I'm not feeling this need yet.&nbsp; Why not re-enter into Roll20 from DND Beyond?&nbsp;&nbsp;
1576473028
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Same reason as any computer project: convenience? I'm not trying to convince you, BTW. Like I said, I've got no dog in this game. You are the master of your own time, and you make great stuff for the community.
There is a D&amp;D sever that I am a part of, which has a mixture of people that use DnDBeyond to create characters, but the games are mostly played in Roll20. As a Dm for that sever I have people enter the information in Roll20 so I can have access to it without having to look at another page. If there was an easier way for them or myself to import the characters into the lobby it would help. Though it hasn't been a problem so far.
1576650933

Edited 1576650972
Victor B.
Pro
Sheet Author
API Scripter
&nbsp;I have two responses.&nbsp; No one is really using this.&nbsp; Sorry ammo left, but it's pretty clear
Hey Victor,&nbsp;&nbsp; Both myself and another DM that I play with use this script in our current campaigns.&nbsp; I can understand your point on asking what the ROI on doing this work would be.&nbsp; For me personally, it saves me a ton of time and reduces the burden on many of my players that already find some of the features of Roll20 to be cryptic.&nbsp; Selfishly, this script gets me out of having to manually fix their attempts at updating their sheets manually.&nbsp; Also, it ensures that their sheets are updated prior to getting into a session - because I control it :)
1581329900

Edited 1581329923
OK, two questions, pertinent to me as I just picked up an online game after many months... 1) After the conversations, it isn't clear to me whether the current code is still broken?&nbsp; I tried downloading what I thought might be the newest version.&nbsp; It didn't give errors but the numbers weren't working well (all the skills were appearing with the wrong bonuses I believe...)&nbsp; Is the GitHub location the place to go? 2) I poked at the Beyond20, but without coordinating with others (a bit of a leap) all its functionality isn't clear.&nbsp; My big question is... can I see any of my players' stats (I'm the DM) from within Roll20 or do I need to be using DnDBeyond as well in order to access most of their "character sheet" information.
For me it worked too last week but with a lot of after work. But I noticed that a few things are fixing themselfs if I change something on the settings page like the spell casting ability.&nbsp; I think this plugin is worth rescuing as it took an incredible amount of work to code and it is a great way for non roll20 players to participate with not too much effort. I've looked into the dndbeyond json structure and it is insane! I dont know how much sanity i lost simply by trying to figure out where to find all attribute stats :D But right now the only chance of a revival is a solid bug list i think.
1581363955

Edited 1581364200
If everyone has DDB then you just need to create a campaign there and have them create the characters under that campaign (This gives you full access to their Character Sheets). Then on Roll20 all you would need is a sheet with the exact same name as DDB and a token, when they do something on their DDB character sheet and as long as they have Roll20 open it will roll it, it will even adjust HP as long as they&nbsp; have the same name in both places. It's actually quite easy to use even for a novice. Then with experience you can do custom rolls and add in bless and whatnot to your rolls.
Does it run on android/iOS chrome as well?
1581459767

Edited 1581460848
Can you use add-ons on mobile device? Ok yes, I got it to work with the Kiwi browser.
1583701809

Edited 1583702241
Hi there, So does any scripts works at all? Tried, but no luck
1583730345

Edited 1583730437
Victor B.
Pro
Sheet Author
API Scripter
I'm seeing a few responses here saying there's need.&nbsp; I still don't understand why you can just retype everything into Roll20.&nbsp; Why the need for an importer.&nbsp; This isn't integration of two APIs.&nbsp; This is integration of two different systems and changes to one break the other, which has already happened.&nbsp; This is a situation making integration challenging
Victor B. said: I'm seeing a few responses here saying there's need.&nbsp; I still don't understand why you can just retype everything into Roll20.&nbsp; Why the need for an importer.&nbsp; This isn't integration of two APIs.&nbsp; This is integration of two different systems and changes to one break the other, which has already happened.&nbsp; This is a situation making integration challenging Well, what can be automated, should be if it's repeated process. All of us can manually retype, but it doesn't mean we want to spend time on it. Better to run script and spent time on other stuff, like prep for the game and so on. I'm currently running 2 tables, total 10 characters excluding DM's characters. I just don't want to spent several evenings on transfer, if it ca be done in less than 15 minutes. Yes, this is challenging, unfortunately there is no easy way (retyping manually is not easy way, if u have a lot of characters to transfer) for this.&nbsp;
Kejid said: Hi there, So does any scripts works at all? Tried, but no luck I'm using it now. The OGL version works.&nbsp;
Professor Chaos said: Kejid said: Hi there, So does any scripts works at all? Tried, but no luck I'm using it now. The OGL version works.&nbsp; What sheet are you using on Roll 20? I don't see the OGL version anymore.&nbsp;
1584636322
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
The OGL sheet was officially renamed last year to D&amp;D 5th Edition by Roll20 . Despite this, the old name is an ingrained habit and continues to be used by both users and developers, as well as official documentation.