
KeylessUniversal

--[[
FE Mobile Fly V2 By Fedoratum#6195
Walk a bit when you execute the script
Type in the box (stop), to stop the script
Update Log V2
Added many more checkups (V2)
Fixed script breaking when respawn (V2)
Changed new way to stop script (V2)
]]--
local UserInputService = game:GetService"UserInputService"
local STARTERGUI = game:GetService"StarterGui"
local plr = game:GetService"Players"
local Lp = plr.LocalPlayer
if not table.find({Enum.Platform.IOS, Enum.Platform.Android}, game:GetService("UserInputService"):GetPlatform()) then
STARTERGUI:SetCore("SendNotification",{
Title = "FED's Mobile Fly",
Text = "You are in pc!",
Icon = "rbxassetid://278315432",
Duration = 4
})
return
end
if not Lp.Character and not Lp.Character:FindFirstChildOfClass("Humanoid") and not Lp.Character:FindFirstChildOfClass("Humanoid").RootPart and Lp.Character:FindFirstChildOfClass("Humanoid").Health == 0 then
STARTERGUI:SetCore("SendNotification",{
Title = "FED's Mobile Fly",
Text = "Something errored or does not exist!",
Icon = "rbxassetid://278315432",
Duration = 4
})
return
end
-- // Detect if script is ran twice
if game:GetService("ReplicatedStorage"):FindFirstChild("BZn2q91BzN") then
STARTERGUI:SetCore("SendNotification",{
Title = "FED's Mobile Fly",
Text = "Script is already running",
Icon = "rbxassetid://278315432",
Duration = 4
})
return
end
local ScreenGui = Instance.new("ScreenGui")
local FlyButton = Instance.new("TextButton")
local SpeedBox = Instance.new("TextBox")
local NSound = Instance.new("Sound", FlyButton)
NSound.SoundId = "rbxassetid://9086208751"
NSound.Volume = 1
function Notify(Txt, Dur)
STARTERGUI:SetCore("SendNotification",{
Title = "FED's Mobile Fly",
Text = Txt,
Icon = "rbxassetid://278315432",
Duration = Dur
})
NSound:Play()
end
-- // Avoid if user runs the script twice to avoid errors
local VdbwjS = Instance.new("StringValue",game:GetService("ReplicatedStorage"))
VdbwjS.Name = "BZn2q91BzN"
Notify("Script made by fedoratum", 5)
local rs = game:GetService"RunService"
local buttonIsOn = false
-- // Gui Customization
ScreenGui.Parent = game:GetService("CoreGui")
ScreenGui.ResetOnSpawn = false
FlyButton.Name = "FlyButton"
FlyButton.Parent = ScreenGui
FlyButton.BackgroundColor3 = Color3.new(0.168627, 0.513726, 0.25098)
FlyButton.BorderColor3 = Color3.new(0,0,0)
FlyButton.Position = UDim2.new(0.912970064, 0, 0.194202876, 0)
FlyButton.Size = UDim2.new(0, 50, 0, 50)
FlyButton.Font = Enum.Font.Code
FlyButton.Text = "Fly"
FlyButton.TextColor3 = Color3.new(0,0,0)
FlyButton.TextSize = 14
FlyButton.TextStrokeColor3 = Color3.new(1, 1, 1)
FlyButton.TextWrapped = true
FlyButton.Transparency = 0.2
FlyButton.Active = true
FlyButton.Draggable = true
SpeedBox.Name = "SpeedBox"
SpeedBox.Parent = FlyButton
SpeedBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SpeedBox.Position = UDim2.new(-1.716970064, 0, 0.004202876, 0)
SpeedBox.Size = UDim2.new(0, 80, 0, 50)
SpeedBox.Font = Enum.Font.Code
SpeedBox.PlaceholderText = "Speed or stop"
SpeedBox.Text = ""
SpeedBox.TextColor3 = Color3.fromRGB(0, 0, 0)
SpeedBox.TextScaled = true
SpeedBox.TextSize = 14.000
SpeedBox.TextWrapped = true
-- // Get Joystick of user
local controlModule = require(Lp:WaitForChild("PlayerScripts"):WaitForChild("PlayerModule"):WaitForChild("ControlModule"))
-- // Velocity additions
local bv = Instance.new("BodyVelocity",Lp.Character.Humanoid.RootPart)
bv.Name = "VelocityHandler"
bv.MaxForce = Vector3.new(0,0,0)
bv.Velocity = Vector3.new(0,0,0)
local bg = Instance.new("BodyGyro",Lp.Character.HumanoidRootPart)
bg.Name = "GyroHandler"
bg.MaxTorque = Vector3.new(9e9,9e9,9e9)
bg.P = 1000
bg.D = 50
-- // Keep checking so it works
-- // Needed different threads to check each
local Signal1
Signal1 = rs.Heartbeat:Connect(function()
if Lp.Character and Lp.Character:FindFirstChildOfClass("Humanoid") and Lp.Character.Humanoid.RootPart and Lp.Character.HumanoidRootPart:FindFirstChild("VelocityHandler") and Lp.Character.HumanoidRootPart:FindFirstChild("GyroHandler") then
return
end
if Lp.Character and Lp.Character:FindFirstChildOfClass("Humanoid") and Lp.Character.Humanoid.RootPart and not Lp.Character.HumanoidRootPart:FindFirstChild("VelocityHandler") then
local bv = Instance.new("BodyVelocity")
bv.Name = "VelocityHandler"
bv.Parent = Lp.Character:FindFirstChildOfClass("Humanoid").RootPart
bv.MaxForce = Vector3.new(0,0,0)
bv.Velocity = Vector3.new(0,0,0)
rs.Heartbeat:Wait()
end
if Lp.Character and Lp.Character:FindFirstChildOfClass("Humanoid") and Lp.Character.Humanoid.RootPart and not Lp.Character.HumanoidRootPart:FindFirstChild("GyroHandler") then
local bg = Instance.new("BodyGyro")
bg.Name = "GyroHandler"
bg.Parent = Lp.Character:FindFirstChildOfClass("Humanoid").RootPart
bg.MaxTorque = Vector3.new(9e9,9e9,9e9)
bg.P = 1000
bg.D = 50
rs.Heartbeat:Wait()
end
end)
local Workspace = game:GetService"Workspace"
local camera = Workspace.CurrentCamera
local speed = 50 -- default
-- // Adding respond to joystick movement
-- // Adding button toggles to detect button state
local Signal2
Signal2 = rs.RenderStepped:Connect(function()
if Lp.Character and Lp.Character:FindFirstChildOfClass("Humanoid") and Lp.Character.Humanoid.RootPart and Lp.Character.HumanoidRootPart:FindFirstChild("VelocityHandler") and Lp.Character.HumanoidRootPart:FindFirstChild("GyroHandler") then
if buttonIsOn then
FlyButton.Text = "Fly: On"
FlyButton.BackgroundColor3 = Color3.new(0,255,0)
Lp.Character.HumanoidRootPart.VelocityHandler.MaxForce = Vector3.new(9e9,9e9,9e9)
Lp.Character.HumanoidRootPart.GyroHandler.MaxTorque = Vector3.new(9e9,9e9,9e9)
Lp.Character.Humanoid.PlatformStand = true
elseif buttonIsOn == false then
FlyButton.Text = "Fly: Off"
FlyButton.BackgroundColor3 = Color3.new(255,0,0)
Lp.Character.HumanoidRootPart.VelocityHandler.MaxForce = Vector3.new(0,0,0)
Lp.Character.HumanoidRootPart.GyroHandler.MaxTorque = Vector3.new(0,0,0)
Lp.Character.Humanoid.PlatformStand = false
return
end
Lp.Character.HumanoidRootPart.GyroHandler.CFrame = camera.CoordinateFrame
local direction = controlModule:GetMoveVector()
Lp.Character.HumanoidRootPart.VelocityHandler.Velocity = Vector3.new()
if direction.X > 0 then
Lp.Character.HumanoidRootPart.VelocityHandler.Velocity = Lp.Character.HumanoidRootPart.VelocityHandler.Velocity + camera.CFrame.RightVector*(direction.X*speed)
end
if direction.X < 0 then
Lp.Character.HumanoidRootPart.VelocityHandler.Velocity = Lp.Character.HumanoidRootPart.VelocityHandler.Velocity + camera.CFrame.RightVector*(direction.X*speed)
end
if direction.Z > 0 then
Lp.Character.HumanoidRootPart.VelocityHandler.Velocity = Lp.Character.HumanoidRootPart.VelocityHandler.Velocity - camera.CFrame.LookVector*(direction.Z*speed)
end
if direction.Z < 0 then
Lp.Character.HumanoidRootPart.VelocityHandler.Velocity = Lp.Character.HumanoidRootPart.VelocityHandler.Velocity - camera.CFrame.LookVector*(direction.Z*speed)
end
end
end)
-- // Using TouchTap to avoid accidental toggle by dragging
FlyButton.TouchTap:Connect(function()
buttonIsOn = not buttonIsOn
end)
-- // Detect TextBox with only numbers or commands are accepted
local Signal3
Signal3 = SpeedBox:GetPropertyChangedSignal("Text"):Connect(function()
if tonumber(SpeedBox.Text) then
speed = tonumber(SpeedBox.Text)
end
if SpeedBox.Text:sub(1,4) == "stop" then
Signal1:Disconnect()
Signal2:Disconnect()
Signal3:Disconnect()
if game:GetService"ReplicatedStorage":FindFirstChild("BZn2q91BzN") then
game:GetService"ReplicatedStorage":FindFirstChild("BZn2q91BzN"):Destroy()
end
ScreenGui:Destroy()
if Lp.Character and Lp.Character:FindFirstChildOfClass("Humanoid") then
Lp.Character:FindFirstChildOfClass("Humanoid"):ChangeState(15)
end
end
end)



Genuinely so goated