If you read our blog or newsletter, or follow us on social media, you’ve probably seen us sharing updates all year about how we’re improving the stability and performance of Roll20; updates have been rolling out steadily as we’ve chipped away at issues that had the cumulative effect of making Roll20 slow and clunky. 

Since our last update, we’ve put even more work into improving the speed of the D&D sheet, graphics rendering in image-heavy games, Dynamic Lighting, and the reliability of in-game audio. Read on for details and examples that should make a difference in your games.

Character Sheet Improvements

Reduced Memory Usage and Better Syncing for Faster Loading

In April, we reported fixing memory leaks tied to opening and closing newer character sheets (like the new D&D sheet) in the VTT, switching pages, and more. Since then, we’ve fixed a similar issue affecting older character sheets (like the D&D 2014 sheet); that one impacted the frame that displays the sheet within the Tabletop, and caused lag and slowdown over longer sessions. Fixing the leak cut memory usage by over 50% the first time a sheet loaded, and by 91% on additional loads! 

Over the summer, we also rebuilt the system that handles communication between the D&D Fifth Edition sheet and our servers. The old system sent far more data back and forth than necessary, the new one sends only the necessary data for specific use cases, cutting the transmissions by as much as 90% with no loss of accuracy.

Less demand on your internet connection and computer, fewer screen redraws, and lower memory use overall matters, especially if you’re running several sheets at once. If you’ve previously dealt with slowdowns, timeouts, or issues saving changes on your sheets, we expect the majority of issues to now be resolved thanks to this update.

More recently, we trimmed unneeded code from the sheet itself, so it loads faster. The biggest gain we’ve seen so far is on the Spells tab, where high-level spellcasters will see it open up to 30% faster.

We’re continuing this work across the rest of the sheet over the coming weeks.

60% Faster Dice Rolls and Macro Improvements

We fixed a handful of dice rolling issues on the D&D Fifth Edition sheet, including lag that previously occurred during rolls that could freeze the game. We’ve also made broad updates to the dice rolling system, resulting in 60% faster rolls. (We’re still working on this, so expect rolling to keep getting smoother!)

Macros and attribute values are now cached by the sheet in a new way where recalculation isn’t required every time you use them. This makes rolls, roll templates, and complicated macros run up to 50% faster, plus tokens with linked bars respond more quickly and consistently.

Image Performance Improvements

Faster Uploads: Averaging Under 3 Seconds

We now automatically convert images under 16 million pixels in area to WebP format to speed up uploads. In most cases, this preserves image quality, but for large maps where quality matters more than time savings, you can choose to “keep original format” during upload (or skip conversion entirely via VTT Settings > Graphics Display > Image Upload Format).  

Thanks to these updates, art uploads now average less than 3 seconds, and 90% of our test uploads across hardware finish in under 5 seconds!

In addition to the big changes:

  • We no longer create a “mini” version of every upload, saving time and storage space 
  • The upload window now shows your free storage and the maximum file size up front

70% Faster Art Library Search

If you’ve purchased a lot of marketplace titles or uploaded a lot of your own images, you may be familiar with the pain of searching for a specific tokens or maps; it used to take more than 20 seconds for users with larger libraries, and sometimes failed. Luckily, Art Library search is now about 70% faster, usually finishing in under 5 seconds.

Faster Loading in Games with Tons of Images

The vast majority of users should now experience faster loading and smoother image rendering, thanks to our “Enable Performance Enhancements” setting, which is now on as default. 

We also released updates to how images are rendered, aimed at larger games with lots of images. Images now load in stages instead of all at once, which lowers memory use, and they’re grouped together so your computer has fewer drawing instructions to process, which raises your frame rate (FPS). If you have a big game or use a lot of images, you should notice:

  • Fewer “image flash” issues on load, and faster page loading overall
  • Less “pop-in” of images when zooming and panning, and smoother movement in general
  • Fewer crashes in extremely large games that used to hit a memory spike on load, especially on mobile devices and Chromebooks

