0% found this document useful (0 votes)
44 views9 pages

Message

The document is a Lua script designed for a Roblox game that creates a user interface (UI) for managing player speed and other functionalities. It includes a loading screen, main GUI with buttons for setting and resetting player speed, and a key prompt for access. The script utilizes various services from Roblox, such as TweenService for animations and UserInputService for handling user inputs.

Uploaded by

gamingemailforyt
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)
44 views9 pages

Message

The document is a Lua script designed for a Roblox game that creates a user interface (UI) for managing player speed and other functionalities. It includes a loading screen, main GUI with buttons for setting and resetting player speed, and a key prompt for access. The script utilizes various services from Roblox, such as TweenService for animations and UserInputService for handling user inputs.

Uploaded by

gamingemailforyt
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

local Players = game:GetService("Players")

local TweenService = game:GetService("TweenService")


local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = [Link]


local playerGui = player:WaitForChild("PlayerGui")

-- Utility to create instances cleanly


local function new(class, props, parent)
local obj = [Link](class)
if props then
for k,v in pairs(props) do
obj[k] = v
end
end
if parent then
[Link] = parent
end
return obj
end

-- Clear old GUI if exists


local oldGui = playerGui:FindFirstChild("GoletDreadGUI")
if oldGui then oldGui:Destroy() end

local gui = new("ScreenGui", {


Name = "GoletDreadGUI",
ResetOnSpawn = false,
DisplayOrder = 1000,
Parent = playerGui,
})

-- ====================
-- LOADING SCREEN
-- ====================
local loading = new("Frame", {
Size = [Link](1,0,1,0),
BackgroundColor3 = [Link](20, 20, 20),
ZIndex = 9999,
Parent = gui,
})

local loadingText = new("TextLabel", {


Size = [Link](0,360,0,60),
Position = [Link](0.5, -180, 0.4, -30),
BackgroundTransparency = 1,
Text = "Loading G0LET_DREAD'S GUI...",
TextScaled = true,
TextColor3 = [Link](235, 70, 70),
Font = [Link],
ZIndex = 10000,
Parent = loading,
})

local loadingBarBack = new("Frame", {


Size = [Link](0,360,0,28),
Position = [Link](0.5, -180, 0.5, 20),
BackgroundColor3 = [Link](40, 10, 10),
BorderSizePixel = 0,
ClipsDescendants = true,
AnchorPoint = [Link](0,0),
ZIndex = 9999,
Parent = loading,
})
loadingBarBack:ClearAllChildren()

local loadingBar = new("Frame", {


Size = [Link](0,0,1,0),
BackgroundColor3 = [Link](255, 85, 85),
BorderSizePixel = 0,
ZIndex = 10000,
Parent = loadingBarBack,
})

local loadingBarGradient = new("UIGradient", {


Color = [Link]{
[Link](0, [Link](255, 90, 90)),
[Link](0.5, [Link](255, 180, 180)),
[Link](1, [Link](255, 90, 90)),
},
Rotation = 90,
Parent = loadingBar,
})

local percentText = new("TextLabel", {


Size = [Link](0,120,0,40),
Position = [Link](0.5, -60, 0.5, 60),
BackgroundTransparency = 1,
Text = "0%",
TextColor3 = [Link](255,255,255),
Font = [Link],
TextScaled = true,
ZIndex = 10000,
Parent = loading,
})

-- Loading text pulsate animation


local pulseSpeed = 2
[Link]:Connect(function(dt)
if [Link] then
local t = tick() * pulseSpeed
local pulse = 0.5 + 0.5 * [Link](t)
local r = 0.8 + 0.2 * pulse
loadingText.TextColor3 = [Link](r, 0.3, 0.3)
end
end)

-- ====================
-- MAIN GUI FRAME
-- ====================
local main = new("Frame", {
Name = "Main",
Size = [Link](0, 420, 0, 440),
Position = [Link](0.5, -210, 0.5, -220),
BackgroundColor3 = [Link](50, 10, 10),
BorderSizePixel = 0,
Visible = false,
ClipsDescendants = true,
AnchorPoint = [Link](0.5, 0.5),
Parent = gui,
})

-- Shadow effect (optional for nicer UI)


local shadow = new("ImageLabel", {
Size = [Link](1,20,1,20),
Position = [Link](0,-10,0,-10),
Image = "rbxassetid://1316045217", -- Shadow image asset
ScaleType = [Link],
SliceCenter = [Link](10,10,118,118),
BackgroundTransparency = 1,
ZIndex = 9980,
Parent = main,
})

local title = new("TextLabel", {


Size = [Link](1,0,0,40),
BackgroundColor3 = [Link](100, 10, 10),
Text = "G0LET_DREAD'S GUI",
TextColor3 = [Link](255, 255, 255),
Font = [Link],
TextScaled = true,
ZIndex = 10001,
Parent = main,
})

