- This article is about Scratch variables in general. For other uses, see Variable (disambiguation).
- "Value" redirects here. For the category of values, see Category:Values.
There are five different blocks relating to variables:
- () (this is the block that contains the name of the variable, which reports the value)
- Set () to ()
- Change () by ()
- Show Variable ()
- Hide Variable ()
In Scratch 1.4, there are two types of variables, public (global), and private (local). In Scratch 2.0, another type was added — cloud. Cloud data variables are stored on the server, making their same values accessible by all users viewing the project.
Local, (or private/personal) variables are created the same way as global, but another option is selected in the variable creation dialog, "For this sprite only". Personal variables can only be changed by their owner, but can be read by other sprites using the () of () block. The Stage cannot have local variables.
Local variables are extremely useful when you want to create a template sprite which needs to be duplicated and edited. For example, in a game where one must pop bubbles, a "bubble" sprite should be made which has personal variables like "speed" and should be programmed independently. Then it should be duplicated until there are enough bubbles. Since each bubble has an individual "speed" variable, they will not interfere with each other unlike if "speed" was a global variable.
|Note:||Clones inherit local variables into their properties, meaning that each clone has a separate number for the local variable|
- Main article: Cloud Data
Cloud variables are variables that are stored on the server. When a cloud variable updates, it does so across all copies of the project open, and it also gets saved for the next time the project is opened. Cloud variables have a small cloud icon next to their names.
Useproject required the user to input a name and then remember that name, the name would be stored in a variable. With this, the name can be retrieved at any time; all the project has to do is check the value (which is the name).
The look of the variable can be changed in to three forms: The normal readout, the large readout, and the slider. The form of the variable can be changed by double-clicking or right-clicking it and selecting the option that is wanted, or clicking it using the grow/shrink sprite tool.
If the view is set to slider, right clicking on the watcher will give another option: set slider min and max. Choosing it will let the user define the range of the variable.
You can make glitch variables by calling them things like %d (direction drop down/number insert), %s (text input), %m (variable drop down), %b (boolean), %n (number input), or %c (color input), which will look like those at the left. This is because Scratch reads the percent sign followed by certain letters as an argument. By naming a variable @greenFlag or @stop it will display a green flag or a stop sign, respectively, as seen at the right. Also, the codes @turnRight and @turnLeft create a rotate sign, right or left.
These tricks only work in Scratch 2.0. This was fixed in v423 or later.
- Main article: List
A list is made of items — each item like a variable. Lists can be useful when many variables are needed or when the amount of memory that needs to be stored can not be determined by the programmer before the project is run.
Variables are used in a ton of projects to keep score, show health, connect with players, or list some friends. Here are some projects that use variables:
https://scratch.mit.edu/projects/46587498/ - griffpatch's multiplayer Terraria game uses cloud data to connect players
https://scratch.mit.edu/projects/52484548/?fromexplore=true - LBMCompany's virtual telescope uses variables to tell how many stars there are on the screen
https://scratch.mit.edu/projects/34429446/#player - djpro's guide to making platformer games has to have variables for the ball to move and jump as if gravity was affecting it.
Those were only a few examples of variables used in programs, variables are used widely in different projects around Scratch.