Hello, I am working on making my game mobile compatible! There is a fly feature that lets players press f to fly. Obviously mobile players dont have a f key and I have no idea how I would go about making it compatible! Here’s the code:

lplayer = game:GetService("Players").LocalPlayerlocal Mouse = lplayer:GetMouse()flying = falselocal potato = 1Mouse.KeyDown:connect(function(key) if key == "f" thenif potato == 1 then repeat wait() until lplayer and lplayer.Character and lplayer.Character:FindFirstChild("HumanoidRootPart") and lplayer.Character:FindFirstChild("Humanoid") repeat wait() until Mouse speedfly = script.SPEED.Value local T = lplayer.Character.HumanoidRootPart local CONTROL = F = 0, B = 0, L = 0, R = 0 local lCONTROL = F = 0, B = 0, L = 0, R = 0 local SPEED = script.SPEED.Value local function fly() flying = true local BG = Instance.new("BodyGyro", T) local BV = Instance.new("BodyVelocity", T) BG.P = 9e4 BG.maxTorque = Vector3.new(9e9, 9e9, 9e9) BG.cframe = T.CFrame BV.velocity = Vector3.new(0, 0.1, 0) BV.maxForce = Vector3.new(9e9, 9e9, 9e9) spawn(function() repeat wait() lplayer.Character.Humanoid.PlatformStand = true if CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 then SPEED = 50 elseif not (CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0) and SPEED ~= 0 then SPEED = 0 end if (CONTROL.L + CONTROL.R) ~= 0 or (CONTROL.F + CONTROL.B) ~= 0 then BV.velocity = ((workspace.CurrentCamera.CoordinateFrame.lookVector * (CONTROL.F + CONTROL.B)) + ((workspace.CurrentCamera.CoordinateFrame * CFrame.new(CONTROL.L + CONTROL.R, (CONTROL.F + CONTROL.B) * 0.2, 0).p) - workspace.CurrentCamera.CoordinateFrame.p)) * SPEED lCONTROL = F = CONTROL.F, B = CONTROL.B, L = CONTROL.L, R = CONTROL.R elseif (CONTROL.L + CONTROL.R) == 0 and (CONTROL.F + CONTROL.B) == 0 and SPEED ~= 0 then BV.velocity = ((workspace.CurrentCamera.CoordinateFrame.lookVector * (lCONTROL.F + lCONTROL.B)) + ((workspace.CurrentCamera.CoordinateFrame * CFrame.new(lCONTROL.L + lCONTROL.R, (lCONTROL.F + lCONTROL.B) * 0.2, 0).p) - workspace.CurrentCamera.CoordinateFrame.p)) * SPEED else BV.velocity = Vector3.new(0, 0.1, 0) end BG.cframe = workspace.CurrentCamera.CoordinateFrame until not flying CONTROL = F = 0, B = 0, L = 0, R = 0 lCONTROL = F = 0, B = 0, L = 0, R = 0 SPEED = 5 BG:destroy() BV:destroy() lplayer.Character.Humanoid.PlatformStand = false end) end Mouse.KeyDown:connect(function(KEY) if KEY:lower() == "w" then CONTROL.F = speedfly elseif KEY:lower() == "s" then CONTROL.B = -speedfly elseif KEY:lower() == "a" then CONTROL.L = -speedfly elseif KEY:lower() == "d" then CONTROL.R = speedfly end end) Mouse.KeyUp:connect(function(KEY) if KEY:lower() == "w" then CONTROL.F = 0 elseif KEY:lower() == "s" then CONTROL.B = 0 elseif KEY:lower() == "a" then CONTROL.L = 0 elseif KEY:lower() == "d" then CONTROL.R = 0 end end)potato = 0 fly() else flying = false lplayer.Character.Humanoid.PlatformStand = falsepotato = 1end end end)Nothing special, thanks for reading!


Hd admin and Adonis are open sourced and both have a fly command.

they use chat command to use fly.if you dont want chat, create a button on screen to activate fly.