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.

1535749562

Edited 1535749692
PinkRose said: Newest version 0.3.6 Same issues as Derek P.  Blocks are unlocked but can't move anything. And Only Class traits are copied over. No Race or Background features. And spell DC was still wrong, the old bug, until i changed to a new ability and changed back. Love the work though. Such a time-saver. Hey, so I figured out the problem with that, it was that I had the option "Alphabetically sort Token Actions" chosen in my in-game settings, and that's what was stopping moving them. It's a new feature. Also, I saw that you asked earlier about importing other peoples' json. If you can make a campaign on D&D Beyond and the players join that campaign with their characters, it will allow you to access them and their json for the script.
Thanks for looking into the json issue. The problem, as I have discovered, is that I'm the tech guy, not the DM. Only the DM can get the json files. Once we get copy characters or something like that, it should be just fine. But right now, it doesn't work for non-DM.
I'm running into an interesting issue, thought it may be Chrome related. Every time I past the json contents from Beyond into the Roll20 chat to import it, it freezes roll20. Anyone else running into this issue?
Back from my convention! James R. said: I'm running into an interesting issue, thought it may be Chrome related. Every time I past the json contents from Beyond into the Roll20 chat to import it, it freezes roll20. Anyone else running into this issue? If you send me a pastebin link with your character JSON, I can take a look.
I have the same problem.  If I try to paste the same thing a second time, it works.
When I paste the !beyond import JSON into the chat, nothing happens it doesn't even pop up in the chat. What am I doing wrong?
1536470740
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Redmon, do you have a Pro level subscription, or are you in a campaign created by a Pro user? You need to be able to install the script.
Redmon said: When I paste the !beyond import JSON into the chat, nothing happens it doesn't even pop up in the chat. What am I doing wrong? It's !beyond --import [Character JSON here without the brackets] The --import was a change a few versions ago. @Sillvva It's been working for my group using 0.3.6. However having just leveled up, I updated my character using Overwrite, and the HP did not update. There wasn't a Proficiency Bonus change for this level so I can't say if other numbers are wrong (yet). However, new spells did appear.
No matter what i do this is what i am getting, the menu will come up after typing !beyond, but im assuming after trying to run the import its breaking somewhere in the process...
Update: it worked once, didnt change anything, not working for any more characters, i dont understand.
Another update: looks like its something involving the "background" portion of the sheet in D&D beyond that the script doesnt like when it tries to import, buddies modified what they had in it and the import works fine, very strange.
Marco H. said: Another update: looks like its something involving the "background" portion of the sheet in D&amp;D beyond that the script doesnt like when it tries to import, buddies modified what they had in it and the import works fine, very strange. Our group has been using Sillvva's version (see quote below for link, and mind the different options from Robin's, e.g. --import) with the 5e OGL Character sheet, and we have not seen this kind of problem. Only minor glitches, such as HP not refreshing. Sillvva &nbsp;said: Updated my version of the script to version 0.2.10: ( Use the new link here ) <a href="https://github.com/sillvva/Roll20-API-Scripts/blob/master/5eOGL-DND-Beyond-Importer/BeyondImporter.js" rel="nofollow">https://github.com/sillvva/Roll20-API-Scripts/blob/master/5eOGL-DND-Beyond-Importer/BeyondImporter.js</a> Edit June 21: Link fixed. For some weird reason, Roll20 decided it should point to the old URL. Added: Spell attacks and healing to the core page. Healing takes into account the Disciple of Life feature. A couple of things that I don't have working correctly yet: Adding spells with attacks/healing to the attacks section doesn't seem to add the spellcasting ability modifier correctly to attack rolls, save dcs, damage rolls, or healing. It appears to show it set up correctly in the attack, but it's not being added to the math.&nbsp; To fix this, change your spellcasting ability score to something different, and then change it back. This appears to fix everything.
1537084813

