Other ways to collect user input, other than UIS?

This question is pretty simple, but I just want to know if their is any other way to collect player keyboard input other than UIS. UIS has lots of possibility but in some cases another form of keyboard input would be better. Any ideas? Thanks.

There’s also ContextActionService, but UIS is going to be a lot more straightforward to use. Mouse.KeyDown works but is obsolete and Roblox doesn’t guarantee that it will continue to work properly.