Dynamic Lighting Performance Updates

We’ve made another round of Dynamic Lighting improvements, that will be felt most on pages with many walls, doors, and tokens. They also lay the groundwork for a Dynamic Lighting feature update launching soon in beta.

  • Pages containing lots of walls and doors load faster
  • Token movement and vision updates take less processing, making large maps run more smoothly
  • Lighting and shadow rendering does less work per frame
  • We fixed a bug that could cause cleanup of explored areas to fail without any warning
  • Fixed an issue that caused Linux machines that don’t support WebGL2 (a browser graphics feature), to not load Dynamic lighting, exposing full maps to players

Nameplate Visibility Calculations Roughly 100x Faster

We made a roughly 100x improvement to how nameplate visibility is calculated when Dynamic Lighting is on, along with some upgrades to Explorer Mode. 

Nameplate visibility used to rely on reading pixel data (hard on your processor), but was moved to a shader – a small program that runs on your graphics card – instead, meaning there’s less load on your CPU whenever Dynamic Lighting is active. In Explorer Mode, we fixed a bug that caused competing updates to lag, cause visual glitches, or inaccurately mark areas explored or unexplored.

Here’s what you’ll notice:

  • Faster performance when using tokens with nameplates
  • Explorer Mode reveals maps more reliably
  • A noticeably smoother experience for Firefox users
Left = old display / Right = New, optimized display

One player told us after logging in and seeing the changes firsthand that Dynamic Lighting “moves better when the token moves,” and that dark vision and low light vision now reveal gradually instead of feeling choppy, which is exactly what we like to hear! 

Firefox Lighting Now Matches Other Browsers

Firefox no longer defaults the Lighting Texture Resolution setting to “low.” Dynamic Lighting runs much faster in Firefox since the improvements we released on June 29, so the setting is now optimized automatically for your browser. Colored lights and auras in Firefox also now display with the same vibrancy as every other browser.

Mod Script Sandbox Updated

After extensive testing, we upgraded the Mod Script Sandbox to v1.5, and it’s now the default for most users. Behind the scenes, game objects passed to scripts are now Proxy objects instead of custom surrogates, which means better performance and lower memory use, especially in larger games.

Jukebox Reliability and Performance Fixes

Over the last month, the team released several bug fixes that improve the reliability and performance of the Jukebox:

  • Full Jukebox audio is restored on iPhone and iPad, so iOS players can hear your soundtracks again
  • Music no longer cuts out after the seventh track. Tracks that have stopped now unload from memory, which was behind the playback problem
  • Games that wouldn’t load because of bad playlist data should open again. Older sidebar code was creating duplicate playlist IDs, and that’s been fixed
  • Your playlists now stay intact when you copy a game or apply an add-on, and the “don’t copy jukebox” setting now works the way it was meant to
  • Browsers are less likely to block Jukebox audio from playing automatically. We changed how the Jukebox handles browser rules about needing a click before audio plays, and it now retries if playback is blocked
  • Transitions between tracks now fade smoothly, without stuttering
  • The Jukebox popup panel opens in the right spot, and tags are readable in dark mode
  • We removed outdated Flash checks that were causing unnecessary audio errors
  • We now track 18 types of Jukebox failures and added 68 automated tests, so we can catch and fix problems faster

More Jukebox improvements are on our roadmap, but these fixes cover the most common issues players have reported.

What’s Next?

We’re always watching for performance reports, and we’re grateful for the feedback from community members whose unique play styles and game setups help us find issues reflected in real-life games. Keep it coming by reaching out on your preferred platforms.

Jayme Boucher Senior Product Marketing Manager

Jayme Boucher leads Product Marketing for Roll20’s VTT and Dungeon Scrawl. She has worked in the toy and game industry for over a decade, and spends her free time hiding in bushes to photograph birds.