-- LocalScript (place in StarterPlayerScripts or StarterGui) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local TeleportService = game:GetService("TeleportService") local StarterGui = game:GetService("StarterGui") local HttpService = game:GetService("HttpService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Variables for toggles local flyEnabled = false local noclipEnabled = false local infiniteJumpEnabled = false local espEnabled = false local fullBrightEnabled = false local clickTpEnabled = false local xrayEnabled = false local spinbotEnabled = false local tracersEnabled = false local invisibleEnabled = false local silentAimEnabled = false local flySpeed = 50 local flyBodyGyro = nil local flyBodyVelocity = nil local spinSpeed = 20 -- Store original values local originalAmbient = Lighting.Ambient local originalBrightness = Lighting.Brightness local originalFogEnd = Lighting.FogEnd local originalGlobalShadows = Lighting.GlobalShadows local originalGravity = Workspace.Gravity local originalFOV = Workspace.CurrentCamera.FieldOfView -- ESP highlights storage local espHighlights = {} -- X-Ray storage local xrayParts = {} -- Tracers storage local tracerLines = {} -- Invisible storage local originalTransparencies = {} -- Silent aim target local silentAimTarget = nil -- Create ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "BobHub" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui ------------------------------------------------------- -- NOTIFICATION SYSTEM ------------------------------------------------------- local notificationContainer = Instance.new("Frame") notificationContainer.Name = "NotificationContainer" notificationContainer.Size = UDim2.new(0, 280, 1, 0) notificationContainer.Position = UDim2.new(1, -290, 0, 0) notificationContainer.BackgroundTransparency = 1 notificationContainer.Parent = screenGui local notificationLayout = Instance.new("UIListLayout") notificationLayout.Padding = UDim.new(0, 8) notificationLayout.SortOrder = Enum.SortOrder.LayoutOrder notificationLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom notificationLayout.Parent = notificationContainer local notificationPadding = Instance.new("UIPadding") notificationPadding.PaddingBottom = UDim.new(0, 10) notificationPadding.PaddingRight = UDim.new(0, 5) notificationPadding.Parent = notificationContainer local notifCount = 0 local function sendNotification(title, message, duration, color) duration = duration or 3 color = color or Color3.fromRGB(0, 170, 100) notifCount = notifCount + 1 local notifFrame = Instance.new("Frame") notifFrame.Name = "Notification_" .. notifCount notifFrame.Size = UDim2.new(1, 0, 0, 0) notifFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) notifFrame.BorderSizePixel = 0 notifFrame.ClipsDescendants = true notifFrame.LayoutOrder = notifCount notifFrame.Parent = notificationContainer local accentBar = Instance.new("Frame") accentBar.Name = "AccentBar" accentBar.Size = UDim2.new(0, 3, 1, 0) accentBar.Position = UDim2.new(0, 0, 0, 0) accentBar.BackgroundColor3 = color accentBar.BorderSizePixel = 0 accentBar.Parent = notifFrame local notifTitle = Instance.new("TextLabel") notifTitle.Name = "Title" notifTitle.Size = UDim2.new(1, -15, 0, 20) notifTitle.Position = UDim2.new(0, 12, 0, 8) notifTitle.BackgroundTransparency = 1 notifTitle.Text = title notifTitle.TextColor3 = Color3.fromRGB(255, 255, 255) notifTitle.TextSize = 14 notifTitle.Font = Enum.Font.GothamSemibold notifTitle.TextXAlignment = Enum.TextXAlignment.Left notifTitle.Parent = notifFrame local notifMessage = Instance.new("TextLabel") notifMessage.Name = "Message" notifMessage.Size = UDim2.new(1, -15, 0, 18) notifMessage.Position = UDim2.new(0, 12, 0, 28) notifMessage.BackgroundTransparency = 1 notifMessage.Text = message notifMessage.TextColor3 = Color3.fromRGB(180, 180, 180) notifMessage.TextSize = 12 notifMessage.Font = Enum.Font.GothamSemibold notifMessage.TextXAlignment = Enum.TextXAlignment.Left notifMessage.TextWrapped = true notifMessage.Parent = notifFrame local progressBar = Instance.new("Frame") progressBar.Name = "ProgressBar" progressBar.Size = UDim2.new(1, 0, 0, 2) progressBar.Position = UDim2.new(0, 0, 1, -2) progressBar.BackgroundColor3 = color progressBar.BorderSizePixel = 0 progressBar.Parent = notifFrame -- Animate in task.spawn(function() for i = 0, 55, 5 do notifFrame.Size = UDim2.new(1, 0, 0, i) task.wait(0.01) end notifFrame.Size = UDim2.new(1, 0, 0, 55) -- Progress bar countdown local elapsed = 0 local step = 0.03 while elapsed < duration do elapsed = elapsed + step local progress = 1 - (elapsed / duration) progressBar.Size = UDim2.new(math.max(progress, 0), 0, 0, 2) task.wait(step) end -- Animate out for i = 55, 0, -5 do notifFrame.Size = UDim2.new(1, 0, 0, i) task.wait(0.01) end notifFrame:Destroy() end) end -- Main Frame local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 400, 0, 500) mainFrame.Position = UDim2.new(0.5, -200, 0.5, -250) mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) mainFrame.BorderSizePixel = 0 mainFrame.Visible = true mainFrame.Parent = screenGui -- Title Bar local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 35) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.BackgroundColor3 = Color3.fromRGB(10, 10, 10) titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame -- Title Text local titleText = Instance.new("TextLabel") titleText.Name = "TitleText" titleText.Size = UDim2.new(1, -40, 1, 0) titleText.Position = UDim2.new(0, 10, 0, 0) titleText.BackgroundTransparency = 1 titleText.Text = "Bob Hub" titleText.TextColor3 = Color3.fromRGB(255, 255, 255) titleText.TextSize = 18 titleText.Font = Enum.Font.GothamSemibold titleText.TextXAlignment = Enum.TextXAlignment.Left titleText.Parent = titleBar -- Script Count Label local scriptCount = Instance.new("TextLabel") scriptCount.Name = "ScriptCount" scriptCount.Size = UDim2.new(0, 80, 1, 0) scriptCount.Position = UDim2.new(1, -120, 0, 0) scriptCount.BackgroundTransparency = 1 scriptCount.Text = "22 Scripts" scriptCount.TextColor3 = Color3.fromRGB(100, 100, 100) scriptCount.TextSize = 12 scriptCount.Font = Enum.Font.GothamSemibold scriptCount.TextXAlignment = Enum.TextXAlignment.Right scriptCount.Parent = titleBar -- Close Button local closeButton = Instance.new("TextButton") closeButton.Name = "CloseButton" closeButton.Size = UDim2.new(0, 35, 0, 35) closeButton.Position = UDim2.new(1, -35, 0, 0) closeButton.BackgroundColor3 = Color3.fromRGB(10, 10, 10) closeButton.BorderSizePixel = 0 closeButton.Text = "X" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextSize = 16 closeButton.Font = Enum.Font.GothamSemibold closeButton.Parent = titleBar closeButton.MouseEnter:Connect(function() closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) end) closeButton.MouseLeave:Connect(function() closeButton.BackgroundColor3 = Color3.fromRGB(10, 10, 10) end) -- Credits Bar local creditsBar = Instance.new("Frame") creditsBar.Name = "CreditsBar" creditsBar.Size = UDim2.new(1, 0, 0, 20) creditsBar.Position = UDim2.new(0, 0, 0, 35) creditsBar.BackgroundColor3 = Color3.fromRGB(12, 12, 12) creditsBar.BorderSizePixel = 0 creditsBar.Parent = mainFrame local creditsText = Instance.new("TextLabel") creditsText.Name = "CreditsText" creditsText.Size = UDim2.new(1, -20, 1, 0) creditsText.Position = UDim2.new(0, 10, 0, 0) creditsText.BackgroundTransparency = 1 creditsText.Text = "Made by cat_givemyrobox" creditsText.TextColor3 = Color3.fromRGB(80, 80, 80) creditsText.TextSize = 11 creditsText.Font = Enum.Font.GothamSemibold creditsText.TextXAlignment = Enum.TextXAlignment.Left creditsText.Parent = creditsBar local versionText = Instance.new("TextLabel") versionText.Name = "VersionText" versionText.Size = UDim2.new(1, -10, 1, 0) versionText.Position = UDim2.new(0, 0, 0, 0) versionText.BackgroundTransparency = 1 versionText.Text = "v1.0" versionText.TextColor3 = Color3.fromRGB(80, 80, 80) versionText.TextSize = 11 versionText.Font = Enum.Font.GothamSemibold versionText.TextXAlignment = Enum.TextXAlignment.Right versionText.Parent = creditsBar -- Search Bar Frame local searchFrame = Instance.new("Frame") searchFrame.Name = "SearchFrame" searchFrame.Size = UDim2.new(1, -20, 0, 30) searchFrame.Position = UDim2.new(0, 10, 0, 65) searchFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) searchFrame.BorderSizePixel = 0 searchFrame.Parent = mainFrame -- Search Icon local searchIcon = Instance.new("TextLabel") searchIcon.Name = "SearchIcon" searchIcon.Size = UDim2.new(0, 30, 1, 0) searchIcon.Position = UDim2.new(0, 0, 0, 0) searchIcon.BackgroundTransparency = 1 searchIcon.Text = "🔍" searchIcon.TextColor3 = Color3.fromRGB(150, 150, 150) searchIcon.TextSize = 14 searchIcon.Font = Enum.Font.GothamSemibold searchIcon.Parent = searchFrame -- Search TextBox local searchBox = Instance.new("TextBox") searchBox.Name = "SearchBox" searchBox.Size = UDim2.new(1, -35, 1, 0) searchBox.Position = UDim2.new(0, 30, 0, 0) searchBox.BackgroundTransparency = 1 searchBox.Text = "" searchBox.PlaceholderText = "Search scripts..." searchBox.PlaceholderColor3 = Color3.fromRGB(100, 100, 100) searchBox.TextColor3 = Color3.fromRGB(255, 255, 255) searchBox.TextSize = 14 searchBox.Font = Enum.Font.GothamSemibold searchBox.TextXAlignment = Enum.TextXAlignment.Left searchBox.ClearTextOnFocus = false searchBox.Parent = searchFrame -- Scripts Container (ScrollingFrame) local scriptsContainer = Instance.new("ScrollingFrame") scriptsContainer.Name = "ScriptsContainer" scriptsContainer.Size = UDim2.new(1, -20, 1, -115) scriptsContainer.Position = UDim2.new(0, 10, 0, 105) scriptsContainer.BackgroundColor3 = Color3.fromRGB(15, 15, 15) scriptsContainer.BorderSizePixel = 0 scriptsContainer.ScrollBarThickness = 4 scriptsContainer.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100) scriptsContainer.CanvasSize = UDim2.new(0, 0, 0, 0) scriptsContainer.AutomaticCanvasSize = Enum.AutomaticSize.Y scriptsContainer.Parent = mainFrame -- UIListLayout for scripts local listLayout = Instance.new("UIListLayout") listLayout.Name = "ListLayout" listLayout.Padding = UDim.new(0, 5) listLayout.SortOrder = Enum.SortOrder.LayoutOrder listLayout.Parent = scriptsContainer -- UIPadding for scripts container local containerPadding = Instance.new("UIPadding") containerPadding.PaddingTop = UDim.new(0, 5) containerPadding.PaddingBottom = UDim.new(0, 5) containerPadding.PaddingLeft = UDim.new(0, 5) containerPadding.PaddingRight = UDim.new(0, 5) containerPadding.Parent = scriptsContainer -- Storage for all items local allItems = {} -- Active dropdowns tracking local activeDropdown = nil ------------------------------------------------------- -- UTILITY FUNCTIONS ------------------------------------------------------- local function roundNumber(num, decimals) local mult = 10 ^ (decimals or 0) return math.floor(num * mult + 0.5) / mult end local function closeAllDropdowns() if activeDropdown then activeDropdown.Visible = false activeDropdown = nil end end ------------------------------------------------------- -- TOGGLE BUTTON CREATION FUNCTION ------------------------------------------------------- local function createToggle(name, description, layoutOrder, callback) local toggleFrame = Instance.new("Frame") toggleFrame.Name = name .. "Toggle" toggleFrame.Size = UDim2.new(1, -10, 0, 45) toggleFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) toggleFrame.BorderSizePixel = 0 toggleFrame.LayoutOrder = layoutOrder toggleFrame.Parent = scriptsContainer local toggleName = Instance.new("TextLabel") toggleName.Name = "ToggleName" toggleName.Size = UDim2.new(1, -60, 0, 20) toggleName.Position = UDim2.new(0, 10, 0, 5) toggleName.BackgroundTransparency = 1 toggleName.Text = name toggleName.TextColor3 = Color3.fromRGB(255, 255, 255) toggleName.TextSize = 14 toggleName.Font = Enum.Font.GothamSemibold toggleName.TextXAlignment = Enum.TextXAlignment.Left toggleName.Parent = toggleFrame local toggleDesc = Instance.new("TextLabel") toggleDesc.Name = "ToggleDesc" toggleDesc.Size = UDim2.new(1, -60, 0, 15) toggleDesc.Position = UDim2.new(0, 10, 0, 25) toggleDesc.BackgroundTransparency = 1 toggleDesc.Text = description toggleDesc.TextColor3 = Color3.fromRGB(100, 100, 100) toggleDesc.TextSize = 11 toggleDesc.Font = Enum.Font.GothamSemibold toggleDesc.TextXAlignment = Enum.TextXAlignment.Left toggleDesc.Parent = toggleFrame local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0, 45, 0, 22) toggleButton.Position = UDim2.new(1, -55, 0.5, -11) toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) toggleButton.BorderSizePixel = 0 toggleButton.Text = "" toggleButton.Parent = toggleFrame local toggleCircle = Instance.new("Frame") toggleCircle.Name = "ToggleCircle" toggleCircle.Size = UDim2.new(0, 18, 0, 18) toggleCircle.Position = UDim2.new(0, 2, 0.5, -9) toggleCircle.BackgroundColor3 = Color3.fromRGB(200, 200, 200) toggleCircle.BorderSizePixel = 0 toggleCircle.Parent = toggleButton local isEnabled = false local function updateToggle() if isEnabled then toggleButton.BackgroundColor3 = Color3.fromRGB(0, 170, 100) toggleCircle.Position = UDim2.new(1, -20, 0.5, -9) toggleCircle.BackgroundColor3 = Color3.fromRGB(255, 255, 255) else toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) toggleCircle.Position = UDim2.new(0, 2, 0.5, -9) toggleCircle.BackgroundColor3 = Color3.fromRGB(200, 200, 200) end end toggleButton.MouseButton1Click:Connect(function() isEnabled = not isEnabled updateToggle() callback(isEnabled) end) toggleFrame.MouseEnter:Connect(function() toggleFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end) toggleFrame.MouseLeave:Connect(function() toggleFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) table.insert(allItems, {frame = toggleFrame, name = name, description = description}) return toggleFrame end ------------------------------------------------------- -- TEXTBOX INPUT CREATION FUNCTION ------------------------------------------------------- local function createTextInput(name, description, layoutOrder, defaultValue, callback) local inputFrame = Instance.new("Frame") inputFrame.Name = name .. "Input" inputFrame.Size = UDim2.new(1, -10, 0, 45) inputFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) inputFrame.BorderSizePixel = 0 inputFrame.LayoutOrder = layoutOrder inputFrame.Parent = scriptsContainer local inputName = Instance.new("TextLabel") inputName.Name = "InputName" inputName.Size = UDim2.new(1, -90, 0, 20) inputName.Position = UDim2.new(0, 10, 0, 5) inputName.BackgroundTransparency = 1 inputName.Text = name inputName.TextColor3 = Color3.fromRGB(255, 255, 255) inputName.TextSize = 14 inputName.Font = Enum.Font.GothamSemibold inputName.TextXAlignment = Enum.TextXAlignment.Left inputName.Parent = inputFrame local inputDesc = Instance.new("TextLabel") inputDesc.Name = "InputDesc" inputDesc.Size = UDim2.new(1, -90, 0, 15) inputDesc.Position = UDim2.new(0, 10, 0, 25) inputDesc.BackgroundTransparency = 1 inputDesc.Text = description inputDesc.TextColor3 = Color3.fromRGB(100, 100, 100) inputDesc.TextSize = 11 inputDesc.Font = Enum.Font.GothamSemibold inputDesc.TextXAlignment = Enum.TextXAlignment.Left inputDesc.Parent = inputFrame local textBox = Instance.new("TextBox") textBox.Name = "TextBox" textBox.Size = UDim2.new(0, 70, 0, 28) textBox.Position = UDim2.new(1, -80, 0.5, -14) textBox.BackgroundColor3 = Color3.fromRGB(15, 15, 15) textBox.BorderSizePixel = 0 textBox.Text = tostring(defaultValue) textBox.TextColor3 = Color3.fromRGB(255, 255, 255) textBox.PlaceholderText = "..." textBox.PlaceholderColor3 = Color3.fromRGB(100, 100, 100) textBox.TextSize = 14 textBox.Font = Enum.Font.GothamSemibold textBox.ClearTextOnFocus = false textBox.Parent = inputFrame textBox.FocusLost:Connect(function(enterPressed) local value = tonumber(textBox.Text) if value then callback(value) textBox.TextColor3 = Color3.fromRGB(0, 200, 100) sendNotification(name, "Set to " .. tostring(value), 2, Color3.fromRGB(0, 170, 100)) task.spawn(function() task.wait(0.3) textBox.TextColor3 = Color3.fromRGB(255, 255, 255) end) else textBox.TextColor3 = Color3.fromRGB(255, 80, 80) sendNotification(name, "Invalid value!", 2, Color3.fromRGB(255, 80, 80)) task.spawn(function() task.wait(0.3) textBox.TextColor3 = Color3.fromRGB(255, 255, 255) end) end end) textBox.Focused:Connect(function() textBox.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) textBox.FocusLost:Connect(function() textBox.BackgroundColor3 = Color3.fromRGB(15, 15, 15) end) inputFrame.MouseEnter:Connect(function() inputFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end) inputFrame.MouseLeave:Connect(function() inputFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) table.insert(allItems, {frame = inputFrame, name = name, description = description}) return inputFrame end ------------------------------------------------------- -- BUTTON CREATION FUNCTION ------------------------------------------------------- local function createButton(name, description, layoutOrder, buttonText, callback) local buttonFrame = Instance.new("Frame") buttonFrame.Name = name .. "Button" buttonFrame.Size = UDim2.new(1, -10, 0, 45) buttonFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) buttonFrame.BorderSizePixel = 0 buttonFrame.LayoutOrder = layoutOrder buttonFrame.Parent = scriptsContainer local buttonName = Instance.new("TextLabel") buttonName.Name = "ButtonName" buttonName.Size = UDim2.new(1, -90, 0, 20) buttonName.Position = UDim2.new(0, 10, 0, 5) buttonName.BackgroundTransparency = 1 buttonName.Text = name buttonName.TextColor3 = Color3.fromRGB(255, 255, 255) buttonName.TextSize = 14 buttonName.Font = Enum.Font.GothamSemibold buttonName.TextXAlignment = Enum.TextXAlignment.Left buttonName.Parent = buttonFrame local buttonDesc = Instance.new("TextLabel") buttonDesc.Name = "ButtonDesc" buttonDesc.Size = UDim2.new(1, -90, 0, 15) buttonDesc.Position = UDim2.new(0, 10, 0, 25) buttonDesc.BackgroundTransparency = 1 buttonDesc.Text = description buttonDesc.TextColor3 = Color3.fromRGB(100, 100, 100) buttonDesc.TextSize = 11 buttonDesc.Font = Enum.Font.GothamSemibold buttonDesc.TextXAlignment = Enum.TextXAlignment.Left buttonDesc.Parent = buttonFrame local actionButton = Instance.new("TextButton") actionButton.Name = "ActionButton" actionButton.Size = UDim2.new(0, 70, 0, 28) actionButton.Position = UDim2.new(1, -80, 0.5, -14) actionButton.BackgroundColor3 = Color3.fromRGB(0, 120, 200) actionButton.BorderSizePixel = 0 actionButton.Text = buttonText actionButton.TextColor3 = Color3.fromRGB(255, 255, 255) actionButton.TextSize = 12 actionButton.Font = Enum.Font.GothamSemibold actionButton.Parent = buttonFrame actionButton.MouseButton1Click:Connect(function() actionButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100) actionButton.Text = "..." task.spawn(function() callback() task.wait(0.5) actionButton.BackgroundColor3 = Color3.fromRGB(0, 120, 200) actionButton.Text = buttonText end) end) actionButton.MouseEnter:Connect(function() actionButton.BackgroundColor3 = Color3.fromRGB(0, 150, 230) end) actionButton.MouseLeave:Connect(function() actionButton.BackgroundColor3 = Color3.fromRGB(0, 120, 200) end) buttonFrame.MouseEnter:Connect(function() buttonFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end) buttonFrame.MouseLeave:Connect(function() buttonFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) table.insert(allItems, {frame = buttonFrame, name = name, description = description}) return buttonFrame end ------------------------------------------------------- -- DROPDOWN CREATION FUNCTION (SCROLLABLE) ------------------------------------------------------- local function createDropdown(name, description, layoutOrder, getOptions, callback) local dropdownFrame = Instance.new("Frame") dropdownFrame.Name = name .. "Dropdown" dropdownFrame.Size = UDim2.new(1, -10, 0, 45) dropdownFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) dropdownFrame.BorderSizePixel = 0 dropdownFrame.LayoutOrder = layoutOrder dropdownFrame.ClipsDescendants = false dropdownFrame.ZIndex = 1 dropdownFrame.Parent = scriptsContainer local dropdownName = Instance.new("TextLabel") dropdownName.Name = "DropdownName" dropdownName.Size = UDim2.new(1, -130, 0, 20) dropdownName.Position = UDim2.new(0, 10, 0, 5) dropdownName.BackgroundTransparency = 1 dropdownName.Text = name dropdownName.TextColor3 = Color3.fromRGB(255, 255, 255) dropdownName.TextSize = 14 dropdownName.Font = Enum.Font.GothamSemibold dropdownName.TextXAlignment = Enum.TextXAlignment.Left dropdownName.ZIndex = 1 dropdownName.Parent = dropdownFrame local dropdownDesc = Instance.new("TextLabel") dropdownDesc.Name = "DropdownDesc" dropdownDesc.Size = UDim2.new(1, -130, 0, 15) dropdownDesc.Position = UDim2.new(0, 10, 0, 25) dropdownDesc.BackgroundTransparency = 1 dropdownDesc.Text = description dropdownDesc.TextColor3 = Color3.fromRGB(100, 100, 100) dropdownDesc.TextSize = 11 dropdownDesc.Font = Enum.Font.GothamSemibold dropdownDesc.TextXAlignment = Enum.TextXAlignment.Left dropdownDesc.ZIndex = 1 dropdownDesc.Parent = dropdownFrame local dropdownButton = Instance.new("TextButton") dropdownButton.Name = "DropdownButton" dropdownButton.Size = UDim2.new(0, 110, 0, 28) dropdownButton.Position = UDim2.new(1, -120, 0.5, -14) dropdownButton.BackgroundColor3 = Color3.fromRGB(15, 15, 15) dropdownButton.BorderSizePixel = 0 dropdownButton.Text = "Select ▼" dropdownButton.TextColor3 = Color3.fromRGB(255, 255, 255) dropdownButton.TextSize = 12 dropdownButton.Font = Enum.Font.GothamSemibold dropdownButton.ZIndex = 1 dropdownButton.Parent = dropdownFrame local dropdownContainer = Instance.new("Frame") dropdownContainer.Name = "DropdownContainer_" .. name dropdownContainer.Size = UDim2.new(0, 140, 0, 150) dropdownContainer.BackgroundColor3 = Color3.fromRGB(15, 15, 15) dropdownContainer.BorderSizePixel = 0 dropdownContainer.Visible = false dropdownContainer.ZIndex = 100 dropdownContainer.Parent = screenGui local dropdownScroll = Instance.new("ScrollingFrame") dropdownScroll.Name = "DropdownScroll" dropdownScroll.Size = UDim2.new(1, 0, 1, 0) dropdownScroll.Position = UDim2.new(0, 0, 0, 0) dropdownScroll.BackgroundTransparency = 1 dropdownScroll.BorderSizePixel = 0 dropdownScroll.ScrollBarThickness = 3 dropdownScroll.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100) dropdownScroll.CanvasSize = UDim2.new(0, 0, 0, 0) dropdownScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y dropdownScroll.ZIndex = 101 dropdownScroll.Parent = dropdownContainer local listLayoutDropdown = Instance.new("UIListLayout") listLayoutDropdown.Padding = UDim.new(0, 2) listLayoutDropdown.SortOrder = Enum.SortOrder.LayoutOrder listLayoutDropdown.Parent = dropdownScroll local isOpen = false local function updateDropdownPosition() local buttonAbsPos = dropdownButton.AbsolutePosition local buttonAbsSize = dropdownButton.AbsoluteSize dropdownContainer.Position = UDim2.new(0, buttonAbsPos.X, 0, buttonAbsPos.Y + buttonAbsSize.Y + 5) end local function refreshDropdown() for _, child in pairs(dropdownScroll:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local options = getOptions() local itemHeight = 28 for i, option in ipairs(options) do local optionButton = Instance.new("TextButton") optionButton.Name = "Option_" .. tostring(i) optionButton.Size = UDim2.new(1, -6, 0, itemHeight) optionButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25) optionButton.BorderSizePixel = 0 optionButton.Text = option optionButton.TextColor3 = Color3.fromRGB(255, 255, 255) optionButton.TextSize = 11 optionButton.Font = Enum.Font.GothamSemibold optionButton.ZIndex = 102 optionButton.LayoutOrder = i optionButton.Parent = dropdownScroll optionButton.MouseEnter:Connect(function() optionButton.BackgroundColor3 = Color3.fromRGB(0, 170, 100) end) optionButton.MouseLeave:Connect(function() optionButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) optionButton.MouseButton1Click:Connect(function() local displayText = option if #displayText > 10 then displayText = string.sub(displayText, 1, 8) .. ".." end dropdownButton.Text = displayText .. " ▼" dropdownButton.TextColor3 = Color3.fromRGB(0, 200, 100) task.spawn(function() task.wait(0.3) dropdownButton.TextColor3 = Color3.fromRGB(255, 255, 255) end) isOpen = false dropdownContainer.Visible = false activeDropdown = nil callback(option) end) end local totalHeight = #options * (itemHeight + 2) local maxHeight = 150 dropdownContainer.Size = UDim2.new(0, 140, 0, math.min(totalHeight, maxHeight)) end dropdownButton.MouseButton1Click:Connect(function() if activeDropdown and activeDropdown ~= dropdownContainer then activeDropdown.Visible = false end isOpen = not isOpen if isOpen then updateDropdownPosition() refreshDropdown() activeDropdown = dropdownContainer else activeDropdown = nil end dropdownContainer.Visible = isOpen end) dropdownButton.MouseEnter:Connect(function() dropdownButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) dropdownButton.MouseLeave:Connect(function() dropdownButton.BackgroundColor3 = Color3.fromRGB(15, 15, 15) end) dropdownFrame.MouseEnter:Connect(function() dropdownFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end) dropdownFrame.MouseLeave:Connect(function() dropdownFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) end) table.insert(allItems, {frame = dropdownFrame, name = name, description = description}) return dropdownFrame end ------------------------------------------------------- -- FLY FUNCTIONS ------------------------------------------------------- local function startFly() local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChild("Humanoid") if not humanoidRootPart or not humanoid then return end flyBodyGyro = Instance.new("BodyGyro") flyBodyGyro.P = 9e4 flyBodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9) flyBodyGyro.CFrame = humanoidRootPart.CFrame flyBodyGyro.Parent = humanoidRootPart flyBodyVelocity = Instance.new("BodyVelocity") flyBodyVelocity.Velocity = Vector3.new(0, 0, 0) flyBodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9) flyBodyVelocity.Parent = humanoidRootPart humanoid.PlatformStand = true end local function stopFly() local character = player.Character if not character then return end local humanoid = character:FindFirstChild("Humanoid") if flyBodyGyro then flyBodyGyro:Destroy() flyBodyGyro = nil end if flyBodyVelocity then flyBodyVelocity:Destroy() flyBodyVelocity = nil end if humanoid then humanoid.PlatformStand = false end end local function updateFly() if not flyEnabled then return end local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart or not flyBodyVelocity or not flyBodyGyro then return end local camera = Workspace.CurrentCamera local moveDirection = Vector3.new(0, 0, 0) if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection = moveDirection + camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection = moveDirection - camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDirection = moveDirection - camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDirection = moveDirection + camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDirection = moveDirection + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then moveDirection = moveDirection - Vector3.new(0, 1, 0) end if moveDirection.Magnitude > 0 then moveDirection = moveDirection.Unit end flyBodyVelocity.Velocity = moveDirection * flySpeed flyBodyGyro.CFrame = camera.CFrame end ------------------------------------------------------- -- NOCLIP FUNCTION ------------------------------------------------------- local function updateNoclip() if not noclipEnabled then return end local character = player.Character if not character then return end for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end ------------------------------------------------------- -- INFINITE JUMP FUNCTION ------------------------------------------------------- UserInputService.JumpRequest:Connect(function() if infiniteJumpEnabled then local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end end end) ------------------------------------------------------- -- ESP FUNCTIONS ------------------------------------------------------- local function createESP() for _, targetPlayer in pairs(Players:GetPlayers()) do if targetPlayer ~= player and targetPlayer.Character then if not targetPlayer.Character:FindFirstChild("ESP_" .. targetPlayer.Name) then local highlight = Instance.new("Highlight") highlight.Name = "ESP_" .. targetPlayer.Name highlight.Adornee = targetPlayer.Character highlight.FillColor = Color3.fromRGB(255, 0, 0) highlight.FillTransparency = 0.5 highlight.OutlineColor = Color3.fromRGB(255, 255, 255) highlight.OutlineTransparency = 0 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Parent = targetPlayer.Character espHighlights[targetPlayer] = highlight end if not targetPlayer.Character:FindFirstChild("ESP_Name_" .. targetPlayer.Name) then local head = targetPlayer.Character:FindFirstChild("Head") if head then local billboardGui = Instance.new("BillboardGui") billboardGui.Name = "ESP_Name_" .. targetPlayer.Name billboardGui.Adornee = head billboardGui.Size = UDim2.new(0, 100, 0, 40) billboardGui.StudsOffset = Vector3.new(0, 2, 0) billboardGui.AlwaysOnTop = true billboardGui.Parent = targetPlayer.Character local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, 0, 0.5, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = targetPlayer.Name nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) nameLabel.TextSize = 14 nameLabel.Font = Enum.Font.GothamSemibold nameLabel.Parent = billboardGui local distanceLabel = Instance.new("TextLabel") distanceLabel.Name = "DistanceLabel" distanceLabel.Size = UDim2.new(1, 0, 0.5, 0) distanceLabel.Position = UDim2.new(0, 0, 0.5, 0) distanceLabel.BackgroundTransparency = 1 distanceLabel.Text = "0m" distanceLabel.TextColor3 = Color3.fromRGB(200, 200, 200) distanceLabel.TextSize = 12 distanceLabel.Font = Enum.Font.GothamSemibold distanceLabel.Parent = billboardGui end end end end end local function removeESP() for _, targetPlayer in pairs(Players:GetPlayers()) do if targetPlayer.Character then local highlight = targetPlayer.Character:FindFirstChild("ESP_" .. targetPlayer.Name) if highlight then highlight:Destroy() end local nameTag = targetPlayer.Character:FindFirstChild("ESP_Name_" .. targetPlayer.Name) if nameTag then nameTag:Destroy() end end end espHighlights = {} end local function updateESP() if not espEnabled then return end local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end for _, targetPlayer in pairs(Players:GetPlayers()) do if targetPlayer ~= player and targetPlayer.Character then local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart") local billboardGui = targetPlayer.Character:FindFirstChild("ESP_Name_" .. targetPlayer.Name) if targetHRP and billboardGui then local distance = math.floor((humanoidRootPart.Position - targetHRP.Position).Magnitude) local distanceLabel = billboardGui:FindFirstChild("DistanceLabel") if distanceLabel then distanceLabel.Text = distance .. "m" end end if not targetPlayer.Character:FindFirstChild("ESP_" .. targetPlayer.Name) then createESP() end end end end ------------------------------------------------------- -- FULLBRIGHT FUNCTIONS ------------------------------------------------------- local function enableFullBright() Lighting.Ambient = Color3.fromRGB(255, 255, 255) Lighting.Brightness = 2 Lighting.FogEnd = 100000 Lighting.GlobalShadows = false for _, effect in pairs(Lighting:GetChildren()) do if effect:IsA("Atmosphere") or effect:IsA("BloomEffect") or effect:IsA("BlurEffect") or effect:IsA("ColorCorrectionEffect") then effect.Enabled = false end end end local function disableFullBright() Lighting.Ambient = originalAmbient Lighting.Brightness = originalBrightness Lighting.FogEnd = originalFogEnd Lighting.GlobalShadows = originalGlobalShadows for _, effect in pairs(Lighting:GetChildren()) do if effect:IsA("Atmosphere") or effect:IsA("BloomEffect") or effect:IsA("BlurEffect") or effect:IsA("ColorCorrectionEffect") then effect.Enabled = true end end end ------------------------------------------------------- -- CLICK TO TELEPORT FUNCTION ------------------------------------------------------- local mouse = player:GetMouse() mouse.Button1Down:Connect(function() if clickTpEnabled then local character = player.Character if character then local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart and mouse.Hit then humanoidRootPart.CFrame = mouse.Hit + Vector3.new(0, 3, 0) end end end end) ------------------------------------------------------- -- X-RAY FUNCTIONS ------------------------------------------------------- local function enableXray() for _, obj in pairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") then local isCharacterPart = false for _, p in pairs(Players:GetPlayers()) do if p.Character and obj:IsDescendantOf(p.Character) then isCharacterPart = true break end end if not isCharacterPart and obj.Transparency < 0.7 then xrayParts[obj] = obj.Transparency obj.Transparency = 0.7 end end end end local function disableXray() for obj, transparency in pairs(xrayParts) do if obj and obj.Parent then obj.Transparency = transparency end end xrayParts = {} end ------------------------------------------------------- -- SPINBOT FUNCTIONS ------------------------------------------------------- local function updateSpinbot() if not spinbotEnabled then return end local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end humanoidRootPart.CFrame = humanoidRootPart.CFrame * CFrame.Angles(0, math.rad(spinSpeed), 0) end ------------------------------------------------------- -- TRACERS FUNCTIONS ------------------------------------------------------- local tracersFolder = Instance.new("Folder") tracersFolder.Name = "TracersFolder" tracersFolder.Parent = screenGui local function updateTracers() for _, line in pairs(tracerLines) do if line and line.Parent then line:Destroy() end end tracerLines = {} if not tracersEnabled then return end local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end local camera = Workspace.CurrentCamera for _, targetPlayer in pairs(Players:GetPlayers()) do if targetPlayer ~= player and targetPlayer.Character then local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart") if targetHRP then local screenPos, onScreen = camera:WorldToViewportPoint(targetHRP.Position) if screenPos.Z > 0 then local line = Instance.new("Frame") line.Name = "Tracer_" .. targetPlayer.Name line.BackgroundColor3 = Color3.fromRGB(255, 0, 0) line.BorderSizePixel = 0 line.AnchorPoint = Vector2.new(0.5, 0.5) line.Parent = tracersFolder local startPosTracer = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y) local endPosTracer = Vector2.new(screenPos.X, screenPos.Y) local dist = (endPosTracer - startPosTracer).Magnitude local angle = math.atan2(endPosTracer.Y - startPosTracer.Y, endPosTracer.X - startPosTracer.X) line.Size = UDim2.new(0, dist, 0, 2) line.Position = UDim2.new(0, (startPosTracer.X + endPosTracer.X) / 2, 0, (startPosTracer.Y + endPosTracer.Y) / 2) line.Rotation = math.deg(angle) table.insert(tracerLines, line) end end end end end ------------------------------------------------------- -- INVISIBLE CHARACTER FUNCTIONS ------------------------------------------------------- local function enableInvisible() local character = player.Character if not character then return end originalTransparencies = {} for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then originalTransparencies[part] = part.Transparency part.Transparency = 1 elseif part:IsA("Decal") or part:IsA("Texture") then originalTransparencies[part] = part.Transparency part.Transparency = 1 end end local head = character:FindFirstChild("Head") if head then local face = head:FindFirstChild("face") if face then originalTransparencies[face] = face.Transparency face.Transparency = 1 end end end local function disableInvisible() for part, transparency in pairs(originalTransparencies) do if part and part.Parent then part.Transparency = transparency end end originalTransparencies = {} end ------------------------------------------------------- -- SILENT AIM FUNCTIONS ------------------------------------------------------- local function getNearestPlayer() local nearestPlayer = nil local nearestDistance = math.huge local character = player.Character if not character then return nil end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return nil end local camera = Workspace.CurrentCamera for _, targetPlayer in pairs(Players:GetPlayers()) do if targetPlayer ~= player and targetPlayer.Character then local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart") local targetHumanoid = targetPlayer.Character:FindFirstChild("Humanoid") if targetHRP and targetHumanoid and targetHumanoid.Health > 0 then local screenPos, onScreen = camera:WorldToViewportPoint(targetHRP.Position) if onScreen then local screenCenter = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2) local targetScreenPos = Vector2.new(screenPos.X, screenPos.Y) local dist = (screenCenter - targetScreenPos).Magnitude if dist < nearestDistance then nearestDistance = dist nearestPlayer = targetPlayer end end end end end return nearestPlayer end local silentAimIndicator = Instance.new("Frame") silentAimIndicator.Name = "SilentAimIndicator" silentAimIndicator.Size = UDim2.new(0, 10, 0, 10) silentAimIndicator.AnchorPoint = Vector2.new(0.5, 0.5) silentAimIndicator.BackgroundColor3 = Color3.fromRGB(255, 0, 0) silentAimIndicator.BorderSizePixel = 0 silentAimIndicator.Visible = false silentAimIndicator.ZIndex = 50 silentAimIndicator.Parent = screenGui local function updateSilentAim() if not silentAimEnabled then silentAimIndicator.Visible = false silentAimTarget = nil return end local nearestPlayer = getNearestPlayer() silentAimTarget = nearestPlayer if nearestPlayer and nearestPlayer.Character then local targetHead = nearestPlayer.Character:FindFirstChild("Head") if targetHead then local camera = Workspace.CurrentCamera local screenPos, onScreen = camera:WorldToViewportPoint(targetHead.Position) if onScreen then silentAimIndicator.Position = UDim2.new(0, screenPos.X, 0, screenPos.Y) silentAimIndicator.Visible = true else silentAimIndicator.Visible = false end else silentAimIndicator.Visible = false end else silentAimIndicator.Visible = false end end ------------------------------------------------------- -- TELEPORT TO PLAYER FUNCTION ------------------------------------------------------- local function getPlayerList() local playerNames = {} for _, p in pairs(Players:GetPlayers()) do if p ~= player then table.insert(playerNames, p.Name) end end if #playerNames == 0 then table.insert(playerNames, "No players") end return playerNames end local function teleportToPlayer(playerName) if playerName == "No players" then sendNotification("Teleport", "No players to teleport to!", 2, Color3.fromRGB(255, 80, 80)) return end local targetPlayer = Players:FindFirstChild(playerName) if targetPlayer and targetPlayer.Character then local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart") local character = player.Character if character and targetHRP then local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then humanoidRootPart.CFrame = targetHRP.CFrame * CFrame.new(0, 0, 3) sendNotification("Teleport", "Teleported to " .. playerName, 2, Color3.fromRGB(0, 170, 100)) end end else sendNotification("Teleport", "Player not found!", 2, Color3.fromRGB(255, 80, 80)) end end ------------------------------------------------------- -- SERVER FUNCTIONS ------------------------------------------------------- local function rejoinServer() sendNotification("Rejoin", "Rejoining server...", 2, Color3.fromRGB(0, 120, 200)) task.wait(0.5) TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, player) end local function serverHop() sendNotification("Server Hop", "Finding a new server...", 2, Color3.fromRGB(0, 120, 200)) task.wait(0.5) local placeId = game.PlaceId local success, result = pcall(function() local url = "https://games.roblox.com/v1/games/" .. placeId .. "/servers/Public?sortOrder=Asc&limit=100" return HttpService:JSONDecode(game:HttpGet(url)) end) if success and result and result.data then for _, server in pairs(result.data) do if server.playing and server.playing < server.maxPlayers and server.id ~= game.JobId then TeleportService:TeleportToPlaceInstance(placeId, server.id, player) return end end end TeleportService:Teleport(placeId, player) end local function resetCharacter() local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.Health = 0 sendNotification("Reset", "Character reset!", 2, Color3.fromRGB(255, 80, 80)) end end end local function openConsole() local success = pcall(function() StarterGui:SetCore("DevConsoleVisible", true) end) if success then sendNotification("Console", "Dev console opened!", 2, Color3.fromRGB(0, 170, 100)) return end local existingConsole = screenGui:FindFirstChild("CustomConsole") if existingConsole then existingConsole.Visible = not existingConsole.Visible return end local consoleFrame = Instance.new("Frame") consoleFrame.Name = "CustomConsole" consoleFrame.Size = UDim2.new(0, 400, 0, 300) consoleFrame.Position = UDim2.new(0.5, -200, 0.5, -150) consoleFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) consoleFrame.BorderSizePixel = 0 consoleFrame.ZIndex = 200 consoleFrame.Parent = screenGui local consoleTitle = Instance.new("Frame") consoleTitle.Size = UDim2.new(1, 0, 0, 30) consoleTitle.BackgroundColor3 = Color3.fromRGB(10, 10, 10) consoleTitle.BorderSizePixel = 0 consoleTitle.ZIndex = 201 consoleTitle.Parent = consoleFrame local consoleTitleText = Instance.new("TextLabel") consoleTitleText.Size = UDim2.new(1, -35, 1, 0) consoleTitleText.Position = UDim2.new(0, 10, 0, 0) consoleTitleText.BackgroundTransparency = 1 consoleTitleText.Text = "Console Output" consoleTitleText.TextColor3 = Color3.fromRGB(255, 255, 255) consoleTitleText.TextSize = 14 consoleTitleText.Font = Enum.Font.GothamSemibold consoleTitleText.TextXAlignment = Enum.TextXAlignment.Left consoleTitleText.ZIndex = 202 consoleTitleText.Parent = consoleTitle local consoleClose = Instance.new("TextButton") consoleClose.Size = UDim2.new(0, 30, 0, 30) consoleClose.Position = UDim2.new(1, -30, 0, 0) consoleClose.BackgroundColor3 = Color3.fromRGB(10, 10, 10) consoleClose.BorderSizePixel = 0 consoleClose.Text = "X" consoleClose.TextColor3 = Color3.fromRGB(255, 255, 255) consoleClose.TextSize = 14 consoleClose.Font = Enum.Font.GothamSemibold consoleClose.ZIndex = 202 consoleClose.Parent = consoleTitle consoleClose.MouseButton1Click:Connect(function() consoleFrame.Visible = false end) consoleClose.MouseEnter:Connect(function() consoleClose.BackgroundColor3 = Color3.fromRGB(200, 50, 50) end) consoleClose.MouseLeave:Connect(function() consoleClose.BackgroundColor3 = Color3.fromRGB(10, 10, 10) end) local consoleScroll = Instance.new("ScrollingFrame") consoleScroll.Size = UDim2.new(1, -10, 1, -70) consoleScroll.Position = UDim2.new(0, 5, 0, 35) consoleScroll.BackgroundColor3 = Color3.fromRGB(20, 20, 20) consoleScroll.BorderSizePixel = 0 consoleScroll.ScrollBarThickness = 4 consoleScroll.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100) consoleScroll.CanvasSize = UDim2.new(0, 0, 0, 0) consoleScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y consoleScroll.ZIndex = 201 consoleScroll.Parent = consoleFrame local consoleLayout = Instance.new("UIListLayout") consoleLayout.Padding = UDim.new(0, 2) consoleLayout.SortOrder = Enum.SortOrder.LayoutOrder consoleLayout.Parent = consoleScroll local consoleInput = Instance.new("TextBox") consoleInput.Size = UDim2.new(1, -10, 0, 25) consoleInput.Position = UDim2.new(0, 5, 1, -30) consoleInput.BackgroundColor3 = Color3.fromRGB(25, 25, 25) consoleInput.BorderSizePixel = 0 consoleInput.Text = "" consoleInput.PlaceholderText = "Enter command..." consoleInput.PlaceholderColor3 = Color3.fromRGB(100, 100, 100) consoleInput.TextColor3 = Color3.fromRGB(255, 255, 255) consoleInput.TextSize = 12 consoleInput.Font = Enum.Font.GothamSemibold consoleInput.TextXAlignment = Enum.TextXAlignment.Left consoleInput.ClearTextOnFocus = false consoleInput.ZIndex = 201 consoleInput.Parent = consoleFrame local logCount = 0 local function addLog(text, color) logCount = logCount + 1 local logLabel = Instance.new("TextLabel") logLabel.Size = UDim2.new(1, -10, 0, 18) logLabel.BackgroundTransparency = 1 logLabel.Text = "[" .. logCount .. "] " .. text logLabel.TextColor3 = color or Color3.fromRGB(200, 200, 200) logLabel.TextSize = 11 logLabel.Font = Enum.Font.GothamSemibold logLabel.TextXAlignment = Enum.TextXAlignment.Left logLabel.TextWrapped = true logLabel.ZIndex = 202 logLabel.LayoutOrder = logCount logLabel.Parent = consoleScroll end addLog("Console initialized", Color3.fromRGB(0, 200, 100)) addLog("Type 'help' for commands", Color3.fromRGB(100, 100, 100)) consoleInput.FocusLost:Connect(function(enterPressed) if enterPressed and consoleInput.Text ~= "" then local cmd = string.lower(consoleInput.Text) addLog("> " .. consoleInput.Text, Color3.fromRGB(255, 255, 100)) if cmd == "help" then addLog("Commands: help, clear, players, ping, info, fps", Color3.fromRGB(100, 200, 255)) elseif cmd == "clear" then for _, child in pairs(consoleScroll:GetChildren()) do if child:IsA("TextLabel") then child:Destroy() end end logCount = 0 addLog("Console cleared", Color3.fromRGB(0, 200, 100)) elseif cmd == "players" then addLog("Players in server: " .. #Players:GetPlayers(), Color3.fromRGB(100, 200, 255)) for _, p in pairs(Players:GetPlayers()) do addLog(" - " .. p.Name, Color3.fromRGB(200, 200, 200)) end elseif cmd == "ping" then local ping = player:GetNetworkPing() * 1000 addLog("Ping: " .. math.floor(ping) .. "ms", Color3.fromRGB(100, 200, 255)) elseif cmd == "info" then addLog("Place ID: " .. game.PlaceId, Color3.fromRGB(100, 200, 255)) addLog("Job ID: " .. game.JobId, Color3.fromRGB(100, 200, 255)) addLog("Player: " .. player.Name, Color3.fromRGB(100, 200, 255)) elseif cmd == "fps" then local fps = math.floor(1 / RunService.RenderStepped:Wait()) addLog("FPS: " .. fps, Color3.fromRGB(100, 200, 255)) else addLog("Unknown command: " .. cmd, Color3.fromRGB(255, 100, 100)) end consoleInput.Text = "" end end) local draggingConsole = false local dragStartConsole = nil local startPosConsole = nil consoleTitle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingConsole = true dragStartConsole = input.Position startPosConsole = consoleFrame.Position end end) consoleTitle.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingConsole = false end end) UserInputService.InputChanged:Connect(function(input) if draggingConsole and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStartConsole consoleFrame.Position = UDim2.new( startPosConsole.X.Scale, startPosConsole.X.Offset + delta.X, startPosConsole.Y.Scale, startPosConsole.Y.Offset + delta.Y ) end end) sendNotification("Console", "Custom console opened!", 2, Color3.fromRGB(0, 170, 100)) end ------------------------------------------------------- -- INF YIELD FUNCTION ------------------------------------------------------- local function loadInfYield() sendNotification("Inf Yield", "Loading Infinite Yield...", 3, Color3.fromRGB(170, 0, 255)) local success, err = pcall(function() loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))() end) if success then sendNotification("Inf Yield", "Infinite Yield loaded!", 3, Color3.fromRGB(0, 200, 100)) else sendNotification("Inf Yield", "Failed to load! (Needs executor)", 3, Color3.fromRGB(255, 80, 80)) end end ------------------------------------------------------- -- CREATE ALL TOGGLES ------------------------------------------------------- createToggle("Fly", "Fly around the map (WASD + Space/Ctrl)", 1, function(enabled) flyEnabled = enabled if enabled then startFly() sendNotification("Fly", "Fly enabled", 2, Color3.fromRGB(0, 170, 100)) else stopFly() sendNotification("Fly", "Fly disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Noclip", "Walk through walls and objects", 2, function(enabled) noclipEnabled = enabled if enabled then sendNotification("Noclip", "Noclip enabled", 2, Color3.fromRGB(0, 170, 100)) else sendNotification("Noclip", "Noclip disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Infinite Jump", "Jump unlimited times in the air", 3, function(enabled) infiniteJumpEnabled = enabled if enabled then sendNotification("Infinite Jump", "Infinite jump enabled", 2, Color3.fromRGB(0, 170, 100)) else sendNotification("Infinite Jump", "Infinite jump disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("ESP", "See players through walls with distance", 4, function(enabled) espEnabled = enabled if enabled then createESP() sendNotification("ESP", "ESP enabled", 2, Color3.fromRGB(0, 170, 100)) else removeESP() sendNotification("ESP", "ESP disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Tracers", "Draw lines to all players", 5, function(enabled) tracersEnabled = enabled if not enabled then for _, line in pairs(tracerLines) do if line and line.Parent then line:Destroy() end end tracerLines = {} end if enabled then sendNotification("Tracers", "Tracers enabled", 2, Color3.fromRGB(0, 170, 100)) else sendNotification("Tracers", "Tracers disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Full Bright", "Remove darkness and shadows", 6, function(enabled) fullBrightEnabled = enabled if enabled then enableFullBright() sendNotification("Full Bright", "Full bright enabled", 2, Color3.fromRGB(0, 170, 100)) else disableFullBright() sendNotification("Full Bright", "Full bright disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Click TP", "Click anywhere to teleport there", 7, function(enabled) clickTpEnabled = enabled if enabled then sendNotification("Click TP", "Click TP enabled", 2, Color3.fromRGB(0, 170, 100)) else sendNotification("Click TP", "Click TP disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("X-Ray", "See through walls and objects", 8, function(enabled) xrayEnabled = enabled if enabled then enableXray() sendNotification("X-Ray", "X-Ray enabled", 2, Color3.fromRGB(0, 170, 100)) else disableXray() sendNotification("X-Ray", "X-Ray disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Spinbot", "Spin your character rapidly in circles", 9, function(enabled) spinbotEnabled = enabled if enabled then sendNotification("Spinbot", "Spinbot enabled", 2, Color3.fromRGB(0, 170, 100)) else sendNotification("Spinbot", "Spinbot disabled", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Invisible", "Make your character invisible locally", 10, function(enabled) invisibleEnabled = enabled if enabled then enableInvisible() sendNotification("Invisible", "Character invisible", 2, Color3.fromRGB(0, 170, 100)) else disableInvisible() sendNotification("Invisible", "Character visible", 2, Color3.fromRGB(255, 80, 80)) end end) createToggle("Silent Aim", "Auto-aim at nearest player (indicator)", 11, function(enabled) silentAimEnabled = enabled if not enabled then silentAimIndicator.Visible = false silentAimTarget = nil end if enabled then sendNotification("Silent Aim", "Silent aim enabled", 2, Color3.fromRGB(0, 170, 100)) else sendNotification("Silent Aim", "Silent aim disabled", 2, Color3.fromRGB(255, 80, 80)) end end) ------------------------------------------------------- -- CREATE DROPDOWN ------------------------------------------------------- createDropdown("Teleport to Player", "Instantly teleport to a player", 12, getPlayerList, teleportToPlayer) ------------------------------------------------------- -- CREATE BUTTONS ------------------------------------------------------- createButton("Rejoin Server", "Rejoin the current server", 13, "Rejoin", rejoinServer) createButton("Server Hop", "Join a different server", 14, "Hop", serverHop) createButton("Reset Character", "Kill your character", 15, "Reset", resetCharacter) createButton("Console", "Open the console window", 16, "Open", openConsole) createButton("Inf Yield", "Load Infinite Yield admin script", 17, "Load", loadInfYield) ------------------------------------------------------- -- CREATE ALL TEXTBOX INPUTS ------------------------------------------------------- local function getDefaultWalkSpeed() local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then return math.floor(humanoid.WalkSpeed) end end return 16 end local function getDefaultJumpPower() local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then return math.floor(humanoid.JumpPower) end end return 50 end createTextInput("WalkSpeed", "Set your character walk speed", 18, getDefaultWalkSpeed(), function(value) local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.WalkSpeed = value end end end) createTextInput("JumpPower", "Set your character jump power", 19, getDefaultJumpPower(), function(value) local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.JumpPower = value humanoid.UseJumpPower = true end end end) createTextInput("Gravity", "Set world gravity (default: 196.2)", 20, roundNumber(Workspace.Gravity, 1), function(value) Workspace.Gravity = value end) createTextInput("FOV", "Set camera field of view (default: 70)", 21, roundNumber(Workspace.CurrentCamera.FieldOfView, 0), function(value) value = math.clamp(value, 1, 120) Workspace.CurrentCamera.FieldOfView = value end) createTextInput("Camera Zoom", "Set max camera zoom distance", 22, roundNumber(player.CameraMaxZoomDistance, 0), function(value) value = math.clamp(value, 0, 9999) player.CameraMaxZoomDistance = value player.CameraMinZoomDistance = 0 end) ------------------------------------------------------- -- SEARCH FUNCTIONALITY ------------------------------------------------------- searchBox:GetPropertyChangedSignal("Text"):Connect(function() local searchText = string.lower(searchBox.Text) local visibleCount = 0 for _, item in pairs(allItems) do local nameMatch = string.find(string.lower(item.name), searchText) local descMatch = string.find(string.lower(item.description), searchText) if nameMatch or descMatch or searchText == "" then item.frame.Visible = true visibleCount = visibleCount + 1 else item.frame.Visible = false end end if searchText == "" then scriptCount.Text = #allItems .. " Scripts" else scriptCount.Text = visibleCount .. " Found" end end) ------------------------------------------------------- -- TOGGLE BUTTON (always visible) ------------------------------------------------------- local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0, 100, 0, 30) toggleButton.Position = UDim2.new(0, 10, 0, 10) toggleButton.BackgroundColor3 = Color3.fromRGB(10, 10, 10) toggleButton.BorderSizePixel = 0 toggleButton.Text = "Bob Hub" toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextSize = 14 toggleButton.Font = Enum.Font.GothamSemibold toggleButton.Parent = screenGui toggleButton.MouseEnter:Connect(function() toggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end) toggleButton.MouseLeave:Connect(function() toggleButton.BackgroundColor3 = Color3.fromRGB(10, 10, 10) end) -- Toggle Logic local isOpen = true local function toggleMenu() isOpen = not isOpen mainFrame.Visible = isOpen closeAllDropdowns() end closeButton.MouseButton1Click:Connect(toggleMenu) toggleButton.MouseButton1Click:Connect(toggleMenu) ------------------------------------------------------- -- DRAGGABLE TITLE BAR ------------------------------------------------------- local dragging = false local dragStart = nil local startPos = nil titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) titleBar.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) ------------------------------------------------------- -- CLOSE DROPDOWNS ON CLICK OUTSIDE ------------------------------------------------------- UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then task.spawn(function() task.wait() if activeDropdown and activeDropdown.Visible then local mousePos = UserInputService:GetMouseLocation() local dropdownPos = activeDropdown.AbsolutePosition local dropdownSize = activeDropdown.AbsoluteSize local isInside = mousePos.X >= dropdownPos.X and mousePos.X <= dropdownPos.X + dropdownSize.X and mousePos.Y >= dropdownPos.Y and mousePos.Y <= dropdownPos.Y + dropdownSize.Y if not isInside then local clickedOnButton = false for _, item in pairs(allItems) do local btn = item.frame:FindFirstChild("DropdownButton") if btn then local btnPos = btn.AbsolutePosition local btnSize = btn.AbsoluteSize if mousePos.X >= btnPos.X and mousePos.X <= btnPos.X + btnSize.X and mousePos.Y >= btnPos.Y and mousePos.Y <= btnPos.Y + btnSize.Y then clickedOnButton = true break end end end if not clickedOnButton then closeAllDropdowns() end end end end) end end) ------------------------------------------------------- -- MAIN UPDATE LOOP ------------------------------------------------------- RunService.RenderStepped:Connect(function() updateFly() updateNoclip() updateESP() updateSpinbot() updateTracers() updateSilentAim() end) ------------------------------------------------------- -- HANDLE NEW PLAYERS FOR ESP ------------------------------------------------------- Players.PlayerAdded:Connect(function(newPlayer) newPlayer.CharacterAdded:Connect(function() task.wait(1) if espEnabled then createESP() end end) end) for _, p in pairs(Players:GetPlayers()) do if p ~= player then p.CharacterAdded:Connect(function() task.wait(1) if espEnabled then createESP() end end) end end ------------------------------------------------------- -- HANDLE CHARACTER RESPAWN ------------------------------------------------------- player.CharacterAdded:Connect(function() task.wait(1) if flyEnabled then startFly() end if xrayEnabled then enableXray() end if invisibleEnabled then enableInvisible() end end) ------------------------------------------------------- -- WELCOME NOTIFICATION ------------------------------------------------------- task.spawn(function() task.wait(1) sendNotification("Bob Hub", "Welcome, " .. player.Name .. "!", 4, Color3.fromRGB(0, 170, 100)) task.wait(0.5) sendNotification("Credits", "Made by cat_givemyrobox", 4, Color3.fromRGB(170, 0, 255)) task.wait(0.5) sendNotification("Info", #allItems .. " scripts loaded!", 3, Color3.fromRGB(0, 120, 200)) end) print("Bob Hub loaded successfully! - " .. #allItems .. " Scripts | Made by cat_givemyrobox")