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.

I am getting the same error as well, tried a few different characters. Trying to import them into the OGL sheet.
1530709500

Edited 1532711995
D&amp;D Beyond has a new JSON structure for characters. And Roll20 broke some of the 5eOGL attributes when they added the charactermancer. I made a mostly working fixed version here for now:&nbsp; <a href="https://github.com/sillvva/Roll20APIScripts/blob/master/BeyondImporter_5eOGL/BeyondImporter.js" rel="nofollow">https://github.com/sillvva/Roll20APIScripts/blob/master/BeyondImporter_5eOGL/BeyondImporter.js</a> Use the new link below A couple of things that I don't have working correctly yet: Adding spells with attacks to the attacks section automatically causes the spell save DC to break. In this version, you'll need to go through them and manually set up the attacks for your spells.
For reference, the error message generated was:&nbsp; TypeError: Cannot read property 'forEach' of undefined TypeError: Cannot read property 'forEach' of undefined at character.race.racialTraits.forEach (apiscript.js:450:42) at Array.forEach (native) at apiscript.js:444:53 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)
Gods I hope they didn't break this permanently with the sheet changes. I keep getting the same error as Chris H.&nbsp;
1532106090

Edited 1532178653
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. To fix this, change your spellcasting ability score to something different, and then change it back. This appears to fix everything.
Having used the updated version,still getting errors: For reference, the error message generated was: TypeError: Cannot read property 'diceString' of null TypeError: Cannot read property 'diceString' of null at apiscript.js:3131:72 at Array.forEach (native) at apiscript.js:3128:66 at Array.forEach (native) at apiscript.js:3057:57 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)
I pushed an update to version 0.2.11 that should fix it. If it doesn't help, paste the character JSON string into pastebin.com and send me a copy via private message. I'll take a closer look.
Sillvva said: I pushed an update to version 0.2.11 that should fix it. If it doesn't help, paste the character JSON string into pastebin.com and send me a copy via private message. I'll take a closer look. Thank you sooooooo much! I almost lost my mind when they broke 2 good things in one week.&nbsp;
1532419913

