-- Force cleanup of any existing instance local function forceCleanup() local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ContextActionService = game:GetService("ContextActionService") -- Destroy existing GUI if LocalPlayer.PlayerGui:FindFirstChild("PMCCHub") then LocalPlayer.PlayerGui.PMCCHub:Destroy() end -- Clean up global connections if _G.PMCCHub_JoinConn then _G.PMCCHub_JoinConn:Disconnect() _G.PMCCHub_JoinConn = nil end if _G.PMCCHub_LeaveConn then _G.PMCCHub_LeaveConn:Disconnect() _G.PMCCHub_LeaveConn = nil end if _G.PMCCHub_ESPConn then _G.PMCCHub_ESPConn:Disconnect() _G.PMCCHub_ESPConn = nil end if _G.PMCCHub_PlatformConn then _G.PMCCHub_PlatformConn:Disconnect() _G.PMCCHub_PlatformConn = nil end -- Clean up physics and connections if _G.PMCCHub_BodyVelocity then _G.PMCCHub_BodyVelocity:Destroy() _G.PMCCHub_BodyVelocity = nil end if _G.PMCCHub_BodyGyro then _G.PMCCHub_BodyGyro:Destroy() _G.PMCCHub_BodyGyro = nil end if _G.PMCCHub_NoclipConnection then _G.PMCCHub_NoclipConnection:Disconnect() _G.PMCCHub_NoclipConnection = nil end if _G.PMCCHub_InfiniteJumpConnection then _G.PMCCHub_InfiniteJumpConnection:Disconnect() _G.PMCCHub_InfiniteJumpConnection = nil end if _G.PMCCHub_InputConnections then for _, conn in pairs(_G.PMCCHub_InputConnections) do conn:Disconnect() end _G.PMCCHub_InputConnections = nil end if _G.PMCCHub_PlatformInputConnections then for _, conn in pairs(_G.PMCCHub_PlatformInputConnections) do conn:Disconnect() end _G.PMCCHub_PlatformInputConnections = nil end if _G.PMCCHub_PlatformPart then _G.PMCCHub_PlatformPart:Destroy() _G.PMCCHub_PlatformPart = nil end -- Clean up ESP objects if _G.PMCCHub_ESPObjects then for _, obj in pairs(_G.PMCCHub_ESPObjects) do if obj.Highlight then obj.Highlight:Destroy() end if obj.BillboardGui then obj.BillboardGui:Destroy() end end _G.PMCCHub_ESPObjects = nil end -- Unbind ContextActionService actions ContextActionService:UnbindAction("FlyAction") ContextActionService:UnbindAction("PlatformAction") ContextActionService:UnbindAction("CameraAction") -- Reset character collision local character = LocalPlayer.Character if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end -- Execute cleanup for any previous instance forceCleanup() -- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local UserInputService = game:GetService("UserInputService") local ContextActionService = game:GetService("ContextActionService") local LocalPlayer = Players.LocalPlayer local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") -- GUI local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "PMCCHub" ScreenGui.Parent = LocalPlayer.PlayerGui ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.ResetOnSpawn = false -- Main Frame local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 250, 0, 300) MainFrame.Position = UDim2.new(0.35, 0, 0.25, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 12) -- Scrolling container for buttons local ButtonContainer = Instance.new("ScrollingFrame") ButtonContainer.Size = UDim2.new(1, -10, 1, -100) ButtonContainer.Position = UDim2.new(0, 5, 0, 70) ButtonContainer.BackgroundTransparency = 1 ButtonContainer.BorderSizePixel = 0 ButtonContainer.ScrollBarThickness = 6 ButtonContainer.CanvasSize = UDim2.new(0, 0, 0, 0) ButtonContainer.Parent = MainFrame -- Title local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -60, 0, 30) Title.Position = UDim2.new(0, 10, 0, 5) Title.BackgroundTransparency = 1 Title.Text = "PMC.C Hub" Title.TextColor3 = Color3.fromRGB(0, 200, 255) Title.Font = Enum.Font.GothamBold Title.TextSize = 18 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = MainFrame -- Status Label local platformDetected = if UserInputService.KeyboardEnabled then "PC" elseif UserInputService.TouchEnabled then "Mobile" elseif UserInputService.GamepadEnabled then "Console" else "Unknown" local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, -20, 0, 25) StatusLabel.Position = UDim2.new(0, 10, 0, 40) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "Platform: " .. platformDetected StatusLabel.TextColor3 = Color3.fromRGB(0, 200, 255) StatusLabel.Font = Enum.Font.GothamBold StatusLabel.TextSize = 14 StatusLabel.TextXAlignment = Enum.TextXAlignment.Left StatusLabel.Parent = MainFrame -- Version Label (Grok AI) local VersionLabel = Instance.new("TextLabel") VersionLabel.Size = UDim2.new(0, 80, 0, 20) VersionLabel.Position = UDim2.new(1, -90, 1, -30) VersionLabel.BackgroundColor3 = Color3.fromRGB(25, 25, 25) VersionLabel.Text = "Grok AI" VersionLabel.TextColor3 = Color3.fromRGB(0, 200, 255) VersionLabel.Font = Enum.Font.GothamBold VersionLabel.TextSize = 12 VersionLabel.TextXAlignment = Enum.TextXAlignment.Right VersionLabel.Parent = MainFrame Instance.new("UICorner", VersionLabel).CornerRadius = UDim.new(0, 6) -- Close (X) local CloseButton = Instance.new("TextButton") CloseButton.Size = UDim2.new(0, 30, 0, 30) CloseButton.Position = UDim2.new(1, -30, 0, 0) CloseButton.BackgroundTransparency = 1 CloseButton.Text = "X" CloseButton.TextColor3 = Color3.fromRGB(255, 0, 0) CloseButton.Font = Enum.Font.GothamBold CloseButton.TextSize = 20 CloseButton.Parent = MainFrame -- Minimize (➖) local MinimizeButton = Instance.new("TextButton") MinimizeButton.Size = UDim2.new(0, 30, 0, 30) MinimizeButton.Position = UDim2.new(1, -60, 0, 0) MinimizeButton.BackgroundTransparency = 1 MinimizeButton.Text = "-" MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 0) MinimizeButton.Font = Enum.Font.GothamBold MinimizeButton.TextSize = 22 MinimizeButton.Parent = MainFrame -- Circle (minimized state) local CircleButton = Instance.new("TextButton") CircleButton.Size = UDim2.new(0, 60, 0, 60) CircleButton.Position = UDim2.new(0.05, 0, 0.6, 0) CircleButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25) CircleButton.Text = "PMC" CircleButton.TextColor3 = Color3.fromRGB(0, 200, 255) CircleButton.Font = Enum.Font.GothamBold CircleButton.TextSize = 18 CircleButton.Visible = false CircleButton.Active = true CircleButton.Draggable = true CircleButton.Parent = ScreenGui Instance.new("UICorner", CircleButton).CornerRadius = UDim.new(1, 0) -- Minimize / Restore MinimizeButton.MouseButton1Click:Connect(function() MainFrame.Visible = false CircleButton.Visible = true end) CircleButton.MouseButton1Click:Connect(function() MainFrame.Visible = true CircleButton.Visible = false end) -- Confirmation popup local ConfirmFrame = Instance.new("Frame") ConfirmFrame.Size = UDim2.new(0, 200, 0, 120) ConfirmFrame.Position = UDim2.new(0.5, -100, 0.5, -60) ConfirmFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) ConfirmFrame.Visible = false ConfirmFrame.ZIndex = 10 ConfirmFrame.Parent = ScreenGui ConfirmFrame.Active = true ConfirmFrame.Draggable = true Instance.new("UICorner", ConfirmFrame).CornerRadius = UDim.new(0, 10) local ConfirmText = Instance.new("TextLabel") ConfirmText.Size = UDim2.new(1, -20, 0, 50) ConfirmText.Position = UDim2.new(0, 10, 0, 10) ConfirmText.BackgroundTransparency = 1 ConfirmText.Text = "Want to Destroy this GUI?" ConfirmText.TextColor3 = Color3.fromRGB(255, 255, 255) ConfirmText.Font = Enum.Font.GothamBold ConfirmText.TextSize = 16 ConfirmText.ZIndex = 11 ConfirmText.Parent = ConfirmFrame -- Yes / No local YesButton = Instance.new("TextButton") YesButton.Size = UDim2.new(0.4, 0, 0, 30) YesButton.Position = UDim2.new(0.05, 0, 0.65, 0) YesButton.BackgroundColor3 = Color3.fromRGB(0, 200, 0) YesButton.Text = "Yes" YesButton.TextColor3 = Color3.fromRGB(255, 255, 255) YesButton.Font = Enum.Font.GothamBold YesButton.TextSize = 16 YesButton.ZIndex = 11 YesButton.Parent = ConfirmFrame Instance.new("UICorner", YesButton).CornerRadius = UDim.new(0, 8) local NoButton = Instance.new("TextButton") NoButton.Size = UDim2.new(0.4, 0, 0, 30) NoButton.Position = UDim2.new(0.55, 0, 0.65, 0) NoButton.BackgroundColor3 = Color3.fromRGB(200, 0, 0) NoButton.Text = "No" NoButton.TextColor3 = Color3.fromRGB(255, 255, 255) NoButton.Font = Enum.Font.GothamBold NoButton.TextSize = 16 NoButton.ZIndex = 11 NoButton.Parent = ConfirmFrame Instance.new("UICorner", NoButton).CornerRadius = UDim.new(0, 8) -- Fly, Noclip, Infinite Jump, ESP, and Platform variables local FlyEnabled, NoclipEnabled, InfiniteJumpEnabled, ESPEnabled, PlatformEnabled = false, false, false, false, false local FlySpeed = 50 local PlatformSpeed = 10 -- studs per second for smooth platform movement local BodyVelocity, BodyGyro, NoclipConnection, InfiniteJumpConnection, ESPConnection, PlatformConnection, PlatformPart local moveForward, moveBackward, moveLeft, moveRight, moveUp, moveDown = false, false, false, false, false, false local platformUp, platformDown = false, false local MobileControls = nil _G.PMCCHub_InputConnections = _G.PMCCHub_InputConnections or {} _G.PMCCHub_PlatformInputConnections = _G.PMCCHub_PlatformInputConnections or {} _G.PMCCHub_ESPObjects = _G.PMCCHub_ESPObjects or {} -- Mobile controls GUI (with UpP and DownP for Platform, conditional on Fly) local isMobile = UserInputService.TouchEnabled if isMobile then MobileControls = Instance.new("Frame") MobileControls.Size = UDim2.new(0.5, 0, 0.5, 0) MobileControls.Position = UDim2.new(0, 0, 0.5, 0) MobileControls.BackgroundTransparency = 1 MobileControls.Visible = false MobileControls.Parent = ScreenGui local UpPButton, DownPButton local function updateMobileControls() if FlyEnabled then if UpPButton then UpPButton.Visible = false end if DownPButton then DownPButton.Visible = false end elseif PlatformEnabled then if not UpPButton then UpPButton = Instance.new("TextButton") UpPButton.Size = UDim2.new(0.15, 0, 0.15, 0) UpPButton.Position = UDim2.new(0, 0, 0.15, 0) UpPButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255) UpPButton.Text = "UpP" UpPButton.TextColor3 = Color3.fromRGB(255, 255, 255) UpPButton.Font = Enum.Font.GothamBold UpPButton.TextSize = 20 Instance.new("UICorner", UpPButton).CornerRadius = UDim.new(0, 8) UpPButton.Parent = MobileControls UpPButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then platformUp = true end end) UpPButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then platformUp = false end end) end if not DownPButton then DownPButton = Instance.new("TextButton") DownPButton.Size = UDim2.new(0.15, 0, 0.15, 0) DownPButton.Position = UDim2.new(0, 0, 0.35, 0) DownPButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255) DownPButton.Text = "DownP" DownPButton.TextColor3 = Color3.fromRGB(255, 255, 255) DownPButton.Font = Enum.Font.GothamBold DownPButton.TextSize = 20 Instance.new("UICorner", DownPButton).CornerRadius = UDim.new(0, 8) DownPButton.Parent = MobileControls DownPButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then platformDown = true end end) DownPButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then platformDown = false end end) end UpPButton.Visible = true DownPButton.Visible = true else if UpPButton then UpPButton.Visible = false end if DownPButton then DownPButton.Visible = false end end end RunService.RenderStepped:Connect(updateMobileControls) end -- Input connections for PC, Console, and Controller (Fly and Camera) local function setupInputListeners() table.insert(_G.PMCCHub_InputConnections, UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.W then moveForward = true elseif input.KeyCode == Enum.KeyCode.S then moveBackward = true elseif input.KeyCode == Enum.KeyCode.A then moveLeft = true elseif input.KeyCode == Enum.KeyCode.D then moveRight = true elseif input.KeyCode == Enum.KeyCode.Space then moveUp = true elseif input.KeyCode == Enum.KeyCode.LeftShift then moveDown = true end end)) table.insert(_G.PMCCHub_InputConnections, UserInputService.InputEnded:Connect(function(input) if input.KeyCode == Enum.KeyCode.W then moveForward = false elseif input.KeyCode == Enum.KeyCode.S then moveBackward = false elseif input.KeyCode == Enum.KeyCode.A then moveLeft = false elseif input.KeyCode == Enum.KeyCode.D then moveRight = false elseif input.KeyCode == Enum.KeyCode.Space then moveUp = false elseif input.KeyCode == Enum.KeyCode.LeftShift then moveDown = false end end)) table.insert(_G.PMCCHub_InputConnections, RunService.RenderStepped:Connect(function() local gamepadState = UserInputService:GetGamepadState(Enum.UserInputType.Gamepad1) for _, input in pairs(gamepadState) do if input.KeyCode == Enum.KeyCode.Thumbstick1 then local horiz = input.Position.X local vert = -input.Position.Y moveForward = vert > 0.2 moveBackward = vert < -0.2 moveLeft = horiz < -0.2 moveRight = horiz > 0.2 moveUp = vert > 0.5 and math.abs(horiz) < 0.2 -- Up when centered vertically moveDown = vert < -0.5 and math.abs(horiz) < 0.2 -- Down when centered vertically end end end)) end setupInputListeners() -- Cleanup function local function cleanup() FlyEnabled = false NoclipEnabled = false InfiniteJumpEnabled = false ESPEnabled = false PlatformEnabled = false if BodyVelocity then BodyVelocity:Destroy() BodyVelocity = nil _G.PMCCHub_BodyVelocity = nil end if BodyGyro then BodyGyro:Destroy() BodyGyro = nil _G.PMCCHub_BodyGyro = nil end if NoclipConnection then NoclipConnection:Disconnect() NoclipConnection = nil _G.PMCCHub_NoclipConnection = nil end if InfiniteJumpConnection then InfiniteJumpConnection:Disconnect() InfiniteJumpConnection = nil _G.PMCCHub_InfiniteJumpConnection = nil end if ESPConnection then ESPConnection:Disconnect() ESPConnection = nil _G.PMCCHub_ESPConn = nil end if PlatformConnection then PlatformConnection:Disconnect() PlatformConnection = nil _G.PMCCHub_PlatformConn = nil end if PlatformPart then PlatformPart:Destroy() PlatformPart = nil _G.PMCCHub_PlatformPart = nil end for _, conn in pairs(_G.PMCCHub_InputConnections or {}) do conn:Disconnect() end for _, conn in pairs(_G.PMCCHub_PlatformInputConnections or {}) do conn:Disconnect() end _G.PMCCHub_InputConnections = {} _G.PMCCHub_PlatformInputConnections = {} if MobileControls then MobileControls.Visible = false end if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end if _G.PMCCHub_JoinConn then _G.PMCCHub_JoinConn:Disconnect() _G.PMCCHub_JoinConn = nil end if _G.PMCCHub_LeaveConn then _G.PMCCHub_LeaveConn:Disconnect() _G.PMCCHub_LeaveConn = nil end -- Clean up ESP objects for _, obj in pairs(_G.PMCCHub_ESPObjects) do if obj.Highlight then obj.Highlight:Destroy() end if obj.BillboardGui then obj.BillboardGui:Destroy() end end _G.PMCCHub_ESPObjects = {} end -- Handle character respawn LocalPlayer.CharacterAdded:Connect(function(newChar) character = newChar humanoid = newChar:WaitForChild("Humanoid") rootPart = newChar:WaitForChild("HumanoidRootPart") cleanup() -- Reset features on respawn end) -- Close button logic CloseButton.MouseButton1Click:Connect(function() ConfirmFrame.Visible = true end) YesButton.MouseButton1Click:Connect(function() cleanup() ScreenGui:Destroy() end) NoButton.MouseButton1Click:Connect(function() ConfirmFrame.Visible = false end) -- Function to create buttons local buttonY, buttonCount = 0, 0 local function CreateButton(text, callback) local Button = Instance.new("TextButton") Button.Size = UDim2.new(1, -20, 0, 40) Button.Position = UDim2.new(0, 10, 0, buttonY) Button.BackgroundColor3 = Color3.fromRGB(0, 120, 255) Button.Text = text Button.TextColor3 = Color3.fromRGB(255, 255, 255) Button.Font = Enum.Font.GothamBold Button.TextSize = 16 Button.Parent = ButtonContainer Instance.new("UICorner", Button).CornerRadius = UDim.new(0, 8) Button.MouseButton1Click:Connect(callback) buttonY += 50 buttonCount += 1 ButtonContainer.CanvasSize = UDim2.new(0, 0, 0, buttonCount * 50) end -- Fly function (using left stick for movement, right stick for camera) local function toggleFly() FlyEnabled = not FlyEnabled if not FlyEnabled then if BodyVelocity then BodyVelocity:Destroy() BodyVelocity = nil _G.PMCCHub_BodyVelocity = nil end if BodyGyro then BodyGyro:Destroy() BodyGyro = nil _G.PMCCHub_BodyGyro = nil end if isMobile then ContextActionService:UnbindAction("FlyAction") ContextActionService:UnbindAction("CameraAction") MobileControls.Visible = PlatformEnabled end elseif character and rootPart then BodyVelocity = Instance.new("BodyVelocity") BodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) BodyVelocity.Velocity = Vector3.new(0, 0, 0) BodyVelocity.Parent = rootPart _G.PMCCHub_BodyVelocity = BodyVelocity BodyGyro = Instance.new("BodyGyro") BodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) BodyGyro.CFrame = rootPart.CFrame BodyGyro.Parent = rootPart _G.PMCCHub_BodyGyro = BodyGyro if isMobile or UserInputService.GamepadEnabled then -- Left stick for movement ContextActionService:BindAction("FlyAction", function(actionName, inputState, inputObject) if inputState == Enum.UserInputState.Begin or inputState == Enum.UserInputState.Change then local moveVector = inputObject.Position if inputObject.KeyCode == Enum.KeyCode.Thumbstick1 then moveForward = moveVector.Y < -0.2 moveBackward = moveVector.Y > 0.2 moveLeft = moveVector.X < -0.2 moveRight = moveVector.X > 0.2 moveUp = moveVector.Y > 0.5 and math.abs(moveVector.X) < 0.2 moveDown = moveVector.Y < -0.5 and math.abs(moveVector.X) < 0.2 end elseif inputState == Enum.UserInputState.End then moveForward = false moveBackward = false moveLeft = false moveRight = false moveUp = false moveDown = false end return Enum.ContextActionResult.Sink end, false, Enum.KeyCode.Thumbstick1) -- Right stick for camera (normal Roblox view) ContextActionService:BindAction("CameraAction", function(actionName, inputState, inputObject) if inputState == Enum.UserInputState.Begin or inputState == Enum.UserInputState.Change then if inputObject.KeyCode == Enum.KeyCode.Thumbstick2 then local camera = workspace.CurrentCamera local rotation = Vector2.new(inputObject.Position.X, -inputObject.Position.Y) if rotation.Magnitude > 0.1 then local sensitivity = 0.1 local newCFrame = camera.CFrame * CFrame.Angles(0, rotation.X * sensitivity, 0) * CFrame.Angles(rotation.Y * sensitivity, 0, 0) camera.CFrame = newCFrame end end end return Enum.ContextActionResult.Sink end, false, Enum.KeyCode.Thumbstick2) MobileControls.Visible = true end end end -- Noclip function local function toggleNoclip() NoclipEnabled = not NoclipEnabled if not NoclipEnabled then if NoclipConnection then NoclipConnection:Disconnect() NoclipConnection = nil _G.PMCCHub_NoclipConnection = nil end if character then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end else NoclipConnection = RunService.Stepped:Connect(function() if character and NoclipEnabled then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) _G.PMCCHub_NoclipConnection = NoclipConnection end end -- Infinite Jump function local function toggleInfiniteJump() InfiniteJumpEnabled = not InfiniteJumpEnabled if not InfiniteJumpEnabled then if InfiniteJumpConnection then InfiniteJumpConnection:Disconnect() InfiniteJumpConnection = nil _G.PMCCHub_InfiniteJumpConnection = nil end else InfiniteJumpConnection = UserInputService.JumpRequest:Connect(function() if InfiniteJumpEnabled and character and humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end) _G.PMCCHub_InfiniteJumpConnection = InfiniteJumpConnection end end -- ESP function (only distance, no name) local function toggleESP() ESPEnabled = not ESPEnabled if not ESPEnabled then if ESPConnection then ESPConnection:Disconnect() ESPConnection = nil _G.PMCCHub_ESPConn = nil end for _, obj in pairs(_G.PMCCHub_ESPObjects) do if obj.Highlight then obj.Highlight:Destroy() end if obj.BillboardGui then obj.BillboardGui:Destroy() end end _G.PMCCHub_ESPObjects = {} else local function addESP(player) if player == LocalPlayer then return end local function setupESP(char) if not char then return end local head = char:FindFirstChild("Head") if not head then return end local highlight = Instance.new("Highlight") highlight.Adornee = head highlight.FillColor = Color3.fromRGB(255, 255, 255) highlight.OutlineColor = Color3.fromRGB(255, 255, 255) highlight.FillTransparency = 0.5 highlight.OutlineTransparency = 0 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Parent = head local billboard = Instance.new("BillboardGui") billboard.Adornee = head billboard.Size = UDim2.new(0, 100, 0, 25) billboard.StudsOffset = Vector3.new(0, 2, 0) billboard.AlwaysOnTop = true billboard.Parent = head local distanceLabel = Instance.new("TextLabel") distanceLabel.Size = UDim2.new(1, 0, 1, 0) distanceLabel.Position = UDim2.new(0, 0, 0, 0) distanceLabel.BackgroundTransparency = 1 distanceLabel.Text = "0 studs" distanceLabel.TextColor3 = Color3.fromRGB(255, 255, 255) distanceLabel.TextStrokeTransparency = 0 distanceLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) distanceLabel.Font = Enum.Font.GothamBold distanceLabel.TextSize = 14 distanceLabel.TextScaled = false distanceLabel.Parent = billboard _G.PMCCHub_ESPObjects[player] = {Highlight = highlight, BillboardGui = billboard, DistanceLabel = distanceLabel} end if player.Character then setupESP(player.Character) end player.CharacterAdded:Connect(setupESP) end for _, player in pairs(Players:GetPlayers()) do addESP(player) end _G.PMCCHub_ESPConn = Players.PlayerAdded:Connect(function(player) if ESPEnabled then addESP(player) end end) Players.PlayerRemoving:Connect(function(player) if _G.PMCCHub_ESPObjects[player] then local obj = _G.PMCCHub_ESPObjects[player] if obj.Highlight then obj.Highlight:Destroy() end if obj.BillboardGui then obj.BillboardGui:Destroy() end _G.PMCCHub_ESPObjects[player] = nil end end) ESPConnection = RunService.RenderStepped:Connect(function() if not ESPEnabled then return end local localRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not localRoot then return end for player, obj in pairs(_G.PMCCHub_ESPObjects) do local playerRoot = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if playerRoot and obj.DistanceLabel then local distance = (localRoot.Position - playerRoot.Position).Magnitude obj.DistanceLabel.Text = string.format("%.1f studs", distance) end end end) end end -- Platform function local function togglePlatform() PlatformEnabled = not PlatformEnabled if not PlatformEnabled then if PlatformConnection then PlatformConnection:Disconnect() PlatformConnection = nil _G.PMCCHub_PlatformConn = nil end if PlatformPart then PlatformPart:Destroy() PlatformPart = nil _G.PMCCHub_PlatformPart = nil end for _, conn in pairs(_G.PMCCHub_PlatformInputConnections) do conn:Disconnect() end _G.PMCCHub_PlatformInputConnections = {} platformUp = false platformDown = false if MobileControls then MobileControls.Visible = FlyEnabled end elseif character and rootPart then PlatformPart = Instance.new("Part") PlatformPart.Size = Vector3.new(6, 0.5, 6) PlatformPart.Position = rootPart.Position - Vector3.new(0, 3, 0) PlatformPart.Anchored = true PlatformPart.CanCollide = true PlatformPart.BrickColor = BrickColor.new("Institutional white") PlatformPart.Parent = workspace _G.PMCCHub_PlatformPart = PlatformPart PlatformConnection = RunService.RenderStepped:Connect(function(deltaTime) if PlatformEnabled and character and rootPart and PlatformPart then PlatformPart.Position = Vector3.new(rootPart.Position.X, PlatformPart.Position.Y, rootPart.Position.Z) if platformUp then PlatformPart.Position = PlatformPart.Position + Vector3.new(0, PlatformSpeed * deltaTime, 0) elseif platformDown then PlatformPart.Position = PlatformPart.Position - Vector3.new(0, PlatformSpeed * deltaTime, 0) end end end) _G.PMCCHub_PlatformConn = PlatformConnection if UserInputService.KeyboardEnabled then table.insert(_G.PMCCHub_PlatformInputConnections, UserInputService.InputBegan:Connect(function(input, processed) if processed or not PlatformEnabled then return end if input.KeyCode == Enum.KeyCode.E then platformUp = true elseif input.KeyCode == Enum.KeyCode.Q then platformDown = true end end)) table.insert(_G.PMCCHub_PlatformInputConnections, UserInputService.InputEnded:Connect(function(input) if input.KeyCode == Enum.KeyCode.E then platformUp = false elseif input.KeyCode == Enum.KeyCode.Q then platformDown = false end end)) end if MobileControls then MobileControls.Visible = true end end end -- Buttons CreateButton("Fly", toggleFly) CreateButton("Noclip", toggleNoclip) CreateButton("Infinite Jump", toggleInfiniteJump) CreateButton("ESP", toggleESP) CreateButton("Platform", togglePlatform) -- PC-only buttons if UserInputService.KeyboardEnabled and UserInputService.MouseEnabled then CreateButton("Superman", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/Bac0nHck/Scripts/main/superman_fly.lua", true))() end) end CreateButton("Infinite Yield", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))() end) CreateButton("c00lgui", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/cfsmi2/c00lguiv1/refs/heads/main/Main.lua", true))() end) -- Game-specific if game.PlaceId == 4924922222 then -- Brookhaven CreateButton("Sander XY", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/kigredns/testUIDK/refs/heads/main/panel.lua"))() end) elseif game.PlaceId == 189707 then -- NDS CreateButton("Nullfire", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/InfernusScripts/Null-Fire/main/Loader"))() end) elseif game.PlaceId == 126884695634066 or game.PlaceId == 6961824067 or game.PlaceId == 7845249823 then -- Grow a Garden CreateButton("Grow a Garden Auto Farm", function() loadstring(game:HttpGet("https://zaphub.xyz/Exec"))() end) elseif game.PlaceId == 79546208627805 then -- 99 Nights in the Forest CreateButton("99 Nights Auto Farm", function() loadstring([[ if not game:IsLoaded() then return end local CheatEngineMode = false if (not getgenv) or (getgenv and type(getgenv) ~= "function") then CheatEngineMode = true end if getgenv and not getgenv().shared then CheatEngineMode = true; getgenv().shared = {} end if getgenv and not getgenv().debug then CheatEngineMode = true; getgenv().debug = {traceback = function(string) return string end} end if getgenv and not getgenv().require then CheatEngineMode = true end if getgenv and getgenv().require and type(getgenv().require) ~= "function" then CheatEngineMode = true end local debugChecks = { Type = "table", Functions = { "getupvalue", "getupvalues", "getconstants", "getproto" } } local function checkExecutor() if identifyexecutor ~= nil and type(identifyexecutor) == "function" then local suc, res = pcall(function() return identifyexecutor() end) local blacklist = {'cryptic', 'xeno', 'ember', 'ronix'} local core_blacklist = {'xeno'} if suc then for i, v in pairs(blacklist) do if string.find(string.lower(tostring(res)), v) then CheatEngineMode = true end end for i, v in pairs(core_blacklist) do if string.find(string.lower(tostring(res)), v) then pcall(function() getgenv().queue_on_teleport = function() warn('queue_on_teleport disabled!') end end) end end if string.find(string.lower(tostring(res)), "delta") then getgenv().isnetworkowner = function() return true end end end end end task.spawn(function() pcall(checkExecutor) end) local function checkDebug() if CheatEngineMode then return end if not getgenv().debug then CheatEngineMode = true else if type(debug) ~= debugChecks.Type then CheatEngineMode = true else for i, v in pairs(debugChecks.Functions) do if not debug[v] or (debug[v] and type(debug[v]) ~= "function") then CheatEngineMode = true else local suc, res = pcall(debug[v]) if tostring(res) == "Not Implemented" then CheatEngineMode = true end end end end end end shared.CheatEngineMode = shared.CheatEngineMode or CheatEngineMode if game.PlaceId == 79546208627805 then pcall(function() game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Voidware | 99 Nights In The Forest", Text = "Go In Game for Voidware to load :D [You are in lobby currently]", Duration = 10 }) end) return end task.spawn(function() pcall(function() local Services = setmetatable({}, { __index = function(self, key) local suc, service = pcall(game.GetService, game, key) if suc and service then self[key] = service return service else warn("[Services] Warning: \"" .. key .. "\" is not a valid Roblox service.") return nil end end }) local Players = Services.Players local TextChatService = Services.TextChatService local ChatService = Services.ChatService repeat task.wait() until game:IsLoaded() and Players.LocalPlayer ~= nil local chatVersion = TextChatService and TextChatService.ChatVersion or Enum.ChatVersion.LegacyChatService local TagRegister = shared.TagRegister or {} if not shared.CheatEngineMode then if chatVersion == Enum.ChatVersion.TextChatService then TextChatService.OnIncomingMessage = function(data) TagRegister = shared.TagRegister or {} local properties = Instance.new("TextChatMessageProperties", game:GetService("Workspace")) local TextSource = data.TextSource local PrefixText = data.PrefixText or "" if TextSource then local plr = Players:GetPlayerByUserId(TextSource.UserId) if plr then local prefix = "" if TagRegister[plr] then prefix = prefix .. TagRegister[plr] end if plr:GetAttribute("__OwnsVIPGamepass") and plr:GetAttribute("VIPChatTag") ~= false then prefix = prefix .. "[VIP] " end local currentLevel = plr:GetAttribute("_CurrentLevel") if currentLevel then prefix = prefix .. string.format("[%s] ", tostring(currentLevel)) end local playerTagValue = plr:FindFirstChild("PlayerTagValue") if playerTagValue and playerTagValue.Value then prefix = prefix .. string.format("[#%s] ", tostring(playerTagValue.Value)) end prefix = prefix .. PrefixText properties.PrefixText = string.format("%s", prefix) end end return properties end elseif chatVersion == Enum.ChatVersion.LegacyChatService then ChatService:RegisterProcessCommandsFunction("CustomPrefix", function(speakerName, message) TagRegister = shared.TagRegister or {} local plr = Players:FindFirstChild(speakerName) if plr then local prefix = "" if TagRegister[plr] then prefix = prefix .. TagRegister[plr] end if plr:GetAttribute("__OwnsVIPGamepass") and plr:GetAttribute("VIPChatTag") ~= false then prefix = prefix .. "[VIP] " end local currentLevel = plr:GetAttribute("_CurrentLevel") if currentLevel then prefix = prefix .. string.format("[%s] ", tostring(currentLevel)) end local playerTagValue = plr:FindFirstChild("PlayerTagValue") if playerTagValue and playerTagValue.Value then prefix = prefix .. string.format("[#%s] ", tostring(playerTagValue.Value)) end prefix = prefix .. speakerName return prefix .. " " .. message end return message end) end end end) end) local commit = shared.CustomCommit and tostring(shared.CustomCommit) or shared.StagingMode and "staging" or "7b3fad2b46336a55beca73caa205fb49dac41165" loadstring(game:HttpGet("https://raw.githubusercontent.com/VapeVoidware/VW-Add/" .. tostring(commit) .. "/newnightsintheforest.lua", true))() ]])() end) end -- Player Join/Leave Notifications _G.PMCCHub_JoinConn = Players.PlayerAdded:Connect(function(plr) StarterGui:SetCore("SendNotification", {Title="✅ Player Joined", Text=plr.Name.." joined", Duration=2}) end) _G.PMCCHub_LeaveConn = Players.PlayerRemoving:Connect(function(plr) StarterGui:SetCore("SendNotification", {Title="❌ Player Left", Text=plr.Name.." left", Duration=2}) end) -- Fly, Noclip, ESP, and Platform loop RunService.RenderStepped:Connect(function() if character and rootPart and FlyEnabled then local move = Vector3.new(0, 0, 0) local camera = workspace.CurrentCamera if moveForward then move = move + camera.CFrame.LookVector end if moveBackward then move = move - camera.CFrame.LookVector end if moveLeft then move = move - camera.CFrame.RightVector end if moveRight then move = move + camera.CFrame.RightVector end if moveUp then move = move + Vector3.new(0, 1, 0) end if moveDown then move = move - Vector3.new(0, 1, 0) end if move.Magnitude > 0 then move = move.Unit * FlySpeed end BodyVelocity.Velocity = move BodyGyro.CFrame = camera.CFrame end end)