also the point is can I still use the cloud vars even though I shouldn’t but I have already made several projects with them.
It depends on what "can" means here. Is there anything prohibiting you from using them? No. Is it okay to use them? As Jens put it, it's literally hijacking a server for your own purposes without their permission. And it's freeloading because you're not paying for the server space you're using. Do with that information what you will.
Also please get on topic. Are the blocks useful? I did not make this to be judged for using the cloud vars I made it to help others with useful blocks.
The topic is about your custom blocks, so I don't see why aspects about them other than usefulness are off-topic. But anyways:
authorize
and ban
were pretty useless blocks in their implementation, but seeing as how you took the Javascript function to close the tab out along with the crash snap
block I think you already know why and how.
button
is fine, though I'd prefer how much the sprite grows be customizable, since as it is now, the sprite is doubled, but that may not work for sprites that are closely packed together.
I like PFP
but I'd prefer it just be a reporter and report the PFP rather than switch the costume of the sprite it's in. If I wanted to switch the costume I would just use the switch to costume [ ]
primitive and put the PFP reporter in the input slot. And I don't really like it being a launched script. It doesn't seem like the type of script that has any requirement to be launched or indication that it is launched, and I don't think I would need or want such a script to be launched.
For the chat and moderator blocks, like a meh? I'd just prefer projects like cloud engines on Scratch. A cloud engine could be a more useful system since they are not as limited in scope. Not to mention chatroom projects are nightmares, which is why the Scratch Team got rid of all chatrooms that allow users to send messages that aren't pre-generated.
current all
would be better as a list of the x position, y position, and direction, since if you're reporting those as a string, you're probably not going to be doing anything else with it, and I usually work with Sprite positions in two item lists of [x, y].
Your key any pressed
block is not only redundant, since it reports a boolean, meaning you can just use the key [any key] pressed
primitive, but it doesn't do what it's supposed to do! In your current implementation, that reporter will always report true until a key is pressed, at which point it will stop reporting. So I could be sitting at my computer, not pressing a single key, and it would report "True" as if I am pressing something, but the moment I press something, it stops reporting "True". If it wasn't bad enough that it seemingly does the opposite of what it is supposed to do, the fact that it stops reporting when a key is pressed means that the reporter block doesn't report, which causes an Error that will crash any script it is in, provided it is running and someone presses a key. I would just delete that entirely.