local minimize = new("TextButton", {


Size = [Link](0,40,0,40),
Position = [Link](1, -40, 0, 0),
Text = "−",
TextColor3 = [Link](255, 255, 255),
Font = [Link],
TextScaled = true,
BackgroundColor3 = [Link](140, 0, 0),
ZIndex = 10002,
AutoButtonColor = false,
Parent = main,
})

[Link]:Connect(function()
TweenService:Create(minimize, [Link](0.2), {BackgroundColor3 =
[Link](180, 0, 0)}):Play()
end)
[Link]:Connect(function()
TweenService:Create(minimize, [Link](0.2), {BackgroundColor3 =
[Link](140, 0, 0)}):Play()
end)

-- Scrolling frame to hold buttons


local buttonHolder = new("ScrollingFrame", {
Size = [Link](1, -20, 1, -40),
Position = [Link](0, 10, 0, 40),
BackgroundTransparency = 1,
BorderSizePixel = 0,
CanvasSize = [Link](0,0,0,0),
ScrollBarThickness = 10,
VerticalScrollBarInset = [Link],
ZIndex = 10001,
Parent = main,
})

local listLayout = new("UIListLayout", {


SortOrder = [Link],
Padding = [Link](0, 14),
Parent = buttonHolder,
})

listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
[Link] = [Link](0,0,0,[Link].Y +
14)
end)

local function createButton(text, layoutOrder)


local btn = new("TextButton", {
Size = [Link](0.9, 0, 0, 50),
AnchorPoint = [Link](0.5, 0),
Position = [Link](0.5, 0, 0, 0),
BackgroundColor3 = [Link](210, 60, 60),
TextColor3 = [Link](255, 255, 255),
Font = [Link],
TextScaled = true,
Text = text,
AutoButtonColor = false,
BorderSizePixel = 0,
LayoutOrder = layoutOrder,
ZIndex = 10002,
Parent = buttonHolder,
})

-- Button hover effect


[Link]:Connect(function()
TweenService:Create(btn, [Link](0.2, [Link]),
{BackgroundColor3 = [Link](255, 90, 90)}):Play()
end)
[Link]:Connect(function()
TweenService:Create(btn, [Link](0.2, [Link]),
{BackgroundColor3 = [Link](210, 60, 60)}):Play()
end)

return btn
end

-- === Add Your Buttons Here ===


-- Clear any existing buttons (optional)
for _, child in pairs(buttonHolder:GetChildren()) do
if child:IsA("TextButton") then
child:Destroy()
end
end

-- Button 1: Get Game (save instance + speed set)


local getGameBtn = createButton("Get Game", 1)

getGameBtn.MouseButton1Click:Connect(function()
-- Try saveinstance (works only in Studio)
local success, err = pcall(function()
saveinstance()
end)
if success then
-- Create speed input prompt
if gui:FindFirstChild("SpeedPrompt") then
[Link]:Destroy()
end

local speedPrompt = new("Frame", {


Name = "SpeedPrompt",
Size = [Link](0, 300, 0, 130),
Position = [Link](0.5, -150, 0.5, -65),
BackgroundColor3 = [Link](60, 15, 15),
BorderSizePixel = 0,
AnchorPoint = [Link](0.5, 0.5),
ZIndex = 11000,
Parent = gui,
})

local label = new("TextLabel", {


Size = [Link](1, 0, 0, 40),
Text = "Enter Walk Speed:",
TextColor3 = [Link](1,1,1),
Font = [Link],
TextScaled = true,
BackgroundTransparency = 1,
Parent = speedPrompt,
})

local inputBox = new("TextBox", {


Size = [Link](0.9, 0, 0, 50),
Position = [Link](0.05, 0, 0, 45),
BackgroundColor3 = [Link](90, 20, 20),
TextColor3 = [Link](1,1,1),
Font = [Link],
TextScaled = true,
ClearTextOnFocus = true,
PlaceholderText = "e.g., 20",
Parent = speedPrompt,
BorderSizePixel = 0,
})

local submitSpeedBtn = new("TextButton", {


Size = [Link](0.6, 0, 0, 35),
Position = [Link](0.2, 0, 0, 100),
Text = "Set Speed",
BackgroundColor3 = [Link](200, 40, 40),
TextColor3 = [Link](1,1,1),
Font = [Link],
TextScaled = true,
BorderSizePixel = 0,
Parent = speedPrompt,
})

local feedback = new("TextLabel", {


Size = [Link](1, 0, 0, 25),
Position = [Link](0, 0, 0, 135),
Text = "",
TextColor3 = [Link](255, 100, 100),
Font = [Link],
TextScaled = true,
BackgroundTransparency = 1,
ZIndex = 11001,
Parent = speedPrompt,
})

local function closeSpeedPrompt()


speedPrompt:Destroy()
end

submitSpeedBtn.MouseButton1Click:Connect(function()
local val = tonumber([Link])
if val and val > 0 and val <= 500 then
-- Set player's humanoid WalkSpeed safely
local humanoid = [Link] and
[Link]:FindFirstChildOfClass("Humanoid")
if humanoid then
[Link] = val
feedback.TextColor3 = [Link](100, 255, 100)
[Link] = "Walk Speed set to " .. tostring(val)
[Link](2, closeSpeedPrompt)
else
[Link] = "Humanoid not found!"
end
else
[Link] = "Invalid speed! Enter a number (1-500)."
end
end)
else
warn("saveinstance() failed or not supported here.")
end
end)

