Events#

When Started#

The When Started block is used to run the attached stack of blocks when the project is started.

  when started :: hat events

A when started event will run when the project is started from the start button in VEXcode Blocks.

All new projects will automatically include a when started block.

In this example, the When Started block is used to start the project. When the start button is selected, the robot will drive forward, turn right, and drive forward again.

  when started :: hat events
  drive [forward v] for (200) [mm v] ▶
  turn [right v] for (90) degrees ▶
  drive [forward v] for (200) [mm v] ▶

When Brain Button#

The When Brain Button block is used to run the attached stack of blocks when the selected EXP Brain Button is pressed or released.

  when Brain [Left v] button [pressed v] :: hat events

Choose which EXP Brain Button to use.

Image of the When Brain Button" block used in VEXcode to trigger actions when the Brain Button is pressed or released.

Select which action will trigger the event block: pressed or released.

Flowchart illustrating various event blocks in VEXcode, including When Started and When Controller Button.

In this example, pressing the left Brain Button will print a message to the Brain’s screen.

  when Brain [Left v] button [pressed v] :: hat events
  print [Left Brain Button pressed.] on [Brain v] ◀ and set cursor to next row

When Controller Button#

The When Controller Button block is used to run the attached stack of blocks when the selected EXP Controller Button is pressed or released.

  when Controller button [L1 v] [pressed v] :: hat events

Choose which EXP Controller Button to use.

Image of the When Controller Button" block used to trigger actions when a controller button is pressed or released.

Select which action will trigger the event block: pressed or released.

Image showing the When Controller Button block in VEXcode, used to trigger actions when a controller button is pressed.

In this example, pressing the A Button on the EXP Controller will print a message to the Brain’s screen.

  when Controller button [A v] [pressed v] :: hat events
  print [A Button was pressed.] on [Brain v] ◀ and set cursor to next row

When Controller Axis#

The When Controller Axis block is used to run the attached stack of blocks when the selected EXP Controller joystick axis is moved.

  when Controller axis [1 v] is changed :: hat events

Choose which EXP Controller joystick axis to use.

Image showing the When Controller Axis block in VEXcode, used to trigger actions based on joystick axis movement.

In this example, moving the 4th joystick axis on the EXP Controller will print a message.

  when Controller axis [4 v] is changed :: hat events
  print [Controller axis 4 moved.] on [Brain v] ◀ and set cursor to next row

When Bumper#

The When Bumper block is used to run the attached stack of blocks when the selected Bumper Switch sensor is pressed or released.

  when [BumperB v] [pressed v] :: hat events

Choose which Bumper to use.

Image showing the When Bumper" block used in VEXcode to trigger actions when a bumper switch is pressed or released.

Select which action will trigger the event - pressed or released.

Diagram illustrating the When Bumper" block functionality in VEXcode Blocks programming.

In this example, when the Bumper Switch sensor is pressed, a message will be printed on the Brain.

  when [BumperB v] [pressed v] :: hat events
  print [Bumper has been pressed.] on [Brain v] ◀ and set cursor to next row

When Limit#

The When Limit block is used to run the attached stack of blocks when the selected Limit Switch sensor is pressed or released.

  when [LimitSwitchA v] [pressed v] :: hat events

Choose which Limit Switch to use.

Diagram illustrating the functionality of the When Limit block in VEXcode, detailing sensor activation.

Select which action will trigger the event - pressed or released.

Diagram illustrating the When Limit" block functionality in VEXcode.

In this example, when the Limit Switch sensor is pressed, a message will be printed on the Brain.

  when [LimitSwitchA v] [pressed v] :: hat events
  print [Limit Switch has been pressed.] on [Brain v] ◀ and set cursor to next row

When Timer#

The When Timer block is used to run the attached stack of blocks when the Brain’s timer is equal to the given value.

  when timer > (1) seconds :: hat events

The Brain’s timer begins at the beginning of each project or whenever the Brain’s timer is reset.

Choose an amount of time. The when timer event will run once the Brain’s timer is equal to the entered amount.

  when timer > (3.25) seconds :: hat events

In this example, after 5 seconds have passed, the Robot will print the message to the Print Console.

  when timer > (5) seconds :: hat events
  print [5 seconds have passed.] ▶

When I Receive#

The When I Receive block is used to run the attached stack of blocks when the selected message is received from a broadcasted message.

  when I receive (message1 v)

Choose which message to listen for. A new message can also be created.

Flowchart illustrating various event blocks in VEXcode, including When Started and When I Receive blocks.

