--[[ 4JAYYZ FLY HUB (JOYSTICK PHYSICS EDITION) 🚀 Logic: MoveDirection + BodyVelocity (Perfect for Android) Design: 4JAYYZ Dark Rainbow ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer --// Variables local speeds = 1 local nowe = false local upSignal = false local downSignal = false --// GUI Creation local ScreenGui = Instance.new("ScreenGui") local MainFrame = Instance.new("Frame") local UIStroke = Instance.new("UIStroke") local Title = Instance.new("TextLabel") local SpeedLabel = Instance.new("TextLabel") ScreenGui.Name = "4Jayyz_Fly_Joystick" ScreenGui.Parent = game:GetService("CoreGui") ScreenGui.ResetOnSpawn = false -- Main Frame MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) MainFrame.Position = UDim2.new(0.5, -90, 0.5, -100) MainFrame.Size = UDim2.new(0, 180, 0, 200) MainFrame.Active = true MainFrame.Draggable = true Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) UIStroke.Thickness = 2 UIStroke.Parent = MainFrame -- Rainbow Animation task.spawn(function() while RunService.RenderStepped:Wait() do local hue = tick() % 5 / 5 UIStroke.Color = Color3.fromHSV(hue, 1, 1) end end) -- Title Title.Parent = MainFrame Title.BackgroundTransparency = 1 Title.Size = UDim2.new(1, 0, 0, 30) Title.Text = "Instagram: 4jayyz" Title.TextColor3 = Color3.new(1, 1, 1) Title.Font = Enum.Font.GothamBold Title.TextSize = 14 -- Button Helper local function CreateBtn(name, text, pos, size, color) local btn = Instance.new("TextButton") btn.Name = name btn.Parent = MainFrame btn.Text = text btn.Size = size or UDim2.new(0, 80, 0, 30) btn.Position = pos btn.BackgroundColor3 = color or Color3.fromRGB(30, 30, 30) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 Instance.new("UICorner", btn) return btn end -- UI Elements local UpBtn = CreateBtn("Up", "UP", UDim2.new(0.05, 0, 0.2, 0)) local DownBtn = CreateBtn("Down", "DOWN", UDim2.new(0.5, 5, 0.2, 0)) local PlusBtn = CreateBtn("Plus", "+", UDim2.new(0.05, 0, 0.4, 0), UDim2.new(0, 40, 0, 30)) local MinusBtn = CreateBtn("Minus", "-", UDim2.new(0.3, 0, 0.4, 0), UDim2.new(0, 40, 0, 30)) SpeedLabel.Parent = MainFrame SpeedLabel.Size = UDim2.new(0, 80, 0, 30) SpeedLabel.Position = UDim2.new(0.5, 5, 0.4, 0) SpeedLabel.Text = "Speed: 1" SpeedLabel.TextColor3 = Color3.fromRGB(255, 170, 0) SpeedLabel.BackgroundTransparency = 1 SpeedLabel.Font = Enum.Font.GothamBold SpeedLabel.TextSize = 12 local FlyToggle = CreateBtn("Fly", "Fly: OFF", UDim2.new(0.05, 0, 0.6, 0), UDim2.new(0.9, 0, 0, 35)) local DestroyBtn = CreateBtn("Destroy", "Destroy UI", UDim2.new(0.05, 0, 0.82, 0), UDim2.new(0.9, 0, 0, 25), Color3.fromRGB(150, 0, 0)) --// Logic: Joystick Fly (Humanoid.MoveDirection) local function FlyLogic() local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local root = char:WaitForChild("HumanoidRootPart") local hum = char:WaitForChild("Humanoid") local bg = Instance.new("BodyGyro", root) bg.P = 9e4 bg.maxTorque = Vector3.new(9e9, 9e9, 9e9) bg.cframe = root.CFrame local bv = Instance.new("BodyVelocity", root) bv.velocity = Vector3.new(0, 0, 0) bv.maxForce = Vector3.new(9e9, 9e9, 9e9) hum.PlatformStand = true task.spawn(function() while nowe and char and root and hum.Parent do RunService.RenderStepped:Wait() -- Joystick Direction Logic local moveDir = hum.MoveDirection local speedMultiplier = speeds * 50 -- Agar joystick move kar raha hai if moveDir.Magnitude > 0 then bv.velocity = moveDir * speedMultiplier else bv.velocity = Vector3.new(0, 0, 0) end -- Camera ke saath character rotate na ho, isliye hum camera rotation follow karenge bg.cframe = workspace.CurrentCamera.CFrame -- Manual UP/DOWN logic if upSignal then root.CFrame = root.CFrame * CFrame.new(0, 1.5, 0) elseif downSignal then root.CFrame = root.CFrame * CFrame.new(0, -1.5, 0) end end -- Cleanup when OFF bg:Destroy() bv:Destroy() hum.PlatformStand = false end) end FlyToggle.MouseButton1Click:Connect(function() nowe = not nowe FlyToggle.Text = "Fly: " .. (nowe and "ON" or "OFF") FlyToggle.BackgroundColor3 = nowe and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(30, 30, 30) if nowe then FlyLogic() else -- Force cleanup agar loop break na ho if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local root = LocalPlayer.Character.HumanoidRootPart if root:FindFirstChild("BodyGyro") then root.BodyGyro:Destroy() end if root:FindFirstChild("BodyVelocity") then root.BodyVelocity:Destroy() end LocalPlayer.Character.Humanoid.PlatformStand = false end end end) --// Speed Control PlusBtn.MouseButton1Click:Connect(function() speeds = speeds + 1 SpeedLabel.Text = "Speed: " .. speeds end) MinusBtn.MouseButton1Click:Connect(function() if speeds > 1 then speeds = speeds - 1 SpeedLabel.Text = "Speed: " .. speeds end end) --// Continuous Up/Down detection UpBtn.MouseButton1Down:Connect(function() upSignal = true end) UpBtn.MouseButton1Up:Connect(function() upSignal = false end) UpBtn.MouseLeave:Connect(function() upSignal = false end) DownBtn.MouseButton1Down:Connect(function() downSignal = true end) DownBtn.MouseButton1Up:Connect(function() downSignal = false end) DownBtn.MouseLeave:Connect(function() downSignal = false end) DestroyBtn.MouseButton1Click:Connect(function() nowe = false task.wait(0.1) ScreenGui:Destroy() end) game:GetService("StarterGui"):SetCore("SendNotification", {Title = "Follow Us On Instagram", Text = "Instagram: 4jayyz", Duration = 6})