
Universal Script – Changer (Crimson Hub) (Speed, Keyless)
--// Crimson Speed Hub
--// Roblox Studio LocalScript
--// Speed slider, draggable UI, minimize/reopen, destroy
--// For your own Roblox game
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local MIN_SPEED = 16
local MAX_SPEED = 5000
local currentSpeed = 200
local enabled = false
local destroyed = false
local oldGui = playerGui:FindFirstChild("CrimsonSpeedHub")
if oldGui then
oldGui:Destroy()
end
local gui = Instance.new("ScreenGui")
gui.Name = "CrimsonSpeedHub"
gui.ResetOnSpawn = false
gui.DisplayOrder = 100
gui.Parent = playerGui
local panel = Instance.new("Frame")
panel.Size = UDim2.fromOffset(330, 180)
panel.Position = UDim2.new(0.5, -165, 0.5, -90)
panel.BackgroundColor3 = Color3.fromRGB(15, 15, 18)
panel.BorderSizePixel = 0
panel.Parent = gui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 10)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(210, 35, 55)
stroke.Thickness = 1.5
stroke.Parent = panel
local function makeButton(name, text, size, position, parent)
local b = Instance.new("TextButton")
b.Name = name
b.Text = text
b.Size = size
b.Position = position
b.BackgroundColor3 = Color3.fromRGB(32, 32, 38)
b.TextColor3 = Color3.fromRGB(245, 245, 245)
b.Font = Enum.Font.GothamBold
b.TextSize = 14
b.BorderSizePixel = 0
b.AutoButtonColor = true
b.Parent = parent
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
return b
end
local header = Instance.new("TextLabel")
header.Name = "Header"
header.Size = UDim2.new(1, -110, 0, 42)
header.Position = UDim2.fromOffset(14, 0)
header.BackgroundTransparency = 1
header.Text = "CRIMSON SPEED HUB"
header.TextColor3 = Color3.fromRGB(255, 70, 85)
header.Font = Enum.Font.GothamBold
header.TextSize = 14
header.TextXAlignment = Enum.TextXAlignment.Left
header.Parent = panel
local minimize = makeButton(
"Minimize", "−",
UDim2.fromOffset(32, 30),
UDim2.new(1, -76, 0, 6), panel
)
local close = makeButton(
"Destroy", "×",
UDim2.fromOffset(32, 30),
UDim2.new(1, -38, 0, 6), panel
)
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(1, -28, 0, 25)
speedLabel.Position = UDim2.fromOffset(14, 48)
speedLabel.BackgroundTransparency = 1
speedLabel.TextColor3 = Color3.new(1, 1, 1)
speedLabel.Font = Enum.Font.Gotham
speedLabel.TextSize = 13
speedLabel.TextXAlignment = Enum.TextXAlignment.Left
speedLabel.Parent = panel
local speedInput = Instance.new("TextBox")
speedInput.Name = "SpeedInput"
speedInput.Size = UDim2.new(1, -28, 0, 34)
speedInput.Position = UDim2.fromOffset(14, 76)
speedInput.BackgroundColor3 = Color3.fromRGB(32, 32, 38)
speedInput.TextColor3 = Color3.new(1, 1, 1)
speedInput.PlaceholderText = "Enter speed (16–5000)"
speedInput.Text = tostring(currentSpeed)
speedInput.Font = Enum.Font.Gotham
speedInput.TextSize = 14
speedInput.ClearTextOnFocus = false
speedInput.Parent = panel
Instance.new("UICorner", speedInput).CornerRadius = UDim.new(0, 6)
local toggle = makeButton(
"ToggleSpeed", "SPEED: OFF",
UDim2.new(1, -28, 0, 34),
UDim2.fromOffset(14, 122), panel
)
local reopen = makeButton(
"Reopen", "OPEN",
UDim2.fromOffset(78, 38),
UDim2.fromOffset(12, 180), gui
)
reopen.Visible = false
reopen.BackgroundColor3 = Color3.fromRGB(130, 20, 35)
local function applySpeed()
local character = player.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = enabled and currentSpeed or 16
end
end
local function updateLabel()
speedLabel.Text = "WalkSpeed: " .. currentSpeed
end
speedInput.FocusLost:Connect(function()
local number = tonumber(speedInput.Text)
if number then
currentSpeed = math.clamp(math.floor(number), MIN_SPEED, MAX_SPEED)
end
speedInput.Text = tostring(currentSpeed)
updateLabel()
applySpeed()
end)
toggle.Activated:Connect(function()
enabled = not enabled
toggle.Text = enabled and "SPEED: ON" or "SPEED: OFF"
toggle.BackgroundColor3 = enabled
and Color3.fromRGB(130, 20, 35)
or Color3.fromRGB(32, 32, 38)
applySpeed()
end)
minimize.Activated:Connect(function()
panel.Visible = false
reopen.Visible = true
end)
reopen.Activated:Connect(function()
panel.Visible = true
reopen.Visible = false
end)
close.Activated:Connect(function()
if destroyed then return end
destroyed = true
enabled = false
applySpeed()
gui:Destroy()
end)
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
if enabled then
humanoid.WalkSpeed = currentSpeed
end
end)
-- Drag the panel by its header.
local dragging = false
local dragStart
local startPosition
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPosition = panel.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
panel.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.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)
updateLabel()How to Execute Universal Script – Changer (Crimson Hub) (Speed, Keyless)
Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.
Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.
Step 3: Join Experience: Launch Roblox and join Universal Script.
Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.
Created By
View Author ProfileFeatures & Information
Script Changelog (2)
Community Comments (0)
No comments yet for this script.
Frequently Asked Questions
How do I execute Universal Script – Changer (Crimson Hub) (Speed, Keyless) in Roblox?
To run Universal Script – Changer (Crimson Hub) (Speed, Keyless), copy the Lua loadstring from the code viewer above, launch Roblox and join Universal Script, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.
Is Universal Script – Changer (Crimson Hub) (Speed, Keyless) keyless or does it require an access key?
Universal Script – Changer (Crimson Hub) (Speed, Keyless) requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.
Is Universal Script – Changer (Crimson Hub) (Speed, Keyless) currently safe and working?
This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.


![Ez Hub [Open Source] [150+ games] - Verified script for Universal Script](https://media.kocakz.me/b74a9ac15370ba766b2fa9531f17c9dad2c0befb2b951693ae723e4c7d2c3fb6.webp)

![[KEYLESS] Moondiety Script | 20+ supported Games - Verified script for Universal Script](https://media.kocakz.me/6834c33a36c9fbe66afae4c6754c2b80386ce636b2f972464a95866f4b6a42eb.webp)