In this example, the code will continuously check if the Left Sensor Bumper was pressed. Once pressed, the When I Recieve block will trigger once the bumper_press message is received.

Diagram illustrating various event blocks in VEXcode, including When Started, When Controller Button, and more.

Broadcast#

The Broadcast block is used to broadcast a message to activate any stacks that begin with a When I Receive block listening for the broadcasted message.

  broadcast [message1 v]

The stack that sends the broadcast will continue to run blocks at the same time as other stacks that receive the broadcasted message.

Choose which message to broadcast. A new message can also be created.

Flowchart illustrating different event blocks in VEXcode, including When Started, When Controller Button, and more.

In this example, the code will continuously check if the Left Sensor Bumper was pressed. Once pressed, the Broadcast block will trigger the When I Receive block with the message bumper_press.

Diagram illustrating various event blocks in VEXcode, including When Started, When Controller Button, and more.

Broadcast and Wait#

The Broadcast and Wait block is used to broadcast a message to activate any stacks that begin with a When I Receive block listening for the broadcasted message while also pausing the rest of the stack.

This block broadcasts a message to activate any stacks that begin with a when I receive block listening for the broadcasted message while also pausing the rest of the stack.

  broadcast (message1 v) and wait

The stack that sends the broadcast and wait will pause until the other stacks that receive the broadcasted message have completed.

Choose which message to broadcast. A new message can also be created.

Flowchart illustrating different event blocks in VEXcode, including When Started, When Controller Button, and more.

In this example, the code will continuously check if the Left Sensor Bumper was pressed. Once pressed, the Broadcast and Wait block will trigger the When I Receive block with the message bumper_press. No code underneath the When Started block will execute until everything underneath the bumper_press When I Receive block is finished.

Flowchart illustrating various event blocks in VEXcode, including When Started, When Controller Button, and more.

When Optical Sensor#

The When Optical Sensor block is used to run the attached stack of blocks when the selected Optical Sensor detects or loses an object.

  when [Optical7 v] [detects v] an object :: hat events

Choose an Optical Sensor.

Diagram illustrating the functionality of the When Optical Sensor block in VEXcode Blocks programming.

Choose whether the When Optical detects/loses event is triggered when the sensor detects an object, or loses an object.

Optical sensor detecting a gesture, triggering a message to be printed to the Brain's screen in VEXcode.

In this example, once the Optical Sensor has detected an object, a message will be printed to the Brain.

  when [Optical7 v] [detects v] an object :: hat events
  print [Optical Sensor has detected an object.] on [Brain v] ◀ and set cursor to next row

When Optical Sensor Detects a Gesture#

The When Optical Sensor Detects a Gesture block is used to run the attached stack of blocks when the selected Optical Sensor detects a gesture.

  when [Optical7 v] gesture [up v]  :: hat events

Important: The When Optical Sensor Detects a Gesture will not work unless the Optical Set Mode block is used to set the Optical Sensor to detect gestures.

  set [Optical7 v] to [color v] mode

Choose an Optical Sensor.

Diagram illustrating the When Optical Sensor Detects a Gesture block in VEXcode programming.

Choose which gesture will trigger the event block.

Diagram illustrating the When Optical Sensor Detects a Gesture" block in VEXcode programming.

In this example, once the Optical Sensor has detected a left gesture, a message will be printed to the Brain.

  when [Optical7 v] gesture [Left v] :: hat events
  print [Left gesture detected.] on [Brain v] ◀ and set cursor to next row

When Control Stopped#

The When Control Stopped block is used to run the attached stack of blocks when the Arm’s control stop has been enabled.

Important: When control stop is enabled in a project, it cannot be disabled without restarting the project.

  when [Arm1 v] control stopped :: hat events

Select which 6-Axis Robotic Arm to use.

Image showing the When Control Stopped" block in VEXcode.

In this example, once the control stop is enabled, a message saying the control has been enabled will be printed to the Brain’s screen.

  when [Arm1 v] control stopped :: hat events
  print [Arm's control stop has been enabled.] on [Brain v] ◀ and set cursor to next row

When Signal Tower Bumper is Pressed#

The When Signal Tower Bumper is Pressed block is used to run the attached stack of blocks when the Signal Tower’s bumper sensor is pressed.

  when [signal tower v] bumper pressed :: hat events

Select which Signal Tower’s bumper sensor to use.

Signal tower with a pressed bumper sensor indicating an event trigger in a robotics programming context.

In this example, the 6-Axis Arm will enable its control stop when the Signal Tower’s bumper sensor is pressed.

  when [signal tower v] bumper pressed :: hat events
  set [arm v] to control stopped