Hey! I was wondering how to check if a player was mobile or pc because I want to give mobile players a special gear.
You can use UserInputService | Roblox Creator Documentation for this
local UserInputService = game:GetService("UserInputService")
if UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled and not UserInputService.MouseEnabled then
print("Mobile device")
elseif not UserInputService.TouchEnabled and UserInputService.KeyboardEnabled and UserInputService.MouseEnabled then
print("Computer device")
end
Wait so like I’d say player.UserInputService orrrr… thanks btw this helps a lot XD
You can only do that in a local script.
Ok but like what do I put in my script like if player.UserInputService or just like uhm what?
Put it like I said above and use a RemoteEvent | Roblox Creator Documentation to give the player the special gear.
LocalScript in StarterPlayerScripts
local UserInputService = game:GetService("UserInputService")
local RemoteEvent = game.ReplicatedStorage:FindFirstChild("RemoteEvent") -- Put the remote event here, you can name it whatever you want
if UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled and not UserInputService.MouseEnabled then
RemoteEvent:FireServer()
end
Script in ServerScriptService
local RemoteEvent = game.ReplicatedStorage:FindFirstChild("RemoteEvent")
local Gear = game.ServerStorage:FindFirstChild("Gear") -- Put the gear here and change it to the name of your gear
RemoteEvent.OnServerEvent:Connect(function(player)
Gear:Clone().Parent = player.StarterGear
Gear:Clone().Parent = player.Backpack
end)
cc @BMWLux
An important note when making checks like this is that mobile devices CAN have a keyboard and pc devices CAN have a touch screen. There is no 100% accuracy check.
In reality, you shouldn’t be trying to infer device type in most cases. Adapt to the form of input the user wants to use, not what you think they should use.
How would I detect console players with this method?
Like this @iBuzzes?
local UserInputService = game:GetService("UserInputService")
if UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled and not UserInputService.MouseEnabled then
print("Mobile device")
elseif not UserInputService.TouchEnabled and UserInputService.KeyboardEnabled and UserInputService.MouseEnabled then
print("Computer device")
elseif UserInputService.TouchEnabled and UserInputService.KeyboardEnabled and UserInputService.MouseEnabled then
print("Computer device with touchscreen")
elseif UserInputService.GamepadEnabled and not UserInputService.KeyboardEnabled and not UserInputService.MouseEnabled then
print("Console device")
end
Yes, I think that should work.