Home » Unit 2: Information 1: Types of Blocks

Types of Blocks in Snap! — Let’s Break It Down!

In Snap!, you’ll work with three main types of blocks: Command Blocks, Reporter Blocks, and Predicate Blocks. Each type has a unique role, a unique shape and they work together to bring your projects to life! Let’s take a closer look:

Commands

1. 🎬 Command Blocks – The Action Star!

Command blocks are the building blocks that trigger actions for your objects. These are the blocks you’ll often use to tell your sprites what to do.
They’re called command blocks because they command your objects to take action!

  • 🛠️ Example: The "stamp" block stamps the sprite's costume onto the stage.

  • 🏃‍♂️ Example: The "move" block tells your sprite how far to move — you can input a number to specify the distance.

Command blocks are snap-together blocks that connect to form a script. Once they’re all connected, they create actions that bring your projects to life!


2. 📝 Reporter Blocks – The Information Givers!

Reporter blocks are special because they return information instead of performing actions. These blocks provide data like numbers, letters, words, and more.

  • 🧠 Example: The "pick random" block returns a random number within a defined range.

  • 🗨️ You can check the result of a reporter block by clicking on it, and it will show the value in a speech bubble.

While they don’t trigger actions, reporter blocks are super helpful for giving your program dynamic data that can change every time it runs!


3. ❓ Predicate Blocks – True or False?

Predicate blocks are a special type of reporter block. They can only return boolean values — meaning either true or false. They make decisions in your program!

  • ✅ Example: The statement "5 < 7" would return true.

  • ❌ Example: The expression "5 = 5 and 3 - 3 > 3" would return false.

These blocks help to evaluate conditions in your program and are often used inside if/else statements to control how the program behaves based on conditions.


🤝 How Blocks Work Together

  • Command blocks are your action initiators — they get things moving!

  • Reporter blocks and predicate blocks provide the data and conditions that drive those actions.

While reporter and predicate blocks don’t perform actions on their own, they are often used as inputs for command blocks to make your project interactive and dynamic.

For example:

  • The "move" block could take a reporter block like "pick random" to move an object by a random number of steps.

  • predicate block could determine whether an object should move based on whether a condition is true or false.


With these three types of blocks, you’ll be able to create dynamic scripts that make your projects come alive! 🎉

inputs

Feedback

We appreciate your feedback! It helps us continuously improve our course materials.