Edited 1537085929
Justin M.
KS Backer
Mine broke too. Here is the errors: (I tried it with both a level 1 and a level 20 character) TypeError: Cannot read property 'normal' of undefined TypeError: Cannot read property 'normal' of undefined at apiscript.js:105:55 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at /home/node/d20-api-server/api.js:1634:12 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Zd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400
Hey guys, sorry for the break. Been very busy lately with local gaming club starting up again at our college, conventions, etc. @Dejan I will look into why hit points aren't updating. @Justin M. I'll also look into that error, but I already have a hunch. If you could put the JSON into pastebin.com I could test it out and get back to you.
It's too big for Pastebin. Here's a link from my OneDrive: Unformatted Formatted
1537312941

Edited 1537316624
Justin M. said: It's too big for Pastebin. Here's a link from my OneDrive: Unformatted Formatted Hmm, it looks like everything imported correctly with no errors. Are you using the latest version of the script? Updated to version 0.3.8 with the fix for hit points and support for Warforged Integrated Protection
1538014031

Edited 1538014822
v0.3.9 - Fixed missing skill in variable - Updated attack range - Added: --- Bonus saving throw proficiencies --- Saving Throw Bonuses --- Champion's critical range --- Defense Fighting Style --- Great Weapon Fighting Style --- Archery Fighting Style --- Dueling Fighting Style --- Two-Weapon Fighting Style --- Initiative advantage/disadvantage
Hitting this in my game when I try to use the latest version of the script 0.3.9: ReferenceError: inPlayerJournalsButton is not defined ReferenceError: inPlayerJournalsButton is not defined at sendConfigMenu (apiscript.js:5217:86) at playerObjects.forEach (apiscript.js:5539:21) at Array.forEach (native) at setDefaults (apiscript.js:5516:23) at checkInstall (apiscript.js:5487:9) at apiscript.js:3962:9 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at checkForReady (/home/node/d20-api-server/api.js:1438:12) at /home/node/d20-api-server/api.js:1518:9
Matt said: Hitting this in my game when I try to use the latest version of the script 0.3.9: ReferenceError: inPlayerJournalsButton is not defined ReferenceError: inPlayerJournalsButton is not defined at sendConfigMenu (apiscript.js:5217:86) at playerObjects.forEach (apiscript.js:5539:21) at Array.forEach (native) at setDefaults (apiscript.js:5516:23) at checkInstall (apiscript.js:5487:9) at apiscript.js:3962:9 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at checkForReady (/home/node/d20-api-server/api.js:1438:12) at /home/node/d20-api-server/api.js:1518:9 I posted an update, let me know if that fixes it for you.
That fixed it! thanks! :D
SyntaxError: Unexpected token h in JSON at position 0 SyntaxError: Unexpected token h in JSON at position 0 at JSON.parse (&lt;anonymous&gt;) at on (apiscript.js:122:38) at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at /home/node/d20-api-server/api.js:1634:12 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Zd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) I had api script library open in a seperate tab fom the game, and using the "!beyond --import dndbeyond.characterurl/json" command would show this while seemingly nothing happened within the game. I'm using version 0.3.9
I still had issues with 0.3.8 but 0.3.9 is working fine.
1538285030

Edited 1538285440
I was able to get this working in 0.3.9 as well, but there are a few issues. Pre-fix is functioning as Suffix as mentioned above. Suffix doesn't do anything. Imported characters are missing stat scores and modifiers Edit: Looking closer, it looks like stat scores are there. They just display as all "10"s until I interact with them then they update properly.
1538447514