Edited 1532502305
Would it be possible to have the imported character be assigned to all players? maybe an option to be toggled so we can chose to make this available to our players? Edit, because maybe someone else wants this: We made this possible with autogm (<a href="https://github.com/nesges/roll20-char-export" rel="nofollow">https://github.com/nesges/roll20-char-export</a>) but it requires the players to rename their characters on dnd beyond before the export to "CharName(Player-Name-on-Roll20)" and they need to type "!autogm" after the import.
1532643149

Edited 1532652626
Denis said: Would it be possible to have the imported character be assigned to all players? maybe an option to be toggled so we can chose to make this available to our players? Edit, because maybe someone else wants this: We made this possible with autogm ( <a href="https://github.com/nesges/roll20-char-export" rel="nofollow">https://github.com/nesges/roll20-char-export</a> ) but it requires the players to rename their characters on dnd beyond before the export to "CharName(Player-Name-on-Roll20)" and they need to type "!autogm" after the import. Posted a major update. Version 0.3.1 (Use the same link) Included in this update: New command structure. Command parameters need to be preceded by a -- (two dashes). Example !beyond --import [JSON] This allows me to potentially include additional parameters in the same command New configuration options Player Journal - None, All Players, and a list of each player are your options. Player Control - None, All Players, and a list of each player are your options.
Hello, I just did found this script, it seem perfect but alas our game use the community sheet, do you know if there is an attempt to make this scrpt community contribued ready?
1533210862
Kryx
Pro
Sheet Author
API Scripter
Not the author, but the community sheet hasn't been maintained for years and does not support the compendium. Supporting it would be a lot of effort for something that is effectively legacy.
Pretty much what Kryx said. Also, I haven't tested it on the Shaped Sheet yet. Will do so soon™.
@Sillvva Thanks for the updates, all working again. Sorry for the late reply, I was travelling and then out sick. But you have made it easy for me again to use both great tools, thanks very much
1533753995

Edited 1533754121
Great API. I'm a pro just for this service. Is this the place for bug reports? I have characters&nbsp;that are from before the new sheet revamp. My chosen skills don't transfer&nbsp;over. My Initiative uses a decimal point. One&nbsp;character had 1.5 and another had 0.1 for initiative. All of my languages are grouped together.
Not sure why it isn't on but you can turn on the chosen skill imports.&nbsp; &nbsp;Type !beyond then click config. In the menu it opens click on debug, then change proficiencies from false to true.
1533963834

Edited 1533964042
Hiya! I'm one of the tech guys for our group (our DM is definitely not tech savvy). Sorry for being new to the API, but I've installed the script for our DM and although it responds in chat from his account, from a player account it cannot be called (DM is Pro, the players are free accounts). I've set the DM up with a Pro account, set the character sheet to 5e OGL, enabled character creation by players, created the BeyondImporter.js API script and saved it, reloaded the Sandbox, and I see the initialization. From the DM's account, I can !beyond and configure, I have configured All Players for Player Journal and Player Control. However, the players cannot !beyond (there is no response). Is this by design or have I done something wrong? EDIT: When I !beyond on my player (free) account, I see the following console messages, and it stops there: 01:06:14.674 app.js?1533659024:358 Finished after going 2 levels deep. 01:06:14.674 app.js?1533659024:358 Begin processing op! 01:06:14.674 app.js?1533659024:358 Inline rolls complete!
shaped importer 0.0.8 crashes the api when fed this json into shaped 19.1.1 <a href="https://pastebin.com/irM2EPvg" rel="nofollow">https://pastebin.com/irM2EPvg</a> Error: TypeError: Cannot read property 'forEach' of undefined TypeError: Cannot read property 'forEach' of undefined at runImport (apiscript.js:10741:20) at apiscript.js:10711:21 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
@PinkRose, odd. I don't remember setting proficiencies option to false by default. It must have been a hold over from the previous version. I'll have that fixed in an update. The language grouping and decimal initiative will be optional in the the next update. @Dejan, I'll have to look into why player accounts are having an issue using the API. However, that's not what those configuration options are for. Those are character sheet permission settings that you can set prior to importing the sheet. It's mostly useful for DMs who are importing their player's characters. @Thorsten, I don't currently support Shaped Sheet. And the old version was broken since the Beyond Sheet Revamp and the Roll20 Charactermancer went live.
Sillvva said: @Dejan, I'll have to look into why player accounts are having an issue using the API. However, that's not what those configuration options are for. Those are character sheet permission settings that you can set prior to importing the sheet. It's mostly useful for DMs who are importing their player's characters. Thanks! Do you know if the game needs to be launched by the DM for API scripts to work for the players, or can they use API scripts such as yours at any time? Asking because we would like to update our characters between games.&nbsp;
1534298393

Edited 1534299443
@Dejan, I'm not sure what the issue with using a player account is. I have not configured it for DMs only. I also tried it as a player and it worked fine. I'll keep looking. I've updated the script to version 0.3.2 with some new configuration options mentioned in my last post.
Script updated to version 0.3.3 Includes a few bug fixes. @Dejan, I'd give this version a try and let me know how it goes. I recommend giving spellcasters with more than 15 spells an extra minute or two after the message pops up. Roll20 takes a little while to process them. And again, make sure you adjust your spellcasting ability once and then change it back. This should fix the missing ability bonus in your spells.
Sillvva said: Script updated to version 0.3.3 Includes a few bug fixes. @Dejan, I'd give this version a try and let me know how it goes. I recommend giving spellcasters with more than 15 spells an extra minute or two after the message pops up. Roll20 takes a little while to process them. And again, make sure you adjust your spellcasting ability once and then change it back. This should fix the missing ability bonus in your spells. Ok, still having trouble with the latest version. The !beyond command on a player account comes out in the GM chat. !beyond --import dumps the JSON in the chat. I will go step by step, so please tell me if I am noobing out. I have two roll20 accounts, my player account and my testing account. Both are free. The GM account is Pro, and he is the creator of the game.&nbsp; The GM has promoted my testing account to GM so that I may maintain the scripts. In my testing account, using Chrome, I have updated and saved the BeyondImporter.js script. The API Sandbox restarted. I launch game and in chat I type !beyond. I get the help screen. !beyond --config works as well. I open Microsoft Edge so that I can log in to my player account on the same computer and can see what is happening side-by-side. I type !beyond, and I see the response not in the player chat, but in the testing (GM) chat. The foreground browser is the player (Bisildore), the background one is the GM (Dejan Test). Notice the JSON in chat in the player browser from a previous attempt at !beyond --import Not sure what I am doing wrong. Will try other scripts as well.
1534469560

Edited 1534469653
Edge is not a supported browser for Roll20; only Chrome and Firefox are supported. Try using the other browser (or an incognito window) to launch your player session. I don't think Edge is the source of this particular problem, but this tip may save you future headaches in testing.
Gotcha, this will be addressed in the next update.
1534474011

Edited 1534477900
Version 0.3.4 is&nbsp;up and it's a big one. - Consolidated JSON objects - Massive performance update for spells - Added support for individual player configurations. @Dejan, let me know how it goes. - Added support for Hexblade weapon - Added support for adhoc expertise - Fixed Eldritch Blast Note if you have multiple players in your game using this script, I recommend only importing one at a time. I also recommend giving spellcasters with a lot of spells an extra minute or two before opening the character sheet.
1534548673

Edited 1534548836
Sillvva said: Version 0.3.4 is&nbsp;up and it's a big one. - Consolidated JSON objects - Massive performance update for spells - Added support for individual player configurations. @Dejan, let me know how it goes. - Added support for Hexblade weapon - Added support for adhoc expertise - Fixed Eldritch Blast Note if you have multiple players in your game using this script, I recommend only importing one at a time. I also recommend giving spellcasters with a lot of spells an extra minute or two before opening the character sheet. Almost there, but not quite! :)&nbsp; I can now !beyond and !beyond --config from the player account, however !beyond --import [JSON] dumps the JSON in the chat. EDIT: It does that for the GM account as well
Working great! is there anyway to change someone else's character into a json&nbsp;string?
Dejan said: Almost there, but not quite! :)&nbsp; I can now !beyond and !beyond --config from the player account, however !beyond --import [JSON] dumps the JSON in the chat. EDIT: It does that for the GM account as well That's odd. I don't have any sendChat functions for that purpose. Are you sure you're using version 0.3.4? If so, send me a link to the JSON in a pastebin. I'll see if I can figure out what's wrong.
PinkRose said: Working great! is there anyway to change someone else's character into a json&nbsp;string? Not that I'm aware of. It just returns a 404, Resource Not Found error.
1534624917

Edited 1534625037
Sillvva said: Dejan said: Almost there, but not quite! :)&nbsp; I can now !beyond and !beyond --config from the player account, however !beyond --import [JSON] dumps the JSON in the chat. EDIT: It does that for the GM account as well That's odd. I don't have any sendChat functions for that purpose. Are you sure you're using version 0.3.4? If so, send me a link to the JSON in a pastebin. I'll see if I can figure out what's wrong. Positive. Screenie below. But I have found the issue! I had a Chrome extension installed called JSONView, which formats JSON responses for readability. I used "view source" to view the original JSON before copy and pasting, but I guess it interfered anyways. Disabled the extension and I have just imported a character! Time to check out if everything came out OK. Thanks for your help! Do you maintain the Shaped sheet variant as well and are the versions synced? I wanted to try both sheets before making a recommendation to my group.
I don't currently maintain the Shaped Sheet script as I've never actually even used it before.
I've been testing the script and it seems to be working great. However, is it possible to preserve existing Attributes and Abilities if overwrite is true? I'm asking because we use custom token abilities on our characters, and the import wipes them out with overwrite enabled. Without overwrite, another sheet is created but the token actions may refer to the old entries on the previous sheet (e.g. if using action IDs). Maybe an option to preserve Attributes and Abilities, unless I am missing something?
Version 0.3.5 is available. The overwrite feature will now update the sheet with a matching name, rather than deleting it and creating a new one. One issue I haven't resolved yet is repeating entries with the same name. For example, on a character with 2 daggers, it is updating the first dagger twice and not each individual dagger. I'll be working on a fix for this. Added support for finesse weapons
1534820714

