
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local cam = workspace.CurrentCamera
-- Base Settings
local power = 90
local moveBoost = 150
local idleBoost = 100
_G.FlickEnabled = false
_G.Flick360Hold = false
_G.Flick360NoBoostHold = false
_G.ButtonsLocked = false -- Global lock toggle
-- Touch & Mouse Drag Handler with Lock Check
local function makeDraggable(guiObject)
local dragging = false
local dragStart = Vector3.zero
local startPos = UDim2.new()
guiObject.InputBegan:Connect(function(input)
if _G.ButtonsLocked then return end -- Block dragging if locked
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = guiObject.Position
end
end)
UserInputService.InputChanged:Connect(function(input)
if not _G.ButtonsLocked and dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
guiObject.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
local function endDrag(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end
guiObject.InputEnded:Connect(endDrag)
UserInputService.InputEnded:Connect(endDrag)
end
-- UI Setup
local parentGui = (gethui and gethui()) or LocalPlayer:WaitForChild("PlayerGui")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SilverSurfer_SG_UI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = parentGui
-- Open/Close Icon
local OpenCloseBtn = Instance.new("TextButton")
OpenCloseBtn.Size = UDim2.new(0, 48, 0, 48)
OpenCloseBtn.Position = UDim2.new(0.02, 0, 0.4, 0)
OpenCloseBtn.Text = "🌌"
OpenCloseBtn.TextSize = 22
OpenCloseBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 18)
OpenCloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
OpenCloseBtn.Active = true
OpenCloseBtn.Parent = ScreenGui
makeDraggable(OpenCloseBtn)
Instance.new("UICorner", OpenCloseBtn).CornerRadius = UDim.new(0, 8)
local OpenStroke = Instance.new("UIStroke", OpenCloseBtn)
OpenStroke.Color = Color3.fromRGB(220, 220, 220)
OpenStroke.Thickness = 2
-- Main Frame
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 170, 0, 350)
Frame.Position = UDim2.new(0.5, -85, 0.1, 0)
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.Active = true
Frame.Parent = ScreenGui
makeDraggable(Frame)
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 12)
local FrameStroke = Instance.new("UIStroke", Frame)
FrameStroke.Color = Color3.fromRGB(255, 255, 255)
FrameStroke.Thickness = 1.5
-- Background Image
local BackgroundImage = Instance.new("ImageLabel")
BackgroundImage.Size = UDim2.new(1, 0, 1, 0)
BackgroundImage.Image = "rbxassetid://11120144886430485783"
BackgroundImage.ImageTransparency = 0.35
BackgroundImage.ScaleType = Enum.ScaleType.Crop
BackgroundImage.BackgroundTransparency = 1
BackgroundImage.Parent = Frame
-- Title
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 28)
Title.Position = UDim2.new(0, 0, 0, 5)
Title.Text = "COSMIC SPEED"
Title.Font = Enum.Font.GothamBold
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 13
Title.BackgroundTransparency = 1
Title.Parent = Frame
-- SG Toggle
local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.new(1, -16, 0, 32)
ToggleButton.Position = UDim2.new(0, 8, 0, 35)
ToggleButton.Text = "SG: OFF"
ToggleButton.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleButton.Font = Enum.Font.GothamBold
ToggleButton.TextSize = 13
ToggleButton.Parent = Frame
Instance.new("UICorner", ToggleButton).CornerRadius = UDim.new(0, 8)
-- 360 Flick Hold
local Flick360Btn = Instance.new("TextButton")
Flick360Btn.Size = UDim2.new(1, -16, 0, 32)
Flick360Btn.Position = UDim2.new(0, 8, 0, 72)
Flick360Btn.Text = "🌀 HOLD 360 FLICK"
Flick360Btn.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Flick360Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
Flick360Btn.Font = Enum.Font.GothamBold
Flick360Btn.TextSize = 11
Flick360Btn.Parent = Frame
Instance.new("UICorner", Flick360Btn).CornerRadius = UDim.new(0, 8)
-- 360 Flick Hold (NO BOOST)
local Flick360NoBoostBtn = Instance.new("TextButton")
Flick360NoBoostBtn.Size = UDim2.new(1, -16, 0, 32)
Flick360NoBoostBtn.Position = UDim2.new(0, 8, 0, 109)
Flick360NoBoostBtn.Text = "🌀 360 (NO BOOST)"
Flick360NoBoostBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Flick360NoBoostBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
Flick360NoBoostBtn.Font = Enum.Font.GothamBold
Flick360NoBoostBtn.TextSize = 11
Flick360NoBoostBtn.Parent = Frame
Instance.new("UICorner", Flick360NoBoostBtn).CornerRadius = UDim.new(0, 8)
-- Move Speed Input Box
local MoveInput = Instance.new("TextBox")
MoveInput.Size = UDim2.new(1, -16, 0, 28)
MoveInput.Position = UDim2.new(0, 8, 0, 146)
MoveInput.PlaceholderText = "Move Speed (150)"
MoveInput.Text = "150"
MoveInput.BackgroundColor3 = Color3.fromRGB(10, 10, 12)
MoveInput.TextColor3 = Color3.fromRGB(255, 255, 255)
MoveInput.Font = Enum.Font.GothamMedium
MoveInput.TextSize = 11
MoveInput.Parent = Frame
Instance.new("UICorner", MoveInput).CornerRadius = UDim.new(0, 8)
-- Idle Speed Input Box
local IdleInput = Instance.new("TextBox")
IdleInput.Size = UDim2.new(1, -16, 0, 28)
IdleInput.Position = UDim2.new(0, 8, 0, 179)
IdleInput.PlaceholderText = "Idle Speed (100)"
IdleInput.Text = "100"
IdleInput.BackgroundColor3 = Color3.fromRGB(10, 10, 12)
IdleInput.TextColor3 = Color3.fromRGB(255, 255, 255)
IdleInput.Font = Enum.Font.GothamMedium
IdleInput.TextSize = 11
IdleInput.Parent = Frame
Instance.new("UICorner", IdleInput).CornerRadius = UDim.new(0, 8)
-- LOCK / UNLOCK POSITIONS BUTTON
local LockBtn = Instance.new("TextButton")
LockBtn.Size = UDim2.new(1, -16, 0, 32)
LockBtn.Position = UDim2.new(0, 8, 0, 215)
LockBtn.Text = "🔓 UNLOCKED"
LockBtn.BackgroundColor3 = Color3.fromRGB(40, 20, 20)
LockBtn.TextColor3 = Color3.fromRGB(255, 120, 120)
LockBtn.Font = Enum.Font.GothamBold
LockBtn.TextSize = 11
LockBtn.Parent = Frame
Instance.new("UICorner", LockBtn).CornerRadius = UDim.new(0, 8)
local LockStroke = Instance.new("UIStroke", LockBtn)
LockStroke.Color = Color3.fromRGB(255, 80, 80)
LockStroke.Thickness = 1
-- SPREAD BUTTON
local ExpandBtn = Instance.new("TextButton")
ExpandBtn.Size = UDim2.new(1, -16, 0, 32)
ExpandBtn.Position = UDim2.new(0, 8, 0, 252)
ExpandBtn.Text = "➕ SPREAD BUTTONS"
ExpandBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
ExpandBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ExpandBtn.Font = Enum.Font.GothamBold
ExpandBtn.TextSize = 11
ExpandBtn.Parent = Frame
Instance.new("UICorner", ExpandBtn).CornerRadius = UDim.new(0, 8)
---------------------------------------------------------
-- STANDALONE SPREAD BUTTONS (DRAGGABLE)
---------------------------------------------------------
local function createSpreadButton(defaultText, defaultPos)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 130, 0, 40)
btn.Position = defaultPos
btn.Text = defaultText
btn.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 12
btn.Visible = false
btn.Active = true
btn.Parent = ScreenGui
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
local stroke = Instance.new("UIStroke", btn)
stroke.Color = Color3.fromRGB(255, 255, 255)
stroke.Thickness = 1.5
makeDraggable(btn)
return btn
end
local StandaloneBtn = createSpreadButton("SG: OFF", UDim2.new(0.5, -65, 0.4, 0))
local Standalone360Btn = createSpreadButton("🌀 HOLD 360", UDim2.new(0.5, -65, 0.4, 48))
local Standalone360NoBoostBtn = createSpreadButton("🌀 360 (NO BOOST)", UDim2.new(0.5, -65, 0.4, 96))
---------------------------------------------------------
-- CORE LOGIC & CONNECTIONS
---------------------------------------------------------
LockBtn.MouseButton1Click:Connect(function()
_G.ButtonsLocked = not _G.ButtonsLocked
if _G.ButtonsLocked then
LockBtn.Text = "🔒 LOCKED"
LockBtn.BackgroundColor3 = Color3.fromRGB(20, 40, 20)
LockBtn.TextColor3 = Color3.fromRGB(120, 255, 120)
LockStroke.Color = Color3.fromRGB(80, 255, 80)
else
LockBtn.Text = "🔓 UNLOCKED"
LockBtn.BackgroundColor3 = Color3.fromRGB(40, 20, 20)
LockBtn.TextColor3 = Color3.fromRGB(255, 120, 120)
LockStroke.Color = Color3.fromRGB(255, 80, 80)
end
end)
OpenCloseBtn.MouseButton1Click:Connect(function()
Frame.Visible = not Frame.Visible
end)
MoveInput.FocusLost:Connect(function()
local newSpeed = tonumber(MoveInput.Text)
if newSpeed then moveBoost = newSpeed else MoveInput.Text = tostring(moveBoost) end
end)
IdleInput.FocusLost:Connect(function()
local newIdle = tonumber(IdleInput.Text)
if newIdle then idleBoost = newIdle else IdleInput.Text = tostring(idleBoost) end
end)
local function rotateCamStep(degrees)
cam.CFrame = cam.CFrame * CFrame.Angles(0, math.rad(degrees), 0)
end
-- 360 NO BOOST HOLD LOOP
task.spawn(function()
while true do
if _G.Flick360NoBoostHold then
for i = 1, 4 do
if not _G.Flick360NoBoostHold then break end
rotateCamStep(90)
task.wait(0.015)
end
else
task.wait(0.03)
end
end
end)
-- 360 WITH BOOST HOLD LOOP
task.spawn(function()
while true do
if _G.Flick360Hold then
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
for i = 1, 4 do
if not _G.Flick360Hold then break end
rotateCamStep(90)
if hrp and hum then
local lookDir = cam.CFrame.LookVector
local flatDir = Vector3.new(lookDir.X, 0, lookDir.Z).Unit
if hum.MoveDirection.Magnitude > 0 then
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (hum.MoveDirection * moveBoost)
else
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (flatDir * idleBoost)
end
end
task.wait(0.015)
end
else
task.wait(0.03)
end
end
end)
-- REGULAR SG FLICK LOOP
task.spawn(function()
while true do
if _G.FlickEnabled and not _G.Flick360Hold and not _G.Flick360NoBoostHold then
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
rotateCamStep(power)
if hrp and hum then
local lookDir = cam.CFrame.LookVector
local flatDir = Vector3.new(lookDir.X, 0, lookDir.Z).Unit
if hum.MoveDirection.Magnitude > 0 then
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (hum.MoveDirection * moveBoost)
else
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (flatDir * idleBoost)
end
end
task.wait(0.015)
rotateCamStep(-power)
if hrp and hum then
local lookDir = cam.CFrame.LookVector
local flatDir = Vector3.new(lookDir.X, 0, lookDir.Z).Unit
if hum.MoveDirection.Magnitude > 0 then
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (hum.MoveDirection * moveBoost)
else
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (flatDir * idleBoost)
end
end
task.wait(0.015)
else
task.wait(0.03)
end
end
end)
-- Toggle Actions
local function toggleSG()
_G.FlickEnabled = not _G.FlickEnabled
local statusText = _G.FlickEnabled and "SG: ON" or "SG: OFF"
local bgColor = _G.FlickEnabled and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(30, 30, 35)
local textColor = _G.FlickEnabled and Color3.fromRGB(0, 0, 0) or Color3.fromRGB(255, 255, 255)
ToggleButton.Text = statusText
ToggleButton.BackgroundColor3 = bgColor
ToggleButton.TextColor3 = textColor
StandaloneBtn.Text = statusText
StandaloneBtn.BackgroundColor3 = bgColor
StandaloneBtn.TextColor3 = textColor
end
ToggleButton.MouseButton1Click:Connect(toggleSG)
StandaloneBtn.MouseButton1Click:Connect(toggleSG)
-- 360 Boost Connections
local function on360Down()
_G.Flick360Hold = true
Flick360Btn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Flick360Btn.TextColor3 = Color3.fromRGB(0, 0, 0)
Standalone360Btn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Standalone360Btn.TextColor3 = Color3.fromRGB(0, 0, 0)
end
local function on360Up()
_G.Flick360Hold = false
Flick360Btn.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Flick360Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
Standalone360Btn.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Standalone360Btn.TextColor3 = Color3.fromRGB(255, 255, 255)
end
Flick360Btn.MouseButton1Down:Connect(on360Down)
Flick360Btn.MouseButton1Up:Connect(on360Up)
Standalone360Btn.MouseButton1Down:Connect(on360Down)
Standalone360Btn.MouseButton1Up:Connect(on360Up)
-- 360 No Boost Connections
local function on360NoBoostDown()
_G.Flick360NoBoostHold = true
Flick360NoBoostBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Flick360NoBoostBtn.TextColor3 = Color3.fromRGB(0, 0, 0)
Standalone360NoBoostBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Standalone360NoBoostBtn.TextColor3 = Color3.fromRGB(0, 0, 0)
end
local function on360NoBoostUp()
_G.Flick360NoBoostHold = false
Flick360NoBoostBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Flick360NoBoostBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
Standalone360NoBoostBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Standalone360NoBoostBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
end
Flick360NoBoostBtn.MouseButton1Down:Connect(on360NoBoostDown)
Flick360NoBoostBtn.MouseButton1Up:Connect(on360NoBoostUp)
Standalone360NoBoostBtn.MouseButton1Down:Connect(on360NoBoostDown)
Standalone360NoBoostBtn.MouseButton1Up:Connect(on360NoBoostUp)
ExpandBtn.MouseButton1Click:Connect(function()
local show = not StandaloneBtn.Visible
StandaloneBtn.Visible = show
Standalone360Btn.Visible = show
Standalone360NoBoostBtn.Visible = show
ExpandBtn.Text = show and "➖ HIDE SPREAD" or "➕ SPREAD BUTTONS"
end)No comments yet for this script.



