Speed Control
Key RequiredUniversal

Speed Control

Universal ScriptIce_ElementarIce_Elementar 986 views 63.6K executesUpdated Feb 5, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•396 lines (13589 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local defaultWalkSpeed = 16

local TWEEN_INFO = TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)
local BLUR_SIZE = 24
local UI_HEIGHT = 155 

local SpeedController = {}
SpeedController.__index = SpeedController

function SpeedController.new()
    local self = setmetatable({}, SpeedController)
    self.isEnabled = true
    self.targetSpeed = defaultWalkSpeed
    self.connection = nil
    return self
end

function SpeedController:Start()
    self.connection = RunService.RenderStepped:Connect(function()
        if self.isEnabled and humanoid and humanoid.Parent then
            if humanoid.WalkSpeed ~= self.targetSpeed then
                humanoid.WalkSpeed = self.targetSpeed
            end
        end
    end)
end

function SpeedController:SetSpeed(value)
    self.targetSpeed = tonumber(value) or defaultWalkSpeed
end

function SpeedController:Stop()
    self.isEnabled = false
    if self.connection then
        self.connection:Disconnect()
    end
    humanoid.WalkSpeed = defaultWalkSpeed
end

local UIBuilder = {}
UIBuilder.__index = UIBuilder

function UIBuilder.new()
    local self = setmetatable({}, UIBuilder)
    self.guiObjects = {}
    return self
end

function UIBuilder:AddCorner(instance, radius)
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, radius)
    corner.Parent = instance
    return corner
end