Edited 1538447767
Sillvva said: v0.3.9 - Fixed missing skill in variable - Updated attack range - Added: --- Bonus saving throw proficiencies --- Saving Throw Bonuses --- Champion's critical range --- Defense Fighting Style --- Great Weapon Fighting Style --- Archery Fighting Style --- Dueling Fighting Style --- Two-Weapon Fighting Style --- Initiative advantage/disadvantage Thanks for the hard work! One of my players has reported a few issues: - Monk AC is incorrect, it does not consider the WIS bonus from Unarmored Defense - Monk using a simple weapon like a quarterstaff and shortswords should apply Dex or Str, whichever is greater, from this rule: "You can use Dexterity instead of Strength for the attack and damage rolls of your unarmed strikes and monk weapons." - Versatile weapons on characters with no shields should calculate damage based on two handed use (e.g. monk with quarterstaff) - The saving throws are off for the Monk, the proficiency bonuses do not seem to be applied
Please forgive my newbie-ness.&nbsp; Just trying to sort out Roll20 for the first time.&nbsp; I ran a game last weekend using just the bare bones stuff so am now trying to "upgrade" what I do. Would love to import characters from DNDBeyond if possible.&nbsp; I tried following a couple methods found through this discussion (and others using the same import scripts) but no avail yet. Do I need to "install" somehow the !beyond&nbsp; script?&nbsp; I've also tried making a new game with the "custom" character sheet (copying and pasting the HTML, CSS, and translation scripts...) When I run the script successfully, where will the character appear?&nbsp; (in the journal?) Any more detailed advice is appreciated.&nbsp; Apologies for my lack of understanding and inability to find more specific instructions...
1538535159

Edited 1538535329
Matt Carlson said: Please forgive my newbie-ness.&nbsp; Just trying to sort out Roll20 for the first time.&nbsp; I ran a game last weekend using just the bare bones stuff so am now trying to "upgrade" what I do. Would love to import characters from DNDBeyond if possible.&nbsp; I tried following a couple methods found through this discussion (and others using the same import scripts) but no avail yet. Do I need to "install" somehow the !beyond&nbsp; script?&nbsp; I've also tried making a new game with the "custom" character sheet (copying and pasting the HTML, CSS, and translation scripts...) When I run the script successfully, where will the character appear?&nbsp; (in the journal?) Any more detailed advice is appreciated.&nbsp; Apologies for my lack of understanding and inability to find more specific instructions... The only things needed are the script (in your API section) and having a game with the 5th Edition OGL Character Sheet. I'm not sure what you mean by custom sheet and CSS, that's not needed and may not work with the script since it's designed for the 5th Edition OGL Character Sheet. There is also a version of the script for the 5e Shaped sheet, but it's more out of date. !beyond --import [Character JSON without these brackets] It should appear in the Journal with the name it has in D&amp;D Beyond. If in !beyond --config you have overwrite, it will update character with the same name, otherwise it makes another copy. HTH
1538541621
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
On a more basic level, to install a script, follow the directions from the wiki, here . If you are not a programmer, only read the first few paragraphs. The rest is more technical info than you need right now. The text for this script (what you will need to paste onto your API page as described above) is linked this post on this thread. When you get to that page click the "raw" button and wait for the page to completely load. Copy all of that text. That is the script you need to paste into your API page. Once your sandbox restarts, you can follow all of the instructions in the script's documentation. I provide this info because it took me a long time to discover when I first became a Pro. There's no "scripting page for non-scripters".
Thanks much.&nbsp; Will see if I can get it to work. (I can program, but am a bit rusty, and a good portion of programming is knowing the particular programming language used...)&nbsp; keithcurtis said: On a more basic level, to install a script, follow the directions from the wiki, here . If you are not a programmer, only read the first few paragraphs. The rest is more technical info than you need right now. The text for this script (what you will need to paste onto your API page as described above) is linked this post on this thread. When you get to that page click the "raw" button and wait for the page to completely load. Copy all of that text. That is the script you need to paste into your API page. Once your sandbox restarts, you can follow all of the instructions in the script's documentation. I provide this info because it took me a long time to discover when I first became a Pro. There's no "scripting page for non-scripters".
Thanks for the advice, stuff seems to have imported perfectly. (the pointer to the script API page was what I was missing.)
1538591880
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
How to install a script needs to be made more explicit to new users.
I've run into an error trying to run the importer on my game.&nbsp; It's a new Dragon Heist campaign, and I've installed some other scripts as I get things up and running, but my players were definitely excited to get this one working.&nbsp; Here's what I have installed, just in case there's some conflict with that: BeyondImporter.js GroupInitiative GroupCheck HTML Builder Welcome Package 5th Edition OGL by Roll20 Companion CombatTracker StatusInfo TokenMod Concentration When I run the script it gives no feedback, but does create the character.&nbsp; The sheet, however, is empty other than the character name.&nbsp; The API console gives the following error trace: TypeError: Cannot read property 'normal' of undefined at apiscript.js:105:55 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at /home/node/d20-api-server/api.js:1634:12 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Zd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 The JSON for the character I'm trying to insert is here:&nbsp; <a href="https://gist.github.com/arclyte/8cf4a233d1beea9fb13a02bdff59b16e" rel="nofollow">https://gist.github.com/arclyte/8cf4a233d1beea9fb13a02bdff59b16e</a> Let me know if there's anything else you need from me to diagnose this.&nbsp; Thanks!
I'm getting a similar error as well. I have a new campaign with no other scripts added. Here's the error: TypeError: Cannot read property 'normal' of undefined at apiscript.js:105:55 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at /home/node/d20-api-server/api.js:1634:12 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Zd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 Here's the json:&nbsp;<a href="https://www.dndbeyond.com/profile/Quietly_Rioting/characters/4428923/json" rel="nofollow">https://www.dndbeyond.com/profile/Quietly_Rioting/characters/4428923/json</a>
no problem here :) just some spells not work its tells me thnx
I get the same issue... looks like when it's trying to parse speed? Tom P. said: I'm getting a similar error as well. I have a new campaign with no other scripts added. Here's the error: TypeError: Cannot read property 'normal' of undefined at apiscript.js:105:55 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at /home/node/d20-api-server/api.js:1634:12 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Zd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 Here's the json:&nbsp; <a href="https://www.dndbeyond.com/profile/Quietly_Rioting/characters/4428923/json" rel="nofollow">https://www.dndbeyond.com/profile/Quietly_Rioting/characters/4428923/json</a>
1538841019

