-- Services local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local SoundService = game:GetService("SoundService") local lp = Players.LocalPlayer local coreGui = game:GetService("CoreGui") local pg = lp:WaitForChild("PlayerGui", 5) -- Create GUI with Fallback and Retry local gui local function createGui() local attempts = 0 local maxAttempts = 3 while attempts < maxAttempts do local success, result = pcall(function() gui = Instance.new("ScreenGui", coreGui) gui.Name = "NicholasHub_" .. math.random(100000, 999999) gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.DisplayOrder = 100000 gui.Enabled = true gui.ZIndexBehavior = Enum.ZIndexBehavior.Global print("✅ GUI created in CoreGui: " .. gui.Name) end) if success then break end warn("⚠️ CoreGui attempt " .. attempts + 1 .. " failed: " .. tostring(result)) attempts = attempts + 1 wait(0.5) end if not gui then gui = Instance.new("ScreenGui", pg) gui.Name = "NicholasHub_" .. math.random(100000, 999999) gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.DisplayOrder = 100000 gui.Enabled = true gui.ZIndexBehavior = Enum.ZIndexBehavior.Global print("✅ GUI fallback to PlayerGui: " .. gui.Name) end end createGui() -- Notification System local function showNotification(message, color, duration) local notif = Instance.new("TextLabel", gui) notif.Size = UDim2.new(0, 300, 0, 50) notif.Position = UDim2.new(0.5, -150, 0, 20) notif.BackgroundColor3 = Color3.fromRGB(30, 30, 30) notif.Text = message notif.TextColor3 = color or Color3.fromRGB(255, 255, 255) notif.Font = Enum.Font.GothamBold notif.TextSize = 16 notif.TextWrapped = true notif.BackgroundTransparency = 0.1 notif.ZIndex = 100001 local corner = Instance.new("UICorner", notif) corner.CornerRadius = UDim.new(0, 8) TweenService:Create(notif, TweenInfo.new(0.3), {Position = UDim2.new(0.5, -150, 0, 10)}):Play() wait(duration or 3) TweenService:Create(notif, TweenInfo.new(0.3), {Position = UDim2.new(0.5, -150, 0, -50), BackgroundTransparency = 1, TextTransparency = 1}):Play() wait(0.3) notif:Destroy() end -- Sound Effects local clickSound = Instance.new("Sound", gui) clickSound.SoundId = "rbxassetid://9120387436" clickSound.Volume = 0.6 local openSound = Instance.new("Sound", gui) openSound.SoundId = "rbxassetid://3527390662" openSound.Volume = 0.8 -- Main Frame local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 600, 0, 450) frame.Position = UDim2.new(0.5, -300, 0.5, -225) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.BorderSizePixel = 0 frame.Visible = false frame.Active = true frame.Draggable = true frame.ClipsDescendants = true frame.ZIndex = 100000 local frameCorner = Instance.new("UICorner", frame) frameCorner.CornerRadius = UDim.new(0, 14) -- Animated Gradient Background local gradient = Instance.new("UIGradient", frame) gradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 255)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 255)) }) gradient.Rotation = 45 RunService.Heartbeat:Connect(function() gradient.Rotation = (gradient.Rotation + 1) % 360 end) local shadow = Instance.new("ImageLabel", frame) shadow.Size = UDim2.new(1, 40, 1, 40) shadow.Position = UDim2.new(0, -20, 0, -20) shadow.Image = "rbxassetid://1316045217" shadow.ImageTransparency = 0.2 shadow.BackgroundTransparency = 1 shadow.ZIndex = 99999 -- Title local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 60) title.BackgroundColor3 = Color3.fromRGB(35, 35, 35) title.Text = "💀 NicholasHub v5.5 🔥" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBlack title.TextSize = 28 title.TextStrokeTransparency = 0.6 title.BackgroundTransparency = 0.2 title.ZIndex = 100001 local titleCorner = Instance.new("UICorner", title) titleCorner.CornerRadius = UDim.new(0, 10) -- Close Button local closeBtn = Instance.new("TextButton", frame) closeBtn.Size = UDim2.new(0, 50, 0, 50) closeBtn.Position = UDim2.new(1, -60, 0, 5) closeBtn.BackgroundColor3 = Color3.fromRGB(255, 50, 50) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.new(1, 1, 1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 24 closeBtn.ZIndex = 100001 local closeCorner = Instance.new("UICorner", closeBtn) closeCorner.CornerRadius = UDim.new(0, 10) -- Minimize Button local minimizeBtn = Instance.new("TextButton", frame) minimizeBtn.Size = UDim2.new(0, 50, 0, 50) minimizeBtn.Position = UDim2.new(1, -120, 0, 5) minimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 255) minimizeBtn.Text = "-" minimizeBtn.TextColor3 = Color3.new(1, 1, 1) minimizeBtn.Font = Enum.Font.GothamBold minimizeBtn.TextSize = 24 minimizeBtn.ZIndex = 100001 local minimizeCorner = Instance.new("UICorner", minimizeBtn) minimizeCorner.CornerRadius = UDim.new(0, 10) -- Tab System local tabNames = {"Obby", "Combat", "Trolling", "Movement", "Visuals", "Teleport", "Exploits", "Settings"} local tabFrames = {} local tabBar = Instance.new("Frame", frame) tabBar.Size = UDim2.new(1, -20, 0, 50) tabBar.Position = UDim2.new(0, 10, 0, 70) tabBar.BackgroundTransparency = 1 tabBar.ZIndex = 100001 for i, name in ipairs(tabNames) do local tabBtn = Instance.new("TextButton", tabBar) tabBtn.Size = UDim2.new(0, 70, 0, 40) tabBtn.Position = UDim2.new(0, (i - 1) * 75 + 5, 0, 5) tabBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) tabBtn.Text = name tabBtn.TextColor3 = Color3.new(1, 1, 1) tabBtn.Font = Enum.Font.GothamBold tabBtn.TextSize = 16 tabBtn.ZIndex = 100001 local btnCorner = Instance.new("UICorner", tabBtn) btnCorner.CornerRadius = UDim.new(0, 8) local btnGradient = Instance.new("UIGradient", tabBtn) btnGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(50, 50, 50)) }) local tabFrame = Instance.new("ScrollingFrame", frame) tabFrame.Size = UDim2.new(1, -20, 1, -130) tabFrame.Position = UDim2.new(0, 10, 0, 130) tabFrame.BackgroundTransparency = 1 tabFrame.Visible = i == 1 tabFrame.CanvasSize = UDim2.new(0, 0, 0, 0) tabFrame.ScrollBarThickness = 8 tabFrame.ScrollBarImageColor3 = Color3.fromRGB(255, 0, 255) tabFrame.ZIndex = 100000 tabFrames[name] = tabFrame local function switchTab() clickSound:Play() for _, f in pairs(tabFrames) do f.Visible = false end tabFrame.Visible = true TweenService:Create(tabBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 0, 255)}):Play() for _, otherBtn in pairs(tabBar:GetChildren()) do if otherBtn:IsA("TextButton") and otherBtn ~= tabBtn then TweenService:Create(otherBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(50, 50, 50)}):Play() end end end tabBtn.MouseButton1Click:Connect(switchTab) tabBtn.TouchTap:Connect(switchTab) end -- Improved Dragging local dragging = false local dragStart = nil local startPos = nil frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position end end) frame.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart local newPos = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) TweenService:Create(frame, TweenInfo.new(0.1), {Position = newPos}):Play() end end) frame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) -- Add Button Function with Debounce local buttonStates = {} local lastClickTime = 0 local debounceTime = 0.3 local function addButton(tabName, text, callback, toggleable) local tab = tabFrames[tabName] local count = #tab:GetChildren() local btn = Instance.new("TextButton", tab) btn.Size = UDim2.new(0, 260, 0, 45) btn.Position = UDim2.new(0, 10, 0, (count * 50) + 10) btn.BackgroundColor3 = Color3.fromRGB(70, 70, 70) btn.Text = text btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.Gotham btn.TextSize = 16 btn.ZIndex = 100001 local btnCorner = Instance.new("UICorner", btn) btnCorner.CornerRadius = UDim.new(0, 8) local btnGradient = Instance.new("UIGradient", btn) btnGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 70, 70)) }) local glow = Instance.new("UIStroke", btn) glow.Thickness = 2 glow.Color = Color3.fromRGB(255, 255, 255) glow.Transparency = 1 tab.CanvasSize = UDim2.new(0, 0, 0, (count + 1) * 50 + 20) local isToggled = false buttonStates[btn] = isToggled local function activate() if tick() - lastClickTime < debounceTime then return end lastClickTime = tick() clickSound:Play() if toggleable then isToggled = not isToggled buttonStates[btn] = isToggled btn.BackgroundColor3 = isToggled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(70, 70, 70) btn.Text = isToggled and "[ON] " .. text or text glow.Transparency = isToggled and 0.4 or 1 showNotification(text .. (isToggled and " Activated" or " Deactivated"), isToggled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 50, 50)) print("🔘 Button '" .. text .. "' toggled to: " .. tostring(isToggled)) else showNotification(text .. " Triggered", Color3.fromRGB(0, 255, 0)) print("🔘 Button '" .. text .. "' clicked (non-toggleable)") end pcall(callback, isToggled) end btn.MouseButton1Click:Connect(activate) btn.TouchTap:Connect(activate) end -- Add Slider Function local function addSlider(tabName, text, min, max, default, callback) local tab = tabFrames[tabName] local count = #tab:GetChildren() local sliderFrame = Instance.new("Frame", tab) sliderFrame.Size = UDim2.new(0, 260, 0, 70) sliderFrame.Position = UDim2.new(0, 10, 0, (count * 75) + 10) sliderFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) sliderFrame.ZIndex = 100001 local sliderCorner = Instance.new("UICorner", sliderFrame) sliderCorner.CornerRadius = UDim.new(0, 8) local label = Instance.new("TextLabel", sliderFrame) label.Size = UDim2.new(1, 0, 0, 25) label.BackgroundTransparency = 1 label.Text = text .. ": " .. default label.TextColor3 = Color3.new(1, 1, 1) label.Font = Enum.Font.Gotham label.TextSize = 16 label.ZIndex = 100001 local sliderBar = Instance.new("Frame", sliderFrame) sliderBar.Size = UDim2.new(0, 240, 0, 20) sliderBar.Position = UDim2.new(0, 10, 0, 35) sliderBar.BackgroundColor3 = Color3.fromRGB(100, 100, 100) sliderBar.ZIndex = 100001 local barCorner = Instance.new("UICorner", sliderBar) barCorner.CornerRadius = UDim.new(0, 6) local fill = Instance.new("Frame", sliderBar) fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(255, 0, 255) fill.ZIndex = 100001 local fillCorner = Instance.new("UICorner", fill) fillCorner.CornerRadius = UDim.new(0, 6) local dragging = false local function startDrag(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true clickSound:Play() end end local function endDrag(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end local function updateSlider(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local mouseX = input.Position.X local barX = sliderBar.AbsolutePosition.X local barWidth = sliderBar.AbsoluteSize.X local ratio = math.clamp((mouseX - barX) / barWidth, 0, 1) fill.Size = UDim2.new(ratio, 0, 1, 0) local value = min + (max - min) * ratio label.Text = text .. ": " .. math.floor(value) pcall(callback, math.floor(value)) end end sliderBar.InputBegan:Connect(startDrag) sliderBar.InputEnded:Connect(endDrag) UserInputService.InputChanged:Connect(updateSlider) tab.CanvasSize = UDim2.new(0, 0, 0, (count + 1) * 75 + 20) end -- Player Selector Dropdown local function addPlayerSelector(tabName) local tab = tabFrames[tabName] local count = #tab:GetChildren() local selectorFrame = Instance.new("Frame", tab) selectorFrame.Size = UDim2.new(0, 260, 0, 110) selectorFrame.Position = UDim2.new(0, 10, 0, (count * 75) + 10) selectorFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) selectorFrame.ZIndex = 100001 local selectorCorner = Instance.new("UICorner", selectorFrame) selectorCorner.CornerRadius = UDim.new(0, 8) local label = Instance.new("TextLabel", selectorFrame) label.Size = UDim2.new(1, 0, 0, 25) label.BackgroundTransparency = 1 label.Text = "Select Player:" label.TextColor3 = Color3.new(1, 1, 1) label.Font = Enum.Font.Gotham label.TextSize = 16 label.ZIndex = 100001 local dropdownBtn = Instance.new("TextButton", selectorFrame) dropdownBtn.Size = UDim2.new(1, -20, 0, 35) dropdownBtn.Position = UDim2.new(0, 10, 0, 30) dropdownBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 70) dropdownBtn.Text = "Select Player..." dropdownBtn.TextColor3 = Color3.new(1, 1, 1) dropdownBtn.Font = Enum.Font.Gotham dropdownBtn.TextSize = 14 dropdownBtn.ZIndex = 100001 local btnCorner = Instance.new("UICorner", dropdownBtn) btnCorner.CornerRadius = UDim.new(0, 8) local dropdownList = Instance.new("ScrollingFrame", selectorFrame) dropdownList.Size = UDim2.new(1, -20, 0, 0) dropdownList.Position = UDim2.new(0, 10, 0, 65) dropdownList.BackgroundColor3 = Color3.fromRGB(60, 60, 60) dropdownList.Visible = false dropdownList.CanvasSize = UDim2.new(0, 0, 0, 0) dropdownList.ScrollBarThickness = 6 dropdownList.ZIndex = 100002 local listCorner = Instance.new("UICorner", dropdownList) listCorner.CornerRadius = UDim.new(0, 8) local gotoBtn = Instance.new("TextButton", selectorFrame) gotoBtn.Size = UDim2.new(1, -20, 0, 35) gotoBtn.Position = UDim2.new(0, 10, 0, 70) gotoBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 70) gotoBtn.Text = "Loop Tween Goto" gotoBtn.TextColor3 = Color3.new(1, 1, 1) gotoBtn.Font = Enum.Font.Gotham gotoBtn.TextSize = 14 gotoBtn.ZIndex = 100001 local gotoCorner = Instance.new("UICorner", gotoBtn) gotoCorner.CornerRadius = UDim.new(0, 8) local gotoGlow = Instance.new("UIStroke", gotoBtn) gotoGlow.Thickness = 2 gotoGlow.Color = Color3.fromRGB(255, 255, 255) gotoGlow.Transparency = 1 local isToggled = false local loopConnection local targetPlayer local function updatePlayerList() for _, child in pairs(dropdownList:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local count = 0 for _, player in pairs(Players:GetPlayers()) do if player ~= lp then local btn = Instance.new("TextButton", dropdownList) btn.Size = UDim2.new(1, -10, 0, 30) btn.Position = UDim2.new(0, 5, 0, count * 35) btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80) btn.Text = player.Name .. " (" .. player.DisplayName .. ")" btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.Gotham btn.TextSize = 14 btn.ZIndex = 100002 local btnCorner = Instance.new("UICorner", btn) btnCorner.CornerRadius = UDim.new(0, 6) local function selectPlayer() if tick() - lastClickTime < debounceTime then return end lastClickTime = tick() clickSound:Play() dropdownBtn.Text = player.Name targetPlayer = player dropdownList.Visible = false dropdownList.Size = UDim2.new(1, -20, 0, 0) end btn.MouseButton1Click:Connect(selectPlayer) btn.TouchTap:Connect(selectPlayer) count = count + 1 end end dropdownList.CanvasSize = UDim2.new(0, 0, 0, count * 35 + 10) end local function toggleDropdown() if tick() - lastClickTime < debounceTime then return end lastClickTime = tick() clickSound:Play() dropdownList.Visible = not dropdownList.Visible dropdownList.Size = dropdownList.Visible and UDim2.new(1, -20, 0, math.min(150, #Players:GetPlayers() * 35)) or UDim2.new(1, -20, 0, 0) if dropdownList.Visible then updatePlayerList() end end dropdownBtn.MouseButton1Click:Connect(toggleDropdown) dropdownBtn.TouchTap:Connect(toggleDropdown) local function startLoop() local localRoot = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") local targetRoot = targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") if not localRoot or not targetRoot then showNotification("Player or character not found!", Color3.fromRGB(255, 50, 50)) return end local tweenInfo = TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut) local tween = TweenService:Create(localRoot, tweenInfo, {CFrame = targetRoot.CFrame * CFrame.new(0, 3, -6)}) tween:Play() tween.Completed:Connect(function() if isToggled then startLoop() end end) end local function activateGoto() if tick() - lastClickTime < debounceTime then return end lastClickTime = tick() clickSound:Play() isToggled = not isToggled buttonStates[gotoBtn] = isToggled gotoBtn.BackgroundColor3 = isToggled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(70, 70, 70) gotoBtn.Text = isToggled and "[ON] Loop Tween Goto" or "Loop Tween Goto" gotoGlow.Transparency = isToggled and 0.4 or 1 showNotification("Loop Tween Goto " .. (isToggled and "Activated" or "Deactivated"), isToggled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 50, 50)) print("🔘 Loop Tween Goto toggled to: " .. tostring(isToggled)) if isToggled then if not targetPlayer then showNotification("Select a player first!", Color3.fromRGB(255, 50, 50)) isToggled = false buttonStates[gotoBtn] = false gotoBtn.BackgroundColor3 = Color3