KEMBAR78
Message | PDF
0% found this document useful (0 votes)
28 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)
28 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
You are on page 1/ 9

local Players = game:GetService("Players")

local TweenService = game:GetService("TweenService")


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

local player = Players.LocalPlayer


local playerGui = player:WaitForChild("PlayerGui")

-- Utility to create instances cleanly


local function new(class, props, parent)
local obj = Instance.new(class)
if props then
for k,v in pairs(props) do
obj[k] = v
end
end
if parent then
obj.Parent = 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 = UDim2.new(1,0,1,0),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
ZIndex = 9999,
Parent = gui,
})

local loadingText = new("TextLabel", {


Size = UDim2.new(0,360,0,60),
Position = UDim2.new(0.5, -180, 0.4, -30),
BackgroundTransparency = 1,
Text = "Loading G0LET_DREAD'S GUI...",
TextScaled = true,
TextColor3 = Color3.fromRGB(235, 70, 70),
Font = Enum.Font.GothamBold,
ZIndex = 10000,
Parent = loading,
})

local loadingBarBack = new("Frame", {


Size = UDim2.new(0,360,0,28),
Position = UDim2.new(0.5, -180, 0.5, 20),
BackgroundColor3 = Color3.fromRGB(40, 10, 10),
BorderSizePixel = 0,
ClipsDescendants = true,
AnchorPoint = Vector2.new(0,0),
ZIndex = 9999,
Parent = loading,
})
loadingBarBack:ClearAllChildren()

local loadingBar = new("Frame", {


Size = UDim2.new(0,0,1,0),
BackgroundColor3 = Color3.fromRGB(255, 85, 85),
BorderSizePixel = 0,
ZIndex = 10000,
Parent = loadingBarBack,
})

local loadingBarGradient = new("UIGradient", {


Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 90, 90)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 180, 180)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 90, 90)),
},
Rotation = 90,
Parent = loadingBar,
})

local percentText = new("TextLabel", {


Size = UDim2.new(0,120,0,40),
Position = UDim2.new(0.5, -60, 0.5, 60),
BackgroundTransparency = 1,
Text = "0%",
TextColor3 = Color3.fromRGB(255,255,255),
Font = Enum.Font.GothamBold,
TextScaled = true,
ZIndex = 10000,
Parent = loading,
})

-- Loading text pulsate animation


local pulseSpeed = 2
RunService.Heartbeat:Connect(function(dt)
if loadingText.Parent then
local t = tick() * pulseSpeed
local pulse = 0.5 + 0.5 * math.sin(t)
local r = 0.8 + 0.2 * pulse
loadingText.TextColor3 = Color3.new(r, 0.3, 0.3)
end
end)

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

-- Shadow effect (optional for nicer UI)


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

local title = new("TextLabel", {


Size = UDim2.new(1,0,0,40),
BackgroundColor3 = Color3.fromRGB(100, 10, 10),
Text = "G0LET_DREAD'S GUI",
TextColor3 = Color3.fromRGB(255, 255, 255),
Font = Enum.Font.GothamBold,
TextScaled = true,
ZIndex = 10001,
Parent = main,
})

local minimize = new("TextButton", {


Size = UDim2.new(0,40,0,40),
Position = UDim2.new(1, -40, 0, 0),
Text = "−",
TextColor3 = Color3.fromRGB(255, 255, 255),
Font = Enum.Font.GothamBold,
TextScaled = true,
BackgroundColor3 = Color3.fromRGB(140, 0, 0),
ZIndex = 10002,
AutoButtonColor = false,
Parent = main,
})

minimize.MouseEnter:Connect(function()
TweenService:Create(minimize, TweenInfo.new(0.2), {BackgroundColor3 =
Color3.fromRGB(180, 0, 0)}):Play()
end)
minimize.MouseLeave:Connect(function()
TweenService:Create(minimize, TweenInfo.new(0.2), {BackgroundColor3 =
Color3.fromRGB(140, 0, 0)}):Play()
end)

-- Scrolling frame to hold buttons


local buttonHolder = new("ScrollingFrame", {
Size = UDim2.new(1, -20, 1, -40),
Position = UDim2.new(0, 10, 0, 40),
BackgroundTransparency = 1,
BorderSizePixel = 0,
CanvasSize = UDim2.new(0,0,0,0),
ScrollBarThickness = 10,
VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar,
ZIndex = 10001,
Parent = main,
})

local listLayout = new("UIListLayout", {


SortOrder = Enum.SortOrder.LayoutOrder,
Padding = UDim.new(0, 14),
Parent = buttonHolder,
})

listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
buttonHolder.CanvasSize = UDim2.new(0,0,0,listLayout.AbsoluteContentSize.Y +
14)
end)

local function createButton(text, layoutOrder)


local btn = new("TextButton", {
Size = UDim2.new(0.9, 0, 0, 50),
AnchorPoint = Vector2.new(0.5, 0),
Position = UDim2.new(0.5, 0, 0, 0),
BackgroundColor3 = Color3.fromRGB(210, 60, 60),
TextColor3 = Color3.fromRGB(255, 255, 255),
Font = Enum.Font.GothamBold,
TextScaled = true,
Text = text,
AutoButtonColor = false,
BorderSizePixel = 0,
LayoutOrder = layoutOrder,
ZIndex = 10002,
Parent = buttonHolder,
})

-- Button hover effect


