--[[ MUFFIN'S FLY SCRIPT (SHINY RAINBOW EDITION) Features: Auto-Reload, Mobile Draggable, Rainbow RGB Borders ]] local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local flying = false local speed = 80 local attachment, lv, ao, character, humanoid, root -- // UI SETUP local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "MuffinsFlyGui" ScreenGui.Parent = player:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false -- Prevent duplicate GUIs if ScreenGui.Parent:FindFirstChild("MuffinsFlyGui") and ScreenGui.Parent:FindFirstChild("MuffinsFlyGui") ~= ScreenGui then ScreenGui.Parent.MuffinsFlyGui:Destroy() end local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Size = UDim2.fromOffset(250, 120) MainFrame.Position = UDim2.new(0.5, -125, 0.15, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20) -- Darker background makes rainbow pop MainFrame.BorderSizePixel = 4 MainFrame.Active = true -- Add rounded corners for a modern "shiny" look local Corner = Instance.new("UICorner", MainFrame) Corner.CornerRadius = UDim.new(0, 10) -- Add a UIStroke for the rainbow border effect local UIStroke = Instance.new("UIStroke", MainFrame) UIStroke.Thickness = 3 UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border local Title = Instance.new("TextLabel", MainFrame) Title.Size = UDim2.new(1, 0, 0.45, 0) Title.Text = "✨ MUFFIN'S FLY ✨" Title.BackgroundTransparency = 1 Title.Font = Enum.Font.Code Title.TextSize = 22 Title.TextColor3 = Color3.new(1, 1, 1) local Toggle = Instance.new("TextButton", MainFrame) Toggle.Size = UDim2.new(0.9, 0, 0.4, 0) Toggle.Position = UDim2.new(0.05, 0, 0.5, 0) Toggle.Text = "FLY: OFF" Toggle.TextSize = 18 Toggle.BackgroundColor3 = Color3.fromRGB(30, 30, 40) Toggle.TextColor3 = Color3.new(1, 0, 0) Toggle.Font = Enum.Font.Code local ToggleCorner = Instance.new("UICorner", Toggle) ToggleCorner.CornerRadius = UDim.new(0, 8) -- // RAINBOW CYCLE LOGIC RunService.RenderStepped:Connect(function() local hue = tick() % 5 / 5 -- Cycles colors every 5 seconds local rainbowColor = Color3.fromHSV(hue, 1, 1) UIStroke.Color = rainbowColor Title.TextColor3 = rainbowColor end) -- // DRAGGING LOGIC local dragging, dragStart, startPos MainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true; dragStart = input.Position; startPos = MainFrame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) -- // CORE FLYING LOGIC local function setupPhysics() character = player.Character or player.CharacterAdded:Wait() humanoid = character:WaitForChild("Humanoid") root = character:WaitForChild("HumanoidRootPart") if flying then if attachment then attachment:Destroy() end humanoid.PlatformStand = true attachment = Instance.new("Attachment", root) lv = Instance.new("LinearVelocity", attachment) lv.MaxForce = 9e9 lv.VectorVelocity = Vector3.zero lv.Attachment0 = attachment ao = Instance.new("AlignOrientation", attachment) ao.MaxTorque = 9e9 ao.Responsiveness = 200 ao.Mode = Enum.OrientationAlignmentMode.OneAttachment ao.Attachment0 = attachment end end player.CharacterAdded:Connect(function() task.wait(0.1) setupPhysics() end) setupPhysics() Toggle.MouseButton1Click:Connect(function() flying = not flying if flying then Toggle.Text = "FLY: ON"; Toggle.TextColor3 = Color3.new(0, 1, 0) setupPhysics() else Toggle.Text = "FLY: OFF"; Toggle.TextColor3 = Color3.new(1, 0, 0) if humanoid then humanoid.PlatformStand = false end if attachment then attachment:Destroy() end end end) -- // MOVEMENT LOOP local PlayerModule = require(player.PlayerScripts:WaitForChild("PlayerModule")) local Controls = PlayerModule:GetControls() RunService.RenderStepped:Connect(function() if flying and root and workspace.CurrentCamera and lv and ao then local cam = workspace.CurrentCamera local moveVector = Controls:GetMoveVector() if moveVector.Magnitude > 0 then local forwardDirection = cam.CFrame.LookVector * -moveVector.Z local sideDirection = cam.CFrame.RightVector * moveVector.X lv.VectorVelocity = (forwardDirection + sideDirection).Unit * speed else lv.VectorVelocity = Vector3.zero end ao.CFrame = cam.CFrame end end)