Game Controller Input
planned
Signal Linden
Add the ability to receive input from game controllers such as joysticks, Xbox controllers, etc. This will allow the creation ofhHelicopters and planes that use analog input from console controllers, attachments that control drones, arcade games, cranes, machinima puppetry, etc.
This new feature will be implemented by adding a LSL event
game_control(...)
which script authors can use to capture and respond to input from users.For further details, see https://wiki.secondlife.com/wiki/Game_control
Log In
Valencia Skydancer
This would increase accessibility for those of us who have chronic illnesses. Please make it a priority.
Huns Valen
I did a POC of this using SLProxy 19 years ago: https://www.youtube.com/watch?v=O1azPHvmzwE
Reading axes off a joystick and piping them into SL took a week for me to figure out in C#. I had never written a line of code in C# before. That's the total time it took to go from zero to a working joystick interface in SL, complete with axis calibration and a deadband, in a new IDE and language that I had to learn as I went along.
Wasn't a full week, either. I just did it in my spare time.
My point is that this is not remotely hard to do. The fact that it hasn't been done yet is a real head-scratcher. Vehicles are one of the biggest things that keep people interested in SL. Why not make them more fun and engaging?
Toothless Draegonne
Huns Valen Part of this is writing a new game_control event for scripts to understand, not just "make the viewer understand controllers".
Though yes it is annoying to have it get to an almost working state and then put on hold.
Huns Valen
Toothless Draegonne Making the viewer understand joysticks is probably the harder part. Everyone has different stuff, so there has to be mapping, so it has to go through some kind of design process. If they leave it up to one developer to do all of that, it's probably not bad... but if they have heavy product development processes, it could take a wicked long time just to get the work farmed out (like months, I'm not kidding, that is very common in corporate America.)
The part where they inject the axes and switches into the communication stream and then respond to them on the back end is probably a few weeks at most for a single developer, and that assumes they're also working on other things concurrently.
Atomic Infinity
Huns Valen
There is a full function test viewer already for a year+, available at :
Verified today 21-Sept-2025 it still works, at least for the moment. The LSL game_control() event is fully functional on the main grid, you just have to be using that viewer.
LSL wiki details here : https://wiki.secondlife.com/wiki/Game_control
Test viewer setup info : https://wiki.secondlife.com/wiki/LSL_Game_Control_Beta
That's why it is so infuriating... we asked only for controller-to-LSL, and it is right there within reach, but forever pushed back from main viewer deploy because of feature creep bloat.
Huns Valen
Atomic Infinity
Well, that PR is over a year stale at this point, so it would probably take multiple hours (if not days) just to rebase it.
Maybe LL lets its employees use Cursor, which is pretty good at rebasing. (Of course, being AI, you have to watch it like a hawk, because it LOOOVES to mess up.)
I am a little curious about this, but actually spending time overhauling my physics engine to take input from this event... it would be fun, of course... but against a year+ old PR? I wonder if it would even be able to connect to the grid, in its current state.
It also seems to be based mostly on console-like controllers. I don't know that it would be fully useful for flight sim setups with more than a single device, like rudder pedals. I'd still take it over nothing, though.
Atomic Infinity
Huns Valen it does still work, I logged it in to main grid yesterday and operated one of my experimental builds with it.
I think a lot of non-console setups will still trigger off axes and buttons, might have to poke it and see what result you get.
Huns Valen
Atomic Infinity
I'm probably not going to touch this unless it gets merged. I don't want to put any time into it until it's definitely going somewhere.
Robotshaz Resident
Game Controller input would be amazing for SL to have implemented. I was just riding a BMX bike in SL just yesterday and I do think it would be alot better if we could use controllers to control vehicles in SL because my steering was awful with me using keyboard and mouse lol. I was riding a track and I kept crashing so many times during my ride. So yes definately keep thinking about this because it would be good if we soculd use controllers in the future.
Kinda Vile
LL please give a response as to why this is no longer in progress. Keyboard controls are the worst for things like vehicles, and you released Combat 2.0 for less of a demographic.
Honestly it seems like whenever LL comes up with a good idea that could radically improve an aspect of it's script engine or user experience it just gets dropped even after being done. So sick of this.
Apfelhans Resident
Kinda Vile
Since your're probably waiting in vain for an update I'll reply with what I found
"The game_control capability remains on-hold. Leviathan Linden is currently engaged in other work, and unfortunately, game_control is is “near the bottom of” the stack of work he has on-hold as a result."
I'm also really really hoping for this to finally find its way into SL (same with the basic sound pitching functionality for finally ok engine noises) but to be honest I'm not holding my breath at this point especially since apparently one of their main devs left recently.
Kinda Vile
Apfelhans Resident Very disappointed with LL tbh. Thanks for the update.
Honestly this seems par for the course and I really was hoping they would actually start paying attention to the more interactive content on their platform again.
Toothless Draegonne
Wait what? Come on, it's 2025 and there's no game controller support. That was an anachronism in 2003, let alone now. Why the sudden extra delay?
Atomic Infinity
I am going to vent my ongoing frustration....
The first post in this thread from December 2023 says that this is 'In Progress'. It was indeed true - we were actively using and testing it on Beta grid since October 2023.
An updated status set here at March 2025 downgrades it to just 'Planned'.
Leviathan Linden's test viewer already works very well, has a working UI, and all the server and LSL script functionality is already deployed on the main grid in August 2024. Why stop now? It is quite tragic how all Leviathian's hard work on this gathers virtual dust, because its been deemed a low priority by the LL decision makers, and is not being included in RC viewers.
Does this downgrade to just 'Planned' mean its basically back to the bottom of the viewer priorities list (again)? SL must be one of very few virtual spaces/games where in 2025 you can't use analog input game controllers to do stuff.
99% of Game_Control in SL is that one checkbox in the viewer 'Send Game Control Data to Server'. With that alone, the creators can get busy.
We don't actually need a complex UI in the viewer Preferences, basic is fine. There is always the option to update again later when there is feedback about what the users need that UI to actually do.
Game_Control needs to be INCLUDED in the RC viewers at least, not shoved out the back like it has been now for well over a year.
davidventer Resident
Just gonna leave this here: https://developer.apple.com/documentation/gamecontroller?language=objc
SarahKB7 Koskinen
I hope all generations of PlayStation controller pads are included in this feature.
Signal Linden
planned
Atomic Infinity
Axes 4 and 5 do provide analog values, from 0.0 to 1.0, I get them from using an xbox controller. 0.0 at unpressed, with proportional number up to 1.0 fully pressed. It may be that some controllers have on/off buttons at that location instead?
I have been playing with game_control quite a bit, and find the list of axes presented as it is allows me to use just the values I need, or I can pop the values into my own vectors as necessary.
If you wanted a new value of a trigger axis to be of a wider range (like -1.0 to +1.0), you could just do something like newvalue = (triggervalue * 2)-1.0 I guess my point being that with a tiny math modify, we can make the axis values be whatever suits our own purposes, as its not going to be possible to make all axes in all the different formats for all the different joysticks.
NiteRider Kahane
feel like axes 4 and 5 could also report a negative value for those controllers that have full 6 axes, xbox controllers can be handled as the 0~1.0 setup, while those others can do -1.0~1.0.. the older DirectInput setup for them reports the 2 xbox controller triggers as a single axis, one as the negative side, the other as the positive side, so holding both reports a 'neutral axis' rather than as both inputs active.. the reason for the -1~1 reporting on 4 and 5 would be for example, a steamdeck using a touchpanel as a 3rd stick essentially.. heck the steamdeck's builtin gamepad could emulate 4 sticks and 2 triggers.. using the 2 physical sticks, the touchpanels and the triggers..
Load More
→