function UIBuilder:Build()
    local blur = Instance.new("BlurEffect")
    blur.Size = 0
    blur.Name = "UIBlur"
    blur.Parent = Lighting
    self.guiObjects.Blur = blur

    local screenGui = Instance.new("ScreenGui")
    screenGui.Name = "BeautifulSpeedUI"
    screenGui.IgnoreGuiInset = true
    screenGui.Parent = player:WaitForChild("PlayerGui")
    self.guiObjects.ScreenGui = screenGui

    local toggleButton = Instance.new("ImageButton")
    toggleButton.Name = "ToggleButton"
    toggleButton.Size = UDim2.new(0, 60, 0, 60)
    toggleButton.Position = UDim2.new(0, 30, 0, 100)
    toggleButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    toggleButton.BackgroundTransparency = 1
    toggleButton.Image = "rbxassetid://112151837971666"
    toggleButton.ScaleType = Enum.ScaleType.Fit
    toggleButton.Parent = screenGui
    self:AddCorner(toggleButton, 16)
    self.guiObjects.ToggleButton = toggleButton

    local mainUI = Instance.new("Frame")
    mainUI.Name = "MainUI"
    mainUI.Size = UDim2.new(0, 250, 0, UI_HEIGHT)
    mainUI.Position = UDim2.new(0.5, -125, 0.5, -(UI_HEIGHT/2))
    mainUI.BackgroundTransparency = 1
    mainUI.Visible = false
    mainUI.Parent = screenGui
    self.guiObjects.MainUI = mainUI

    local uiBackground = Instance.new("ImageLabel")
    uiBackground.Name = "Background"
    uiBackground.Size = UDim2.new(1, 0, 1, 0)
    uiBackground.Image = "rbxassetid://1179217566"
    uiBackground.ImageTransparency = 0.5
    uiBackground.ImageColor3 = Color3.fromRGB(30, 30, 30)
    uiBackground.ScaleType = Enum.ScaleType.Crop
    uiBackground.BackgroundTransparency = 1
    uiBackground.ZIndex = 1
    uiBackground.Parent = mainUI
    self:AddCorner(uiBackground, 20)
    self.guiObjects.Background = uiBackground

    local uiStroke = Instance.new("UIStroke")
    uiStroke.Thickness = 2
    uiStroke.Color = Color3.fromRGB(255, 255, 255)
    uiStroke.Transparency = 0.8
    uiStroke.Parent = uiBackground

    local closeButton = Instance.new("TextButton")
    closeButton.Size = UDim2.new(0, 35, 0, 35)
    closeButton.Position = UDim2.new(1, -45, 0, 10)
    closeButton.Text = "×"
    closeButton.Font = Enum.Font.GothamBold
    closeButton.TextSize = 24
    closeButton.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
    closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    closeButton.AutoButtonColor = true
    closeButton.ZIndex = 2
    closeButton.Parent = mainUI
    self:AddCorner(closeButton, 100)
    self.guiObjects.CloseButton = closeButton

    local minimizeButton = Instance.new("TextButton")
    minimizeButton.Size = UDim2.new(0, 35, 0, 35)
    minimizeButton.Position = UDim2.new(1, -90, 0, 10)
    minimizeButton.Text = "−"
    minimizeButton.Font = Enum.Font.GothamBold
    minimizeButton.TextSize = 24
    minimizeButton.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
    minimizeButton.TextColor3 = Color3.fromRGB(40, 40, 40)
    minimizeButton.ZIndex = 2
    minimizeButton.Parent = mainUI
    self:AddCorner(minimizeButton, 100)
    self.guiObjects.MinimizeButton = minimizeButton

    local speedBox = Instance.new("TextBox")
    speedBox.Size = UDim2.new(0, 200, 0, 40)
    speedBox.Position = UDim2.new(0.5, -100, 0.5, -10)
    speedBox.PlaceholderText = "Velocidade..."
    speedBox.Text = tostring(defaultWalkSpeed)
    speedBox.Font = Enum.Font.GothamMedium
    speedBox.TextSize = 18
    speedBox.TextColor3 = Color3.fromRGB(255, 255, 255)
    speedBox.PlaceholderColor3 = Color3.fromRGB(180, 180, 180)
    speedBox.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    speedBox.BackgroundTransparency = 0.6
    speedBox.ClearTextOnFocus = false
    speedBox.ZIndex = 2
    speedBox.Parent = mainUI
    self:AddCorner(speedBox, 12)
    self.guiObjects.SpeedBox = speedBox

    local statusText = Instance.new("TextLabel")
    statusText.Size = UDim2.new(1, 0, 0, 20)
    statusText.Position = UDim2.new(0, 0, 1, -25) 
    statusText.Text = "Toggle UI livre"
    statusText.TextColor3 = Color3.fromRGB(255, 255, 255)
    statusText.Font = Enum.Font.Gotham
    statusText.TextSize = 14
    statusText.BackgroundTransparency = 1
    statusText.Visible = true
    statusText.ZIndex = 3
    statusText.Parent = mainUI
    self.guiObjects.StatusText = statusText

    local toggleLockButton = Instance.new("TextButton")
    toggleLockButton.Size = UDim2.new(0, 120, 0, 35)
    toggleLockButton.Position = UDim2.new(0, 15, 0, 10)
    toggleLockButton.Text = "Anchor Toggle"
    toggleLockButton.Font = Enum.Font.GothamBold
    toggleLockButton.TextSize = 14
    toggleLockButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    toggleLockButton.BackgroundTransparency = 0.8
    toggleLockButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    toggleLockButton.ZIndex = 3
    toggleLockButton.Parent = mainUI
    self:AddCorner(toggleLockButton, 12)
    self.guiObjects.LockButton = toggleLockButton

    local confirmFrame = Instance.new("Frame")
    confirmFrame.Name = "ConfirmFrame"
    confirmFrame.Size = UDim2.new(1, 0, 1, 0)
    confirmFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
    confirmFrame.BackgroundTransparency = 0.2
    confirmFrame.Visible = false
    confirmFrame.ZIndex = 10
    confirmFrame.Parent = mainUI
    self:AddCorner(confirmFrame, 20)
    self.guiObjects.ConfirmFrame = confirmFrame

    local confirmLabel = Instance.new("TextLabel")
    confirmLabel.Size = UDim2.new(1, 0, 0, 40)
    confirmLabel.Position = UDim2.new(0, 0, 0.2, 0)
    confirmLabel.Text = "Have certain?"
    confirmLabel.Font = Enum.Font.GothamBold
    confirmLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    confirmLabel.TextSize = 20
    confirmLabel.BackgroundTransparency = 1
    confirmLabel.ZIndex = 11
    confirmLabel.Parent = confirmFrame

    local btnNo = Instance.new("TextButton")
    btnNo.Name = "No"
    btnNo.Size = UDim2.new(0, 80, 0, 35)
    btnNo.Position = UDim2.new(0.2, 0, 0.6, 0)
    btnNo.Text = "No"
    btnNo.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    btnNo.TextColor3 = Color3.fromRGB(255, 255, 255)
    btnNo.Font = Enum.Font.GothamBold
    btnNo.ZIndex = 11
    btnNo.Parent = confirmFrame
    self:AddCorner(btnNo, 8)
    self.guiObjects.BtnNo = btnNo

    local btnYes = Instance.new("TextButton")
    btnYes.Name = "Yes"
    btnYes.Size = UDim2.new(0, 80, 0, 35)
    btnYes.Position = UDim2.new(0.55, 0, 0.6, 0)
    btnYes.Text = "Yes"
    btnYes.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
    btnYes.TextColor3 = Color3.fromRGB(255, 255, 255)
    btnYes.Font = Enum.Font.GothamBold
    btnYes.ZIndex = 11
    btnYes.Parent = confirmFrame
    self:AddCorner(btnYes, 8)
    self.guiObjects.BtnYes = btnYes

    return self.guiObjects
end

local MainApp = {}
MainApp.__index = MainApp

function MainApp.new()
    local self = setmetatable({}, MainApp)
    
    self.speedController = SpeedController.new()
    self.uiBuilder = UIBuilder.new()
    self.ui = self.uiBuilder:Build()
    
    self.toggleMovable = true
    
    return self
end

function MainApp:Init()
    self.speedController:Start()
    self:SetupEvents()
    self:SetupDraggable(self.ui.ToggleButton)
end

