My opinion on cloud variables


Cloud variables are a cool idea but their implementation and functionality leave a lot to be desired. I do not like using them and have tried to limit their usage in my projects, going as far as removing them from many older projects. Their benefits are outweighed by requiring too much maintenence.


Reliability

Cloud variables have a tendency of breaking or not working. User-caused breakages include backpacking scripts, remixing, and downloading/uploading the project. I develop many of my projects offline which necessitates uploading the updated project to Scratch. Breakages outside of the user's control also occur (think server issues) - one day they may stop storing data (but may still log their updates or remain synchronised for connected users). This has a simple fix which is to rename them but the breakages happen too often and get annoying to deal with especially when there are many projects to edit and each one having up to 10 variables to rename. There is also no clear indication of whether they are broken or not and it may be days, weeks, or months until someone realises and then comments about it. This is especially bad for long-standing high scores as the discovery only happens when someone finally breaks the record. It's so bad that I've even seen a forum post from a user believing that being able to store values long-term isn't actually a feature.


Abuse

They are easy to abuse. The cloud data API is exposed. You do not need to "see inside" a project to edit them as with the slightest bit of programming knowledge (e.g. JavaScript, Python) or access to software such as Postman, the API can be used to set the variables to anything. With so much control, opportunities arise for inserting inappropriate content, disrupting multiplayer games, cheating high scores, resetting saves, and more. A few of these have happened on my own projects already.
There have been many requests made to the Scratch Team to secure it but there's no simple solution and they don't indicate this to be a high priority issue.


Usage balance

Most projects have their highest view gain when first shared. For a lot of projects, especially multiplayer ones, this is the only time they have enough views to be properly utilised. The rest of the project's lifetime will have too few users. In cases of reaching the trending page, there peak in popularity may be overwhelming, further limiting the duration with the optimal amount of concurrent users.


Ephemerality

I see cloud variables as not permanent. I like to make projects that remain playable for as long as possible. They are at the mercy of the Scratch Team's decisions, they may suddenly decide to shut down the servers or impose more restrictions which has happened in the past, cloud variables used to be able to store hexadecimal numbers and a lot more than 256 digits. These limitations have broken a lot of older cloud projects.