This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)


gives the state of the control c for the first connected controller device on which it is supported.
gives the states of several controls.
gives the state of control c for controller devices with the specified identifier.
gives the states of several controls for several controller devices.
  • Dynamic gives continually updated current controller states.
  • Typical control names include:
or xprimary value
or yprimary value
or zprimary value
or {x,y}primary 2-axis controller value
or {x,y,z}primary 3-axis controller value
, , , etc.x, y, , etc.values from a secondary controller
, , etc., , etc.button states
  • The following special control names are also possible:
"Axes"a list of all supported axis-like controls
"Buttons"a list of all supported button-like controls
"Controls"a list of all supported controls
"Hardware"information on the controller device hardware
"Mapping"rules for Mathematica mappings of controls
"Rules"rules for the settings of all controls
  • ControllerState always gives absolute instantaneous control states; it does not give relative or cyclic control states of the type available in Manipulate.
  • If no explicit controller identifier id is given, the controller used will be the first one found on the list specified by the option ControllerPath that supports all the controls requested.
  • Identifiers for controllers can be the following:
"name"device name from ControllerInformation
"class"device class specifier
nraw device index from ControllerInformation
Allall devices supporting the requested controls
  • Possible device class identifiers include:
"Gamepad"controller typically including two analog controls
"Joystick"controller typically including one primary analog control
"Detachable"controller not built into a computer
"BuiltIn"controller built into a computer
Check the state of button 1:
Check multiple values at once:
Check the state of button 1:
Click for copyable input
Check multiple values at once:
Click for copyable input
Acquire a list of all button controls supported by the device:
Specify which controller type should be used:
If no device of that type is attached, $Failed is returned:
If multiple controllers are attached, specify the order of control sampling:
By default, controls are sampled in the following order:
The controls for Manipulate are automatically linked to a controller:
Bind to the X controller when your selection contains the output:
ControllerInformation can be used to find a device name:
New in 6