--[[ 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)