function MainApp:SetupDraggable(frame)
    local dragging = false
    local dragInput
    local dragStart
    local startPos

    frame.InputBegan:Connect(function(input)
        if not self.toggleMovable then return end
        
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            dragStart = input.Position
            startPos = frame.Position
            
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                end
            end)
        end
    end)

    frame.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
            dragInput = input
        end
    end)

    UserInputService.InputChanged:Connect(function(input)
        if input == dragInput and dragging then
            if not self.toggleMovable then 
                dragging = false
                return
            end
            
            local delta = input.Position - dragStart
            frame.Position = UDim2.new(
                startPos.X.Scale, 
                startPos.X.Offset + delta.X, 
                startPos.Y.Scale, 
                startPos.Y.Offset + delta.Y
            )
        end
    end)
end

function MainApp:OpenUI()
    local ui = self.ui
    ui.MainUI.Visible = true
    ui.MainUI.Size = UDim2.new(0, 0, 0, 0)
    ui.ConfirmFrame.Visible = false
    
    ui.Background.ImageTransparency = 1
    ui.SpeedBox.TextTransparency = 1
    ui.CloseButton.TextTransparency = 1
    ui.MinimizeButton.TextTransparency = 1
    ui.LockButton.TextTransparency = 1

    TweenService:Create(ui.MainUI, TWEEN_INFO, {Size = UDim2.new(0, 250, 0, UI_HEIGHT)}):Play()
    TweenService:Create(ui.Background, TWEEN_INFO, {ImageTransparency = 0.5}):Play()
    TweenService:Create(ui.SpeedBox, TWEEN_INFO, {TextTransparency = 0, BackgroundTransparency = 0.6}):Play()
    TweenService:Create(ui.CloseButton, TWEEN_INFO, {TextTransparency = 0, BackgroundTransparency = 0}):Play()
    TweenService:Create(ui.MinimizeButton, TWEEN_INFO, {TextTransparency = 0, BackgroundTransparency = 0}):Play()
    TweenService:Create(ui.LockButton, TWEEN_INFO, {TextTransparency = 0}):Play()
    TweenService:Create(ui.Blur, TWEEN_INFO, {Size = BLUR_SIZE}):Play()

    TweenService:Create(ui.ToggleButton, TweenInfo.new(0.3), {ImageTransparency = 1}):Play()
    task.wait(0.3)
    ui.ToggleButton.Visible = false
    ui.ToggleButton.ImageTransparency = 0
end

function MainApp:MinimizeUI()
    local ui = self.ui
    TweenService:Create(ui.MainUI, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.In), {Size = UDim2.new(0, 0, 0, 0)}):Play()
    TweenService:Create(ui.Background, TweenInfo.new(0.3), {ImageTransparency = 1}):Play()
    TweenService:Create(ui.Blur, TweenInfo.new(0.5), {Size = 0}):Play()
    
    task.wait(0.3)
    ui.MainUI.Visible = false

    ui.ToggleButton.Visible = true
    ui.ToggleButton.Size = UDim2.new(0, 0, 0, 0)
    TweenService:Create(ui.ToggleButton, TweenInfo.new(0.4, Enum.EasingStyle.Elastic), {Size = UDim2.new(0, 60, 0, 60)}):Play()
end

function MainApp:CloseApp()
    local ui = self.ui
    TweenService:Create(ui.MainUI, TweenInfo.new(0.3), {Position = UDim2.new(0.5, -125, 1.5, 0)}):Play()
    TweenService:Create(ui.Blur, TweenInfo.new(0.5), {Size = 0}):Play()
    task.wait(0.5)

    self.speedController:Stop()
    ui.Blur:Destroy()
    ui.ScreenGui:Destroy()
end

function MainApp:SetupEvents()
    self.ui.ToggleButton.MouseButton1Click:Connect(function()
        self:OpenUI()
    end)

    self.ui.MinimizeButton.MouseButton1Click:Connect(function()
        self:MinimizeUI()
    end)

    self.ui.CloseButton.MouseButton1Click:Connect(function()
        self.ui.ConfirmFrame.Visible = true
    end)

    self.ui.BtnNo.MouseButton1Click:Connect(function()
        self.ui.ConfirmFrame.Visible = false
    end)

    self.ui.BtnYes.MouseButton1Click:Connect(function()
        self:CloseApp()
    end)

    self.ui.LockButton.MouseButton1Click:Connect(function()
        self.toggleMovable = not self.toggleMovable
        if self.toggleMovable then
            self.ui.StatusText.Text = "Toggle UI livre"
        else
            self.ui.StatusText.Text = "Toggle UI bloqueado"
        end
    end)

    RunService.RenderStepped:Connect(function()
        if self.ui.SpeedBox and self.ui.SpeedBox.Parent then
            self.speedController:SetSpeed(self.ui.SpeedBox.Text)
        end
    end)
end

local app = MainApp.new()
app:Init()

Features & Information

Universal walkspeed By: Ice_TheElementar
#Speed#Walkspeed#Velocidade#Keyless#Sem key

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts