Speed Acceleration Script
Key RequiredUniversal

Speed Acceleration Script

Universal Scriptromaprogamingromaprogaming 3.3K views 68 executesUpdated Feb 4, 2025
Unrated
00
Lua Script•217 lines (7708 chars)
local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Root = Character:WaitForChild("HumanoidRootPart")

local BaseWaitTimer = 0.5
local MinSpeed = 16
local MaxSpeed = 64

local WaitTimer = BaseWaitTimer
Humanoid.WalkSpeed = MinSpeed

local guiClosed = false

local function CreateGUI()
    local ScreenGui = Instance.new("ScreenGui")
    local Frame = Instance.new("Frame")
    local Title = Instance.new("TextLabel")
    local TextBox = Instance.new("TextBox")
    local AccelerationBox = Instance.new("TextBox")
    local MaxSpeedLabel = Instance.new("TextLabel")
    local AccelerationLabel = Instance.new("TextLabel")
    local Button = Instance.new("TextButton")
    local AccelerationButton = Instance.new("TextButton")
    local MinimizeButton = Instance.new("TextButton")
    local CloseButton = Instance.new("TextButton")
    local ResetButton = Instance.new("TextButton")

    ScreenGui.Parent = Player:WaitForChild("PlayerGui")

    Frame.Size = UDim2.new(0, 220, 0, 250)
    Frame.Position = UDim2.new(0.5, -110, 0.5, -125)
    Frame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
    Frame.Active = true
    Frame.Draggable = true
    Frame.Parent = ScreenGui

    Title.Text = "Speed Acceleration Script"
    Title.Size = UDim2.new(1, 0, 0.15, 0)
    Title.Position = UDim2.new(0.1, 0, -0.025, 0)
    Title.BackgroundTransparency = 1
    Title.TextColor3 = Color3.new(1, 1, 1)
    Title.Font = Enum.Font.SourceSansBold
    Title.TextSize = 10
    Title.Parent = Frame

    AccelerationLabel.Text = "Acceleration: " .. WaitTimer
    AccelerationLabel.Size = UDim2.new(0.8, 0, 0.1, 0)
    AccelerationLabel.Position = UDim2.new(0.1, 0, 0.05, 0)
    AccelerationLabel.BackgroundTransparency = 1
    AccelerationLabel.TextColor3 = Color3.new(1, 1, 1)
    AccelerationLabel.Font = Enum.Font.SourceSans
    AccelerationLabel.TextSize = 14
    AccelerationLabel.Parent = Frame

    MaxSpeedLabel.Text = "Max Speed: " .. MaxSpeed
    MaxSpeedLabel.Size = UDim2.new(0.8, 0, 0.1, 0)
    MaxSpeedLabel.Position = UDim2.new(0.1, 0, 0.1, 0)
    MaxSpeedLabel.BackgroundTransparency = 1
    MaxSpeedLabel.TextColor3 = Color3.new(1, 1, 1)
    MaxSpeedLabel.Font = Enum.Font.SourceSans
    MaxSpeedLabel.TextSize = 16
    MaxSpeedLabel.Parent = Frame

    TextBox.PlaceholderText = "Enter speed (16-1500)"
    TextBox.Size = UDim2.new(0.8, 0, 0.15, 0)
    TextBox.Position = UDim2.new(0.1, 0, 0.2, 0)
    TextBox.BackgroundColor3 = Color3.new(1, 1, 1)
    TextBox.Text = ""
    TextBox.TextColor3 = Color3.new(0, 0, 0)
    TextBox.Font = Enum.Font.SourceSans
    TextBox.TextSize = 14
    TextBox.Parent = Frame

    AccelerationBox.PlaceholderText = "Enter Acceleration"
    AccelerationBox.Size = UDim2.new(0.8, 0, 0.15, 0)
    AccelerationBox.Position = UDim2.new(0.1, 0, 0.55, 0)
    AccelerationBox.BackgroundColor3 = Color3.new(1, 1, 1)
    AccelerationBox.Text = ""
    AccelerationBox.TextColor3 = Color3.new(0, 0, 0)
    AccelerationBox.Font = Enum.Font.SourceSans
    AccelerationBox.TextSize = 14
    AccelerationBox.Parent = Frame

    Button.Text = "Set Speed"
    Button.Size = UDim2.new(0.8, 0, 0.15, 0)
    Button.Position = UDim2.new(0.1, 0, 0.35, 0)
    Button.BackgroundColor3 = Color3.new(0.3, 0.6, 1)
    Button.TextColor3 = Color3.new(1, 1, 1)
    Button.Font = Enum.Font.SourceSans
    Button.TextSize = 16
    Button.Parent = Frame

    AccelerationButton.Text = "Set Acceleration"
    AccelerationButton.Size = UDim2.new(0.8, 0, 0.15, 0)
    AccelerationButton.Position = UDim2.new(0.1, 0, 0.7, 0)
    AccelerationButton.BackgroundColor3 = Color3.new(0.6, 0.3, 1)
    AccelerationButton.TextColor3 = Color3.new(1, 1, 1)
    AccelerationButton.Font = Enum.Font.SourceSans
    AccelerationButton.TextSize = 16
    AccelerationButton.Parent = Frame

    MinimizeButton.Text = "-"
    MinimizeButton.Size = UDim2.new(0, 20, 0, 20)
    MinimizeButton.Position = UDim2.new(1, -40, 0, 0)
    MinimizeButton.BackgroundColor3 = Color3.new(1, 1, 0)
    MinimizeButton.TextColor3 = Color3.new(0, 0, 0)
    MinimizeButton.Font = Enum.Font.SourceSansBold
    MinimizeButton.TextSize = 14
    MinimizeButton.Parent = Frame

    CloseButton.Text = "X"
    CloseButton.Size = UDim2.new(0, 20, 0, 20)
    CloseButton.Position = UDim2.new(1, -20, 0, 0)
    CloseButton.BackgroundColor3 = Color3.new(1, 0, 0)
    CloseButton.TextColor3 = Color3.new(1, 1, 1)
    CloseButton.Font = Enum.Font.SourceSansBold
    CloseButton.TextSize = 14
    CloseButton.Parent = Frame

    ResetButton.Text = "Reset"
    ResetButton.Size = UDim2.new(0, 80, 0, 20)
    ResetButton.Position = UDim2.new(0, -0.05, 0, 0)
    ResetButton.BackgroundColor3 = Color3.new(0, 1, 1)
    ResetButton.TextColor3 = Color3.new(0, 0, 0)
    ResetButton.Font = Enum.Font.SourceSansBold
    ResetButton.TextSize = 14
    ResetButton.Parent = Frame

    Button.MouseButton1Click:Connect(function()
        local newSpeed = tonumber(TextBox.Text)
        if newSpeed and newSpeed >= 16 and newSpeed <= 1500 then
            MaxSpeed = newSpeed
            MaxSpeedLabel.Text = "Max Speed: " .. MaxSpeed
        else
            MaxSpeedLabel.Text = "Invalid speed!"
        end
    end)

    AccelerationButton.MouseButton1Click:Connect(function()
        local newWaitTimer = tonumber(AccelerationBox.Text)
        if newWaitTimer and newWaitTimer > 0 then
            WaitTimer = newWaitTimer
            AccelerationLabel.Text = "Acceleration: " .. WaitTimer
        else
            AccelerationLabel.Text = "Invalid acceleration!"
        end
    end)

    local isMinimized = false
    MinimizeButton.MouseButton1Click:Connect(function()
        isMinimized = not isMinimized
        if isMinimized then
            for _, child in ipairs(Frame:GetChildren()) do
                if child ~= MinimizeButton and child ~= CloseButton and child ~= ResetButton then
                    child.Visible = false
                end
            end
            Frame.Size = UDim2.new(0, 220, 0, 20)
        else
            for _, child in ipairs(Frame:GetChildren()) do
                child.Visible = true
            end
            Frame.Size = UDim2.new(0, 220, 0, 250)
        end
    end)

    local humanoidMoveConnection

    function Start()
        local MoveDirDB = false

        local function Accelerate()
            if Humanoid.MoveDirection ~= Vector3.new(0, 0, 0) and not MoveDirDB and Humanoid.WalkSpeed < MaxSpeed then
                MoveDirDB = true
                while Humanoid.MoveDirection ~= Vector3.new(0, 0, 0) and Humanoid.WalkSpeed < MaxSpeed do
                    Humanoid.WalkSpeed = Humanoid.WalkSpeed + 1
                    wait(WaitTimer)
                    WaitTimer = WaitTimer / 1.1
                end
                MoveDirDB = false
            elseif Humanoid.MoveDirection == Vector3.new(0, 0, 0) then
                WaitTimer = BaseWaitTimer
                Humanoid.WalkSpeed = MinSpeed
            end
        end

        humanoidMoveConnection = Humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(Accelerate)
    end

    Start()

    CloseButton.MouseButton1Click:Connect(function()
        if humanoidMoveConnection then
            humanoidMoveConnection:Disconnect()
            humanoidMoveConnection = nil
        end
        
        Humanoid.WalkSpeed = MinSpeed
        ScreenGui:Destroy()
        guiClosed = true
    end)

    ResetButton.MouseButton1Click:Connect(function()
        Humanoid.Health = 0
    end)
end

CreateGUI()

Player.CharacterAdded:Connect(function()
    if guiClosed then
        guiClosed = false
    else
        CreateGUI()
    end
end)

Features & Information

add custom accel / acceleration to character
#speed#accel#acceleration#universal#custom

Community Comments (1)

Alexis_isback00Alexis_isback00Feb 4, 2025(edited)

For your information there is already such a script, it is called Universal Car speed

More Scripts for Universal Scripts