Experimental blocks were blocks that did not work well and therefore did not appear in the Block Palette. They were available from Scratch 1.0 through 1.2. In 1.0, they were accessed by shift-clicking the Extras menu and choosing "show experimental blocks"; in 1.1 and 1.2, through Shift-Click-R. They are similar to the Motor Blocks, which are also not displayed by default; however, the Motor blocks are fully functional.
start movie // category=sound
stop movie // category=sound
change seconds by (1) // category=sound
set seconds to (0) // category=sound
change zoom by (10) // category=sound
set zoom to (100) % // category=sound
change horiz. pan by (10) // category=sound
set horiz. pan to (0) // category=sound
change vert. pan by (10) // category=sound
set vert. pan to (0) // category=sound
change fade by (10) // category=sound
set fade to (100) % // category=sound
set fade color to [#000000] // category=sound
The fade blocks were later changed to say "trans." (short for "transparent")[when?].
These blocks were likely for use with the Scratch MoviePlayerMorph.
|Note:||The experimental sensing reporters appear to be a variable in the Scratchblocks generator below due to not existing anymore.|
(camera motion) // category=sensing
(camera direction) // category=sensing
(camera relative x) // category=sensing
(camera relative y) // category=sensing
(camera absolute x) // category=sensing
(camera absolute y) // category=sensing
track motion // category=sensing
track color // category=sensing
auto calibrate red // category=sensing
These blocks appear to be intended for camera sensing, but in all versions of Scratch that include them, they do not work and their stage monitors simply display "a ScratchSpriteMorph()". True camera support was later added in Scratch 2.0.
Experimental Control Blocks in 2.0
Scratch 2.0 contains 5 extra experimental blocks not available through normal means. In alpha versions, these blocks used to be a yellow-green color. The counter blocks were introduced in the very first Scratch 2.0 (prealpha) versions, and "While ()" and "For Each () in ()" were introduced in v138. 1 is a reporter, 2 are stacks, and the other 2 are C Blocks. They are:
(counter) // category=control(currently called "noop" due to 2 copies of the block spec.)
clear counter // category=control
incr counter // category=control
The Counter reporter block reports the value how many times the "Incr Counter" block is used. If "Clear Counter" is used, the value resets to 0.
The Clear Counter block resets the counter value to 0.
The Incr Counter block increases the counter value by 1.
The For Each () in () C block works like the Repeat () C block, except a variable that counts up each time the stack ran. For some reason, if you make a variable, a variable and the variable blocks will appear, but there are no variable choices in the block. Also, The number uses a string input instead of a number input.
Because of the 5 blocks' straightforward function, all of those can be replicated with the following codes:
(counter) // Using a variable
set [counter v] to 
change [counter v] by (1)
repeat until <not <. . .>> . . . end
For Each () in ()
set [i v] to  repeat () change [i v] by (1) . . . end
Start Movie • Stop Movie • Change Seconds by () • Set Seconds to () • Change Zoom by () • Set Zoom to ()% • Change horiz. pan by () • Set horiz. pan to () • Change vert. pan by () • Set vert. pan to () • Change Fade by () • Set Fade to ()% • Set Fade Color to ()