--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") -- 1. Configuration local MIN_TIME = 2000 local MAX_TIME = 300000000 local IS_ACTIVE = false local IS_SPECTATING = false local HITBOX_SIZE = Vector3.new(12, 12, 12) local DEFAULT_SIZE = Vector3.new(2, 2, 1) local SAFE_ZONE_BUFFER = 4 local TP_OFFSET = 0.5 local PANIC_HEALTH = 25 local ATTACK_SPEED = 0.05 -- 2. References local spawnFolder = Workspace:WaitForChild("Terrain"):WaitForChild("Spawn") local myPlayer = Players.LocalPlayer local camera = Workspace.CurrentCamera local spectateIndex = 1 local pvpCheckParams = OverlapParams.new() pvpCheckParams.FilterType = Enum.RaycastFilterType.Exclude -- 3. Draggable Logic local function makeDraggable(gui) local dragging, dragInput, dragStart, startPos gui.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = gui.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) gui.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) end -- 4. GUI Setup local sg = Instance.new("ScreenGui", myPlayer:WaitForChild("PlayerGui")) sg.Name = "UltraHunterGui" sg.ResetOnSpawn = false local mainFrame = Instance.new("Frame", sg) mainFrame.Size = UDim2.new(0, 220, 0, 180) mainFrame.Position = UDim2.new(0, 20, 0, 20) mainFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 10) mainFrame.BackgroundTransparency = 0.4 mainFrame.BorderSizePixel = 0 mainFrame.Active = true makeDraggable(mainFrame) Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8) local button = Instance.new("TextButton", mainFrame) button.Size = UDim2.new(1, -20, 0, 45) button.Position = UDim2.new(0, 10, 0, 10) button.BackgroundColor3 = Color3.fromRGB(150, 0, 0) button.Text = "ULTRA HUNTER: OFF" button.TextColor3 = Color3.new(1,1,1) button.Font = Enum.Font.SourceSansBold button.TextSize = 14 Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6) local minInput = Instance.new("TextBox", mainFrame) minInput.Size = UDim2.new(0.45, -5, 0, 30) minInput.Position = UDim2.new(0, 10, 0, 60) minInput.PlaceholderText = "Min" minInput.Text = tostring(MIN_TIME) minInput.BackgroundColor3 = Color3.fromRGB(0, 0, 0) minInput.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", minInput).CornerRadius = UDim.new(0, 4) local maxInput = Instance.new("TextBox", mainFrame) maxInput.Size = UDim2.new(0.45, -5, 0, 30) maxInput.Position = UDim2.new(0.55, -5, 0, 60) maxInput.PlaceholderText = "Max" maxInput.Text = tostring(MAX_TIME) maxInput.BackgroundColor3 = Color3.fromRGB(0, 0, 0) maxInput.TextColor3 = Color3.new(1,1,1) Instance.new("UICorner", maxInput).CornerRadius = UDim.new(0, 4) local spectateBtn = Instance.new("TextButton", mainFrame) spectateBtn.Size = UDim2.new(1, -20, 0, 35) spectateBtn.Position = UDim2.new(0, 10, 0, 100) spectateBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) spectateBtn.Text = "SPECTATE: OFF" spectateBtn.TextColor3 = Color3.new(1,1,1) spectateBtn.Font = Enum.Font.SourceSansBold Instance.new("UICorner", spectateBtn).CornerRadius = UDim.new(0, 6) local navFrame = Instance.new("Frame", mainFrame) navFrame.Size = UDim2.new(1, -20, 0, 30) navFrame.Position = UDim2.new(0, 10, 0, 140) navFrame.BackgroundTransparency = 1 navFrame.Visible = false local prevBtn = Instance.new("TextButton", navFrame) prevBtn.Size = UDim2.new(0.3, 0, 1, 0) prevBtn.Text = "<" prevBtn.BackgroundColor3 = Color3.fromRGB(30,30,30) prevBtn.TextColor3 = Color3.new(1,1,1) local nextBtn = Instance.new("TextButton", navFrame) nextBtn.Size = UDim2.new(0.3, 0, 1, 0) nextBtn.Position = UDim2.new(0.7, 0, 0, 0) nextBtn.Text = ">" nextBtn.BackgroundColor3 = Color3.fromRGB(30,30,30) nextBtn.TextColor3 = Color3.new(1,1,1) local specName = Instance.new("TextLabel", navFrame) specName.Size = UDim2.new(0.4, 0, 1, 0) specName.Position = UDim2.new(0.3, 0, 0, 0) specName.BackgroundTransparency = 1 specName.Text = "None" specName.TextColor3 = Color3.new(1,1,1) specName.TextScaled = true -- 5. Helper Functions local function updateSpectate() local plrs = Players:GetPlayers() if not IS_SPECTATING then camera.CameraSubject = myPlayer.Character and myPlayer.Character:FindFirstChild("Humanoid") navFrame.Visible = false return end navFrame.Visible = true if #plrs > 0 then if spectateIndex > #plrs then spectateIndex = 1 end if spectateIndex < 1 then spectateIndex = #plrs end local target = plrs[spectateIndex] if target and target.Character and target.Character:FindFirstChild("Humanoid") then camera.CameraSubject = target.Character.Humanoid specName.Text = target.DisplayName else specName.Text = "Scanning..." end end end local function returnToOriginalSpot(originalCF) local char = myPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp and originalCF then hrp.AssemblyLinearVelocity = Vector3.zero char:PivotTo(originalCF) end end local function setHitbox(targetChar, size) local hrp = targetChar and targetChar:FindFirstChild("HumanoidRootPart") if hrp then hrp.Size = size hrp.Transparency = (size == DEFAULT_SIZE) and 0 or 0.7 hrp.CanCollide = false end end local function autoEquipTool(char) local backpack = myPlayer:FindFirstChild("Backpack") if char and backpack then local tool = backpack:FindFirstChildOfClass("Tool") if tool then tool.Parent = char end end end local function isTrulyInPvp(targetChar) local hrp = targetChar:FindFirstChild("HumanoidRootPart") if not hrp then return false end pvpCheckParams.FilterDescendantsInstances = {targetChar, myPlayer.Character} local partsInSpace = Workspace:GetPartBoundsInBox(hrp.CFrame, Vector3.new(SAFE_ZONE_BUFFER, 10, SAFE_ZONE_BUFFER), pvpCheckParams) for _, part in ipairs(partsInSpace) do if part:IsDescendantOf(spawnFolder) then return false end end return true end -- 6. Event Listeners minInput.FocusLost:Connect(function() MIN_TIME = tonumber(minInput.Text) or 0 end) maxInput.FocusLost:Connect(function() MAX_TIME = tonumber(maxInput.Text) or 300000000 end) button.MouseButton1Click:Connect(function() IS_ACTIVE = not IS_ACTIVE button.Text = IS_ACTIVE and "ULTRA HUNTER: ACTIVE" or "ULTRA HUNTER: OFF" button.BackgroundColor3 = IS_ACTIVE and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(150, 0, 0) end) spectateBtn.MouseButton1Click:Connect(function() IS_SPECTATING = not IS_SPECTATING spectateBtn.Text = IS_SPECTATING and "SPECTATE: ON" or "SPECTATE: OFF" spectateBtn.BackgroundColor3 = IS_SPECTATING and Color3.fromRGB(0, 100, 200) or Color3.fromRGB(50, 50, 50) updateSpectate() end) nextBtn.MouseButton1Click:Connect(function() spectateIndex = spectateIndex + 1 updateSpectate() end) prevBtn.MouseButton1Click:Connect(function() spectateIndex = spectateIndex - 1 updateSpectate() end) Players.PlayerRemoving:Connect(function() if IS_SPECTATING then updateSpectate() end end) -- 7. Main Loop task.spawn(function() while true do task.wait(0.01) if not IS_ACTIVE then continue end local myChar = myPlayer.Character local myHum = myChar and myChar:FindFirstChild("Humanoid") local myHrp = myChar and myChar:FindFirstChild("HumanoidRootPart") if myChar and myHrp and myHum and myHum.Health > PANIC_HEALTH then for _, target in ipairs(Players:GetPlayers()) do if target == myPlayer then continue end local tChar = target.Character local tHum = tChar and tChar:FindFirstChild("Humanoid") local tHrp = tChar and tChar:FindFirstChild("HumanoidRootPart") local lstats = target:FindFirstChild("leaderstats") local timeVal = lstats and lstats:FindFirstChild("Time") if tHrp and tHum and tHum.Health > 0 and timeVal then if timeVal.Value >= MIN_TIME and timeVal.Value <= MAX_TIME and isTrulyInPvp(tChar) then -- Store spot before attack local preAttackCFrame = myHrp.CFrame setHitbox(tChar, HITBOX_SIZE) local lastAttack = 0 repeat if tHrp and myHrp and tHum.Health > 0 and myHum.Health > PANIC_HEALTH and IS_ACTIVE then autoEquipTool(myChar) myHrp.AssemblyLinearVelocity = Vector3.zero myHum:ChangeState(Enum.HumanoidStateType.Physics) local goalCF = CFrame.lookAt(tHrp.Position + (tHrp.CFrame.LookVector * -TP_OFFSET), tHrp.Position) myHrp.CFrame = myHrp.CFrame:Lerp(goalCF, 0.8) if tick() - lastAttack > ATTACK_SPEED then local tool = myChar:FindFirstChildOfClass("Tool") if tool then tool:Activate() end lastAttack = tick() end end task.wait() until not tHum or tHum.Health <= 0 or myHum.Health <= PANIC_HEALTH or not IS_ACTIVE -- Disable Spectate Mode if target is dead if tHum and tHum.Health <= 0 then IS_SPECTATING = false spectateBtn.Text = "SPECTATE: OFF" spectateBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) updateSpectate() end setHitbox(tChar, DEFAULT_SIZE) -- Teleport back to original spot returnToOriginalSpot(preAttackCFrame) break end end end end end end)