GithubHelp home page GithubHelp logo

kakaroto / beyond20 Goto Github PK

View Code? Open in Web Editor NEW
470.0 24.0 134.0 18.7 MB

D&D Beyond Character Sheet Integration in Roll20

License: GNU General Public License v3.0

JavaScript 92.62% HTML 0.24% CSS 7.13%

beyond20's Introduction

Beyond20: D&D Beyond & Roll20/Foundry VTT Integration

Beyond20 is a browser extension that integrates the Character Sheet from D&D Beyond into Roll20, Foundry VTT & Discord.

Install and Use

Install

Chrome

To install Beyond 20 on Chrome, simply head over to the Chrome Web Store and click "Add to Chrome" to get it installed.

Firefox

To install Beyond 20 on Firefox, simply head over to Firefox Extensions and click "Add to Firefox" to get it installed.

Use

Open Roll20 or Foundry VTT in a tab of Chrome or Firefox then your character sheet in D&D Beyond in another tab. If you are using Chrome with Foundry VTT, then you need to click on the Beyond20 icon in the Chrome window's toolbar to activate Beyond20 for your FVTT installation.

Click on the item you want to roll, whether it's initiative, a skill, ability or saving throw check, a weapon or spell attack, a class/racial feat or trait or hit dice, death saving throw, etc... When the D&D Beyond character sheet shows the information about the item you selected in its side panel, there should be a Beyond20 button or B20 icon that appear in the side panel to make the roll. It will automatically pick up on what was selected, and send the roll to all Roll20 or Foundry VTT tabs open.

If a spell/item/action/feat description contains a dice formula (2d10 + 3 for example) or a modifier formula (+ 3 for example), that text will be underlined and a B20 dice icon will appear next to it. Click on the formula or the dice to make the roll in the Roll20 tab.

If you click on the Beyond20 button in the toolbar, it will pop open the quick settings menu. Note that the quick settings menu will be different whether you are on the VTT tab or D&D Beyond tab, and it will contain the per-character configuration.

Build

You need to install the build dependencies by running in Beyond20's source directory: npm install

You can then build the files using the command npm run build

Developer Mode Installation

All you need is to load the extension from the source :

  1. If you already have Beyond20 installed from the Chrome or Firefox stores, disable it.
  2. Download the extension for either Chrome or Firefox
  3. Extract the zip file in a directory of your choice

Chrome

  1. Go to Chrome Extensions page (Menu->More Tools->Extensions)
  2. Enable Developer Mode (Top-right corner)
  3. Click on the 'Load Unpacked' button
  4. Select the Directory where you extracted this extension

Firefox

  1. Open "about:debugging#/runtime/this-firefox" in Firefox
  2. Click "Load Temporary Add-on"
  3. Select the manifest.json file from the extension's directory

License

This extension is released under the GPL v3 license. Read the LICENSE file for more details.

The icon image is based on a public domain image from openclipart. I downloaded it from wikimedia and subsequently modified it.

The roll badge icons were designed and created by Jerry Escandon

The donation icon is a public domain contribution by Fission Strategy, US, downloaded from thenounproject

The 'up' arrow (docs/images/up-arrow.png) used in the screenshots page is a public domain image shared by OCAL on clker.com

The options page was copied in part from the D&D Beyond Toolbox extension available here. The html and css files are licensed under the MIT license which is provided in the LICENSE.MIT file

The condition icons (FVTT-module/beyond20/conditions) are for the most part taken from https://game-icons.net/ and licensed under a Creative Common CC-BY 3.0 License. You can find each icon's source and respective license in the FVTT-module/beyond20/conditions/LICENSE file

beyond20's People

Contributors

adriangaro avatar aeristoka avatar anthonyvadala avatar bracciata avatar cashoes avatar cube-o avatar flangelier avatar isaacabramowitz avatar ivangirderboot avatar jaltepeter avatar jaypoulz avatar jjchambl avatar john-paul-r avatar jonberling avatar kakaroto avatar kbuzsaki avatar lordufreeman avatar lunethefirst avatar macmaxbh avatar moritonal avatar mparpaillon avatar pandanielxd avatar rispig avatar rthorpeii avatar shadow7412 avatar stoneguard001 avatar tyler-macinnis avatar watcherdm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beyond20's Issues

