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)