-- Destroy existing GUI if re-running if game.CoreGui:FindFirstChild("SingularityUI") then game.CoreGui.SingularityUI:Destroy() end local ScreenGui = Instance.new("ScreenGui") local MainFrame = Instance.new("Frame") local Title = Instance.new("TextLabel") local TabButtons = Instance.new("Frame") local Container = Instance.new("Frame") -- GUI Setup ScreenGui.Name = "SingularityUI" ScreenGui.Parent = game.CoreGui ScreenGui.ResetOnSpawn = false MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 8) MainFrame.BorderSizePixel = 0 MainFrame.Position = UDim2.new(0.1, 0, 0.1, 0) MainFrame.Size = UDim2.new(0, 400, 0, 500) MainFrame.Active = true MainFrame.Draggable = true Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) Title.Parent = MainFrame Title.Size = UDim2.new(1, 0, 0, 50) Title.Text = "dspyrr is cute" Title.TextColor3 = Color3.fromRGB(0, 255, 255) Title.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Title.Font = Enum.Font.GothamBlack Title.TextSize = 22 TabButtons.Name = "TabButtons" TabButtons.Parent = MainFrame TabButtons.Position = UDim2.new(0, 0, 0, 50) TabButtons.Size = UDim2.new(1, 0, 0, 55) TabButtons.BackgroundColor3 = Color3.fromRGB(12, 12, 12) Container.Name = "Container" Container.Parent = MainFrame Container.Position = UDim2.new(0, 0, 0, 110) Container.Size = UDim2.new(1, 0, 1, -110) Container.BackgroundTransparency = 1 -- Tabs Setup local MoveTab = Instance.new("ScrollingFrame", Container) local PlayerTab = Instance.new("ScrollingFrame", Container) local SpecTab = Instance.new("ScrollingFrame", Container) local FollowTab = Instance.new("ScrollingFrame", Container) local BindTab = Instance.new("ScrollingFrame", Container) local allTabs = {MoveTab, PlayerTab, SpecTab, FollowTab, BindTab} local allButtons = {} for _, tab in pairs(allTabs) do tab.Size = UDim2.new(1, 0, 1, 0); tab.BackgroundTransparency = 1; tab.BorderSizePixel = 0; tab.Visible = false tab.ScrollBarThickness = 0 tab.CanvasSize = UDim2.new(0,0,0,0) local layout = Instance.new("UIListLayout", tab); layout.Padding = UDim.new(0, 10); layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() tab.CanvasSize = UDim2.new(0,0,0, layout.AbsoluteContentSize.Y + 20) end) end MoveTab.Visible = true -- Variables local DashDist = 10 local DashBind = Enum.KeyCode.Z local MenuBind = Enum.KeyCode.RightShift local FollowingPlayer = nil -- UI Visual Logic local function UpdateTabVisuals(selectedBtn) for _, btn in pairs(allButtons) do btn.BackgroundColor3 = Color3.fromRGB(25, 25, 25); btn.TextColor3 = Color3.fromRGB(180, 180, 180) if btn:FindFirstChild("Indicator") then btn.Indicator.Visible = false end end selectedBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35); selectedBtn.TextColor3 = Color3.fromRGB(0, 255, 255) if selectedBtn:FindFirstChild("Indicator") then selectedBtn.Indicator.Visible = true end end local function CreateTabBtn(text, pos, width, tabObj) local b = Instance.new("TextButton", TabButtons) b.Size = UDim2.new(width, -4, 1, -5); b.Position = UDim2.new(pos, 2, 0, 2); b.Text = text; b.BackgroundColor3 = Color3.fromRGB(25, 25, 25); b.TextColor3 = Color3.fromRGB(180, 180, 180); b.Font = Enum.Font.GothamBold; b.TextSize = 10; b.BorderSizePixel = 0; Instance.new("UICorner", b).CornerRadius = UDim.new(0, 4) local ind = Instance.new("Frame", b); ind.Name = "Indicator"; ind.Size = UDim2.new(0.6, 0, 0, 3); ind.Position = UDim2.new(0.2, 0, 1, -6); ind.BackgroundColor3 = Color3.fromRGB(0, 255, 255); ind.BorderSizePixel = 0; ind.Visible = false table.insert(allButtons, b) b.MouseButton1Click:Connect(function() for _, t in pairs(allTabs) do t.Visible = false end tabObj.Visible = true UpdateTabVisuals(b) end) if tabObj == MoveTab then UpdateTabVisuals(b) end end CreateTabBtn("MOVE", 0, 0.18, MoveTab) CreateTabBtn("TP", 0.18, 0.20, PlayerTab) CreateTabBtn("SPEC", 0.38, 0.20, SpecTab) CreateTabBtn("FOLLOW", 0.58, 0.18, FollowTab) CreateTabBtn("BINDS", 0.76, 0.24, BindTab) -- Core Population (ABC Sorted + Deep Link Logic) local function Populate(tab, mode) for _, child in pairs(tab:GetChildren()) do if child:IsA("TextButton") and child.Name == "PlayerBtn" then child:Destroy() end end local players = game.Players:GetPlayers() table.sort(players, function(a, b) return a.DisplayName:lower() < b.DisplayName:lower() end) for _, p in pairs(players) do if p ~= game.Players.LocalPlayer then local b = Instance.new("TextButton", tab) b.Name = "PlayerBtn"; b.Size = UDim2.new(0.9, 0, 0, 40); b.Text = p.DisplayName; b.BackgroundColor3 = Color3.fromRGB(30, 30, 30); b.TextColor3 = Color3.new(1, 1, 1); b.Font = Enum.Font.GothamBold; b.TextSize = 14; Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) b.MouseButton1Click:Connect(function() local char = p.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then if mode == "TP" then game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = hrp.CFrame elseif mode == "Spec" then workspace.CurrentCamera.CameraSubject = char:FindFirstChild("Humanoid") elseif mode == "Follow" then FollowingPlayer = p end end end) end end end -- Universal Controls local function CreateRefresh(tab, mode) local r = Instance.new("TextButton", tab); r.Name = "Fixed"; r.Text = "REFRESH LIST"; r.Size = UDim2.new(0.9, 0, 0, 45); r.BackgroundColor3 = Color3.fromRGB(0, 120, 255); r.TextColor3 = Color3.new(1,1,1); r.Font = Enum.Font.GothamBlack; r.TextSize = 14; Instance.new("UICorner", r).CornerRadius = UDim.new(0, 8) r.MouseButton1Click:Connect(function() Populate(tab, mode) end) end CreateRefresh(PlayerTab, "TP"); CreateRefresh(SpecTab, "Spec"); CreateRefresh(FollowTab, "Follow") local function CreateStop(tab, text, callback) local s = Instance.new("TextButton", tab); s.Name = "Fixed"; s.Text = text; s.Size = UDim2.new(0.9, 0, 0, 45); s.BackgroundColor3 = Color3.fromRGB(200, 50, 50); s.TextColor3 = Color3.new(1,1,1); s.Font = Enum.Font.GothamBlack; s.TextSize = 14; Instance.new("UICorner", s).CornerRadius = UDim.new(0, 8) s.MouseButton1Click:Connect(callback) end CreateStop(SpecTab, "STOP SPECTATING", function() workspace.CurrentCamera.CameraSubject = game.Players.LocalPlayer.Character:FindFirstChild("Humanoid") end) CreateStop(FollowTab, "STOP FOLLOWING", function() FollowingPlayer = nil end) -- Settings Components local function CreateSlider(parent, text, min, max, default, callback) local f = Instance.new("Frame", parent); f.Size = UDim2.new(0.9,0,0,75); f.BackgroundTransparency = 1 local l = Instance.new("TextLabel", f); l.Size = UDim2.new(1,0,0,25); l.Text = text..": "..default; l.TextColor3 = Color3.fromRGB(0, 255, 255); l.BackgroundTransparency = 1; l.Font = Enum.Font.GothamBold; l.TextSize = 14 local b = Instance.new("Frame", f); b.Size = UDim2.new(1,0,0,6); b.Position = UDim2.new(0,0,0,45); b.BackgroundColor3 = Color3.fromRGB(40,40,40); b.BorderSizePixel = 0 local s = Instance.new("TextButton", b); s.Size = UDim2.new(0,18,0,18); s.Position = UDim2.new((default-min)/(max-min),-9,0.5,-9); s.BackgroundColor3 = Color3.fromRGB(255, 255, 255); s.Text = "" Instance.new("UICorner", s).CornerRadius = UDim.new(1, 0) local drag = false local function up() local r = math.clamp((game:GetService("UserInputService"):GetMouseLocation().X - b.AbsolutePosition.X)/b.AbsoluteSize.X, 0, 1) s.Position = UDim2.new(r,-9,0.5,-9); local v = math.floor(min + (r * (max - min))) l.Text = text..": "..v; callback(v) end s.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = true end end) game:GetService("UserInputService").InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = false end end) game:GetService("RunService").RenderStepped:Connect(function() if drag then up() end end) end local function CreateBind(parent, text, current, callback) local f = Instance.new("Frame", parent); f.Size = UDim2.new(0.9,0,0,75); f.BackgroundTransparency = 1 local l = Instance.new("TextLabel", f); l.Size = UDim2.new(1,0,0,25); l.Text = text; l.TextColor3 = Color3.new(1,1,1); l.BackgroundTransparency = 1; l.Font = Enum.Font.GothamBold; l.TextSize = 14 local b = Instance.new("TextButton", f); b.Size = UDim2.new(1,0,0,40); b.Position = UDim2.new(0,0,0,35); b.BackgroundColor3 = Color3.fromRGB(30,30,30); b.TextColor3 = Color3.fromRGB(0, 255, 255); b.Text = current.Name; b.Font = Enum.Font.GothamBlack; b.TextSize = 14; Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) local waiting = false b.MouseButton1Click:Connect(function() waiting = true; b.Text = "[...]" end) game:GetService("UserInputService").InputBegan:Connect(function(i) if waiting and i.UserInputType == Enum.UserInputType.Keyboard then waiting = false; b.Text = i.KeyCode.Name; callback(i.KeyCode) end end) end CreateSlider(MoveTab, "DASH DISTANCE", 3, 150, 10, function(v) DashDist = v end) CreateBind(BindTab, "DASH KEY", DashBind, function(k) DashBind = k end) CreateBind(BindTab, "UI TOGGLE", MenuBind, function(k) MenuBind = k end) -- Core Heartbeat (Closer Follow) game:GetService("RunService").Heartbeat:Connect(function() if FollowingPlayer and FollowingPlayer.Character and FollowingPlayer.Character:FindFirstChild("HumanoidRootPart") then local myHrp = game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if myHrp then myHrp.CFrame = FollowingPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, 0.5) end end end) -- Universal Input game:GetService("UserInputService").InputBegan:Connect(function(i, p) if i.KeyCode == MenuBind then MainFrame.Visible = not MainFrame.Visible end if p then return end if i.KeyCode == DashBind then local char = game.Players.LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = hrp.CFrame + (char.Humanoid.MoveDirection.Magnitude > 0 and char.Humanoid.MoveDirection or hrp.CFrame.LookVector) * DashDist end end end) -- Start Populate(PlayerTab, "TP"); Populate(SpecTab, "Spec"); Populate(FollowTab, "Follow")