
KeylessUniversal

-- 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)No comments yet for this script.