Edited 1538841370
I notice that in that JSON there are no dashes in front of the import command, it should start like this "!beyond --import ..." Are you sure you are using Sillvva's version? By adding the dashes in front of "import" it worked just fine for me with your JSON. James A. said: I've run into an error trying to run the importer on my game.&nbsp; It's a new Dragon Heist campaign, and I've installed some other scripts as I get things up and running, but my players were definitely excited to get this one working.&nbsp; Here's what I have installed, just in case there's some conflict with that: BeyondImporter.js GroupInitiative GroupCheck HTML Builder Welcome Package 5th Edition OGL by Roll20 Companion CombatTracker StatusInfo TokenMod Concentration When I run the script it gives no feedback, but does create the character.&nbsp; The sheet, however, is empty other than the character name.&nbsp; The API console gives the following error trace: TypeError: Cannot read property 'normal' of undefined at apiscript.js:105:55 at eval (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:65:16) at Object.publish (eval at &lt;anonymous&gt; (/home/node/d20-api-server/api.js:151:1), &lt;anonymous&gt;:70:8) at /home/node/d20-api-server/api.js:1634:12 at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) at Zd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 The JSON for the character I'm trying to insert is here:&nbsp; <a href="https://gist.github.com/arclyte/8cf4a233d1beea9fb13a02bdff59b16e" rel="nofollow">https://gist.github.com/arclyte/8cf4a233d1beea9fb13a02bdff59b16e</a> Let me know if there's anything else you need from me to diagnose this.&nbsp; Thanks!
@Sillva Initiative does not seem to take into account the Alert feat. Would you like future issues be reported on github?
Hey all, back from my week-long trip. I've started writing down some of the issues/missing features, and will work on them soon. @James A, Tom P, and Justin W., It looks like you're using the original version in the opening post. Try this version here: <a href="https://github.com/sillvva/Roll20-API-Scripts/tree/master/5eOGL-DND-Beyond-Importer" rel="nofollow">https://github.com/sillvva/Roll20-API-Scripts/tree/master/5eOGL-DND-Beyond-Importer</a>&nbsp; And make sure you include the two dashes before the word import (example: !beyond --import)
1539072815

