ChangeLog: BetteR20

From 5etools Community Wiki
Jump to: navigation, search



Change Log


betteR20 v1.17.0:

  • (Hopefully) added support for Roll20's "new" dynamic lighting
  • Overhauled the way in which the script loads 5etools dependencies, freezing it at the current version. Some consequences of this change are:
    • Updates to 5etools won't break the Roll20 script
      • Many "compatibility updates" will no longer be mandatory; a copy of the script will now function as if brand-new until a Roll20 update eventually renders it useless
    • Updates to 5etools data (e.g. new Bestiary content) won't automatically be reflected in b20, requiring a b20 update instead
    • Note that the Module Importer/Exporter, while its source is hosted as 5etools data, is unaffected by this change, and any new modules added to that library will be immediately available
    • Changes to the structure of homebrew data may create incompatibilities with b20, requiring a b20 update to resolve
    • The script is now a (significantly) larger download, but should load faster

With this move we're aiming to provide a more stable and maintainable update cycle, with less breakage and downtime. Additionally, this change has produced a clean separation between 5etools and betteR20, allowing each to be updated without fear of breaking the other (this, historically, has been the cause of the vast majority of the script's issues).

This system has been in use by Plutonium (my Foundry module) since its inception, and has been highly successful. Hopefully this success can be reproduced in the badlands of Roll20.


betteR20 v1.16.5:

  • Added "propSum" operation to the Token Animator tool. This functions much like "prop" (aka "SetProperty"), but will sum any value provided with the existing value on the token instead of overwriting it.
  • Added "DEX tiebreaker" import option
  • Fixed spell component parsing
  • Fixed homebrew creatures failing to import due to mis-formatted senses/languages
  • Reverted foreground layer changes to combat player token appearing over foreground--that part worked, but the change also made every foreground element visible regardless of Dynamic Lighting. You'll just have to live with the floating tokens instead.
  • Restored missing "Sort Alphabetically" button in Transmogrifier

Get it here:, or see the pinned post in #better20-issues

Additionally, I would like to take this opportunity to remind you that betteR20 development is in "maintenance only" mode. The real party is happening over in #foundry-general, where the greatest VTT to have ever not been Fantasy Grounds just announced a big update with the final piece of their puzzle; drawing tools. Join the revolution here:


betteR20 v1.16.4:

  • Compatibility update for main site changes.

betteR20 v1.16.2:

  • Overhauled script initialisation; is now much faster, and should produce useful errors when it doesn't work. Also less likely to spew random elements all over the screen if/when things go wrong.
  • Fixed importing creatures with no CR (seems to be the cause of most "can't import monsters" issues)
  • Fixed Shapeshifter Token Builder tool tokens not auto-resizing when changing their side
  • Fixed text tool de-selecting the text when releasing LMB
  • Fixed foreground objects being rendered underneath selected player tokens (I think)
  • Fixed chat box teleporting around during load (hopefully)

Get it here:, or see the pinned post in #better20-issues v.2, fixing chatbox


betteR20 v1.15.18:

  • Fixed module importer "Select All" (now called "Select Everything," to better represent what it does) breaking import
  • Compatibility updates for main site changes

Get it here:, or see the pinned post in #better20-issues


betteR20 v1.15.17:

  • Compatibility update for Roll20's latest changes (fixes rulers; dynamic lighting)

Get it here, or see the pinned post in #better20-issues


betteR20 v1.15.1516:

  • Compatibility update for main site changes
  • Fixed tokenaction import options not using their defaults, but showing the options as active/ticked in the config

Get it here, or see the pinned post in #better20-issues

[EDIT] v14, fixing Spell page filtering [EDIT2] v15, fixing Druid Wild Shape links [EDIT3] v16, fixing some cache issues/speeding up page loads slightly


betteR20 v1.15.14:

- Fixed stuff, probably

Get it here, or see the pinned post in | #better20-issues


betteR20 v1.15.13:

