Howdy!
I recently discovered that while I play games on my Xbox controller, whenever I want to edit text I find myself not being able to actually edit it. I just see a blinky crosshair, and nothing going on. So, I decided to put it to my own hands and create a script that does the hard work for you, without you needing to do anything special!
Also, the child of the script has the keyboard module, if you are interested in using it for more discrete ways, here
I present to you, an automated Virtual Keyboard Module!
In any script, you can do
local keyboard_menu = require(path.to.module)
And whenever you want text to be modified using the module, you can do
local text = keyboard_menu.keyboard_input()
Literally, all you need to do is put the script in StarterGui and call it a day! Now your game has free extra support where it previously hasn’t!
This is exactly what it is!
Any textbox in a player’s Gui would have this show up if it needs to. In the localscript, it checks if a virtual keyboard shows up (provided that the toolbox module identifies the user to be actively on a gamepad or mobile). If the mobile device or gamepad does not show a virtual keyboard, then it would show its own. In the future, I’ll provide VR support as well, with the keyboard showing up in a part that follows the headset and can be dragged around, but for the time being it will assist PC/Mobile/Xbox.
Additionally, I’m considering adding a suggestion bar as well in the keyboard, but my focus right now is on the game I am making.
The keyboard module was quite a tedius project that took a day to make. Whenever it opens, the keyboard module hard-codes the up/down/left/right selections of every object (as in if you are selecting the “J” key, if you tell it to select the object up or down of the key it would go to the best estimate). There is way too much code simply for selections and stitching them all together. But in the end, the keyboard is a very robust module. If it notices that the selection is outside of the keyboard, it automatically closes.