There are 3 main types of scripts I'm seeing that are causing (from what I can tell) the lion's share of the current issues we're experiencing: Scripts That Are Too Large, Usually "Databases" There are people that are running 50,000+ lines of code in their campaigns. That might literally be more lines of code than it takes to run large parts of Roll20. The usual pattern I'm seeing here is with people trying to shoehorn "databases" into their scripts -- for example there's one floating around that is 50,000+ lines of code that is just a giant database of Pathfinder spells. On top of that, the database is being saved to the state object, so every 5 seconds the system is having to write something like 10MB of JSON data to the disk. Not super performant. Please consider that when you have 10MB+ of script source code, that is a lot of data to move around, compile, and execute. In addition, your entire source code tree shouldn't be saving itself to the state object. Scripts That Are Importing Things via the Notes Fields The notes field is not meant to be used as a bridge between the API server and the outside world, period. I let this go for a bit because it seemed innocent enough, but again now we have people who are importing 10MB of XML data into their Roll20 Campaigns. The system simply isn't designed to support that. Scripts That Are Using the Notes Field Like a UI There is no "delta update" for the notes, GM notes, bio, etc. So when you re-update the entire notes field 5 times within a 10 second period, you are sending all of the entire data for the notes field down the pipe to every client in the game 5 times in 10 seconds. That is a lot of data. The notes field is meant for notes. I would think the most frequently it would be updated in a real-usage scenario would be a few times per minute. Certainly not 5 times per second. --- As you can see, each of these is a case that is trying to around a "limitation" of the API. The notes field is clearly not meant to be used as a UI, nor as a data transfer mechanism. And while it's okay to have campaigns with lots of scripts, when it's taking your campaign scripts page 30 seconds to load because you have 10MB of source code that is mostly just spell definitions, clearly you're working outside what the system was intended for. The most likely measures that we will be putting into place: 1) Restricting the total size of the state object. It will be plenty large for most purposes but it was never intended to hold 10MB+ of information (especially info that doesn't even really change). 2) Adding a delay to writing to the notes field. The first update you do to the notes field will be instant, but then there will probably be some sort of a delay (30 seconds or a minute) until the next "write" is sent to the clients. For most purposes you won't even notice this, but it will keep people from using the notes field like some sort of UI. Again, there's nothing to be upset about here since we've never given guidance on these things before. I knew some of them could potentially be issues but the time has simply come where the system can't handle some of these things anymore (as you've all seen by the downtime recently). I think that it should be clear that all of these uses were outside the bounds of what the system was intended for, and if it wasn't clear hopefully this clarifies it. Feel free to let me know if you have any questions on this. I will most likely be putting those restrictions into place early next week. In the mean time again please let me know if you run into the CPU or Memory restrictions as I'm interested to see if there are any other types of scripts I'm not aware of that are causing issues. Thanks!