- Fixed players having their tokens vanish when dynamic lightning is enabled - Fixed token/creature editor "controlled by"/etc. select boxes being styled strangely

Get it here, or see the pinned post in #better20-issues


betteR20 v1.15.12:

- Fixed Fog of War/Dynamic Lighting (hopefully) - Fixed AoE rulers - Split "Skill" and "Perception" tokenaction import options - Added link to [[1]] in "script outdated" notification

Get it here, or see the pinned instructions in #better20-issues


betteR20 v1.15.10:

- Added "Background" layer, underneath objects but above the map. The original idea was for use with this, I think: - Fixed script failing to initialise (compatibility for latest main site update)

Slightly delayed because I forgot I'd half-written that background thing, and decided to finish it instead of removing it. My apologies.

Get it here: (change v=1.15.10 to something random to force it to give you a fresh copy, as required)

betteR20 v1.15.11:

- Split save/skill/check/etc tokenaction generation options into own checkboxes - Moved "on import" token settings from "Token" config tab to "Import" tab [resetting your config to default in the process :^)] - Paths can now be entangled with the Quantum Token Entangler - Reworked item "modifier" field import, fixing it and adding many more item modifiers - Chat text area can now be resized in an effective manner - Fixed case where rollable table importer could crash on some inputs - Fixed "Choose Side" picker not displaying token images

Get it here, if you're lucky:


betteR20 v1.15.9, "Channel Clutter" edition:

  • Fixed attack actions showing as regular actions, despite working as attacks when clicked
  • Fixed case where script could repeatedly fail to fully initialise, resulting in tripled UI elements

Get it here:

betteR20 v1.15.8:

  • Added button to "Select All [from module contents]" when importing modules
  • Fixed every importer creature action being an attack

Enjoy another round of Tampermonkey being bad at updating things; get it here:


betteR20 v1.15.7:

  • Fixed token edits failing to save
  • Fixed tokens failing to flip when animating
  • Fixed animator accepting spaces in animation names
  • Fixed some log error spam (a[n].getReceiver us not a function)

Get it here:

EDIT: Due to some malfunctioning robots, the usual channels are broken. Get it here, instead: 5etools version:!nxoyQahb!eP6tMIkRoB9WmSMe3DdwDJxzM5KPfAwZRLpugBKON68 core version:!OxhylCLC!6JGjMpjackqWlKMYLRnitRaze1UTCmNmvfTtD8CU89A

betteR20 v1.15.6:

  • Compatibility for main site updates above

betteR20 v1.15.0; "At Your Own Risk" edition:

  • Added token animator, accessible in the Tools menu
  • Added jukebox widget, accessible in the Jukebox tab, courtesy of @ Rich#1839
    • Includes ALT+(1-9) hotkeys to toggle playback
  • Fixed subclasses importer failing to locate base class when attempting to import homebrew

EDIT: T'was broken, but now t'is fixed. EDIT2: couple minor bugfixes EDIT3: repeat on last, v1.15.4 live; get it 'ere:


betteR20 v1.14.22

Get it here:


betteR20 v1.14.21:

  • Fixed double-printed "Concentration" in spell cards
  • Compatibility for main-site changes


betteR20 v1.14.19:

  • Added master volume slider for jukebox tracks (courtesy of @ Rich)
  • Renaming a monster now attempts to rename it in traits/actions/etc
  • Fixed imported creatures having bonus damage applied to crits
  • Added config option to use token as character portrait (instead of fluff image) on import
  • Added option to whisper token name to GM when doing mass-rolls
  • Fixed page settings using outdated layout
  • Fixed art browser downloads failing

betteR20 v1.14.18:

  • Compatibility fixes for...:
    • Shift-hover to view GM notes
    • Weather/foreground layers
    • Rightclick -> Set Flight Height (order of indicators was reversed)


betteR20 v1.14.1617:

  • Base compatability with Roll20's latest update (may still be issues, please report anything suspicious)
  • Added config option to hide creature action descriptions on import. Config -> Import -> Hide Action Descriptions on Import


