Avoid using clones
Clones aren't very useful. They give the illusion of sophistication and you are shooting yourself in the foot if you use them in the most common ways.
The following are justifications for using clones, if these do not apply, use lists and stamps for 99% of other cases:
- You want to display many sprite costumes simultaneously with the same quality (higher resolution than stamps) as the original sprite, in vanilla Scratch. (TurboWarp has a high quality pen option)
- You want to display something that doesn't affect with the pen layer, such as some buttons on top of an emulator.
- You want to play sounds with full control over the volume and effects of each, and when to start or stop them.
- You want to run ask blocks with a way to close them individually with code (rather than require the user to interact with it to close it).
The main problem with clones is control. You can create a clone and delete it. You can also give it unique values using variables/lists set to "for this sprite only". However, very common questions asked on the Scratch forums is how to have the clones do more... How can they interact with each other? How do you keep track of which one is which? How do you prevent exponential growth of clones due to them all sharing the same scripts?
If the solution requires storing data in variables and lists, suddenly you don't need clones. You can do everything in the original sprite and more and avoid using clones completely. Yes it requires a little additional learning to enumerate over a list using a loop and a variable counter (to access each list item) but clones also require learning. I argue that clones are a harder subject to learn given that the behaviour of local variables is not clear and debugging projects with clones are awkward, requiring insertion of blocks to make a visual or audible change to be detected. Clicking a script will not run it in the clone, only the original sprite. Reporters and variable monitors also only display what is in the original sprite.
Clones also have a limit of 300. The list item limit is 200000.