- This article is about dropdown menus used as inputs for blocks. For information on the creation of dropdown menus in Scratch projects, see How to Make a Dropdown Menu.
A dropdown menu is a list of options that appears in some blocks. It can be accessed by clicking on an upside down triangle in the block.
Scrolling Dropdown Menus
Sometimes, a dropdown menu will be so long that not all options can be viewed at once. Scratch 2.0 had small arrows at the bottom of the menu in these cases, which could be used to scroll through the dropdown menu upon being hovered over with the mouse. In Scratch 3.0, it is possible to scroll through a menu by simply using a mouse or the scroll bar at the side.
Dropdown Menus as Inputs
Sometimes, dropdown menus can be used as string or number inputs. These dropdown menus are rounded. For example, the go to ( v)
block has a dropdown menu:
Block inputs
go to (random position v)
For this block, the dropdown menu can be used as an input as well, meaning that blocks can be dragged in, such as variables:
go to (variable)
Text Inputs
The (join () ())
block can be used as a workaround for the purpose of text input. Just leave the first part of the block empty and enter any text into the second part:
go to (join [][enter text here ...])
Text inputs can be useful for very long dropdown menus, in which entering text can sometimes be easier than scrolling down all the way.
Non-Input Dropdown Menus
Not all dropdown menus work as inputs. Many dropdown menus with a fixed amount of options, like the variable blocks, will not work as inputs. These dropdown menus are rectangular. One example is the show variable [ v]
block:
show variable [not an input v]
It is not possible to place a variable in that spot. However, some Scratchers have found a way around that by "hacking" various Scratch blocks. These could be obtained by editing the JavaScript or using them from another project. However, hacked blocks no longer work in Scratch 3.0.
Blocks with Dropdown Menus
![]() | This does not count extensions. |
Accept Block Inputs
These blocks allow their dropdown menus to be used as inputs for other blocks:
go to (random position v)
glide () secs to (random position v)
point towards (mouse-pointer v)
switch costume to (costume1 v)
switch backdrop to (backdrop1 v)
play sound ( v) until done
start sound ( v)
broadcast (message1 v)
broadcast (message1 v) and wait
create clone of (myself v)
touching (mouse-pointer v)?
distance to (mouse-pointer v)
key (space v) pressed?
[backdrop # v] of (Stage v) // The first menu does not accept block inputs, but the second one does.
Do Not Accept Block Inputs
These blocks do not accept other blocks in their dropdown menus:
set rotation style [left-right v]
change [color v] effect by ()
set [color v] effect to ()
go to [front v] layer
go [forward v] () layers
costume [number v]
backdrop [number v]
change [pitch v] effect by ()
set [pitch v] effect to ()
when [space v] key pressed
when backdrop switches to [backdrop1 v]
when [loudness v] > ()
when I receive [message1 v]
stop [all v]
set drag mode [draggable v]
[backdrop # v] of (Stage v) // The first menu does not accept block inputs, but the second one does.
current [year v]
[abs v] of ()
- All of the Variable and List blocks, except for
(variable)
and(list::list)
because they don't have dropdown menus.