-- Button 2: Reset Speed to default 16


local resetSpeedBtn = createButton("Reset Speed", 2)
resetSpeedBtn.MouseButton1Click:Connect(function()
local humanoid = [Link] and
[Link]:FindFirstChildOfClass("Humanoid")
if humanoid then
[Link] = 16
end
end)

-- Dragging logic for main frame


local dragging, dragInput, dragStart, startPos
[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 then
dragging = true
dragStart = [Link]
startPos = [Link]
[Link]:Connect(function()
if [Link] == [Link] then
dragging = false
end
end)
end
end)
[Link]:Connect(function(input)
if [Link] == [Link] then
dragInput = input
end
end)
[Link]:Connect(function(input)
if input == dragInput and dragging then
local delta = [Link] - dragStart
[Link] = [Link](
[Link],
[Link] + delta.X,
[Link],
[Link] + delta.Y
)
end
end)

-- Minimize toggle with smooth tween


local minimized = false
minimize.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
[Link] = false
[Link] = "+"
main:TweenSize([Link](0, 420, 0, 40), [Link],
[Link], 0.3, true)
else
[Link] = "−"
main:TweenSize([Link](0, 420, 0, 440), [Link],
[Link], 0.3, true)
[Link](0.3)
[Link] = true
end
end)

-- ====================
-- KEY PROMPT GUI
-- ====================
local keyPrompt = new("Frame", {
Size = [Link](0, 360, 0, 180),
Position = [Link](0.5, -180, 0.5, -90),
BackgroundColor3 = [Link](40, 10, 10),
BorderSizePixel = 0,
ZIndex = 10001,
Visible = false,
AnchorPoint = [Link](0.5, 0.5),
Parent = gui,
})

local promptLabel = new("TextLabel", {


Size = [Link](1, 0, 0, 55),
Text = "Enter Access Key",
TextColor3 = [Link](255, 255, 255),
Font = [Link],
TextScaled = true,
BackgroundTransparency = 1,
ZIndex = 10002,
Parent = keyPrompt,
})
local keyInput = new("TextBox", {
Size = [Link](0.9, 0, 0, 50),
Position = [Link](0.05, 0, 0, 60),
PlaceholderText = "Type your key here...",
BackgroundColor3 = [Link](90, 20, 20),
TextColor3 = [Link](255, 255, 255),
TextScaled = true,
Font = [Link],
ClearTextOnFocus = false,
BorderSizePixel = 0,
ZIndex = 10002,
Parent = keyPrompt,
})

local submitBtn = new("TextButton", {


Size = [Link](0.6, 0, 0, 42),
Position = [Link](0.2, 0, 0, 120),
Text = "Submit",
BackgroundColor3 = [Link](200, 40, 40),
TextColor3 = [Link](255, 255, 255),
Font = [Link],
TextScaled = true,
BorderSizePixel = 0,
ZIndex = 10002,
Parent = keyPrompt,
})

local feedbackLabel = new("TextLabel", {


Size = [Link](1, 0, 0, 28),
Position = [Link](0, 0, 0, 165),
Text = "",
TextColor3 = [Link](255, 100, 100),
Font = [Link],
TextScaled = true,
BackgroundTransparency = 1,
ZIndex = 10002,
Parent = keyPrompt,
})

-- Shake animation utility


local function shakeFrame(frame, magnitude, duration)
magnitude = magnitude or 10
duration = duration or 0.4
local startPos = [Link]
local elapsed = 0
local heartbeatConn

heartbeatConn = [Link]:Connect(function(dt)
elapsed += dt
if elapsed >= duration then
[Link] = startPos
heartbeatConn:Disconnect()
return
end
local offsetX = ([Link]() * 2 - 1) * magnitude
local offsetY = ([Link]() * 2 - 1) * magnitude
[Link] = [Link]([Link], [Link] +
offsetX,
[Link], [Link] + offsetY)
end)
end

-- Submit key logic


local validKey = "HACKMENU" -- example key
submitBtn.MouseButton1Click:Connect(function()
local enteredKey = [Link]
if enteredKey == validKey then
[Link] = false
[Link] = true
[Link] = false
else
[Link] = "Invalid key! Try again."
shakeFrame(keyPrompt, 10, 0.5)
[Link](0.5, function()
[Link] = ""
end)
end
end)

-- Show key prompt on start


[Link] = false
[Link] = true
[Link] = false

-- ====================
-- END OF SCRIPT
-- ====================

You might also like