Roblox aceita entradas de gamepads, como os controles Xbox e PlayStation. Para simplificar entradas cross‑platform, incluindo gamepads, o Roblox fornece o Input Action System para definir ações como "pular", "correr" ou "atirar" e configurar vínculos para múltiplas entradas de hardware que acionam essas ações.
Ao vincular entradas de gamepad, consulte esquemas de controle comuns para criar uma experiência de gamepad consistente para os jogadores. Depois que as entradas estiverem configuradas, você pode melhorar a experiência do jogador incluindo feedback tátil em controladores compatíveis.
Enquanto você constrói suporte para gamepads, lembre-se de testar frequentemente usando um gamepad conectado ou o Emulador de Controle no Studio.
Detecção de tipo de entrada
No desenvolvimento cross‑platform, é importante que você determine e responda ao tipo de entrada PreferredInput que um jogador está utilizando, normalmente para garantir que os elementos de UI como botões e menus na tela funcionem de maneira elegante e suportem interação entre dispositivos.
Por exemplo, um console assume que os gamepads são a entrada padrão, mas um jogador no PC ou laptop também pode optar por conectar um gamepad bluetooth. Neste caso, o mouse/teclado continua sendo uma entrada válida para esse jogador, mas você pode assumir que eles querem mudar para o gamepad conectado como o tipo de entrada principal.
Consulte detecção de tipo de entrada para mais informações.
Esquemas de controle comuns
Ao considerar vínculos de controle específicos para o Input Action System, é melhor estabelecer consistência entre diferentes jogos. Os seguintes vínculos de entrada ajudarão os jogadores a se sentirem imediatamente familiares e confortáveis com os controles do gamepad.
| Entrada | Casos de uso comuns |
|---|---|
| ButtonA | Aceita prompts ou seleções de GUI do jogador. Usado alternativamente para ações primárias como pular. |
| ButtonB | Cancela prompts ou seleções de GUI do jogador. Usado alternativamente para ações secundárias como desviar, rolar ou correr. |
| Thumbstick1 | Geralmente associado ao movimento do personagem. |
| Thumbstick2 | Geralmente associado ao movimento da câmera. |
| ButtonL2, ButtonR2 | Geralmente usado para ações primárias, como atirar. |
| ButtonL1, ButtonR1, ButtonX, ButtonY | Ações secundárias, como recarregar, mirar ou acessar um inventário ou minimapa. |

Feedback tátil
Muitos controladores de gamepad possuem motores embutidos para fornecer feedback tátil. Adicionar vibrações e tremores pode melhorar consideravelmente a experiência do jogador e fornecer um feedback sutil além de visuais ou áudio.
Roblox suporta haptics para gamepads PlayStation, gamepads Xbox e o controlador Quest Touch. O feedback tátil é gerenciado através de instâncias HapticEffect, que podem ser definidas para um específico Type, como GameplayCollision ou UIClick.
Uma vez que um HapticEffect esteja em funcionamento, você pode iniciá-lo através do método Play(), por exemplo:
local Workspace = game:GetService("Workspace")local effect = Instance.new("HapticEffect")effect.Type = Enum.HapticEffectType.GameplayExplosioneffect.Parent = Workspace-- Reproduzir o efeito tátileffect:Play()
Emulação de controle
O Emulador de Controlador, acessível pelo menu Teste do Studio, permite emular com precisão a entrada do gamepad diretamente no Studio. O controlador padrão é um gamepad genérico, mas você pode selecionar alternativas no menu suspenso no canto superior esquerdo.

Durante os testes, você pode controlar o jogo com o controlador virtual usando seu mouse.
Você também pode clicar em Editar mapeamentos no canto superior direito para visualizar e editar os mapeamentos de teclas para o controlador virtual, por exemplo, E para ButtonL2 ou 9 para ButtonA. Esses mapeamentos são salvos como outras configurações do Studio (por controlador, por usuário, por computador) e são traduzidos em eventos de gamepad tanto na janela do emulador quanto na visualização 3D.