Controller#
The V5 Controller allows users to control and customize behaviors for their robot or display messages on the Controller’s screen.
Below is a list of available blocks:
Values – Read button states and joystick positions.
Controller pressed? – Returns whether a selected button is pressed.
Controller position – Returns a joystick’s position.
Actions – Rumble the controller and enable or disable configured Controller functions.
play rumble – Plays a rumble pattern on the Controller.
Controller enable/disable – Enables or disables Controller-configured actions.
Events – Run code when a button is pressed or joystick is moved.
when Controller button pressed – Runs the attached stack when a selected button is pressed or released.
when Controller axis is changed – Runs the attached stack when a joystick axis value changes.
Screen – Display text and numbers on the Controller’s screen.
print on Controller – Prints text and numbers to the Controller’s screen.
set cursor on Controller – Moves the cursor to the next row.
set cursor to next row on Controller – Moves the cursor to the next line.
set print precision on Controller – Sets decimal places for printed numbers.
clear Controller – Clears the Controller screen.
clear row on Controller – Clears a single row on the Controller screen.
Values#
Controller pressed?#
The Controller pressed? block returns a Boolean indicating whether a specific button on the controller is currently pressed.
True – The specified button on the controller is being pressed.
False – The specified button on the controller is not being pressed.
<[Controller1 v] [▲ v] pressed?>
Parameter |
Description |
|---|---|
device |
Which controller to use, configured in the Devices window. |
button |
Which button to check:
|
Example
when started
[Drive forward while X is pressed.]
forever
if <[Controller1 v] [X v] pressed?> then
drive [forward v]
else
stop driving
Controller position#
The Controller position block returns how far a joystick is moved along a specific axis from -100 to 100. A value of 0 means the joystick is centered.
([Controller1 v] [1 v] position)
Parameter |
Description |
|---|---|
device |
Which controller to use, configured in the Devices window. |
axis |
Which axis to check:
|
Example
when started
[Drive forward while the left joystick is pushed up.]
forever
if <([Controller1 v] [3 v] position) [math_greater_than v] [0]> then
drive [forward v]
else
stop driving
Actions#
play rumble#
The play rumble block plays a rumble pattern on the Controller.
play rumble [Long v] on [Controller1 v]
Parameter |
Description |
|---|---|
pattern |
The rumble pattern to play on the controller:
|
device |
Which controller to use, configured in the Devices window. |
Controller enable/disable#
The Controller enable/disable block enables or disables Controller configured actions from the Devices menu for all connected controllers.
Controller [Disable v]
Parameter |
Description |
|---|---|
state |
What state to set the connected controllers to:
|
when started
[Disable controller configured actions until drive is done.]
Controller [Disable v]
drive [forward v] for (6) [inches v] ▶
Controller [Enable v]
Events#
when Controller axis changed#
The when Controller axis changed block runs the attached stack of blocks whenever the value of a specified joystick axis changes.
when [Controller1 v] axis [1 v] changed :: hat events
Parameter |
Description |
|---|---|
device |
Which controller to use, configured in the Devices window. |
axis |
Which axis to check:
|
Example
when [Controller1 v] axis [3 v] changed :: hat events
[Move forward when left joystick is up, backwards if down.]
if <([Controller1 v] [3 v] position) [math_greater_than v] [0]> then
drive [forward v]
else if <([Controller1 v] [3 v] position) [math_less_than v] [0]> then
drive [reverse v]
else
stop driving
Screen#
The V5 Controller has access to 3 rows and 19 columns to print on.

print on Controller#
The print on Controller block prints text and numbers to the Controller’s screen.
print [VEXcode] on [Controller1 v] ▶
Parameter |
Description |
|---|---|
value |
The text, number, or variable value to display. |
device |
Which controller to use, configured in the Devices window. |
expanding arrow |
Expand the block to read and set cursor to next row and make the cursor move to the next row after this block. |
Example
when started
[Display a message on the Controller.]
print [Hello!] on [Controller1 v] ▶
set cursor on Controller#
The set cursor on Controller block sets the cursor to a specific row and column on the controller’s screen. The controller screen has 3 rows and 19 columns.

set cursor to row [1] column [1] on [Controller1 v]
Parameter |
Description |
|---|---|
row |
The row of the cursor from 1 to 3. |
column |
The column of the cursor from 1 to 19. |
device |
Which controller to use, configured in the Devices window. |
Example
when started
[Clear the screen to prepare for printing.]
clear [Controller1 v]
set cursor to row [1] column [1] on [Controller1 v]
print [Hello!] on [Controller1 v] ▶
set cursor to next row on Controller#
The set cursor to next row on Controller block sets the cursor to the next row on the controller’s screen.
set cursor to next row on [Controller1 v]
Parameter |
Description |
|---|---|
device |
Which controller to use, configured in the Devices window. |
Example
when started
[Clear the screen to prepare for printing.]
clear [Controller1 v]
set cursor to row [1] column [1] on [Controller1 v]
print [Row 1] on [Controller1 v] ▶
set cursor to next row on [Controller1 v]
print [Row 2] on [Controller1 v] ▶
set print precision on Controller#
The set print precision on Controller block sets how many decimal places are shown when printing numbers on the controller’s screen.
set print precision to [1 v] on [Controller1 v]
Parameter |
Description |
|---|---|
precision |
How many decimals will be shown when numbers are printed:
|
device |
Which controller to use, configured in the Devices window. |
Example
when started
[Display division with two decimals.]
set print precision to [0.01 v] on [Controller1 v]
print ([1] [math_division v] [3]) on [Controller1 v] ▶
clear Controller#
The clear Controller block clears the Controller’s screen.
clear [Controller1 v]
Parameter |
Description |
|---|---|
device |
Which controller to use, configured in the Devices window. |
Example
when started
[Clear the screen to prepare for printing.]
clear [Controller1 v]
set cursor to row [1] column [1] on [Controller1 v]
print [Hello!] on [Controller1 v] ▶
clear row on Controller#
The clear row on Controller block clears a specified row on the Controller’s screen.
clear row [1] on [Controller1 v]
Parameter |
Description |
|---|---|
row |
Which row to clear from 1 to 3. |
device |
Which controller to use, configured in the Devices window. |
Example
when started
[Clear only one row on the controller.]
clear [Controller1 v]
set cursor to row [1] column [1] on [Controller1 v]
print [I will go!] on [Controller1 v] ▶
set cursor to next row on [Controller1 v]
print [I will stay!] on [Controller1 v] ▶
wait [2] seconds
clear row [1] on [Controller1 v]