btn.MouseEnter:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad),
{BackgroundColor3 = Color3.fromRGB(255, 90, 90)}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.2, Enum.EasingStyle.Quad),
{BackgroundColor3 = Color3.fromRGB(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
gui.SpeedPrompt:Destroy()
end

local speedPrompt = new("Frame", {


Name = "SpeedPrompt",
Size = UDim2.new(0, 300, 0, 130),
Position = UDim2.new(0.5, -150, 0.5, -65),
BackgroundColor3 = Color3.fromRGB(60, 15, 15),
BorderSizePixel = 0,
AnchorPoint = Vector2.new(0.5, 0.5),
ZIndex = 11000,
Parent = gui,
})

local label = new("TextLabel", {


Size = UDim2.new(1, 0, 0, 40),
Text = "Enter Walk Speed:",
TextColor3 = Color3.new(1,1,1),
Font = Enum.Font.GothamBold,
TextScaled = true,
BackgroundTransparency = 1,
Parent = speedPrompt,
})

local inputBox = new("TextBox", {


Size = UDim2.new(0.9, 0, 0, 50),
Position = UDim2.new(0.05, 0, 0, 45),
BackgroundColor3 = Color3.fromRGB(90, 20, 20),
TextColor3 = Color3.new(1,1,1),
Font = Enum.Font.Gotham,
TextScaled = true,
ClearTextOnFocus = true,
PlaceholderText = "e.g., 20",
Parent = speedPrompt,
BorderSizePixel = 0,
})

local submitSpeedBtn = new("TextButton", {


Size = UDim2.new(0.6, 0, 0, 35),
Position = UDim2.new(0.2, 0, 0, 100),
Text = "Set Speed",
BackgroundColor3 = Color3.fromRGB(200, 40, 40),
TextColor3 = Color3.new(1,1,1),
Font = Enum.Font.GothamBold,
TextScaled = true,
BorderSizePixel = 0,
Parent = speedPrompt,
})

local feedback = new("TextLabel", {


Size = UDim2.new(1, 0, 0, 25),
Position = UDim2.new(0, 0, 0, 135),
Text = "",
TextColor3 = Color3.fromRGB(255, 100, 100),
Font = Enum.Font.Gotham,
TextScaled = true,
BackgroundTransparency = 1,
ZIndex = 11001,
Parent = speedPrompt,
})

local function closeSpeedPrompt()


speedPrompt:Destroy()
end

submitSpeedBtn.MouseButton1Click:Connect(function()
local val = tonumber(inputBox.Text)
if val and val > 0 and val <= 500 then
-- Set player's humanoid WalkSpeed safely
local humanoid = player.Character and
player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = val
feedback.TextColor3 = Color3.fromRGB(100, 255, 100)
feedback.Text = "Walk Speed set to " .. tostring(val)
task.delay(2, closeSpeedPrompt)
else
feedback.Text = "Humanoid not found!"
end
else
feedback.Text = "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 = player.Character and
player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = 16
end
end)

-- Dragging logic for main frame


local dragging, dragInput, dragStart, startPos
title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
title.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UIS.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
main.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)

-- Minimize toggle with smooth tween


local minimized = false
minimize.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
buttonHolder.Visible = false
minimize.Text = "+"
main:TweenSize(UDim2.new(0, 420, 0, 40), Enum.EasingDirection.Out,
Enum.EasingStyle.Quad, 0.3, true)
else
minimize.Text = "−"
main:TweenSize(UDim2.new(0, 420, 0, 440), Enum.EasingDirection.Out,
Enum.EasingStyle.Quad, 0.3, true)
task.wait(0.3)
buttonHolder.Visible = true
end
end)

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

local promptLabel = new("TextLabel", {


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

local submitBtn = new("TextButton", {


Size = UDim2.new(0.6, 0, 0, 42),
Position = UDim2.new(0.2, 0, 0, 120),
Text = "Submit",
BackgroundColor3 = Color3.fromRGB(200, 40, 40),
TextColor3 = Color3.fromRGB(255, 255, 255),
Font = Enum.Font.GothamBold,
TextScaled = true,
BorderSizePixel = 0,
ZIndex = 10002,
Parent = keyPrompt,
})

local feedbackLabel = new("TextLabel", {


Size = UDim2.new(1, 0, 0, 28),
Position = UDim2.new(0, 0, 0, 165),
Text = "",
TextColor3 = Color3.fromRGB(255, 100, 100),
Font = Enum.Font.Gotham,
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 = frame.Position
local elapsed = 0
local heartbeatConn

heartbeatConn = RunService.Heartbeat:Connect(function(dt)
elapsed += dt
if elapsed >= duration then
frame.Position = startPos
heartbeatConn:Disconnect()
return
end
local offsetX = (math.random() * 2 - 1) * magnitude
local offsetY = (math.random() * 2 - 1) * magnitude
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset +
offsetX,
startPos.Y.Scale, startPos.Y.Offset + offsetY)
end)
end

-- Submit key logic


local validKey = "HACKMENU" -- example key
submitBtn.MouseButton1Click:Connect(function()
local enteredKey = keyInput.Text
if enteredKey == validKey then
keyPrompt.Visible = false
main.Visible = true
loading.Visible = false
else
feedbackLabel.Text = "Invalid key! Try again."
shakeFrame(keyPrompt, 10, 0.5)
task.delay(0.5, function()
feedbackLabel.Text = ""
end)
end
end)

-- Show key prompt on start


loading.Visible = false
keyPrompt.Visible = true
main.Visible = false

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

You might also like