-- Spin Fly Fling + Invisible Script | Mobile + PC | Delta Executor local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local localPlayer = Players.LocalPlayer local character = localPlayer.Character or localPlayer.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") -- Settings local flySpeed = 9995 local flingPower = 9999 local spinSpeed = 50 local flingRadius = 20 local flying = false local invisible = false local bodyVelocity = nil local bodyGyro = nil local spinAngle = 0 -- Mobile button states local mobileKeys = { W = false, A = false, S = false, D = false, UP = false, DOWN = false } -- Make only YOUR character invisible/visible local function setInvisibility(state) local char = localPlayer.Character if not char then return end for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then part.LocalTransparencyModifier = state and 1 or 0 end if part:IsA("Decal") then part.Transparency = state and 1 or 0 end end end -- GUI Setup local screenGui = Instance.new("ScreenGui") screenGui.Name = "SpinFlyGUI" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.Parent = localPlayer.PlayerGui local function makeButton(name, text, pos, size, color) local btn = Instance.new("TextButton") btn.Name = name btn.Text = text btn.Position = pos btn.Size = size btn.BackgroundColor3 = color btn.BackgroundTransparency = 0.3 btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextScaled = true btn.Font = Enum.Font.GothamBold btn.BorderSizePixel = 0 btn.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0.2, 0) corner.Parent = btn return btn end -- Buttons local toggleBtn = makeButton("Toggle", "FLY: OFF", UDim2.new(0.5, -130, 0, 10), UDim2.new(0, 120, 0, 45), Color3.fromRGB(200, 50, 50)) local invisBtn = makeButton("Invis", "INVIS: OFF", UDim2.new(0.5, 10, 0, 10), UDim2.new(0, 120, 0, 45), Color3.fromRGB(100, 50, 200)) local btnW = makeButton("W", "W", UDim2.new(0, 80, 1, -210), UDim2.new(0, 60, 0, 60), Color3.fromRGB(50, 100, 200)) local btnA = makeButton("A", "A", UDim2.new(0, 10, 1, -140), UDim2.new(0, 60, 0, 60), Color3.fromRGB(50, 100, 200)) local btnS = makeButton("S", "S", UDim2.new(0, 80, 1, -140), UDim2.new(0, 60, 0, 60), Color3.fromRGB(50, 100, 200)) local btnD = makeButton("D", "D", UDim2.new(0, 150, 1, -140), UDim2.new(0, 60, 0, 60), Color3.fromRGB(50, 100, 200)) local btnUp = makeButton("UP", "UP", UDim2.new(1, -80, 1, -210), UDim2.new(0, 60, 0, 60), Color3.fromRGB(50, 180, 80)) local btnDown = makeButton("DOWN", "DN", UDim2.new(1, -80, 1, -140), UDim2.new(0, 60, 0, 60), Color3.fromRGB(180, 80, 50)) -- Hold logic local function setupHold(btn, key) btn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then mobileKeys[key] = true end end) btn.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then mobileKeys[key] = false end end) end setupHold(btnW, "W") setupHold(btnA, "A") setupHold(btnS, "S") setupHold(btnD, "D") setupHold(btnUp, "UP") setupHold(btnDown, "DOWN") -- Invisibility toggle invisBtn.MouseButton1Click:Connect(function() invisible = not invisible if invisible then invisBtn.Text = "INVIS: ON" invisBtn.BackgroundColor3 = Color3.fromRGB(180, 100, 255) setInvisibility(true) else invisBtn.Text = "INVIS: OFF" invisBtn.BackgroundColor3 = Color3.fromRGB(100, 50, 200) setInvisibility(false) end end) -- Keep invisible on respawn localPlayer.CharacterAdded:Connect(function(newChar) character = newChar humanoidRootPart = newChar:WaitForChild("HumanoidRootPart") humanoid = newChar:WaitForChild("Humanoid") if invisible then task.wait(0.5) setInvisibility(true) end if flying then bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9) bodyVelocity.Parent = humanoidRootPart bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(1e9, 1e9, 1e9) bodyGyro.P = 1e6 bodyGyro.Parent = humanoidRootPart humanoid.PlatformStand = true end end) -- Fly toggle toggleBtn.MouseButton1Click:Connect(function() flying = not flying character = localPlayer.Character if not character then return end humanoidRootPart = character:FindFirstChild("HumanoidRootPart") humanoid = character:FindFirstChild("Humanoid") if flying then toggleBtn.Text = "FLY: ON" toggleBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 80) bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9) bodyVelocity.Parent = humanoidRootPart bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(1e9, 1e9, 1e9) bodyGyro.P = 1e6 bodyGyro.Parent = humanoidRootPart humanoid.PlatformStand = true else toggleBtn.Text = "FLY: OFF" toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) if bodyVelocity then bodyVelocity:Destroy() end if bodyGyro then bodyGyro:Destroy() end humanoid.PlatformStand = false end end) -- Keyboard (PC) UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.E then toggleBtn.MouseButton1Click:Fire() end if input.KeyCode == Enum.KeyCode.I then invisBtn.MouseButton1Click:Fire() end end) local function isHeld(key) if key == "W" then return mobileKeys.W or UserInputService:IsKeyDown(Enum.KeyCode.W) end if key == "A" then return mobileKeys.A or UserInputService:IsKeyDown(Enum.KeyCode.A) end if key == "S" then return mobileKeys.S or UserInputService:IsKeyDown(Enum.KeyCode.S) end if key == "D" then return mobileKeys.D or UserInputService:IsKeyDown(Enum.KeyCode.D) end if key == "UP" then return mobileKeys.UP or UserInputService:IsKeyDown(Enum.KeyCode.Space) end if key == "DOWN" then return mobileKeys.DOWN or UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) end return false end -- Main loop RunService.RenderStepped:Connect(function(dt) character = localPlayer.Character if not character then return end humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end -- Keep invisible every frame so it doesnt flicker back if invisible then setInvisibility(true) end if flying and bodyVelocity and bodyGyro then spinAngle = spinAngle + spinSpeed * dt bodyGyro.CFrame = CFrame.new(humanoidRootPart.Position) * CFrame.Angles(0, math.rad(spinAngle), 0) local camera = workspace.CurrentCamera local moveDir = Vector3.new(0, 0, 0) if isHeld("W") then moveDir = moveDir + camera.CFrame.LookVector end if isHeld("S") then moveDir = moveDir - camera.CFrame.LookVector end if isHeld("A") then moveDir = moveDir - camera.CFrame.RightVector end if isHeld("D") then moveDir = moveDir + camera.CFrame.RightVector end if isHeld("UP") then moveDir = moveDir + Vector3.new(0, 1, 0) end if isHeld("DOWN") then moveDir = moveDir - Vector3.new(0, 1, 0) end if moveDir.Magnitude > 0 then moveDir = moveDir.Unit end bodyVelocity.Velocity = moveDir * flySpeed -- Fling nearby players for _, player in pairs(Players:GetPlayers()) do if player ~= localPlayer and player.Character then local targetHRP = player.Character:FindFirstChild("HumanoidRootPart") if targetHRP then local dist = (targetHRP.Position - humanoidRootPart.Position).Magnitude if dist <= flingRadius then local bv = targetHRP:FindFirstChild("FlingVel") or Instance.new("BodyVelocity") bv.Name = "FlingVel" bv.MaxForce = Vector3.new(1e9, 1e9, 1e9) local dir = (targetHRP.Position - humanoidRootPart.Position).Unit local spinDir = CFrame.Angles(0, math.rad(spinAngle), 0).LookVector bv.Velocity = (dir + spinDir + Vector3.new(0, 1, 0)) * flingPower bv.Parent = targetHRP game:GetService("Debris"):AddItem(bv, 0.1) end end end end end end)