-- Beyblade Fly Script with Smooth Camera-Based Movement and GUI -- WARNING: Use responsibly. Misuse may result in bans. local game = game local players = game:GetService("Players") local localPlayer = players.LocalPlayer local userInputService = game:GetService("UserInputService") local runService = game:GetService("RunService") local beyblade = nil local flying = false local speed = 50 -- Adjust flight speed local moveDirection = Vector3.new(0, 0, 0) -- Movement direction local camera = workspace.CurrentCamera -- Get the player's camera -- **Function to Get Beyblade Instance** local function getBeyblade() return workspace.Beyblades:FindFirstChild(localPlayer.Name) end -- **Function to Toggle Flight** local function toggleFly() beyblade = getBeyblade() if beyblade and beyblade:FindFirstChild("HumanoidRootPart") then flying = not flying if flying then beyblade:SetAttribute("Flying", true) else beyblade:SetAttribute("Flying", false) for _, v in beyblade.HumanoidRootPart:GetChildren() do if v:IsA("BodyVelocity") or v:IsA("BodyGyro") then v:Destroy() end end end end end -- **GUI Creation** local screenGui = Instance.new("ScreenGui") screenGui.Parent = game.CoreGui local button = Instance.new("TextButton") button.Size = UDim2.new(0, 150, 0, 50) button.Position = UDim2.new(0.85, 0, 0.1, 0) button.Text = "Fly" button.Parent = screenGui button.BackgroundColor3 = Color3.new(0, 0, 1) button.TextColor3 = Color3.new(1, 1, 1) button.Font = Enum.Font.SourceSansBold button.TextSize = 20 -- **Button Click Event** button.MouseButton1Click:Connect(function() toggleFly() button.Text = flying and "Stop Flying" or "Fly" end) -- **Keybind to Toggle Flight (Press F)** userInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.F then toggleFly() button.Text = flying and "Stop Flying" or "Fly" end end) -- **Update Movement Direction Continuously Based on Camera Direction** runService.RenderStepped:Connect(function() beyblade = getBeyblade() if beyblade and beyblade:FindFirstChild("HumanoidRootPart") and beyblade:GetAttribute("Flying") then local camLook = camera.CFrame.LookVector local camRight = camera.CFrame.RightVector local newDirection = Vector3.new(0, 0, 0) if userInputService:IsKeyDown(Enum.KeyCode.W) then newDirection = newDirection + camLook end if userInputService:IsKeyDown(Enum.KeyCode.S) then newDirection = newDirection - camLook end if userInputService:IsKeyDown(Enum.KeyCode.A) then newDirection = newDirection - camRight end if userInputService:IsKeyDown(Enum.KeyCode.D) then newDirection = newDirection + camRight end if userInputService:IsKeyDown(Enum.KeyCode.Space) then newDirection = newDirection + Vector3.new(0, 1, 0) end if userInputService:IsKeyDown(Enum.KeyCode.LeftControl) then newDirection = newDirection - Vector3.new(0, 1, 0) end if newDirection.Magnitude > 0 then moveDirection = newDirection.unit else moveDirection = Vector3.new(0, 0, 0) end local bodyVelocity = beyblade.HumanoidRootPart:FindFirstChild("BodyVelocity") if not bodyVelocity then bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(5000, 5000, 5000) bodyVelocity.Parent = beyblade.HumanoidRootPart end bodyVelocity.Velocity = moveDirection * speed end end)