Edited 1539072859
Robin
API Scripter
Hey Sillvva, I have just tested your version and great job on improving/updating the script! I'm getting back to API Scripting, and will be updating/improving my other script. Let me know if you want to keep maintaining this one or rather have me take over again. You can also add me on Discord if you want:&nbsp; Atheos#1095 Edit: I shall add your updated version to the first post.
Hey Robin. &nbsp; &nbsp; Good to know you are back! &nbsp; I was just starting today to contribute some code to the importer, and I have pull requests against Sillvva's fork. &nbsp;So after you guys figure out what you want to do, I would love to contribute fixes to the new master (branch, not person!) Cheers.
Robin said: Hey Sillvva, I have just tested your version and great job on improving/updating the script! I'm getting back to API Scripting, and will be updating/improving my other script. Let me know if you want to keep maintaining this one or rather have me take over again. You can also add me on Discord if you want:&nbsp; Atheos#1095 Edit: I shall add your updated version to the first post. I'm willing to send pull requests for new features / fixes if you want to take over the official repository. I've got a back log of things to include.
1539151462
Robin
API Scripter
Sillvva said: Robin said: Hey Sillvva, I have just tested your version and great job on improving/updating the script! I'm getting back to API Scripting, and will be updating/improving my other script. Let me know if you want to keep maintaining this one or rather have me take over again. You can also add me on Discord if you want:&nbsp; Atheos#1095 Edit: I shall add your updated version to the first post. I'm willing to send pull requests for new features / fixes if you want to take over the official repository. I've got a back log of things to include. That's also an option, let's do that so we can improve it both.
ok just a heads up, Sillvva's repo doesn't appear to be a fork of yours, so we are going to lose commit history maybe you could just commit Sillvva's most recent released version on your repo (or rather have him PR it) and then the rest of us can fork that and submit our pull requests? &nbsp; is that ok? I have a rather "structural" pull request against his repo at the moment, which I think improves matters greatly but requires buy in from you guys :) <a href="https://github.com/sillvva/Roll20-API-Scripts/pull/7" rel="nofollow">https://github.com/sillvva/Roll20-API-Scripts/pull/7</a>
1539184375

Edited 1539184597
Robin
API Scripter
I have indeed commited Sillvva's latest version to my repo. And will put the links in this opening post back to that again. Edit: Also, Sillvva, shall I just make you a collaborator of my repo? That way you can just push commits to BeyondImporter.
Cool. &nbsp;I verified that the fixes I contributed to Sillvva's version are in what you have. &nbsp;The remaining items that didn't make it in I will shop to you as pull requests so you can see if you like them?
Robin:&nbsp; Pull request sent for big changes that sillvva accepted after you merged already. &nbsp; I also transplanted the remaining issues from sillvva's repo to your repo (closed and linked originals.)
1539199515
Robin
API Scripter
It has been merged :)
oh yeah? well than have some more pull requests!
1539204273

Edited 1539204288
Robin
API Scripter
It has been done, sir!
1539224713

Edited 1539225854
Robin said: I have indeed committed Sillvva's latest version to my repo. And will put the links in this opening post back to that again. Edit: Also, Sillvva, shall I just make you a collaborator of my repo? That way you can just push commits to BeyondImporter. Sounds good! I've got a few additions yet. Edit: I've sent a pull request for support for versatile and monk weapons.