Hey all! I've got a new release today, but unlike usual, it's not code for an API script or a character sheet. Instead, this is a tool for all us code authors on Roll20. Roll20 Autouploader Back when the sheet sandbox was first released, I had asked Kenton why the sheet sandbox couldn't simply monitor a directory and automatically update the sandbox when the html, css, or translation.json files changed. Back then, this wasn't possible as browsers don't generally have live access to the file system of a user's computer. That changes today with the release of v1.0 of the Roll20 API and Sheet Autouploader ! You can also find the source code on github . v1.21Alpha of the autouploader also works on API scripts! What is it? The autouploader is an extension for Chromium browsers (except Brave) that will monitor a file directory of your choosing and will update the sheet sandbox when sheet code files (html, css, or translation.json) in that directory change. It will also provide some basic feedback on issues with your CSS or translation.json files that cause them to be thrown out by the Roll20 parser. Here's a video of it in action on a demo project . How does it work? The autouploader replaces the default Roll20 sheetsandbox tools with the script's own upload status dialog. This dialog provides a button to select a directory to watch as well as a variety of status indicators for how the extension is working. Once you select a directory to watch, the extension looks in that directory and selects the html, css, and translation.json file contained in it to watch. About once a second, the extension will poll these files to see if the last modified date is more recent than the last modified date of the file that was uploaded. If the file was modified more recently, it is uploaded and the sheet sandbox is updated. If there are multiple files of a given file type (e.g. two html files), the extension will select the last one that it finds. In addition to uploading the sheet code, the extension also provides some more detailed feedback on your code and how the Roll20 code sanitizer will react to it. CSS file contents are checked for all the various disallowed characters and words that will cause the sanitizer to throw out the CSS. Translation files are checked to make sure they are valid JSON. While the code is uploaded regardless, the upload interface will give you a descriptive warning of what's wrong and the color of the status box for the problematic file will turn yellow so that you know what file has a problem, and what that problem is. This will hopefully reduce the amount of time that we spend trying to figure out why our code changes aren't being applied only to realize that it's because we gave an element the class medieval and the sanitizer threw out the CSS because it found eval in the code. The actual method of updating the sheet sandbox uses the same R20 sheet upload code under the hood, in fact the extension is just automating the act of supplying the file to the R20 sandbox interface, so this should remain fully compatible with the R20 sheet sandbox unless R20 changes the fundamental nature of how file uploads work in the sheet sandbox. Data Privacy Am I just looking to amass a huge library of custom sheet code to pull apart and use!? The answer is, no I'm not. The extension has no persistent memory and won't remember what you did with it once you close the browser tab your sheet sandbox is in. The only place that any data is uploaded to is the Roll20 sheet sandbox, and the extension only provides Roll20 with the same data that they receive when you manually upload code to the sheet sandbox. The extension does see everything that is in the directory that you select for it to monitor and future versions may allow the extension to dig deeper into the folder structure contained within the directory. However, the extension is incapable of seeing any information about the folder structure that the monitored directory is contained in. Extending into the future This first release of the extension is just a well developed proof of concept. There are several features that I'd like to bring to the extension in the future. In no particular order: The ability to auto upload API script code as well ( in Alpha Testing ) The ability to monitor the API sandbox state from the game page More detailed descriptions of the CSS sanitizer errors Known Issues The extension does not work on all chromium browsers (e.g. Brave). This is because it relies on a newer browser API that some chromium browsers have disabled or may not have been updated to have. Browsers that are known to work at the time of writing are Chrome and Edge. The extension can't be adapted to work with Firefox or any other non-chromium browser as chromium browsers are the only ones with the File System Access API. Like this project? Want to support the creation of cool tools like this? Support me on the Kurohyou Studios Patreon !