I haven't been super active in a bit, but I did have a little time this week and thought I'd pop in to see how things were going here in the forums. Low and behold, I found this: <a href="https://app.roll20.net/forum/post/10870121/onyxring-change-player-hack-incompatible-with-api" rel="nofollow">https://app.roll20.net/forum/post/10870121/onyxring-change-player-hack-incompatible-with-api</a> Turns out, some of my more "hacky" code (à la, " setActiveCharacterId "), which I use in the Roll20Async contribution, only worked in the browser. Since API mods occasionally load sheetworker event handers into a server-side sandbox and execute them there, the browser-only code would, under this condition, fail. Unpleasantly. So, I fixed this bug, and my tests show it all working as it is supposed to, both in the browser and on the server. You can find the latest version at the following URL: <a href="https://github.com/onyxring/Roll20Async" rel="nofollow">https://github.com/onyxring/Roll20Async</a> If you're not familiar with Roll20Async , it enables async/await patterns for getting and setting attributes, as well as making the age-old setTimeout() and setInterval() functions work properly. Here's my original post: <a href="https://app.roll20.net/forum/post/9225943/sheetworkers-script-to-add-support-for-settimeout-setinterval-and-async-slash-await" rel="nofollow">https://app.roll20.net/forum/post/9225943/sheetworkers-script-to-add-support-for-settimeout-setinterval-and-async-slash-await</a> If anyone sees other issues with the library, please let me know. Thanks!