![[UPD] | Core Hub!](https://scriptblox.com/images/sb/rbx-1fe7b0b75a7703a94c66bed5678f9945-b711fc12ae1c.png)
Keyless

--// X3R - DULES Advanced Panel
--// LocalScript only
--// Place in StarterPlayer > StarterPlayerScripts
--// No RemoteEvent / No RemoteFunction
--==================================================
-- SERVICES
--==================================================
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
--==================================================
-- PLAYER
--==================================================
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
--==================================================
-- CONFIG
--==================================================
local CONFIG = {
KEY = "DULES",
UI_SIZE = UDim2.new(0, 460, 0, 345),
UI_CLOSED_SIZE = UDim2.new(0, 460, 0, 0),
KEY_SIZE = UDim2.new(0, 360, 0, 225),
KEY_CLOSED_SIZE = UDim2.new(0, 360, 0, 0),
FLOAT_SIZE = UDim2.new(0, 58, 0, 58),
BLUR_SIZE = 18,
WALKSPEED = 50,
ANIM_FAST = 0.12,
ANIM_MED = 0.22,
ANIM_SLOW = 0.30,
}
local COLORS = {
BG = Color3.fromRGB(9, 9, 9),
BG2 = Color3.fromRGB(14, 14, 14),
PANEL = Color3.fromRGB(18, 18, 18),
PANEL2 = Color3.fromRGB(24, 24, 24),
PANEL3 = Color3.fromRGB(29, 29, 29),
RED = Color3.fromRGB(220, 32, 32),
RED2 = Color3.fromRGB(160, 20, 20),
RED3 = Color3.fromRGB(90, 14, 14),
WHITE = Color3.fromRGB(245, 245, 245),
LIGHT = Color3.fromRGB(205, 205, 205),
GRAY = Color3.fromRGB(145, 145, 145),
DARKGRAY = Color3.fromRGB(100, 100, 100),
SUCCESS = Color3.fromRGB(90, 255, 125),
ERROR = Color3.fromRGB(255, 90, 90),
WARN = Color3.fromRGB(255, 190, 80),
}
--==================================================
-- STATE
--==================================================
local unlocked = false
local uiOpen = false
local currentTab = "Actions"
local currentWalkspeedBoosted = false
--==================================================
-- UTILS
--==================================================
local function create(className, props, children)
local instance = Instance.new(className)
for k, v in pairs(props or {}) do
instance[k] = v
end
for _, child in ipairs(children or {}) do
child.Parent = instance
end
return instance
end
local function makeCorner(obj, radius)
local c = Instance.new("UICorner")
c.CornerRadius = radius or UDim.new(0, 12)
c.Parent = obj
return c
end
local function makeStroke(obj, color, thickness, transparency)
local s = Instance.new("UIStroke")
s.Color = color or COLORS.RED
s.Thickness = thickness or 1.4
s.Transparency = transparency or 0
s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
s.Parent = obj
return s
end
local function makePadding(obj, left, right, top, bottom)
local p = Instance.new("UIPadding")
p.PaddingLeft = UDim.new(0, left or 0)
p.PaddingRight = UDim.new(0, right or 0)
p.PaddingTop = UDim.new(0, top or 0)
p.PaddingBottom = UDim.new(0, bottom or 0)
p.Parent = obj
return p
end
local function tween(obj, info, props)
local tw = TweenService:Create(obj, info, props)
tw:Play()
return tw
end
local function fastTween(obj, props)
return tween(obj, TweenInfo.new(CONFIG.ANIM_FAST, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props)
end
local function medTween(obj, props)
return tween(obj, TweenInfo.new(CONFIG.ANIM_MED, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props)
end
local function slowTween(obj, props)
return tween(obj, TweenInfo.new(CONFIG.ANIM_SLOW, Enum.EasingStyle.Back, Enum.EasingDirection.Out), props)
end
local function pulse(button)
local originalSize = button.Size
local shrink = UDim2.new(originalSize.X.Scale, originalSize.X.Offset - 4, originalSize.Y.Scale, originalSize.Y.Offset - 2)
tween(button, TweenInfo.new(0.07, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = shrink
})
task.delay(0.08, function()
if button and button.Parent then
tween(button, TweenInfo.new(0.10, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = originalSize
})
end
end)
end
local function popOpen(frame, targetSize)
frame.Size = UDim2.new(targetSize.X.Scale, targetSize.X.Offset, 0, 0)
frame.Visible = true
slowTween(frame, {Size = targetSize})
end
local function collapse(frame, targetWidth)
local tw = tween(frame, TweenInfo.new(CONFIG.ANIM_MED, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
Size = UDim2.new(0, targetWidth, 0, 0)
})
return tw
end
local function shake(frame)
local base = frame.Position
local seq = {
UDim2.new(base.X.Scale, base.X.Offset - 8, base.Y.Scale, base.Y.Offset),
UDim2.new(base.X.Scale, base.X.Offset + 8, base.Y.Scale, base.Y.Offset),
UDim2.new(base.X.Scale, base.X.Offset - 6, base.Y.Scale, base.Y.Offset),
UDim2.new(base.X.Scale, base.X.Offset + 6, base.Y.Scale, base.Y.Offset),
UDim2.new(base.X.Scale, base.X.Offset - 3, base.Y.Scale, base.Y.Offset),
base,
}
local delayAmount = 0
for _, pos in ipairs(seq) do
task.delay(delayAmount, function()
if frame and frame.Parent then
tween(frame, TweenInfo.new(0.04, Enum.EasingStyle.Linear), {Position = pos})
end
end)
delayAmount += 0.04
end
end
local function hoverButton(button, normalColor, hoverColor, shine)
button.MouseEnter:Connect(function()
medTween(button, {BackgroundColor3 = hoverColor})
if shine then
tween(shine, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Position = UDim2.new(1, 12, 0, 0),
BackgroundTransparency = 0.89
})
end
end)
button.MouseLeave:Connect(function()
medTween(button, {BackgroundColor3 = normalColor})
if shine then
shine.Position = UDim2.new(0, -70, 0, 0)
shine.BackgroundTransparency = 0.95
end
end)
end
local function makeDraggable(frame, handle)
handle = handle or frame
local dragging = false
local dragStart
local startPos
local currentTarget = frame.Position
local currentVisual = frame.Position
handle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = currentTarget
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
currentTarget = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
RunService.RenderStepped:Connect(function(dt)
local alpha = math.clamp(dt * 20, 0, 1)
currentVisual = currentVisual:Lerp(currentTarget, alpha)
frame.Position = currentVisual
end)
end
local function getCharacter()
return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
end
local function getHumanoidAndRoot()
local character = getCharacter()
local humanoid = character:FindFirstChildOfClass("Humanoid") or character:WaitForChild("Humanoid")
local root = character:FindFirstChild("HumanoidRootPart") or character:WaitForChild("HumanoidRootPart")
return humanoid, root
end
local function formatStatus(label, text, color)
label.Text = text
label.TextColor3 = color
label.TextTransparency = 1
tween(label, TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
TextTransparency = 0
})
end
local function fadeStatus(label, delayTime)
task.delay(delayTime or 1.5, function()
if label and label.Parent then
tween(label, TweenInfo.new(0.22, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
TextTransparency = 1
})
end
end)
end
local function findNearestPartByName(name)
local _, root = getHumanoidAndRoot()
local nearest = nil
local nearestDistance = math.huge
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and obj.Name == name then
local distance = (obj.Position - root.Position).Magnitude
if distance < nearestDistance then
nearestDistance = distance
nearest = obj
end
end
end
return nearest, nearestDistance
end
local function teleportToNearest(name)
local _, root = getHumanoidAndRoot()
local part = findNearestPartByName(name)
if part then
root.CFrame = part.CFrame + Vector3.new(0, 3, 0)
return true
end
return false
end
--==================================================
-- EFFECTS
--==================================================
local blur = Lighting:FindFirstChild("X3R_DulesBlur")
if not blur then
blur = Instance.new("BlurEffect")
blur.Name = "X3R_DulesBlur"
blur.Size = 0
blur.Parent = Lighting
else
blur.Size = 0
end
--==================================================
-- GUI ROOT
--==================================================
local gui = create("ScreenGui", {
Name = "X3R_DULES_ADVANCED",
ResetOnSpawn = false,
IgnoreGuiInset = false,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
Parent = PlayerGui
})
--==================================================
-- KEY WINDOW
--==================================================
local keyFrame = create("Frame", {
Name = "KeyFrame",
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = CONFIG.KEY_CLOSED_SIZE,
BackgroundColor3 = COLORS.PANEL,
BorderSizePixel = 0,
ClipsDescendants = true,
Parent = gui
})
makeCorner(keyFrame, UDim.new(0, 18))
makeStroke(keyFrame, COLORS.RED, 1.8, 0)
local keyGlow = create("Frame", {
Name = "KeyGlow",
BackgroundColor3 = COLORS.RED,
BackgroundTransparency = 0.90,
BorderSizePixel = 0,
Position = UDim2.new(0, -10, 0, -10),
Size = UDim2.new(1, 20, 1, 20),
Parent = keyFrame
})
makeCorner(keyGlow, UDim.new(0, 22))
local keyTopBar = create("Frame", {
Name = "TopBar",
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 42),
Parent = keyFrame
})
makeCorner(keyTopBar, UDim.new(0, 18))
local keyTopFix = create("Frame", {
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 20),
Size = UDim2.new(1, 0, 0, 22),
Parent = keyTopBar
})
local keyBrand = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 14, 0, 0),
Size = UDim2.new(1, -20, 1, 0),
Text = "X3R • ACCESS",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 15,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = keyTopBar
})
local keyContent = create("Frame", {
Name = "Content",
BackgroundTransparency = 1,
Position = UDim2.new(0, 16, 0, 52),
Size = UDim2.new(1, -32, 1, -64),
Parent = keyFrame
})
local keyTitle = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 34),
Text = "ENTER KEY",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBlack,
TextSize = 28,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = keyContent
})
local keySubtitle = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 0, 0, 30),
Size = UDim2.new(1, 0, 0, 20),
Text = "Unlock advanced local panel",
TextColor3 = COLORS.GRAY,
Font = Enum.Font.Gotham,
TextSize = 13,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = keyContent
})
local keyInputFrame = create("Frame", {
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 74),
Size = UDim2.new(1, 0, 0, 48),
Parent = keyContent
})
makeCorner(keyInputFrame, UDim.new(0, 12))
makeStroke(keyInputFrame, COLORS.RED3, 1.2, 0)
local keyIcon = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 12, 0, 0),
Size = UDim2.new(0, 28, 1, 0),
Text = "🔑",
TextScaled = false,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 18,
Parent = keyInputFrame
})
local keyBox = create("TextBox", {
Name = "KeyBox",
BackgroundTransparency = 1,
Position = UDim2.new(0, 42, 0, 0),
Size = UDim2.new(1, -52, 1, 0),
PlaceholderText = "Type key here...",
Text = "",
TextColor3 = COLORS.WHITE,
PlaceholderColor3 = COLORS.DARKGRAY,
Font = Enum.Font.Gotham,
TextSize = 16,
ClearTextOnFocus = false,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = keyInputFrame
})
local confirmButton = create("TextButton", {
Name = "ConfirmButton",
BackgroundColor3 = COLORS.RED2,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 132),
Size = UDim2.new(1, 0, 0, 46),
Text = "CONFIRM",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 16,
AutoButtonColor = false,
Parent = keyContent
})
makeCorner(confirmButton, UDim.new(0, 12))
makeStroke(confirmButton, COLORS.RED, 1.4, 0)
local keyConfirmShine = create("Frame", {
BackgroundColor3 = Color3.new(1, 1, 1),
BackgroundTransparency = 0.95,
BorderSizePixel = 0,
Position = UDim2.new(0, -70, 0, 0),
Size = UDim2.new(0, 60, 1, 0),
Parent = confirmButton
})
makeCorner(keyConfirmShine, UDim.new(0, 12))
hoverButton(confirmButton, COLORS.RED2, Color3.fromRGB(180, 28, 28), keyConfirmShine)
local keyStatus = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 0, 1, -18),
Size = UDim2.new(1, 0, 0, 18),
Text = "",
TextTransparency = 1,
TextColor3 = COLORS.ERROR,
Font = Enum.Font.GothamMedium,
TextSize = 13,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = keyContent
})
--==================================================
-- MAIN WINDOW
--==================================================
local mainFrame = create("Frame", {
Name = "MainFrame",
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = CONFIG.UI_CLOSED_SIZE,
BackgroundColor3 = COLORS.PANEL,
BorderSizePixel = 0,
Visible = false,
ClipsDescendants = true,
Parent = gui
})
makeCorner(mainFrame, UDim.new(0, 18))
makeStroke(mainFrame, COLORS.RED, 1.8, 0)
local mainGlow = create("Frame", {
Name = "MainGlow",
BackgroundColor3 = COLORS.RED,
BackgroundTransparency = 0.91,
BorderSizePixel = 0,
Position = UDim2.new(0, -12, 0, -12),
Size = UDim2.new(1, 24, 1, 24),
Parent = mainFrame
})
makeCorner(mainGlow, UDim.new(0, 24))
local topBar = create("Frame", {
Name = "TopBar",
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 42),
Parent = mainFrame
})
makeCorner(topBar, UDim.new(0, 18))
local topBarFix = create("Frame", {
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 20),
Size = UDim2.new(1, 0, 0, 22),
Parent = topBar
})
local brand = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 14, 0, 0),
Size = UDim2.new(1, -90, 1, 0),
Text = "X3R • DULES PANEL",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 16,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = topBar
})
local closeButton = create("TextButton", {
Name = "CloseButton",
AnchorPoint = Vector2.new(1, 0.5),
Position = UDim2.new(1, -10, 0.5, 0),
Size = UDim2.new(0, 28, 0, 28),
BackgroundColor3 = COLORS.RED3,
BorderSizePixel = 0,
Text = "×",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 18,
AutoButtonColor = false,
Parent = topBar
})
makeCorner(closeButton, UDim.new(1, 0))
makeStroke(closeButton, COLORS.RED, 1.2, 0)
hoverButton(closeButton, COLORS.RED3, Color3.fromRGB(120, 22, 22))
local body = create("Frame", {
Name = "Body",
BackgroundTransparency = 1,
Position = UDim2.new(0, 12, 0, 54),
Size = UDim2.new(1, -24, 1, -66),
Parent = mainFrame
})
-- LEFT SIDEBAR
local sidebar = create("Frame", {
Name = "Sidebar",
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(0, 128, 1, 0),
Parent = body
})
makeCorner(sidebar, UDim.new(0, 14))
makeStroke(sidebar, COLORS.RED3, 1.2, 0)
local sideTitle = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 12, 0, 10),
Size = UDim2.new(1, -24, 0, 24),
Text = "MENU",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = sidebar
})
local sideSub = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 12, 0, 29),
Size = UDim2.new(1, -24, 0, 18),
Text = "Advanced local UI",
TextColor3 = COLORS.GRAY,
Font = Enum.Font.Gotham,
TextSize = 11,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = sidebar
})
local tabsHolder = create("Frame", {
Name = "TabsHolder",
BackgroundTransparency = 1,
Position = UDim2.new(0, 8, 0, 58),
Size = UDim2.new(1, -16, 1, -70),
Parent = sidebar
})
local tabsLayout = create("UIListLayout", {
Padding = UDim.new(0, 8),
FillDirection = Enum.FillDirection.Vertical,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Top,
Parent = tabsHolder
})
-- RIGHT CONTENT
local contentFrame = create("Frame", {
Name = "ContentFrame",
BackgroundColor3 = COLORS.PANEL2,
BorderSizePixel = 0,
Position = UDim2.new(0, 140, 0, 0),
Size = UDim2.new(1, -140, 1, 0),
Parent = body
})
makeCorner(contentFrame, UDim.new(0, 14))
makeStroke(contentFrame, COLORS.RED3, 1.2, 0)
local contentHeader = create("Frame", {
Name = "Header",
BackgroundTransparency = 1,
Position = UDim2.new(0, 16, 0, 10),
Size = UDim2.new(1, -32, 0, 52),
Parent = contentFrame
})
local contentTitle = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 0, 0, 0),
Size = UDim2.new(1, 0, 0, 28),
Text = "TRY BOTH !",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBlack,
TextSize = 28,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = contentHeader
})
local contentSub = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 0, 0, 28),
Size = UDim2.new(1, 0, 0, 18),
Text = "Teleport and speed controls",
TextColor3 = COLORS.GRAY,
Font = Enum.Font.Gotham,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = contentHeader
})
local pageContainer = create("Frame", {
Name = "PageContainer",
BackgroundTransparency = 1,
Position = UDim2.new(0, 16, 0, 70),
Size = UDim2.new(1, -32, 1, -102),
Parent = contentFrame
})
local statusBar = create("TextLabel", {
Name = "StatusBar",
BackgroundTransparency = 1,
AnchorPoint = Vector2.new(0, 1),
Position = UDim2.new(0, 16, 1, -10),
Size = UDim2.new(1, -32, 0, 18),
Text = "Ready",
TextColor3 = COLORS.GRAY,
Font = Enum.Font.GothamMedium,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
TextTransparency = 0.15,
Parent = contentFrame
})
--==================================================
-- FLOAT BUTTON
--==================================================
local openButton = create("TextButton", {
Name = "OpenButton",
Size = CONFIG.FLOAT_SIZE,
Position = UDim2.new(0, 36, 0.62, 0),
BackgroundColor3 = COLORS.RED2,
BorderSizePixel = 0,
Text = "X3R",
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 14,
Visible = false,
AutoButtonColor = false,
Parent = gui
})
makeCorner(openButton, UDim.new(1, 0))
makeStroke(openButton, COLORS.RED, 1.5, 0)
local openGlow = create("Frame", {
BackgroundColor3 = COLORS.RED,
BackgroundTransparency = 0.91,
BorderSizePixel = 0,
Position = UDim2.new(0, -8, 0, -8),
Size = UDim2.new(1, 16, 1, 16),
Parent = openButton
})
makeCorner(openGlow, UDim.new(1, 0))
hoverButton(openButton, COLORS.RED2, Color3.fromRGB(182, 28, 28))
makeDraggable(openButton, openButton)
--==================================================
-- DRAG
--==================================================
makeDraggable(keyFrame, keyTopBar)
makeDraggable(mainFrame, topBar)
--==================================================
-- PAGES / TABS
--==================================================
local pages = {}
local function createPage(name)
local page = create("Frame", {
Name = name .. "Page",
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Visible = false,
Parent = pageContainer
})
pages[name] = page
return page
end
local actionsPage = createPage("Actions")
local infoPage = createPage("Info")
local function makeTabButton(text, iconText)
local button = create("TextButton", {
BackgroundColor3 = COLORS.PANEL3,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 42),
Text = "",
AutoButtonColor = false,
Parent = tabsHolder
})
makeCorner(button, UDim.new(0, 10))
local stroke = makeStroke(button, COLORS.RED3, 1.2, 0)
local icon = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 10, 0, 0),
Size = UDim2.new(0, 24, 1, 0),
Text = iconText,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 16,
Parent = button
})
local label = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 34, 0, 0),
Size = UDim2.new(1, -40, 1, 0),
Text = text,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 13,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = button
})
local shine = create("Frame", {
BackgroundColor3 = Color3.new(1, 1, 1),
BackgroundTransparency = 0.95,
BorderSizePixel = 0,
Position = UDim2.new(0, -60, 0, 0),
Size = UDim2.new(0, 48, 1, 0),
Parent = button
})
makeCorner(shine, UDim.new(0, 10))
return button, stroke, shine
end
local actionsTab, actionsTabStroke, actionsShine = makeTabButton("Actions", "⚡")
local infoTab, infoTabStroke, infoShine = makeTabButton("Info", "ℹ")
hoverButton(actionsTab, COLORS.PANEL3, Color3.fromRGB(38, 22, 22), actionsShine)
hoverButton(infoTab, COLORS.PANEL3, Color3.fromRGB(38, 22, 22), infoShine)
local function setTabStyle(button, strokeObj, active)
if active then
button.BackgroundColor3 = Color3.fromRGB(46, 20, 20)
strokeObj.Color = COLORS.RED
strokeObj.Thickness = 1.5
else
button.BackgroundColor3 = COLORS.PANEL3
strokeObj.Color = COLORS.RED3
strokeObj.Thickness = 1.2
end
end
local function switchTab(tabName)
currentTab = tabName
for name, page in pairs(pages) do
page.Visible = (name == tabName)
end
setTabStyle(actionsTab, actionsTabStroke, tabName == "Actions")
setTabStyle(infoTab, infoTabStroke, tabName == "Info")
if tabName == "Actions" then
contentTitle.Text = "TRY BOTH !"
contentSub.Text = "Teleport and speed controls"
else
contentTitle.Text = "PANEL INFO"
contentSub.Text = "Quick notes about the current panel"
end
end
--==================================================
-- ACTIONS PAGE
--==================================================
local actionsLayout = create("UIListLayout", {
Padding = UDim.new(0, 12),
FillDirection = Enum.FillDirection.Vertical,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Top,
Parent = actionsPage
})
local function makeActionCard(iconText, titleText, descText, buttonText)
local card = create("Frame", {
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 66),
Parent = actionsPage
})
makeCorner(card, UDim.new(0, 12))
makeStroke(card, COLORS.RED3, 1.2, 0)
local iconBox = create("Frame", {
BackgroundColor3 = Color3.fromRGB(40, 16, 16),
BorderSizePixel = 0,
Position = UDim2.new(0, 10, 0.5, -18),
Size = UDim2.new(0, 36, 0, 36),
Parent = card
})
makeCorner(iconBox, UDim.new(0, 10))
makeStroke(iconBox, COLORS.RED, 1.0, 0)
local iconLabel = create("TextLabel", {
BackgroundTransparency = 1,
Size = UDim2.fromScale(1, 1),
Text = iconText,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 18,
Parent = iconBox
})
local title = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 56, 0, 10),
Size = UDim2.new(1, -166, 0, 20),
Text = titleText,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 15,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = card
})
local desc = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 56, 0, 30),
Size = UDim2.new(1, -166, 0, 18),
Text = descText,
TextColor3 = COLORS.GRAY,
Font = Enum.Font.Gotham,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = card
})
local actionButton = create("TextButton", {
BackgroundColor3 = COLORS.RED2,
BorderSizePixel = 0,
AnchorPoint = Vector2.new(1, 0.5),
Position = UDim2.new(1, -10, 0.5, 0),
Size = UDim2.new(0, 92, 0, 36),
Text = buttonText,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 13,
AutoButtonColor = false,
Parent = card
})
makeCorner(actionButton, UDim.new(0, 10))
makeStroke(actionButton, COLORS.RED, 1.1, 0)
local shine = create("Frame", {
BackgroundColor3 = Color3.new(1, 1, 1),
BackgroundTransparency = 0.95,
BorderSizePixel = 0,
Position = UDim2.new(0, -56, 0, 0),
Size = UDim2.new(0, 42, 1, 0),
Parent = actionButton
})
makeCorner(shine, UDim.new(0, 10))
hoverButton(actionButton, COLORS.RED2, Color3.fromRGB(180, 28, 28), shine)
return card, actionButton
end
local _, tpEndButton = makeActionCard("🏁", "TP EndPart", "Teleport to the nearest EndPart", "EXECUTE")
local _, tpStartButton = makeActionCard("🚩", "TP StartPart", "Teleport to the nearest StartPart", "EXECUTE")
local _, speedButton = makeActionCard("⚡", "SPEED", "Set Humanoid.WalkSpeed to 50", "EXECUTE")
--==================================================
-- INFO PAGE
--==================================================
local infoLayout = create("UIListLayout", {
Padding = UDim.new(0, 12),
FillDirection = Enum.FillDirection.Vertical,
HorizontalAlignment = Enum.HorizontalAlignment.Center,
VerticalAlignment = Enum.VerticalAlignment.Top,
Parent = infoPage
})
local function makeInfoBox(titleText, descText)
local box = create("Frame", {
BackgroundColor3 = COLORS.BG2,
BorderSizePixel = 0,
Size = UDim2.new(1, 0, 0, 72),
Parent = infoPage
})
makeCorner(box, UDim.new(0, 12))
makeStroke(box, COLORS.RED3, 1.2, 0)
local title = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 12, 0, 10),
Size = UDim2.new(1, -24, 0, 20),
Text = titleText,
TextColor3 = COLORS.WHITE,
Font = Enum.Font.GothamBold,
TextSize = 14,
TextXAlignment = Enum.TextXAlignment.Left,
Parent = box
})
local desc = create("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.new(0, 12, 0, 30),
Size = UDim2.new(1, -24, 0, 30),
TextWrapped = true,
Text = descText,
TextColor3 = COLORS.GRAY,
Font = Enum.Font.Gotham,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
TextYAlignment = Enum.TextYAlignment.Top,
Parent = box
})
return box
end
makeInfoBox("KEY", "This panel unlocks only when the correct key is entered: DULES.")
makeInfoBox("TELEPORT", "Both teleport buttons search the entire workspace and move you to the nearest matching part name.")
makeInfoBox("SPEED", "The speed button only changes your local Humanoid WalkSpeed to 50.")
--==================================================
-- OPEN/CLOSE
--==================================================
local function openMain()
uiOpen = true
openButton.Visible = false
mainFrame.Visible = true
mainFrame.Size = CONFIG.UI_CLOSED_SIZE
blur.Size = 0
tween(blur, TweenInfo.new(0.22, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = CONFIG.BLUR_SIZE
})
tween(mainFrame, TweenInfo.new(0.28, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = CONFIG.UI_SIZE
})
end
local function closeMain()
uiOpen = false
tween(blur, TweenInfo.new(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = 0
})
local tw = tween(mainFrame, TweenInfo.new(0.20, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
Size = CONFIG.UI_CLOSED_SIZE
})
tw.Completed:Connect(function()
if not uiOpen then
mainFrame.Visible = false
openButton.Visible = true
end
end)
end
local function unlockPanel()
unlocked = true
formatStatus(keyStatus, "Access granted", COLORS.SUCCESS)
fadeStatus(keyStatus, 0.9)
local hide = tween(keyFrame, TweenInfo.new(0.22, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
Size = CONFIG.KEY_CLOSED_SIZE
})
hide.Completed:Connect(function()
keyFrame.Visible = false
openMain()
end)
end
--==================================================
-- KEY CHECK
--==================================================
local function handleKeyCheck()
pulse(confirmButton)
local entered = tostring(keyBox.Text or ""):upper()
if entered == CONFIG.KEY then
unlockPanel()
else
formatStatus(keyStatus, "Wrong key", COLORS.ERROR)
fadeStatus(keyStatus, 1.5)
shake(keyFrame)
end
end
confirmButton.MouseButton1Click:Connect(handleKeyCheck)
keyBox.FocusLost:Connect(function(enterPressed)
if enterPressed then
handleKeyCheck()
end
end)
--==================================================
-- BUTTON LOGIC
--==================================================
tpEndButton.MouseButton1Click:Connect(function()
pulse(tpEndButton)
local ok = teleportToNearest("EndPart")
if ok then
statusBar.Text = "Teleported to nearest EndPart"
statusBar.TextColor3 = COLORS.SUCCESS
else
statusBar.Text = "No EndPart found"
statusBar.TextColor3 = COLORS.ERROR
end
end)
tpStartButton.MouseButton1Click:Connect(function()
pulse(tpStartButton)
local ok = teleportToNearest("StartPart")
if ok then
statusBar.Text = "Teleported to nearest StartPart"
statusBar.TextColor3 = COLORS.SUCCESS
else
statusBar.Text = "No StartPart found"
statusBar.TextColor3 = COLORS.ERROR
end
end)
speedButton.MouseButton1Click:Connect(function()
pulse(speedButton)
local humanoid = getHumanoidAndRoot()
if humanoid then
humanoid.WalkSpeed = CONFIG.WALKSPEED
currentWalkspeedBoosted = true
statusBar.Text = "WalkSpeed set to 50"
statusBar.TextColor3 = COLORS.SUCCESS
end
end)
closeButton.MouseButton1Click:Connect(function()
pulse(closeButton)
closeMain()
end)
openButton.MouseButton1Click:Connect(function()
pulse(openButton)
openMain()
end)
actionsTab.MouseButton1Click:Connect(function()
pulse(actionsTab)
switchTab("Actions")
end)
infoTab.MouseButton1Click:Connect(function()
pulse(infoTab)
switchTab("Info")
end)
--==================================================
-- GLOW ANIMATION
--==================================================
task.spawn(function()
while gui.Parent do
tween(mainGlow, TweenInfo.new(1.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
BackgroundTransparency = 0.94
})
tween(openGlow, TweenInfo.new(1.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
BackgroundTransparency = 0.94
})
tween(keyGlow, TweenInfo.new(1.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
BackgroundTransparency = 0.93
})
task.wait(1.8)
tween(mainGlow, TweenInfo.new(1.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
BackgroundTransparency = 0.89
})
tween(openGlow, TweenInfo.new(1.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
BackgroundTransparency = 0.89
})
tween(keyGlow, TweenInfo.new(1.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
BackgroundTransparency = 0.88
})
task.wait(1.8)
end
end)
--==================================================
-- RESPAWN SUPPORT
--==================================================
LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.4)
if currentWalkspeedBoosted then
local humanoid = getHumanoidAndRoot()
if humanoid then
humanoid.WalkSpeed = CONFIG.WALKSPEED
end
end
end)
--==================================================
-- INITIALIZE
--==================================================
switchTab("Actions")
keyFrame.Visible = true
mainFrame.Visible = false
openButton.Visible = false
statusBar.Text = "Ready"
statusBar.TextColor3 = COLORS.GRAY
popOpen(keyFrame, CONFIG.KEY_SIZE)No comments yet for this script.