betteR20 v1.14.15:

  • Fixed failing initialisation soz lol

betteR20 v1.14.14:


betteR20 v1.14.13:

  • The "Spellcasting" token action is now more compact/readable
  • Fixed position of hover GM notes while not at 1x zoom
  • Fixed monsters "Import All"
  • Creature importer now handles missing spellcasting headers
  • Handling for tokenURL/tokenUrl change

Updated Strongholds and Followers, fixing a bunch of broken links (and some typos, besides). Wipe/reload it to see the updates.

5etools v1.68.56:

  • Fixed DM Screen initiative tracker conditions
  • Fixed level sorting on Class Optional Features page


betteR20 v1.14.5:

  • Fixed missing higher-level casting on drag/dropped spells
  • Added Shaped support for Mass Rolls (thanks peacefighter1996)
  • Art browser now remembers scroll position somewhat reasonably
  • Tweaked Art Browser layout slightly


betteR20 v1.4.3,

  • Weather should now respect dynamic lighting
  • Added "Ripple" texture, kindly donated by <?> [Please react with the emojis ":regional_indicator_m:" and ":regional_indicator_e:" if you wish to receive credit for this.]
  • Fixed Shapeshift Token tool failing to load
  • Wild Form tool now allows multi-select; tries to set passive perception to the maximum of the character's vs. the beast's
  • Added an "Oscillation" mode to weather, which scrubs back and forth instead of infinitely scrolling in one direction
  • Fixed GM UI elements mistakenly being added to the player version
  • (Squashed some log errors Firefox generates on encountering Chrome-only CSS rules)


