Joystick and Button Shares the same limit, there are only 4 points in this limit, Button consumes 1 point each and joystick consumes 2 points, at max you can have 1 joystick + 2 buttons, 2 joysticks, or 4 buttons

Joystick

Adds joystick/s in the screen, unlike most of the blocks in Control tab, Joystick doesn't have any execution (yellow) output wire

Details

Output :

- Joy Dir: (Joystick Direction) Outputs joystick movement's direction

Settings :

- Direction: Most useful when perspective is active, changes the direction "Joy Dir" outputs:

  • XZ - Outputs XZ vector values perpendicular to camera direction (While assuming that the screen is always facing straight to a certain axis)

  • Screen - Outputs XY vector values regardless of where the camera is facing.

Button

Adds button/s in the screen.

Details

Output :

- Button: Executes when the button display is pressed

Settings :

- Display: Changes wheter the buttons should be displayed as buttons or arrows:

  • Button - displays the button as a circular button
  • Direction - displays the button as a directional arrow

Setting the display to "Direction" mode results in following :

  • 1 button - button is displayed as arrow pointing up
  • 2 buttons - buttons are displayed as arrows facing left and right respectively
  • 3 buttons - buttons are displayed as arrows facing left , right and up respectively
  • 4 buttons - buttons are displayed as arrows facing left , right , down and up respectively

Advanced Techniques

Joystick

Joystick may not give the right outputs you need, this is because it only gives values perpendicular to the where the camera is facing, for example, if you use XZ option the values will seem normal if the camera is facing in Y-axis upwards or downwards regardless of angle but if it's facing sidewards or front and backwards it will only output X-axis value if you're looking at Z-axis and vice versa, in this case you could instead use the Screen option which outputs XY values instead and ignores where the camera is facing. This will help but also there's still one more problem to solve, it only output values upwards and sidewards now! Well the solution is actually pretty simple!! Just use rotate vector with Rotation input [90,0,0].