sometimes stops working in Firefox

Reported on Discord, but it seems that midgame, it could stop working in FF, icon disappears from toolbar. restarting FF worked for one user, but didn't for another.

Improve homebrew monster parsing

Most homebrew monsters don't seem to adhere to the strict formatting rules. For those using someone else's homebrew monster, they can't fix the formatting, so having the parser be smarter would be very useful.

Display spell card in spell pages doesn't work

ValueError
message: "Invalid literal for int with base 10: "
name: "ValueError"
stack: "Error↵    at ValueError.__init__ (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:1809:19)↵    at ValueError.__init__ (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:1890:66)↵    at new ValueError (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:1886:35)↵    at ρσ_int (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:34:15)↵    at sendRoll (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:8271:25)↵    at displaySpell (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:8672:13)↵    at HTMLAnchorElement.ρσ_anonfunc (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/dndbeyond_spell.js:8700:21)↵    at HTMLAnchorElement.dispatch (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/jquery-3.4.1.min.js:2:42571)↵    at HTMLAnchorElement.v.handle (chrome-extension://jgjalbmkhkaeckioeghobcffgmceoogk/src/jquery-3.4.1.min.js:2:40572)"
ρσ_object_id: 4
__proto__: Exception

FVTT: Roll sound isn't playing for attack/damage rolls

Not the biggest of problems but when I roll using the DnDBeyond character sheet it doesn't make the roll sound. However, saving throws or skills checks make a roll sound. Perhaps due to the chat card template (saves, skills, etc have the default card theme whereas the attacks have a different card theme)?

Also not sure if related but sometimes if I do an attack roll using DnDBeyond and then a normal roll afterwards, I get two roll sounds after one another. However this only happens occasionally and I'm not able to continuously reproduce so might not be related.

Healing Word

image
I used Healing Word using the command "cast on Roll20" through the extension. Two dices were thrown and it took the highest (4) and then added the 3 to the final result (is the last 7 in the Roll20 chat).
image
And then I kept trying until in one of the throws it took the lower result (2) before adding +3.

The thing is that I don't get why it throws 2 dices if I have the auto advantage o disadvantage disabled. Sorry for being an inconvenience :(

Cure Wounds and Moonbeam also roll extra dice for crits.

Sorry to bother, but I was checking with a friend and Cure Wounds and Moonbeam so far do the same stuff as Healing Word. It keeps rolling double dice because it recognizes the roll as Critical. Maybe all the healing spells are affected, and damage rolls from spells which require a Saving Throw from a target (Create Bonfire, Blight, Frostbite...) do the same thing.

It works fine with spells that require an attack roll first. The 1st level spells that have this condition can be thrown properly from the text since the dices are standard (besides healing spells). When it comes to higher level spells is when the thing gets messy.

Thanks for your hard work!

Damage output bug for custom weapons

2019-05-09 (2)_LI

As you can see in the first image where the arrow is pointing, there is a modifier added that gives +1 piercing damage to the weapon.

2019-05-09 (4)_LI

In the second image you can see that it's putting that +1 with the +7 and creating a +71 when it should be +8 total.

Add option to disable auto-roll damage

It's possible if I use 'rname' and 'rnamec' and make those into clickable links. They'll have to appear like the pink buttons in the spell descriptions, but it would work.
If I find a way to create macros I could call them with rname, but I'm not sure I want to pollute macros or depend on being able to create macros.

Monster stat parsing breaks with "+1 weapon"

the name in the button itself gets modified and it adds the dice button within the weapon attack button, and the "+1 weapon-name" inside the dice icon attribute also seems to have been replaced and it breaks the text.

Support for special features

This issue is to track the special features that need to be supported:

  • Sneak attack: Done
  • Disciple of Life: Done
  • Jack of all trades on raw abilities : Done
  • Sharpshooter and Great weapon master: Done
  • Improved/Superior Critical : Done
  • Brutal critical: Done
  • Savage Attacks: Done
  • Rage damage: Done
  • Great Weapon Fighting: DONE
  • Blood Hunter's Crisom Rite: DONE
  • Hex Blade's curse critical threshold : DONE
  • Oath of heroism critical threshold: DONE
  • Dread Ambusher extra damage for Ranger Gloomstalker : DONE
  • Rogue's Assassinate: DONE

