LSL Game Control Beta
LSL Game Control is a way for scripts in vehicles and attachments to use game controller input from devices such as Xbox, PS4/5 and joysticks. For example, a helicopter could more delicately maneuver, using input from the analog stick rather than WASD on a keyboard.
👉 For information about the LSL event and writing scripts that use game control see: game_control.
2026 Update News
The v2026.05 server release updates game controls in a few ways:
- The UDP message for game control has changed. The new message is named GameControlData. As a result of this change, older test viewers prior to 0.7.11 are incompatible with the server.
- A new permission bit has been added, and is now required to receive game control data: PERMISSION_GAME_CONTROL. This permission is automatically granted to attached and sat-upon scripts.
- With the addition of the permission, it is now possible for other objects to receive game_control events from agents. Think remote controlled vehicles.
- The new UDP message contains both the raw input device data from the agent, along with semantic input data which includes context for how the viewer has mapped a particular input. This new semantic data can be accessed in 3 new functions:
Instructions
- Download and install the installer from Github
- Plug in a compatible game controller device
- Open GameControl preferences Me --> Preferences... --> Game Controls
- Enable Send GameControl Data to server
If you don't have a game controller device you can still send some GameControl data to the server by using the keyboard because normal avatar movement input will be translated into equivalent GamneControl data. For example when using default action mapping: pressing 'C' on the keyboard to crouch will trigger a game_control event with GAME_CONTROL_AXIS_TRIGGERLEFT set to -0.5 and an indication that the GAME_CONTROL_BUTTON_EAST button was pressed.