A reporter block is a block that reports a value. These can be anything, from numbers to strings. Unlike a stack block, which changes something on the Stage, plays a sound, stops the script, or changes a variable, reporter blocks cannot be placed directly above or below another block. Instead, they are dropped into a number, text, or drop-down input; then when Scratch runs the block into which the reporter block has been dropped, it will first run the reporter block to find the value of the input. Reporter blocks can have inputs too, which may themselves be other reporter blocks. Boolean Blocks are a special kind of reporter block that report either "true" or "false".
To quickly view the value of a reporter, simply click it in the editor and Scratch will display the value in a small bubble.
This is an example of a Reporter Block:
As reporter blocks report values, they are designed to fit wherever a value is needed. This can be anywhere: many blocks have spaces (parameters) within them or drop-down menus capable of inputting reporter blocks. For example:
glide () secs to x: () y: ()
This block can easily be filled with Reporter blocks:
glide (costume [number v]) secs to x: (x position) y: (y position)
As reporter blocks report values, they are used whenever a script needs a certain value. These values can be anything — from X positions to the costume number of a sprite. Reporter blocks also need another block to work; they cannot stack like stack blocks.
For example, compare these two scripts:
when gf clicked say [Hello,] for (1) secs say [Gobo!] for (1) secs when gf clicked say [Hello,] for (1) secs say (username) for (1) secs
In the first script, the message is predetermined. In the second script, a reporter block has been dropped into the first input of
say  for () secs, and so the message depends on the value of
Because reporter blocks have inputs which may themselves be reporter blocks,
(join ) can be used to show the same message, but all at one time:
when gf clicked say (join [Hello, ] [Gobo!]) for (2) secs when gf clicked say (join [Hello, ] (username)) for (2) secs
There are 30 reporter blocks in Scratch 3.0 (not including extensions), click on a block to find out more about it.
There are no events or control reporter blocks.
(distance to [ v])
([ v] of [ v])
(current [ v])
(days since 2000)
(() + ())
(() - ())
(() * ())
(() / ())
(pick random () to ())
(join  )
(letter () of )
(length of )
(() mod ())
([ v] of ()::operators
|Note:||The possible number of reporters is infinite, as there is no limit to how many variable and list reporter blocks can be created.|