TODO:

  • Elven Accuracy: TODO (Display separate roll ?)

Hitting the "roll" button from dndbeyond just prints a blank line in roll20

New campaign. Any ideas?

Didn't find a roll template called 'simple' app.js:559:23273
    incoming https://app.roll20.net/assets/app.js?1568130243:559
    h https://app.roll20.net/assets/app.js?1568130243:559
    startup https://app.roll20.net/assets/app.js?1568130243:559
    Zb https://app.roll20.net/assets/firebase.2.4.0.js:203
    gc https://app.roll20.net/assets/firebase.2.4.0.js:52
    cc https://app.roll20.net/assets/firebase.2.4.0.js:30
    dc https://app.roll20.net/assets/firebase.2.4.0.js:29
    Ob https://app.roll20.net/assets/firebase.2.4.0.js:221
    Ob https://app.roll20.net/assets/firebase.2.4.0.js:259
    r https://app.roll20.net/assets/app.js?1568130243:559
    u https://app.roll20.net/assets/app.js?1568130243:559
    delay https://app.roll20.net/assets/base.js?1568130237:6

Add custom dice to add to rolls

In the case of Elemental Weapon, Bless, Guidance, etc.. be able to specify the custom dice to add to rolls or damage.
Low priority because of potential options menu clutter.

Support for Homerule: Critical Hit damage

Optional Critical Hit damage rules:

  • additional roll is always perfect e.g.
    Great Axe crit damage bonus would be 12 instead of 1d12.
  • add weapon attribute to crit roll e.g.
    Great Axe crit damage bonus would be 1d12 + {STRmod} instead of 1d12.
  • additional roll mirrors the normal role.

Savage Attacks & Legendary Criticals

Amazing work - thank you for putting this out there!

I noticed in testing out this plug in that you refer to "Brutal Critical and Save Attacks" in both the feature list on the website and on the in-app settings toggle. I think you intended it to say "Brutal Critical and Savage Attacks". Further more, savage attacks do not appear to be working for me with a half orc using any of the three weapons I tried (Longsword, Greatsword, Yklwa). The crit damage rolled is only the standard crit damage. I can DM you the sheet link if you find that useful.

Lastly, I notice the improved critical could not be turned on for Oath of Heroism Paladins using the Legendary Criticals class feature, but as this is a UA class still, probably not worth adding to the core app yet.

Thanks again for all your work and I hope you find this feedback useful!

Cast spell on monster details page

if I run an encounter with a spellcasting monster I open up the monster details page to see its spells
I can click the to hit button to roll the hit but then if I need to roll damage I first need to open the spell page to klick the damage roll

Error Sending HP Update

I am getting the following error when doing HP updates in D&D Beyond VM3245 roll20_script.js:5390 Uncaught TypeError: Cannot read property 'Campaign' of undefined.

It comes from line 5 of roll20_script.pyj, looks like there's no d20 object on window but there is a window.Campaign.characters.

Use browserAction for chrome and FVTT

having an all_urls permission causes the chrome extension to spend a week in review on the chrome webstore. I need to use browser actions to avoid the broad permissions.
This will cause FVTT users to be forced to click the Beyond20 icon before it gets enabled but there doesn't seem to be another choice unfortunately.

roll20 chat posts not working on v0.3

Hi my party has version 0.2 and roll20 chat posts are working for them, we have same settings (roughly since they changed a bit), "Other Templates" is selected and it was working previously

Roll max

first off not a programmer. But i have found that in firefox when it says a d4 on spells and you click on it to roll the d4 in roll20 its always the number after the "d" looks like its missing the "1" in 1d4 in most of the spells like bless or bane hope this helps.

Add support for superiority die

Hard to find a way to do Fight/Battle Master maneuvers support, but maybe highlight the "one superiority die" in the descriptions to make it roll the appropriate die.

Add support for per-character separate roll

Like the custom die roll, but instead of adding, make it a separate roll. Could be useful for rolling 1d100 for wild magic for example.
I don't think I want to add this at this time since a macro in R20 would be a better way to do this and there's a limit to how much automation can be done.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.