simple speed GUI
Key RequiredUniversal

simple speed GUI

Universal Scriptoogishoogish 20K views 279 executesUpdated Nov 15, 2024
1.7/ 5(3 votes)
1233% Positive
Lua Script•214 lines (8830 chars)
-- Variables to define the player and UI setup
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

-- Utility function for smooth tween animations
local function createTween(object, tweenInfo, goal)
    local tweenService = game:GetService("TweenService")
    local tween = tweenService:Create(object, tweenInfo, goal)
    tween:Play()
    return tween
end

-- Function to create the UI
local function createUI()
    -- Create the ScreenGui
    local screenGui = Instance.new("ScreenGui")
    screenGui.Parent = player:WaitForChild("PlayerGui")
    screenGui.ResetOnSpawn = false  -- Keep UI across respawns

    -- Create the main UI frame with a grey background
    local mainFrame = Instance.new("Frame")
    mainFrame.Size = UDim2.new(0, 350, 0, 300)  -- Reduced size for a more compact UI
    mainFrame.Position = UDim2.new(0.5, -175, 0.8, -150)
    mainFrame.BackgroundColor3 = Color3.fromRGB(100, 100, 100)  -- Grey background
    mainFrame.BorderSizePixel = 0
    mainFrame.Parent = screenGui

    -- Add rounded corners to the frame
    local UICorner = Instance.new("UICorner")
    UICorner.CornerRadius = UDim.new(0, 15)  -- Slightly smaller corner radius
    UICorner.Parent = mainFrame

    -- Fade-in effect for the entire frame
    mainFrame.BackgroundTransparency = 1
    createTween(mainFrame, TweenInfo.new(1, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {BackgroundTransparency = 0})

    -- Add a title label with a glowing effect
    local titleLabel = Instance.new("TextLabel")
    titleLabel.Size = UDim2.new(1, 0, 0, 35)
    titleLabel.Position = UDim2.new(0, 0, 0, 10)
    titleLabel.Text = "Speed Control"
    titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    titleLabel.TextSize = 24
    titleLabel.TextStrokeTransparency = 0.6
    titleLabel.TextXAlignment = Enum.TextXAlignment.Center
    titleLabel.BackgroundTransparency = 1
    titleLabel.Font = Enum.Font.GothamBold
    titleLabel.Parent = mainFrame

    -- Create the Speed Label
    local speedLabel = Instance.new("TextLabel")
    speedLabel.Size = UDim2.new(1, 0, 0, 25)
    speedLabel.Position = UDim2.new(0, 0, 0, 50)
    speedLabel.Text = "Current Speed: 16"
    speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    speedLabel.TextSize = 20
    speedLabel.TextStrokeTransparency = 0.8
    speedLabel.TextXAlignment = Enum.TextXAlignment.Center
    speedLabel.BackgroundTransparency = 1
    speedLabel.Font = Enum.Font.GothamBold
    speedLabel.Parent = mainFrame

    -- Create an input box for the player to type the desired speed
    local speedInput = Instance.new("TextBox")
    speedInput.Size = UDim2.new(0, 200, 0, 40)
    speedInput.Position = UDim2.new(0.5, -100, 0, 100)
    speedInput.PlaceholderText = "Enter Speed (10-3000)"
    speedInput.TextColor3 = Color3.fromRGB(255, 255, 255)
    speedInput.BackgroundColor3 = Color3.fromRGB(50, 50, 170)
    speedInput.TextSize = 18
    speedInput.Font = Enum.Font.GothamBold
    speedInput.Parent = mainFrame

    -- Add rounded corners to the TextBox
    local textBoxCorner = Instance.new("UICorner")
    textBoxCorner.CornerRadius = UDim.new(0, 12)
    textBoxCorner.Parent = speedInput

    -- Function to update the player's speed
    local function updateSpeed(newSpeed)
        local humanoid = player.Character and player.Character:FindFirstChild("Humanoid")
        if humanoid then
            newSpeed = math.clamp(newSpeed, 10, 3000)
            humanoid.WalkSpeed = newSpeed
            createTween(speedLabel, TweenInfo.new(0.5), {TextTransparency = 1})
            wait(0.5)
            speedLabel.Text = "Current Speed: " .. math.floor(newSpeed)
            createTween(speedLabel, TweenInfo.new(0.5), {TextTransparency = 0})
        end
    end

    -- When the player presses Enter on the speed input box
    speedInput.FocusLost:Connect(function(enterPressed)
        if enterPressed then
            local inputText = tonumber(speedInput.Text)
            if inputText and inputText >= 10 and inputText <= 3000 then
                updateSpeed(inputText)
            else
                speedInput.Text = ""
                speedLabel.Text = "Invalid Speed! (10-3000)"
            end
        end
    end)

    -- Function to create buttons with advanced interactivity
    local function createButton(position, text, bgColor, textColor, callback)
        local button = Instance.new("TextButton")
        button.Size = UDim2.new(0, 120, 0, 40)
        button.Position = position
        button.Text = text
        button.TextColor3 = textColor
        button.BackgroundColor3 = bgColor
        button.TextSize = 16
        button.TextStrokeTransparency = 0.6
        button.Font = Enum.Font.GothamBold
        button.Parent = mainFrame

        -- Add rounded corners to the button
        local buttonUICorner = Instance.new("UICorner")
        buttonUICorner.CornerRadius = UDim.new(0, 12)
        buttonUICorner.Parent = button

        -- Hover effects with animation
        button.MouseEnter:Connect(function()
            createTween(button, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 140, 0, 45), BackgroundColor3 = button.BackgroundColor3:Lerp(Color3.fromRGB(255, 255, 255), 0.5)})
        end)

        button.MouseLeave:Connect(function()
            createTween(button, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 120, 0, 40), BackgroundColor3 = bgColor})
        end)

        button.MouseButton1Click:Connect(callback)
        return button
    end

    -- Create buttons to increase and decrease speed
    local increaseButton = createButton(UDim2.new(0.5, -130, 0, 160), "Increase Speed", Color3.fromRGB(0, 170, 0), Color3.fromRGB(255, 255, 255), function() updateSpeedByAmount(10) end)
    local decreaseButton = createButton(UDim2.new(0.5, 10, 0, 160), "Decrease Speed", Color3.fromRGB(170, 0, 0), Color3.fromRGB(255, 255, 255), function() updateSpeedByAmount(-10) end)

    -- Minimize/Restore Button with smooth transition
    local minimizeButton = Instance.new("TextButton")
    minimizeButton.Size = UDim2.new(0, 30, 0, 30)
    minimizeButton.Position = UDim2.new(1, -40, 0, 50)
    minimizeButton.Text = "_"
    minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    minimizeButton.BackgroundTransparency = 1
    minimizeButton.TextSize = 20
    minimizeButton.Font = Enum.Font.GothamBold
    minimizeButton.Parent = mainFrame

    local isMinimized = false
    minimizeButton.MouseButton1Click:Connect(function()
        isMinimized = not isMinimized
        if isMinimized then
            createTween(mainFrame, TweenInfo.new(0.3), {Size = UDim2.new(0, 350, 0, 40)})
            speedLabel.Visible = false
            speedInput.Visible = false
            increaseButton.Visible = false
            decreaseButton.Visible = false
        else
            createTween(mainFrame, TweenInfo.new(0.3), {Size = UDim2.new(0, 350, 0, 300)})
            speedLabel.Visible = true
            speedInput.Visible = true
            increaseButton.Visible = true
            decreaseButton.Visible = true
        end
    end)

    -- Close button (X button) to close the UI with animation
    local closeButton = Instance.new("TextButton")
    closeButton.Size = UDim2.new(0, 30, 0, 30)
    closeButton.Position = UDim2.new(1, -40, 0, 10)
    closeButton.Text = "X"
    closeButton.TextColor3 = Color3.fromRGB(255, 0, 0)
    closeButton.BackgroundTransparency = 1
    closeButton.TextSize = 20
    closeButton.Font = Enum.Font.GothamBold
    closeButton.Parent = mainFrame

    closeButton.MouseButton1Click:Connect(function()
        createTween(mainFrame, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 350, 0, 0)})
        wait(0.2)
        screenGui:Destroy()  -- Close the UI with animation
    end)

    -- Add draggable functionality with smooth dragging
    local dragging = false
    local dragStart = nil
    local startPos = nil

    mainFrame.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = mainFrame.Position
        end
    end)

    mainFrame.InputChanged:Connect(function(input)
        if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            local delta = input.Position - dragStart
            mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
        end
    end)

    mainFrame.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
end

-- Create the UI when the player joins
createUI()

Features & Information

A literal speed gui, nothing to it thats it.
#speed#yes

Community Comments (4)

oogishoogishNov 15, 2024(edited)

yea just a speed script

fanumskibidifanumskibidiNov 15, 2024(edited)

chatgpt!

fanumskibidifanumskibidiNov 15, 2024(edited)

lil bro disliked my comment

The8man8in8blueThe8man8in8blueNov 29, 2024(edited)

Its a nice script

More Scripts for Universal Scripts