Converting keyboard controls to Controller/Mobile

Heyo! So, recently, I’ve been working on a project that’s very heavy on keyboard controls. This includes things such as aiming down sights, crouching, and using keyboard buttons like C and V for other abilities. However, I plan on porting this project to mobile and Xbox.

The question is – what is the most accessible way to convert, for example, the button X being pressed to activate the bayonet, to mobile? Should it just be a button? I was thinking of the buttons, but there’s quite a few of these controls so I feel it would be much too cluttered to have everything as buttons. Xbox may be a bit simpler. Perhaps a radial menu?

I’m not too sure on how to go on about this, so any advice/tips is greatly appreciated. Thank you very much!


Before you get into input methods, first you may also want to consider either changing your core game, or not making your game on other platforms at all. 3D games don’t tend to play well on mobile, at least not well enough to compete with PC or consoles.

On mobile you need to fit all of your buttons on one screen, and for something fast-paced and multi-platform like an FPS on Roblox, everything needs to be instantly accessible and easy to use – BUT mobile doesn’t have a lot of screen space, and everything needs to be shown on screen (therefore covering the game world so the player can’t see it). Controllers can be tedious in some situations, too, however they’re still much better than mobile.

I don’t mean to shoot down your idea, but those are legitimate problems that you need to consider and solve before you get too deep in your project. Most of the time a good solution is just simplify – remember the target audience (if you’re going for a popular game) will be kids. Make it easy to play. Phantom Forces is popular even though it has lots of keybinds because you can have fun playing even without knowing the keybinds (aside from left click, right click, WASD and space lol) – also note that it’s not even on mobile at all.

On mobile, you may need to condense your controls. This could mean having one button do multiple things; for example, the jump button in Minecraft mobile also let you toggle sneaking. You want to make your onscreen buttons as small and unobtrusive as possible while still being visible and easy to touch – semi-transparent circles or squares will work well for this.

A radial menu for some things on a controller is good. You can also use the D-pad (left, right, up, down) and some of the X, Y, B, A, RB, LB, R3, L3 buttons to work like keys. Those give you lots to work with. You can also again make one button do multiple things – for example, in Dark Souls, quickly releasing and pressing the sprint button while sprinting will make your character jump.

Anyway, best of luck :slight_smile:


FYI @OP you can use ContextActionService to assign functions to multiple inputs. This allows you to easily make cross-platform controls.