Edited 1534824627
Sillvva said: Version 0.3.5 is available. The overwrite feature will now update the sheet with a matching name, rather than deleting it and creating a new one. One issue I haven't resolved yet is repeating entries with the same name. For example, on a character with 2 daggers, it is updating the first dagger twice and not each individual dagger. I'll be working on a fix for this. Added support for finesse weapons Oh very cool, thanks! I was seconds away from making a pull request to preserve abilities when the character sheet was deleted, but of course I couldn't figure out how to identify custom vs sheet attributes. Your solution seems more elegant :) EDIT: 0.3.5 seems to work just fine. One note: you mention "Prefix" when it's actually a "Suffix" :) EDIT2: I wanted to remove the Prefix/Suffix, but if I submit an empty string, it still uses the underscore. It should not put in the underscore if the Prefix/Suffix is empty
v0.3.6 Updated overwrite function to take into account repeating items with duplicate names Updated prefix / suffix
1534992533

Edited 1534992559
Sillvva said: v0.3.6 Updated overwrite function to take into account repeating items with duplicate names Updated prefix / suffix Hi! I just tried this out and I'm getting this error when trying to add the script to my module: ReferenceError: suffix is not defined ReferenceError: suffix is not defined at sendConfigMenu (apiscript.js:1006:39) at apiscript.js:1364:21 at Array.forEach (native) at setDefaults (apiscript.js:1341:23) at checkInstall (apiscript.js:1312:9) at apiscript.js:41: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
Apparently one of the lines of code defining suffix was deleted. It's been fixed.
Thanks, it's working now. A few things I noticed: It doesn't seem to import racial features, unless they are somewhere I'm not noticing. I also don't seem to be able to move imported items around like you normally drag things up and down on the lists. Also earlier someone mentioned importing characters that aren't your own, and I was able to import my players' characters who were in my campaign from D&amp;D Beyond.
Certain generic racial features were excluded such as age, alignment, size, etc. If that's something you'd like I could create a new option for them. In order to drag items up and down, you have to be unlock them with the lock button. It still seems to be working for me.
1535067321