betteR20 v1.14.2; "Edge Cases: Weather" edition: 

  • Setting weather to "Custom" with no image specified no longer spams popups
  • Added "Custom" weather direction, allowing free rotation (and if it doesn't auto-update/show the notification, it's some cache somewhere being lame; everything's working as well as it can on our end)


betteR20 v1.14.1; "Never Bothering to Test Error Handling" edition

  • Prevented malformed "Custom" weather URLs from spamming alerts
  • Switched tracker sort button to always-available font
  • Added "Foreground " layer  [Edit: requires players to use the script, as with the weather]


betteR20 v1.4.0; "I'm In" edition

  • Added weather -
    • Can be found under Edit Config -> Weather
    • Requires players to be running the script to see it 
    • Includes a custom layer, which will "block" weather in any filled polygons, allowing indoor areas to be specified, etc 
  • Added an art browser, which reads from a monstrous spreadsheet curated by @ Ryan (Modnar) [2] -
  • The filter tags on the left side are due for a clean; please do not point out how silly the "Flooring" tag is, thanks.
  • Due to us not having any thumbnails for the images, is pretty clunk-tastic. Soon™
  • Doesn't remember scroll position, exacerbating the above issue. Soon™ 
  • Added "quick layer switch" sidebar , which can be disabled in the config -
  • Added "Streamer Friendly " option, which hides the "don't post this to Reddit, k?" startup message. The person requesting this feature didn't seem concerned about the script's name being posted in chat, so that's still visible  -
  • Added "Sort Descending" button to initiative tracker -
  • Added Jukebox track/playlist import/export to the Module Importer/Exporter (shoutouts to @ Stormy for the prototype ) -
  • Creatures can now be renamed when importing (as part of the "scale creatures?" step) -
  • Added shorthand for /talktomyself: /ttms -
  • Added missing "Set Art/Token/etc from URL " buttons in Core version -
  • Fixed material spell components failing to populate when drag/dropping spells -
  • Fixed MTF Eladrin drag/drop -
  • Fixed WDH's Avi and Embric creature import -
  • Fixed Mass Page Deleter tool failing on corrupt-ish pages -
  • Fixed Wild Shape tool -
  • Background importer now correctly uses a feature's name when drag/dropping it to a sheet's traits -
  • Rightclick -> Image from URL now remembers the last input URL -
  • Improved import dialogs (thanks @ Stormy)


betteR20 v1.13.0; "courtesy of @ Nikolay" edition:

  • Shaped import drag/drop support: 
  • Screenshot 1:  
  • Screenshot 2: (And here's a copy-paste the patch notes the absolute madman also provided:)
  • Feat import. Name and text.
  • Background import. Background name, feature name and text, ability check (skill) proficiency.
  • Race import. Race name, size, speed, senses, racial traits, racial ability score modifiers.
  • Optional feature (invocations, etc.) import. Name and text.
  • Class import. Name, level, hit dice, class features. Shaped sheet already has some support for many of the classes out-of-the-box, so we leverage it where appropriate. If a class is not supported by Shaped sheet, we configure it as a custom class. Mystic class received some special love -- custom spellcasting is set up for it.
  • Subclass import. Subclass features name and text.
  • Psionic abilities import. Focus, disciplines (with submodes), talents. Each includes correct name, level, text, casting time, dduration/concentration Psi points cost is encoded into: spell level, name, material components. Psionics import into handouts also changed to be aligned with other entities.

Get it here: Big fuckin thank


betteR20 v1.12.8:  

  • Fixed Module Exporter failing on missing page attributes
  • Monster importer no longer hard-crashes on malformed/missing fluff (n.b.: fixes WDH monster import, although the fluff'll still be missing. That'll be fixed soon™)

Get it here


betteR20 v1.12.7:

  • Fixed cancelling prompt when adding an image directly to the map returning an error (thanks @ stormy)
  • Added error handling to tool initialisation, hopefully fixing the various #issues

Get it here:


betteR20 v1.12.6

  • Removed default 5-foot light radius on tokens
  • Removed "Confirm External Link" prompts, because fuck 'em :point_right::door:
  • Page toolbar background is now transparent
  • Fixed missing item attunement text in handouts
  • Added rightclick -> "Paste Image from URL " to map
  • Added "Sort Alphabetically" option to the Transmogrifier
  • Added experimental "Quantum Token Entangler " tool, which allows you to bind tokens together across pages, linking their position/scale/rotation/flip
  • Added rightclick -> "Advanced" -> "Show Token ID" option to tokens
  • Fixed "Import Monsters from All Sources" button
  • Fixed some wonky Hellfire Engine and Beholder action imports
  • Hopefully fixed the "0% transparency" toolbar issue; appears to have been a "commas are decimal separators lol" localisation problem

Module Importer/Exporter :

  • Now included in core
    • Removed Map Importer/Exporter, as it's a sub-set of the functionality
  • Added note about using the tool (and a link to open it) to the classico Adventure Import
  • Streamlined usage; now orders the steps for you
  • Now exports tokenactions
  • Now asks you which data categories you wish to export, instead of always exporting the entire thing
  • Fixed ruler/hex snap when used in conjunction with R20ES (I think)

Get it here:



betteR20 v1.12.3, "Clearly Not Announcement-Worthy" edition:

  • Initiative tracker now behaves properly when creatures are missing CRs/HP formulas
  • TableExport paste now supports avatars


betteR20 v1.12.2:

  • Fixed missing handout notes


betteR20 v1.12.1; "Raising the Black Flag a Notch Higher" edition,

  •  Added "Module Importer/Exporte r" tool to the tools list
    • Can export/import: 
    • Maps 
    • Characters 
    • Handouts 
    • Rollable Tables 
    • Decks 
    • Contains a handy-dandy "Load Data from 5etools" button, which allows you to browse our freshly-exported library of every single official WotC module. Huge thanks to all (see below) who donated me the games  -
  • Note: the Map Importer/Exporter tool still exists, but no longer has a "Load from 5etools" button. Use the module tool. -
  • Journal Cleaner can now delete things inside folders -
  • Pauper's Character Vault now imports/exports Bio, GM Notes, and Default Token correctly 
  • Tweaked Page Settings width/height input; now labeled "X" and "Y" and display current pixel count in each direction
  • Added workaround for old token images being cached -- a fresh copy will now be grabbed at time of import 
  • Token action/etc (horizontal) toolbar now goes 100% opaque on hover, hopefully preventing further confusion related to 100% transparent toolbars -
  • Overhauled spellcaster importing (again), it should no longer suck 
  • Improved Initiative Tracker: -
  • Added Spell DC as a column option 
  • Added config option to hide "sheet" button (now hidden by default, since one can shift-double-click tokens, for the most part) 
  • Disabling tracker enhancements now reverts it to a near-default appearance 
  • Tracker window is now wider by default 
  • Character Default Token image can now be swapped out without having to remake the entire token; see the button under the Default Token 
  • Some (very) minor UI cleanup Get it here:


betteR20 v1.11.0; "How am I Still Not Banned" edition,

  • Added a Map Import/Export tool. Find it in the Tools List. Bit of a misleading (working?) title, it can do the following: 
  • Dump all the pages from your current game to a text file, complete with tokens (although they don't properly link to character sheets, yet), lighting, etcetc. Bigups to the absolute madman @ Stormy for discovering the approximately four lines of code needed to do this
  • Import the above, allowing you to choose which pages you want to load back in. Note that they maintain their internal IDs, so you can't really use this to copy pages
  • And it wouldn't be 5etools without a bit of Robin-Hoodery; there's a button to load content exported straight from Roll20's published adventures. Sadly, there's (so far) only the two that I happen to own, and W:DH which was kindly donated to the cause. I forgot to ask if this person wanted credit, but they're pretty cool.

- If you happen to own adventures other than CoS, SKT, or W:DH, please do drop me a PM with an invite to a minty-fresh copy of whatever module, and we can get this thing filled out. We caught them all. - Removed "The Semicolon" [I think exactly one person had noticed this, but there was a rando semicolon floating in the top-left corner of the screen.]

With regards to the map importer/exporter, more interesting is the fact that, in theory there's no reason the same technique can't be applied to the entire contents of a module (or, indeed, any custom game). Certainly something worth looking into in the (near?) future.


betteR20 v1.10.0, "Roll20 Enhancement Suite Compatibility (Hopefully)"

See title. It worked on Firefox anyway (I think), but, Chrome users may now enjoy the benefits too Bigups to @ stormy, get his extension here: =
```It's preeeeetty nice:```



betteR20 v1.9.2:

  • Fixed creature conditions importing as HTML
  • Fixed issue with importing text containing tagged skills/actions (was breaking various background/race imports, probably others)
  • And a sneaky bonus feature: "pack" drag-n-drop should now expand the pack to its individual items

Link here:


betteR20 v1.9.1

  • Compatibility update for main site CR Scaler changes
  • Fixed non-PHB subclass import (as part of class import)
  • Importer now remember the last selected grouping chosen, e.g. "Type" or "Alphabetical"
  • Added config option for basic horizontal UI bar transparency tweaking
  • Made dependency loading retry more often

As always, get it here:

EDIT: creature importing is a bit dicked, fix Soon™


betteR20 v1.8.7; "Trying to Watch TI8" edition

  • Fixed various problems related to changing page/map properties
  • Fixed Spell/Item drag-drop
  • Fixed Monster import failing to respect "Auto-Roll Damage"
  • Made imported tags consistent across all imports; added environment ("env"), size, and NPC tags for imported creatures
  • Compacted rightclick -> Roll <X> options, and added "Skills" mass-roller
  • Added "Forward/Back One Layer " to rightclick menu; hotkeys pending, as they're mysteriously broken
  • Added "Clear" buttons to Mass-Whisper tool

Get it here:

[Note: I was skimming the Roll20 forums earlier, and noticed bug reports of issues which were almost certainly caused by betteR20. If you are going to use the script, please DO NOT post bug reports without first disabling the script and ensuring it's not one of ours.]

Part 2: - Fixed various instances of missing fluff (especially in dragons) - Made converter output editable, and title-casing of names toggle-able - Pinned list data can now be downloaded, as a rightclick option - Added various missing tags to the Demo page - Browsing to the Bestiary/Spells page from a bad URL now selects the first item - (Typo fixes/other hover-link tagging/etc)


betteR20 v1.8.5 "Surprisingly Well-Prepared for This Eventuality" edition:

  • Updated script to be compatible with Roll20's "Measured Update"
  • Removed commas from monster XP
  • Custom line thickness now handles negative/fractional values more gracefully
  • Fixed horizontal cone drawing

Edit: A couple of hotkeys changes; Cone ruler is now on Q-C; Circle ruler is on Q-R (because it's internally referred to as [R]adius :😂:). Everything else seems to work alongside the new advanced hotkeys for the rulers.

Get it here:

EDIT: Fake news, seems there's still significant issues. Further fixes Soon™


betteR20 v1.8.3 (

  • Hard-disabled 3d dice when the script is active. There's surprising complexity involved in the 3d dice system, and after several hours of head-scratching with zero progress, this seemed the only reasonable solution. Sorry folks.
  • Added custom line thickness options
  • Added hotkeys for the upgraded ruler (q-q; q-w; q-e; q-a; q-s -- lines/boxes on top in order of ascending area; circular rulers underneath. If this is dumb and doesn't match Roll20's scheme (they don't have one, as far as I could see, but I didn't look all that hard) do let me know, it's easily changed)
  • Fixed hotkey interaction with the script's extra tools
  • Fixed script tag indentation when chat avatars are disabled
  • Removed restrictions on some ruler inputs (e.g. there's no longer a 5-step on beam thickness)
  • Added flat-edge mode to the cone tool
  • Added "Token" config for players, allowing players to set token bars for NPC tokens they drag onto the table
  • Creature name show/hide in rolls can now be set in the Importer tab of the config
  • Imported creatures now have a "level," fixing certain spell damage calculations
  • Fixed homebrew subclass drag-drop
  • Fixed script failing to load for players


betteR20 v1.8.2:


betteR20 v1.8.0, Bad at Vec2 Maths edition:

  • Overhauled the measurement tool
    • Now has multiple modes; Ruler , Radius (colloquially known as a "Circle," but that's lame), Cone, Box, and Line. Please do inform me of any other shapes I forgot to add.
    • Has a "sticky" mode, which will persist the last-drawn ruler to the table, so you can switch tool and do something else without losing your measurement. Press SHIFT while ruler-ing to enable it, or check the box.
    • [Note: I think I managed to get all this to properly sync to anyone else running the script, too. Ergo, with a mere 4 players acting in unison, it should be possible to use the ruler tool to draw dicks.]
  • Added a line-cutter tool . Largely stolen from here: (but instead of drawing a pink line and typing a command, you just click on a line to break it)
  • Added player-only Edit Config button and config options, currently very limited, but includes the ability to toggle half-grid snap
  • Added a Wild Shape Sheet Builder tool, credit to @ Bodrick
  • Fixed missing monster fluff when importing monsters from an adventure
  • Fixed "hidden until edited" monster save/skill import issue

EDIT v1.8.1:

  • Fixed line splitter for Pro users
  • Improved Wildform Builder UI

Get it here:


betteR20 v1.17.20

  • Overhauled spellcaster importing. It should be a bit more reliable and consistent with Roll20's compendium version (although ours still has better formatting ). As a result of the dubious hacks employed to pull this off, if you open a character sheet of a freshly imported spellcaster (as in, seconds after import) you can watch the spells slowly getting populated.
    • As a result of this, spell descriptions, in general, should be back.
  • Fixed missing spell descriptions
  • Fixed fluff failing to populate on imported creature Bio & Info tab
  • Fixed some probably-harmless-but-annoying errors when importing creatures
  • Edit: the page may have caching issues depending on your area. For now, use this: