โœฆ JVDesignStudio ยท No Sign-Up Required

Scratch Cheat Sheet

A one-page printable reference for Motion, Looks, Events, Control, Sensing, Variables, Operators and the most-used block patterns in Scratch. Pin it next to your monitor!

๐Ÿƒ Motion Blocks

move 10 steps
turn โ†ป 15 degrees
turn โ†บ 15 degrees
go to x: 0 y: 0
glide 1 secs to x: 0 y: 0
point in direction 90
change x by 10
change y by 10

Motion blocks move and rotate the sprite. glide animates the move smoothly over time.

๐Ÿ‘€ Looks Blocks

say "Hello!" for 2 secs
think "Hmm..."
switch costume to "costume2"
next costume
change size by 10
set size to 100 %
show
hide

Looks blocks control what the sprite displays and how it appears on stage.

๐Ÿšฉ Events Blocks

when ๐Ÿณ๏ธ clicked
when space key pressed
when this sprite clicked
when I receive "go"
broadcast "go"
broadcast "go" and wait

Events start scripts. broadcast lets sprites talk to each other across the project.

๐Ÿ” Control Blocks

wait 1 secs

repeat 10 {
    // runs 10 times
}

forever {
    // runs forever
}

if  then {
    // ...
} else {
    // ...
}

repeat until  { }

๐Ÿ” Sensing Blocks

touching "Sprite2"?
touching color ?
key "space" pressed?
mouse down?
mouse x / mouse y
ask "Name?" and wait
answer

Sensing blocks check the world around the sprite touching, keys, mouse, and user input via ask.

๐Ÿงฎ Variables & Lists

set [score] to 0
change [score] by 1
show variable [score]

add "apple" to [inventory]
delete 1 of [inventory]
item 1 of [inventory]
length of [inventory]

Variables store a single value; lists store many. Both can be made global or sprite-only.

โž• Operators

() + ()    () - ()
() * ()    () / ()
() < ()    () = ()    () > ()
<<>> and <<>>
<<>> or <<>>
not <<>>
pick random 1 to 10
join "Hello " "World"

Operators combine numbers, strings and booleans for math, comparisons and logic.

๐ŸŽฏ Common Patterns

// A complete simple game loop
when ๐Ÿณ๏ธ clicked
set [score] to 0
go to x: 0 y: 0

forever {
    if <key "right arrow" pressed?> then {
        change x by 5
    }
    if <key "left arrow" pressed?> then {
        change x by -5
    }

    // collision check
    if <touching "Coin"?> then {
        change [score] by 1
        broadcast "coin collected"
    }

    if <touching "Enemy"?> then {
        broadcast "game over"
        stop "all"
    }
}

This loop reads movement keys, checks collisions every frame using forever + if, and updates a score variable a pattern used in almost every Scratch game.

Want to build a whole game?

Follow one of our free step-by-step workshops in the Workshop hub.

๐Ÿ”ง Browse Workshops โ†’