Robot-Specific Blocks#
Introduction#
The 123 Playspace Playground features blocks exclusive to the virtual 123 Robot, including blocks for the robot’s Drivetrain, LED, speaker, actions, Eye Sensor, and Gyro Sensor.
All standard VEXcode VR Blocks are available for use in the 123 Playspace Playground.
Below is a list of all available Playground-specific Blocks:
Drivetrain - Move and turn the robot.
Actions
drive - Drive the robot forward or in reverse continuously.
drive until - Drive the robot until a specified condition is met.
drive for - Drive the robot forward or in reverse for a specific distance.
turn - Turn the robot right or left continuously.
turn for - Turn the robot right or left for a specified amount of degrees.
turn to heading - Turn the robot to a specific heading.
stop driving - Stops all robot movement.
Settings
set drive timeout - Limits how long Drivetrain blocks wait to reach their goal.
set drive heading - Manually sets the robot’s heading value.
Values
drive is done? - Returns a Boolean indicating whether or not the robot is done driving.
drive heading - Returns the drivetrain’s heading in degrees.
Sound - Play built-in sounds through the 123 Robot’s speaker.
play sound - Plays one of the robot’s built-in sound effects.
LED - Control the 123 Robot’s center LED.
glow - Sets the color of the LED light.
Actions - Make the 123 Robot perform preset behaviors.
act - Acts out different emotions.
Sensing - Read values from the 123 Robot’s sensors.
Gyro
detected crash? - Returns a Boolean indicating whether or not a crash was detected.
Eye
eye found an object? - Returns whether the Eye Sensor detects an object.
eye detects color? - Returns whether the Eye Sensor detects a specific color.
eye hue - Return the hue value detected by the Eye Sensor.
eye bright object? - Returns a Boolean indicating if the detected object is bright.
eye brightness - Return the brightness detected by the Eye Sensor.
Drivetrain#
Actions#
drive#
The drive block moves the robot in the specified direction. This is a non-waiting block, meaning it runs continuously until another Drivetrain block interrupts it or the project stops.
drive [forward v]
Parameters |
Description |
|---|---|
direction |
Drives the robot in one of the following directions:
|
Example
when started
[Drive for 2 seconds.]
drive [forward v]
wait (2) seconds
stop driving
drive until#
The drive until block is used to move the robot until a specified condition is met.
drive [forward v] until [object v]
Parameters |
Description |
|---|---|
direction |
Drives the robot in one of the following directions:
|
condition |
The condition that stops the robot:
|
Example
when started
[Reverse after a crash.]
drive [forward v] until [crash v]
drive [reverse v] for (1) [steps v]
drive for#
The drive for block is used to move the robot for a specified distance.
drive [forward v] for (1) [steps v]
Parameters |
Description |
|---|---|
direction |
Drives the robot in one of the following directions:
|
distance |
The distance, as an integer or decimal, that the robot will move, measured in units. |
unit |
The unit of measurement, which can be one of the following:
|
Example
when started
[Drive back and forth.]
drive [forward v] for (3) [steps v]
drive [reverse v] for (3) [steps v]
turn#
The turn block turns the drivetrain continuously left or right. This is a non-waiting block, meaning the drivetrain will keep turning until another Drivetrain block runs or the project stops.
turn [right v]
Parameters |
Description |
|---|---|
direction |
The direction the robot will turn:
|
Example
when started
[Turn for 2 seconds.]
turn [right v]
wait (2) seconds
stop driving
turn for#
The turn for block turns the drivetrain left or right for a specific number of degrees.
turn [right v] for (90) degrees
Parameters |
Description |
|---|---|
direction |
The direction the robot will turn:
|
angle |
The angle, as an integer or decimal, at which the robot turns, ranging from -360 to 360 degrees. |
Example
when started
[Turn left, then turn around to the right.]
turn [left v] for (90) degrees
turn [right v] for (180) degrees
turn to heading#
The turn to heading block turns the drivetrain to face a specific heading.
turn to heading (90) degrees
Parameters |
Description |
|---|---|
heading |
The absolute heading the drivetrain will turn to, from -360 to 360 degrees. |
Example
when started
[Turn to face the cardinal directions.]
turn to heading (90) degrees
wait (2) seconds
turn to heading (180) degrees
wait (2) seconds
turn to heading (270) degrees
wait (2) seconds
turn to heading (0) degrees
wait (2) seconds
stop driving#
The stop driving block immediately stops all movement of the drivetrain.
stop driving
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Stop driving after 4 seconds.]
drive [forward v]
wait [4] seconds
stop driving
Settings#
set drive timeout#
The set drive timeout block sets a time limit for how long a Drivetrain block will wait to reach its target. If the robot cannot complete the movement within the set time, it will stop automatically and continue with the next block.
Note: The Drivetrain’s time limit is used to prevent Drivetrain blocks that do not reach their target position from stopping the execution of other blocks in the stack.
set drive timeout to (1) seconds
Parameters |
Description |
|---|---|
time |
The maximum number of seconds a Drivetrain block will run before stopping and moving to the next block. |
Example
when started
[Turn right after driving for 1 second.]
set drive timeout to (1) seconds
drive [forward v] for (1000) [mm v]
turn [right v] for (90) degrees
set drive heading#
The set drive heading block sets the robot’s current heading to a specified value.
set drive heading to (0) degrees
Parameters |
Description |
|---|---|
heading |
The heading value to assign, in degrees. |
Example
when started
[Face the new 0 degree heading.]
set drive heading to (90) degrees
turn to heading (0) degrees
Values#
drive is done?#
The drive is done? block returns a Boolean indicating whether the drivetrain is not moving.
True - The drivetrain is not moving.
False - The drivetrain is moving.
Note: This block detects movement only when it is caused by the drive for, drive until, turn for, or turn to heading blocks.
<drive is done?>
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Glow blue after a crash.]
drive [forward v] until [crash v]
forever
if <drive is done?> then
glow [blue v]
else
glow [green v]
drive heading#
The drive heading block returns the drivetrain’s heading angle as a decimal number, in the range 0 to 359.99 degrees.
(drive heading in degrees)
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Display the heading after turning.]
turn [right v] for (450) degrees
print (drive heading in degrees) ▶
Sound#
play sound#
The play sound block plays one of the robot’s built-in sounds.
play sound [honk v]
Parameters |
Description |
|---|---|
sound |
One of the built-in sounds shown below. |
Sound Name |
Play Sound |
|---|---|
honk |
|
doorbell |
|
crash |
|
random |
Plays a random sound from the 3 sounds above. |
Example
when started :: hat events
[Play the doorbell sound.]
play sound [doorbell v]
LED#
glow#
The glow block sets the color of the LED light.
glow [green v]
Parameters |
Description |
|---|---|
color |
The color to set the LED to:
|
Example
when started :: hat events
[Blink the LED light forever.]
forever
glow [green v]
wait [0.5] seconds
glow [off v]
wait [0.5] seconds
Actions#
act#
The act block is used to act sad, happy, or crazy by having the 123 Robot perform a sequence of drive, turn, and sound behaviors.
act [sad v]
Parameters |
Description |
|---|---|
emotion |
The emotion to act out.
|
when started :: hat events
[Act out a happy behavior.]
act [happy v]
Sensing#
The virtual 123 Robot also has access to the standard Brain and Drivetrain Sensing blocks.
Gyro#
detected crash?#
The detected crash? block returns a Boolean indicating if the robot has come in contact with a wall or other object.
True - A crash was detected.
False - A crash was not detected.
<detected crash?>
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Back up after a crash.]
drive [forward v]
wait until <detected crash?>
drive [reverse v] for (200) [mm v]
Eye#
eye found an object?#
The eye found an object? block returns a Boolean indicating whether or not the Eye Sensor detects an object within range.
True - The sensor has detected an object.
False - The sensor has not detected an object.
<eye found an object?>
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Stop driving after detecting an object.]
set eye light [on v]
drive [forward v]
wait (0.1) seconds
wait until <eye found an object?>
stop driving
eye detects color?#
The eye detects color? block returns a Boolean indicating whether the Eye Sensor detects a specified color, based on the detected hue value.
True - The sensor detects the specified color.
False - The sensor does not detect the specified color.
<eye detects [red v]?>
Parameters |
Description |
|---|---|
color |
The color to detect:
|
Example
when started
[Stop driving after detecting a green object.]
set eye light [on v]
drive [forward v]
wait (0.1) seconds
wait until <eye detects [green v]?>
stop driving
eye hue#
The eye hue block returns the hue value detected by the Eye Sensor in degrees from 0 to 359.

(eye hue in degrees)
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Display if an object is pink.]
forever
clear all rows
if <[290] [math_less_than v] (eye hue in degrees) [math_less_than v] [350]> then
print [Pink!] ▶
wait (0.1) seconds
else
print [Not pink!] ▶
wait (0.1) seconds
eye bright object?#
The eye bright object? block returns a Boolean indicating whether or not a detected object has a brightness value greater than 70%.
True - The detected object has a brightness value over 70%.
False - The detected object has a brightness value less than or equal to 70%.
<eye bright object?>
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Display whether a detected object is bright.]
set eye light power to (100)%
drive [forward v]
wait until <eye found an object?>
wait (0.1) seconds
if <eye bright object?> then
print [Bright object!] ▶
else
print [Object not bright.] ▶
eye brightness#
The eye brightness block returns the brightness detected by the Eye Sensor from 0% to 100%.
(eye brightness in %)
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Display whether a detected object is bright.]
set eye light power to (100)%
drive [forward v]
wait until <eye found an object?>
wait (0.1) seconds
if <(eye brightness in %) [math_less_than v] [70]> then
print [Object not bright.] ▶
else
print [Bright object!] ▶