0% found this document useful (0 votes)
52 views

Basic Speed GUI

Uploaded by

aleksandrsozo88
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

Basic Speed GUI

Uploaded by

aleksandrsozo88
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

-- 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()

You might also like