
KeylessUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local CoreGui = game:GetService("CoreGui")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
-- Color Themes Preset List
local THEMES = {
["Navy Blue"] = Color3.fromRGB(0, 102, 204),
["Blue"] = Color3.fromRGB(30, 144, 255),
["Red"] = Color3.fromRGB(235, 55, 55),
["Green"] = Color3.fromRGB(46, 204, 113),
["Orange"] = Color3.fromRGB(243, 156, 18),
["Purple"] = Color3.fromRGB(140, 90, 255),
["Magenta"] = Color3.fromRGB(225, 40, 135),
["Yellow"] = Color3.fromRGB(241, 196, 15)
}
-- Current Active Color Theme (Default: Navy Blue)
local CurrentAccent = THEMES["Navy Blue"]
-- Global ESP & Target Settings
local ESP_SETTINGS = {
Enabled = false,
Boxes = true,
Names = true,
Distance = true,
Health = true,
Inventory = true,
Skeleton = true,
DroppedItems = true,
TeamCheck = false,
TargetUsername = "",
ToggleKey = Enum.KeyCode.RightShift,
FillColor = THEMES["Navy Blue"],
TargetColor = Color3.fromRGB(255, 60, 60),
ItemColor = Color3.fromRGB(80, 220, 120),
OutlineColor = Color3.fromRGB(255, 255, 255),
TextColor = Color3.fromRGB(255, 255, 255),
-- Orbit Settings
OrbitEnabled = false,
OrbitSpeed = 15,
OrbitDistance = 10,
-- Teleport & Wall Check Settings
TeleportEnabled = false,
WallCheckEnabled = false
}
local ESP_Cache = {}
local Item_Cache = {}
local DynamicUIElements = {
Strokes = {},
ActiveTabs = {},
ToggleIndicators = {},
TextButtons = {},
Sliders = {}
}
----------------------------------------------------
-- 1. MOBILE-FRIENDLY GUI CREATION (synQ V1 - SHARP EDGES)
----------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "synQ_ESP_Gui"
ScreenGui.ResetOnSpawn = false
pcall(function() ScreenGui.Parent = CoreGui end)
if not ScreenGui.Parent then
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end
-- Mobile Toggle Button (Floating Touch Button - KEPT ROUNDED)
local MobileToggleButton = Instance.new("TextButton")
MobileToggleButton.Name = "MobileToggleButton"
MobileToggleButton.Size = UDim2.new(0, 50, 0, 50)
MobileToggleButton.Position = UDim2.new(0, 15, 0.4, 0)
MobileToggleButton.BackgroundColor3 = Color3.fromRGB(18, 18, 24)
MobileToggleButton.Text = "synQ"
MobileToggleButton.Font = Enum.Font.GothamBold
MobileToggleButton.TextSize = 14
MobileToggleButton.TextColor3 = CurrentAccent
MobileToggleButton.Active = true
MobileToggleButton.Parent = ScreenGui
local MobileBtnCorner = Instance.new("UICorner")
MobileBtnCorner.CornerRadius = UDim.new(0, 12)
MobileBtnCorner.Parent = MobileToggleButton
local MobileBtnStroke = Instance.new("UIStroke")
MobileBtnStroke.Color = CurrentAccent
MobileBtnStroke.Thickness = 2
MobileBtnStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
MobileBtnStroke.Parent = MobileToggleButton
table.insert(DynamicUIElements.Strokes, MobileBtnStroke)
-- Draggable Mobile Toggle Button
local mDragging, mDragStart, mStartPos
MobileToggleButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
mDragging = true
mDragStart = input.Position
mStartPos = MobileToggleButton.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
mDragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if mDragging and (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement) then
local delta = input.Position - mDragStart
MobileToggleButton.Position = UDim2.new(mStartPos.X.Scale, mStartPos.X.Offset + delta.X, mStartPos.Y.Scale, mStartPos.Y.Offset + delta.Y)
end
end)
-- Main Window Frame (Sharp Edges)
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0.9, 0, 0.8, 0)
MainFrame.Position = UDim2.new(0.05, 0, 0.1, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 24)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = ScreenGui
local MainConstraint = Instance.new("UISizeConstraint")
MainConstraint.MaxSize = Vector2.new(420, 560)
MainConstraint.MinSize = Vector2.new(280, 380)
MainConstraint.Parent = MainFrame
local MainStroke = Instance.new("UIStroke")
MainStroke.Color = CurrentAccent
MainStroke.Thickness = 1.5
MainStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
MainStroke.Parent = MainFrame
table.insert(DynamicUIElements.Strokes, MainStroke)
-- Header Bar (Sharp Edges)
local Header = Instance.new("Frame")
Header.Name = "Header"
Header.Size = UDim2.new(1, 0, 0, 45)
Header.BackgroundColor3 = Color3.fromRGB(25, 25, 34)
Header.BorderSizePixel = 0
Header.Parent = MainFrame
local HeaderStroke = Instance.new("UIStroke")
HeaderStroke.Color = Color3.fromRGB(45, 45, 60)
HeaderStroke.Thickness = 1
HeaderStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
HeaderStroke.Parent = Header
-- Title Label (synQ V1)
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(0, 80, 1, 0)
Title.Position = UDim2.new(0, 12, 0, 0)
Title.Text = "synQ V1"
Title.Font = Enum.Font.GothamBold
Title.TextSize = 18
Title.TextColor3 = CurrentAccent
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.BackgroundTransparency = 1
Title.Parent = Header
table.insert(DynamicUIElements.TextButtons, Title)
-- Tab Buttons Container
local TabContainer = Instance.new("Frame")
TabContainer.Size = UDim2.new(1, -100, 0, 32)
TabContainer.Position = UDim2.new(0, 92, 0.5, -16)
TabContainer.BackgroundTransparency = 1
TabContainer.Parent = Header
local TabListLayout = Instance.new("UIListLayout")
TabListLayout.FillDirection = Enum.FillDirection.Horizontal
TabListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
TabListLayout.SortOrder = Enum.SortOrder.LayoutOrder
TabListLayout.Padding = UDim.new(0, 4)
TabListLayout.Parent = TabContainer
local function CreateTabButton(text, layoutOrder)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.23, 0, 1, 0)
btn.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
btn.BorderSizePixel = 0
btn.Text = text
btn.Font = Enum.Font.GothamBold
btn.TextSize = 10
btn.TextColor3 = Color3.fromRGB(140, 140, 160)
btn.LayoutOrder = layoutOrder
btn.Parent = TabContainer
return btn
end
local VisualsTabBtn = CreateTabButton("Visuals", 1)
VisualsTabBtn.BackgroundColor3 = CurrentAccent
VisualsTabBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
local SearchTabBtn = CreateTabButton("Search", 2)
local ExtrasTabBtn = CreateTabButton("Extras", 3)
local SettingsTabBtn = CreateTabButton("Settings", 4)
local ActiveTabObj = VisualsTabBtn
----------------------------------------------------
-- 2. SMOOTH DRAGGING & OPEN/CLOSE ANIMATIONS
----------------------------------------------------
local dragging, dragInput, dragStart, startPos
local function UpdateDrag(input)
local delta = input.Position - dragStart
local targetPos = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
TweenService:Create(MainFrame, TweenInfo.new(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = targetPos}):Play()
end
Header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
Header.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
UpdateDrag(input)
end
end)
local function ToggleMenu()
if MainFrame.Visible then
local tween = TweenService:Create(MainFrame, TweenInfo.new(0.18, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
Size = UDim2.new(0, 0, 0, 0)
})
tween:Play()
tween.Completed:Connect(function()
MainFrame.Visible = false
MainFrame.Size = UDim2.new(0.9, 0, 0.8, 0)
end)
else
MainFrame.Size = UDim2.new(0, 0, 0, 0)
MainFrame.Visible = true
TweenService:Create(MainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = UDim2.new(0.9, 0, 0.8, 0)
}):Play()
end
end
MobileToggleButton.MouseButton1Click:Connect(ToggleMenu)
----------------------------------------------------
-- 3. TAB PAGES (SCROLLABLE FOR MOBILE - SHARP)
----------------------------------------------------
local function CreatePage(name)
local page = Instance.new("ScrollingFrame")
page.Name = name
page.Size = UDim2.new(1, -16, 1, -55)
page.Position = UDim2.new(0, 8, 0, 50)
page.BackgroundTransparency = 1
page.BorderSizePixel = 0
page.CanvasSize = UDim2.new(0, 0, 0, 0)
page.AutomaticCanvasSize = Enum.AutomaticSize.Y
page.ScrollBarThickness = 4
page.ScrollBarImageColor3 = CurrentAccent
page.Visible = false
page.Parent = MainFrame
local layout = Instance.new("UIListLayout")
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Padding = UDim.new(0, 8)
layout.Parent = page
return page
end
local VisualsPage = CreatePage("VisualsPage")
VisualsPage.Visible = true
local SearchPage = CreatePage("SearchPage")
local ExtrasPage = CreatePage("ExtrasPage")
local SettingsPage = CreatePage("SettingsPage")
-- Dynamic Theme Refresh
local function SetThemeColor(newColor)
CurrentAccent = newColor
ESP_SETTINGS.FillColor = newColor
for _, stroke in pairs(DynamicUIElements.Strokes) do
stroke.Color = newColor
end
if ActiveTabObj then
ActiveTabObj.BackgroundColor3 = newColor
end
Title.TextColor3 = newColor
MobileToggleButton.TextColor3 = newColor
for _, item in pairs(DynamicUIElements.ToggleIndicators) do
if item.IsActive() then
item.Frame.BackgroundColor3 = newColor
end
end
for _, bar in pairs(DynamicUIElements.Sliders) do
bar.BackgroundColor3 = newColor
end
end
local function ResetTabs()
VisualsPage.Visible = false
SearchPage.Visible = false
ExtrasPage.Visible = false
SettingsPage.Visible = false
local buttons = {VisualsTabBtn, SearchTabBtn, ExtrasTabBtn, SettingsTabBtn}
for _, btn in ipairs(buttons) do
btn.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
btn.TextColor3 = Color3.fromRGB(140, 140, 160)
end
end
local function SelectTab(btn, page)
ResetTabs()
page.Visible = true
btn.BackgroundColor3 = CurrentAccent
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
ActiveTabObj = btn
end
VisualsTabBtn.MouseButton1Click:Connect(function() SelectTab(VisualsTabBtn, VisualsPage) end)
SearchTabBtn.MouseButton1Click:Connect(function() SelectTab(SearchTabBtn, SearchPage) end)
ExtrasTabBtn.MouseButton1Click:Connect(function() SelectTab(ExtrasTabBtn, ExtrasPage) end)
SettingsTabBtn.MouseButton1Click:Connect(function() SelectTab(SettingsTabBtn, SettingsPage) end)
----------------------------------------------------
-- 4. UI CREATOR CONTROLS (SHARP EDGES)
----------------------------------------------------
local function CreateToggle(text, defaultState, parent, callback)
local state = defaultState
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1, 0, 0, 44)
Button.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
Button.AutoButtonColor = false
Button.BorderSizePixel = 0
Button.Text = ""
Button.Parent = parent
local BtnStroke = Instance.new("UIStroke")
BtnStroke.Color = Color3.fromRGB(45, 45, 60)
BtnStroke.Thickness = 1
BtnStroke.Parent = Button
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(0.65, 0, 1, 0)
Label.Position = UDim2.new(0, 10, 0, 0)
Label.Text = text
Label.Font = Enum.Font.GothamMedium
Label.TextSize = 12
Label.TextColor3 = Color3.fromRGB(200, 200, 220)
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.TextWrapped = true
Label.BackgroundTransparency = 1
Label.Parent = Button
local IndicatorBg = Instance.new("Frame")
IndicatorBg.Size = UDim2.new(0, 42, 0, 24)
IndicatorBg.Position = UDim2.new(1, -50, 0.5, -12)
IndicatorBg.BackgroundColor3 = state and CurrentAccent or Color3.fromRGB(50, 50, 65)
IndicatorBg.BorderSizePixel = 0
IndicatorBg.Parent = Button
local Dot = Instance.new("Frame")
Dot.Size = UDim2.new(0, 18, 0, 18)
Dot.Position = state and UDim2.new(1, -21, 0.5, -9) or UDim2.new(0, 3, 0.5, -9)
Dot.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Dot.BorderSizePixel = 0
Dot.Parent = IndicatorBg
table.insert(DynamicUIElements.ToggleIndicators, {
Frame = IndicatorBg,
IsActive = function() return state end
})
Button.MouseButton1Click:Connect(function()
state = not state
TweenService:Create(IndicatorBg, TweenInfo.new(0.15), {
BackgroundColor3 = state and CurrentAccent or Color3.fromRGB(50, 50, 65)
}):Play()
TweenService:Create(Dot, TweenInfo.new(0.15), {
Position = state and UDim2.new(1, -21, 0.5, -9) or UDim2.new(0, 3, 0.5, -9)
}):Play()
Label.TextColor3 = state and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(200, 200, 220)
callback(state)
end)
end
local function CreateSlider(text, minVal, maxVal, defaultVal, unit, parent, callback)
local val = defaultVal
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, 0, 0, 54)
Frame.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
Frame.BorderSizePixel = 0
Frame.Parent = parent
local Stroke = Instance.new("UIStroke")
Stroke.Color = Color3.fromRGB(45, 45, 60)
Stroke.Thickness = 1
Stroke.Parent = Frame
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(0.6, 0, 0, 24)
Label.Position = UDim2.new(0, 10, 0, 4)
Label.Text = text
Label.Font = Enum.Font.GothamMedium
Label.TextSize = 12
Label.TextColor3 = Color3.fromRGB(200, 200, 220)
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.BackgroundTransparency = 1
Label.Parent = Frame
local ValLabel = Instance.new("TextLabel")
ValLabel.Size = UDim2.new(0.35, 0, 0, 24)
ValLabel.Position = UDim2.new(0.65, -10, 0, 4)
ValLabel.Text = tostring(defaultVal) .. " " .. unit
ValLabel.Font = Enum.Font.GothamBold
ValLabel.TextSize = 12
ValLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
ValLabel.TextXAlignment = Enum.TextXAlignment.Right
ValLabel.BackgroundTransparency = 1
ValLabel.Parent = Frame
local Track = Instance.new("Frame")
Track.Size = UDim2.new(1, -20, 0, 10)
Track.Position = UDim2.new(0, 10, 1, -18)
Track.BackgroundColor3 = Color3.fromRGB(45, 45, 60)
Track.BorderSizePixel = 0
Track.Parent = Frame
local Fill = Instance.new("Frame")
Fill.Size = UDim2.new((defaultVal - minVal) / (maxVal - minVal), 0, 1, 0)
Fill.BackgroundColor3 = CurrentAccent
Fill.BorderSizePixel = 0
Fill.Parent = Track
table.insert(DynamicUIElements.Sliders, Fill)
local isSliding = false
local function Update(input)
local pos = math.clamp((input.Position.X - Track.AbsolutePosition.X) / Track.AbsoluteSize.X, 0, 1)
val = math.floor(minVal + (maxVal - minVal) * pos)
Fill.Size = UDim2.new(pos, 0, 1, 0)
ValLabel.Text = tostring(val) .. " " .. unit
callback(val)
end
Track.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isSliding = true
Update(input)
end
end)
UserInputService.InputChanged:Connect(function(input)
if isSliding and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
Update(input)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
isSliding = false
end
end)
end
local function CreateKeybindSetting(text, defaultKey, parent, callback)
local isBinding = false
local currentKey = defaultKey
local ContainerFrame = Instance.new("Frame")
ContainerFrame.Size = UDim2.new(1, 0, 0, 44)
ContainerFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
ContainerFrame.BorderSizePixel = 0
ContainerFrame.Parent = parent
local FrameStroke = Instance.new("UIStroke")
FrameStroke.Color = Color3.fromRGB(45, 45, 60)
FrameStroke.Thickness = 1
FrameStroke.Parent = ContainerFrame
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(0.55, 0, 1, 0)
Label.Position = UDim2.new(0, 10, 0, 0)
Label.Text = text
Label.Font = Enum.Font.GothamMedium
Label.TextSize = 12
Label.TextColor3 = Color3.fromRGB(200, 200, 220)
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.TextWrapped = true
Label.BackgroundTransparency = 1
Label.Parent = ContainerFrame
local BindBtn = Instance.new("TextButton")
BindBtn.Size = UDim2.new(0, 85, 0, 28)
BindBtn.Position = UDim2.new(1, -95, 0.5, -14)
BindBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 55)
BindBtn.BorderSizePixel = 0
BindBtn.Font = Enum.Font.GothamBold
BindBtn.TextSize = 11
BindBtn.TextColor3 = Color3.fromRGB(200, 200, 220)
BindBtn.Text = "[" .. currentKey.Name .. "]"
BindBtn.Parent = ContainerFrame
BindBtn.MouseButton1Click:Connect(function()
if isBinding then return end
isBinding = true
BindBtn.Text = "[...]"
BindBtn.TextColor3 = Color3.fromRGB(255, 200, 80)
local connection
connection = UserInputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
currentKey = input.KeyCode
BindBtn.Text = "[" .. currentKey.Name .. "]"
BindBtn.TextColor3 = Color3.fromRGB(200, 200, 220)
isBinding = false
connection:Disconnect()
callback(currentKey)
end
end)
end)
end
-- Visuals Tab Controls
CreateToggle("Enable ESP Master Switch", ESP_SETTINGS.Enabled, VisualsPage, function(val) ESP_SETTINGS.Enabled = val end)
CreateToggle("Chams / Highlight Boxes", ESP_SETTINGS.Boxes, VisualsPage, function(val) ESP_SETTINGS.Boxes = val end)
CreateToggle("Skeleton ESP", ESP_SETTINGS.Skeleton, VisualsPage, function(val) ESP_SETTINGS.Skeleton = val end)
CreateToggle("Show Names & Tag", ESP_SETTINGS.Names, VisualsPage, function(val) ESP_SETTINGS.Names = val end)
CreateToggle("Show Health & Distance", ESP_SETTINGS.Distance, VisualsPage, function(val) ESP_SETTINGS.Distance = val end)
CreateToggle("Show Inventory Tools", ESP_SETTINGS.Inventory, VisualsPage, function(val) ESP_SETTINGS.Inventory = val end)
CreateToggle("Team Check", ESP_SETTINGS.TeamCheck, VisualsPage, function(val) ESP_SETTINGS.TeamCheck = val end)
-- Extras Tab Controls
CreateToggle("Show Dropped Items & Gear", ESP_SETTINGS.DroppedItems, ExtrasPage, function(val) ESP_SETTINGS.DroppedItems = val end)
----------------------------------------------------
-- 5. SEARCH TAB CONTROLS (ORBIT, TELEPORT, WALL CHECK)
----------------------------------------------------
local NoticeFrame = Instance.new("Frame")
NoticeFrame.Size = UDim2.new(1, 0, 0, 48)
NoticeFrame.BackgroundColor3 = Color3.fromRGB(38, 28, 20)
NoticeFrame.BorderSizePixel = 0
NoticeFrame.Parent = SearchPage
local NoticeStroke = Instance.new("UIStroke")
NoticeStroke.Color = Color3.fromRGB(220, 130, 40)
NoticeStroke.Thickness = 1
NoticeStroke.Parent = NoticeFrame
local ReminderText = Instance.new("TextLabel")
ReminderText.Size = UDim2.new(1, -16, 1, 0)
ReminderText.Position = UDim2.new(0, 8, 0, 0)
ReminderText.Text = "REMINDER: PUT REAL @USERNAME NOT DISPLAY"
ReminderText.Font = Enum.Font.GothamBold
ReminderText.TextSize = 10
ReminderText.TextColor3 = Color3.fromRGB(255, 170, 70)
ReminderText.TextWrapped = true
ReminderText.BackgroundTransparency = 1
ReminderText.Parent = NoticeFrame
local SearchBoxFrame = Instance.new("Frame")
SearchBoxFrame.Size = UDim2.new(1, 0, 0, 42)
SearchBoxFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
SearchBoxFrame.BorderSizePixel = 0
SearchBoxFrame.Parent = SearchPage
local SearchBoxStroke = Instance.new("UIStroke")
SearchBoxStroke.Color = Color3.fromRGB(45, 45, 60)
SearchBoxStroke.Thickness = 1
SearchBoxStroke.Parent = SearchBoxFrame
local SearchInput = Instance.new("TextBox")
SearchInput.Size = UDim2.new(1, -20, 1, 0)
SearchInput.Position = UDim2.new(0, 10, 0, 0)
SearchInput.PlaceholderText = "Type @username here..."
SearchInput.PlaceholderColor3 = Color3.fromRGB(100, 100, 120)
SearchInput.Text = ESP_SETTINGS.TargetUsername
SearchInput.Font = Enum.Font.GothamMedium
SearchInput.TextSize = 12
SearchInput.TextColor3 = Color3.fromRGB(255, 255, 255)
SearchInput.TextXAlignment = Enum.TextXAlignment.Left
SearchInput.BackgroundTransparency = 1
SearchInput.Parent = SearchBoxFrame
SearchInput.FocusLost:Connect(function()
local cleanText = string.gsub(SearchInput.Text, "@", "")
ESP_SETTINGS.TargetUsername = string.lower(cleanText)
end)
-- Teleport & Wall Check Toggles
CreateToggle("Teleport to Target", ESP_SETTINGS.TeleportEnabled, SearchPage, function(val)
ESP_SETTINGS.TeleportEnabled = val
end)
CreateToggle("Wall Check", ESP_SETTINGS.WallCheckEnabled, SearchPage, function(val)
ESP_SETTINGS.WallCheckEnabled = val
end)
-- Orbit Toggles & Sliders
CreateToggle("ORBIT PLAYER", ESP_SETTINGS.OrbitEnabled, SearchPage, function(val)
ESP_SETTINGS.OrbitEnabled = val
end)
CreateSlider("Orbit Speed", 0, 100, 15, "studs/s", SearchPage, function(val)
ESP_SETTINGS.OrbitSpeed = val
end)
CreateSlider("Orbit Distance", 5, 50, 10, "studs", SearchPage, function(val)
ESP_SETTINGS.OrbitDistance = val
end)
----------------------------------------------------
-- 6. SETTINGS TAB (THEME SELECTOR)
----------------------------------------------------
CreateKeybindSetting("Menu Toggle Key", ESP_SETTINGS.ToggleKey, SettingsPage, function(newKey)
ESP_SETTINGS.ToggleKey = newKey
end)
local ThemePanel = Instance.new("Frame")
ThemePanel.Size = UDim2.new(1, 0, 0, 130)
ThemePanel.BackgroundColor3 = Color3.fromRGB(28, 28, 38)
ThemePanel.BorderSizePixel = 0
ThemePanel.Parent = SettingsPage
local ThemePanelStroke = Instance.new("UIStroke")
ThemePanelStroke.Color = Color3.fromRGB(45, 45, 60)
ThemePanelStroke.Thickness = 1
ThemePanelStroke.Parent = ThemePanel
local ThemeHeaderLabel = Instance.new("TextLabel")
ThemeHeaderLabel.Size = UDim2.new(1, -20, 0, 30)
ThemeHeaderLabel.Position = UDim2.new(0, 10, 0, 4)
ThemeHeaderLabel.Text = "GUI Theme Color Accent"
ThemeHeaderLabel.Font = Enum.Font.GothamBold
ThemeHeaderLabel.TextSize = 12
ThemeHeaderLabel.TextColor3 = Color3.fromRGB(230, 230, 240)
ThemeHeaderLabel.TextXAlignment = Enum.TextXAlignment.Left
ThemeHeaderLabel.BackgroundTransparency = 1
ThemeHeaderLabel.Parent = ThemePanel
local ColorsContainer = Instance.new("Frame")
ColorsContainer.Size = UDim2.new(1, -20, 0, 80)
ColorsContainer.Position = UDim2.new(0, 10, 0, 38)
ColorsContainer.BackgroundTransparency = 1
ColorsContainer.Parent = ThemePanel
local ColorGrid = Instance.new("UIGridLayout")
ColorGrid.CellSize = UDim2.new(0.23, 0, 0, 34)
ColorGrid.CellPadding = UDim2.new(0.02, 0, 0, 8)
ColorGrid.SortOrder = Enum.SortOrder.LayoutOrder
ColorGrid.Parent = ColorsContainer
local ThemeList = {"Navy Blue", "Blue", "Red", "Green", "Orange", "Purple", "Magenta", "Yellow"}
for _, themeName in ipairs(ThemeList) do
local colorValue = THEMES[themeName]
local ThemeBtn = Instance.new("TextButton")
ThemeBtn.Size = UDim2.new(1, 0, 1, 0)
ThemeBtn.BackgroundColor3 = colorValue
ThemeBtn.BorderSizePixel = 0
ThemeBtn.Text = themeName
ThemeBtn.Font = Enum.Font.GothamBold
ThemeBtn.TextSize = 9
ThemeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ThemeBtn.Parent = ColorsContainer
ThemeBtn.MouseButton1Click:Connect(function()
SetThemeColor(colorValue)
end)
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed and input.KeyCode == ESP_SETTINGS.ToggleKey then
ToggleMenu()
end
end)
----------------------------------------------------
-- 7. HELPER FUNCTIONS (WALL CHECK)
----------------------------------------------------
local function IsVisible(targetPart)
if not ESP_SETTINGS.WallCheckEnabled then return true end
if not targetPart or not LocalPlayer.Character then return false end
local origin = Camera.CFrame.Position
local destination = targetPart.Position
local direction = destination - origin
local params = RaycastParams.new()
params.FilterType = RaycastFilterType.Exclude
params.FilterDescendantsInstances = {LocalPlayer.Character, targetPart.Parent}
params.IgnoreWater = true
local result = workspace:Raycast(origin, direction, params)
return result == nil
end
----------------------------------------------------
-- 8. ORBIT & TELEPORT ENGINE
----------------------------------------------------
local orbitAngle = 0
RunService.RenderStepped:Connect(function(deltaTime)
if ESP_SETTINGS.TargetUsername ~= "" then
local targetPlayer = nil
for _, plr in pairs(Players:GetPlayers()) do
if string.lower(plr.Name) == ESP_SETTINGS.TargetUsername then
targetPlayer = plr
break
end
end
if targetPlayer and targetPlayer.Character then
local targetHead = targetPlayer.Character:FindFirstChild("Head")
local targetRoot = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
if targetRoot and targetHead then
local visible = IsVisible(targetHead)
-- 1. Orbit Logic
if ESP_SETTINGS.OrbitEnabled then
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
orbitAngle = orbitAngle + (ESP_SETTINGS.OrbitSpeed * deltaTime)
local offsetX = math.cos(orbitAngle) * ESP_SETTINGS.OrbitDistance
local offsetZ = math.sin(orbitAngle) * ESP_SETTINGS.OrbitDistance
local newPos = targetRoot.Position + Vector3.new(offsetX, 0, offsetZ)
myRoot.CFrame = CFrame.new(newPos, targetRoot.Position)
end
end
-- 2. Teleport Logic
if ESP_SETTINGS.TeleportEnabled and visible then
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
myRoot.CFrame = targetRoot.CFrame * CFrame.new(0, 0, 3)
end
end
end
end
end
end)
----------------------------------------------------
-- 9. SKELETON & WORKSPACE ITEMS PIPELINE
----------------------------------------------------
local LineFolder = Instance.new("Folder")
LineFolder.Name = "synQ_SkeletonLines"
LineFolder.Parent = ScreenGui
local function CreateLine()
local line = Instance.new("Frame")
line.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
line.BorderSizePixel = 0
line.AnchorPoint = Vector2.new(0.5, 0.5)
line.Visible = false
line.Parent = LineFolder
return line
end
local function ConnectJoints(p1, p2, line, color)
if not (p1 and p2) then line.Visible = false return end
local pos1, vis1 = Camera:WorldToViewportPoint(p1.Position)
local pos2, vis2 = Camera:WorldToViewportPoint(p2.Position)
if vis1 and vis2 then
local startVec = Vector2.new(pos1.X, pos1.Y)
local endVec = Vector2.new(pos2.X, pos2.Y)
local distance = (startVec - endVec).Magnitude
local center = (startVec + endVec) / 2
local angle = math.atan2(endVec.Y - startVec.Y, endVec.X - startVec.X)
line.Size = UDim2.new(0, distance, 0, 1.5)
line.Position = UDim2.new(0, center.X, 0, center.Y)
line.Rotation = math.deg(angle)
line.BackgroundColor3 = color
line.Visible = true
else
line.Visible = false
end
end
local function GetPlayerInventory(plr)
local items = {}
if plr.Character then
for _, obj in pairs(plr.Character:GetChildren()) do
if obj:IsA("Tool") then table.insert(items, "[E] " .. obj.Name) end
end
end
local backpack = plr:FindFirstChild("Backpack")
if backpack then
for _, obj in pairs(backpack:GetChildren()) do
if obj:IsA("Tool") then table.insert(items, obj.Name) end
end
end
return #items == 0 and "Empty" or table.concat(items, ", ")
end
local function TrackWorkspaceItem(item)
if item:IsA("Tool") and not item:IsDescendantOf(Players) then
local handle = item:FindFirstChild("Handle") or item:FindFirstChildWhichIsA("BasePart")
if handle and not Item_Cache[item] then
local billboard = Instance.new("BillboardGui")
billboard.Name = "synQ_ItemBillboard"
billboard.Adornee = handle
billboard.Size = UDim2.new(0, 200, 0, 30)
billboard.AlwaysOnTop = true
billboard.Enabled = false
billboard.Parent = item
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.Font = Enum.Font.GothamBold
label.TextSize = 12
label.TextColor3 = ESP_SETTINGS.ItemColor
label.TextStrokeTransparency = 0.2
label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
label.Parent = billboard
Item_Cache[item] = {
Billboard = billboard,
Label = label,
Part = handle
}
end
end
end
for _, obj in pairs(workspace:GetDescendants()) do TrackWorkspaceItem(obj) end
workspace.DescendantAdded:Connect(TrackWorkspaceItem)
workspace.DescendantRemoving:Connect(function(obj)
if Item_Cache[obj] then
if Item_Cache[obj].Billboard then Item_Cache[obj].Billboard:Destroy() end
Item_Cache[obj] = nil
end
end)
----------------------------------------------------
-- 10. PLAYER ESP PIPELINE & RENDER LOOP
----------------------------------------------------
local function AddESP(plr)
if plr == LocalPlayer then return end
local function Apply(char)
if not char then return end
if ESP_Cache[plr] then
for _, v in pairs(ESP_Cache[plr].Lines or {}) do v:Destroy() end
if ESP_Cache[plr].Highlight then ESP_Cache[plr].Highlight:Destroy() end
if ESP_Cache[plr].Billboard then ESP_Cache[plr].Billboard:Destroy() end
end
local highlight = Instance.new("Highlight")
highlight.Name = "synQ_Highlight"
highlight.Adornee = char
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.FillTransparency = 0.5
highlight.Enabled = false
highlight.Parent = char
local billboard = Instance.new("BillboardGui")
billboard.Name = "synQ_Billboard"
billboard.Size = UDim2.new(0, 300, 0, 80)
billboard.StudsOffset = Vector3.new(0, 2.8, 0)
billboard.AlwaysOnTop = true
billboard.Enabled = false
billboard.Parent = char
local tagLabel = Instance.new("TextLabel")
tagLabel.Size = UDim2.new(1, 0, 1, 0)
tagLabel.BackgroundTransparency = 1
tagLabel.Font = Enum.Font.GothamBold
tagLabel.TextSize = 12
tagLabel.TextColor3 = ESP_SETTINGS.TextColor
tagLabel.TextStrokeTransparency = 0.2
tagLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
tagLabel.Parent = billboard
local lines = {}
for i = 1, 12 do table.insert(lines, CreateLine()) end
ESP_Cache[plr] = {
Highlight = highlight,
Billboard = billboard,
Label = tagLabel,
Lines = lines,
Character = char
}
end
if plr.Character then Apply(plr.Character) end
plr.CharacterAdded:Connect(Apply)
end
for _, plr in pairs(Players:GetPlayers()) do AddESP(plr) end
Players.PlayerAdded:Connect(AddESP)
Players.PlayerRemoving:Connect(function(plr)
if ESP_Cache[plr] then
for _, v in pairs(ESP_Cache[plr].Lines or {}) do v:Destroy() end
if ESP_Cache[plr].Highlight then ESP_Cache[plr].Highlight:Destroy() end
if ESP_Cache[plr].Billboard then ESP_Cache[plr].Billboard:Destroy() end
ESP_Cache[plr] = nil
end
end)
RunService.RenderStepped:Connect(function()
for plr, data in pairs(ESP_Cache) do
local char = data.Character
local hum = char and char:FindFirstChild("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
local head = char and char:FindFirstChild("Head")
if char and char.Parent and root and head and hum and hum.Health > 0 then
local isEnemy = not ESP_SETTINGS.TeamCheck or (plr.Team ~= LocalPlayer.Team)
local isTarget = (ESP_SETTINGS.TargetUsername ~= "") and (string.lower(plr.Name) == ESP_SETTINGS.TargetUsername)
local activeColor = isTarget and ESP_SETTINGS.TargetColor or ESP_SETTINGS.FillColor
if ESP_SETTINGS.Enabled and isEnemy then
data.Highlight.FillColor = activeColor
data.Highlight.OutlineColor = isTarget and Color3.fromRGB(255, 255, 255) or ESP_SETTINGS.OutlineColor
data.Highlight.Enabled = ESP_SETTINGS.Boxes
data.Billboard.Adornee = head
local dist = math.floor((root.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude)
local hp = math.floor(hum.Health)
local textFormat = ""
if isTarget then textFormat = textFormat .. "[TARGET] " end
if ESP_SETTINGS.Names then textFormat = textFormat .. plr.DisplayName .. " (@" .. plr.Name .. ")\n" end
if ESP_SETTINGS.Distance then textFormat = textFormat .. "[" .. hp .. " HP] • " .. dist .. "m\n" end
if ESP_SETTINGS.Inventory then textFormat = textFormat .. "Holding: " .. GetPlayerInventory(plr) end
data.Label.Text = textFormat
data.Label.TextColor3 = isTarget and Color3.fromRGB(255, 90, 90) or ESP_SETTINGS.TextColor
data.Billboard.Enabled = ESP_SETTINGS.Names or ESP_SETTINGS.Distance or ESP_SETTINGS.Inventory
if ESP_SETTINGS.Skeleton then
local R6 = char:FindFirstChild("Torso") ~= nil
if R6 then
ConnectJoints(head, char:FindFirstChild("Torso"), data.Lines[1], activeColor)
ConnectJoints(char:FindFirstChild("Torso"), char:FindFirstChild("Left Arm"), data.Lines[2], activeColor)
ConnectJoints(char:FindFirstChild("Torso"), char:FindFirstChild("Right Arm"), data.Lines[3], activeColor)
ConnectJoints(char:FindFirstChild("Torso"), char:FindFirstChild("Left Leg"), data.Lines[4], activeColor)
ConnectJoints(char:FindFirstChild("Torso"), char:FindFirstChild("Right Leg"), data.Lines[5], activeColor)
for i = 6, 12 do data.Lines[i].Visible = false end
else
ConnectJoints(head, char:FindFirstChild("UpperTorso"), data.Lines[1], activeColor)
ConnectJoints(char:FindFirstChild("UpperTorso"), char:FindFirstChild("LowerTorso"), data.Lines[2], activeColor)
ConnectJoints(char:FindFirstChild("UpperTorso"), char:FindFirstChild("LeftUpperArm"), data.Lines[3], activeColor)
ConnectJoints(char:FindFirstChild("LeftUpperArm"), char:FindFirstChild("LeftLowerArm"), data.Lines[4], activeColor)
ConnectJoints(char:FindFirstChild("UpperTorso"), char:FindFirstChild("RightUpperArm"), data.Lines[5], activeColor)
ConnectJoints(char:FindFirstChild("RightUpperArm"), char:FindFirstChild("RightLowerArm"), data.Lines[6], activeColor)
ConnectJoints(char:FindFirstChild("LowerTorso"), char:FindFirstChild("LeftUpperLeg"), data.Lines[7], activeColor)
ConnectJoints(char:FindFirstChild("LeftUpperLeg"), char:FindFirstChild("LeftLowerLeg"), data.Lines[8], activeColor)
ConnectJoints(char:FindFirstChild("LowerTorso"), char:FindFirstChild("RightUpperLeg"), data.Lines[9], activeColor)
ConnectJoints(char:FindFirstChild("RightUpperLeg"), char:FindFirstChild("RightLowerLeg"), data.Lines[10], activeColor)
for i = 11, 12 do data.Lines[i].Visible = false end
end
else
for _, line in pairs(data.Lines) do line.Visible = false end
end
else
data.Highlight.Enabled = false
data.Billboard.Enabled = false
for _, line in pairs(data.Lines) do line.Visible = false end
end
else
data.Highlight.Enabled = false
data.Billboard.Enabled = false
for _, line in pairs(data.Lines) do line.Visible = false end
end
end
for item, data in pairs(Item_Cache) do
if item and item.Parent and data.Part and ESP_SETTINGS.Enabled and ESP_SETTINGS.DroppedItems then
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local dist = math.floor((data.Part.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude)
data.Label.Text = "📦 " .. item.Name .. " [" .. dist .. "m]"
data.Billboard.Enabled = true
else
data.Billboard.Enabled = false
end
else
if data.Billboard then data.Billboard.Enabled = false end
end
end
end)No comments yet for this script.