Edited 1535067349
Sillvva said: Certain generic racial features were excluded such as age, alignment, size, etc. If that's something you'd like I could create a new option for them. In order to drag items up and down, you have to be unlock them with the lock button. It still seems to be working for me. For racial features, I was more thinking like the tabaxi's feline agility and the aasimar's healing touch, I don't see them on the sheet. (It would be cool to import the description parts, like age, alignment, etc, since there are fields for them on the roll20 sheet, but I don't consider it essential). I'd also like it to show their background feature. As far as dragging up and down, yeah, they are unlocked but I can't move them. I can add you as a DM to my game if you'd like to try it? (I just tested it on two different computers, and both Chrome and Firefox and had the same issue.)
You can go ahead and add me. I might not be able to take a look for a couple days due to the Saving Throw II convention.
1535146526

Edited 1535148518
So, we're actually starting tonight so I'm going to go with what I have right now. When they level up, I'll try importing over the sheets and report back then. :) I'm having the same problem with other sheets so it's unrelated to the import. Must be some other setting I have. Time to dig!
1535261868

Edited 1535262078
Newest version 0.3.6 Same issues as Derek P.&nbsp; 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.
One thing I noticed with having the wrong Spell Save DC/Attack Bonus is that if you open the sheet before it has finished importing, it will incorrectly load the new spells that way. I did that once while it was still in process. The ones that had already been loaded were fine, but the ones that were loading after I opened the sheet were not. v0.3.7 Fixed imports for non-class traits Added support for alignments Added support for Remarkable Athlete Changed support for Jack of All Trades. Rather than using the checkbox built into the sheet, I opted to implement the bonuses manually. Otherwise, a user who had a similar ability from elsewhere (Champion / Bard for instance) would have had a stacking bonus from both abilities when imported.
Getting an error when saving script. Spinning up new sandbox... "Starting webworker script..." SyntaxError: missing ) after argument list
Posted a fix for the bug. I didn't upgrade the version, because it was just a simple syntax error typo.
1535555354

Edited 1535555832
Thank you.
1535576955

Edited 1535577231
Edit: Fixed it after I figured out that I was misinterpreting one of the steps for importing characters. I've put the Script in, and managed to get a help message in game before I suddenly get told that my script has been disabled due to an error. "For reference, the error message generated was: TypeError: Cannot read property 'name' of undefined TypeError: Cannot read property 'name' of undefined at apiscript.js:145:40 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
Ok so I am an absolute noob with this stuff. I was able to get the /json portion to work and then I typed in the !beyond --import. But I feel like I need to do something with the the link to the script that you posted. Do i need to be running some other program?&nbsp; P.S. I apologize if this is a dumb question but I have zero coding knowledge