if _G.PV_CLEANUP then pcall(_G.PV_CLEANUP) end local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local me = Players.LocalPlayer local MULT = 80 local ANIM = 5 local CD = 0.05 local RANGE = 250 local arcActive = false local espActive = false local key_arc = Enum.KeyCode.Z local key_esp = Enum.KeyCode.X local key_menu = Enum.KeyCode.RightShift local cleanupList = {} local function remember(c) table.insert(cleanupList, c) return c end --// arc local touched = {} local speedDone = false local upvalBackup = {} local function applyHandle(handle) if touched[handle] then return end handle:SetAttribute("bSize", handle.Size) handle:SetAttribute("bTrans", handle.Transparency) handle:SetAttribute("bColl", handle.CanCollide) handle:SetAttribute("bQuery", handle.CanQuery) handle:SetAttribute("bTouch", handle.CanTouch) handle:SetAttribute("bMass", handle.Massless) handle:SetAttribute("bShadow", handle.CastShadow) touched[handle] = true handle.Size = handle:GetAttribute("bSize") * MULT handle.Transparency = 1 handle.CanCollide = false handle.CanTouch = true handle.CanQuery = false handle.Massless = true handle.CastShadow = false local kids = handle:GetDescendants() for i = 1, #kids do local thing = kids[i] if thing:IsA("ParticleEmitter") or thing:IsA("Trail") then thing:SetAttribute("bEnabled", thing.Enabled) thing.Enabled = false end end end local function restoreHandle(handle) if not touched[handle] then return end handle.Size = handle:GetAttribute("bSize") or handle.Size handle.Transparency = handle:GetAttribute("bTrans") or 0 handle.CanCollide = handle:GetAttribute("bColl") handle.CanQuery = handle:GetAttribute("bQuery") handle.CanTouch = handle:GetAttribute("bTouch") handle.Massless = handle:GetAttribute("bMass") handle.CastShadow = handle:GetAttribute("bShadow") local kids = handle:GetDescendants() for i = 1, #kids do local thing = kids[i] if thing:IsA("ParticleEmitter") or thing:IsA("Trail") then local prev = thing:GetAttribute("bEnabled") if prev ~= nil then thing.Enabled = prev end end end touched[handle] = nil end local function patchSpeed() if speedDone then return end local objs = getgc(true) for n = 1, #objs do local f = objs[n] if type(f) == "function" then local ok, info = pcall(debug.getinfo, f) if ok and info.source and string.find(info.source, "Client_Main") then local slot = 1 while slot <= 80 do local gotName, name = pcall(debug.getupvalue, f, slot) if not gotName or name == nil then break end if type(name) == "string" then local newVal = nil if string.find(name, "attackAnimationSpeed") then newVal = ANIM elseif string.find(name, "timeBetweenAttacks") then newVal = CD elseif string.find(name, "comboTime") then newVal = 0.05 elseif string.find(name, "fullComboCooldown") then newVal = 0 end if newVal ~= nil then table.insert(upvalBackup, { f, slot, name }) pcall(debug.setupvalue, f, slot, newVal) end end slot = slot + 1 end end end end speedDone = true end local function unpatchSpeed() for i = 1, #upvalBackup do local b = upvalBackup[i] pcall(debug.setupvalue, b[1], b[2], b[3]) end upvalBackup = {} speedDone = false end local spawnConn = nil local function doChar(char) char.ChildAdded:Connect(function(obj) if obj:IsA("Tool") and arcActive then task.wait(0.1) local h = obj:FindFirstChild("Handle") if h then applyHandle(h) end task.wait(0.2) patchSpeed() end end) for _, obj in ipairs(char:GetChildren()) do if obj:IsA("Tool") then local h = obj:FindFirstChild("Handle") if h then applyHandle(h) end end end patchSpeed() end local function startArc() if me.Character then doChar(me.Character) end spawnConn = me.CharacterAdded:Connect(doChar) end local function stopArc() if spawnConn then spawnConn:Disconnect() spawnConn = nil end for h in pairs(touched) do restoreHandle(h) end unpatchSpeed() end --// esp local marks = {} local function clearMarks() for mdl, h in pairs(marks) do h:Destroy() marks[mdl] = nil end end local espConn = nil local function startEsp() if espConn then return end espConn = RunService.Heartbeat:Connect(function() local char = me.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end local folder = workspace:FindFirstChild("NPCs") if not folder then return end local seen = {} for _, npc in ipairs(folder:GetChildren()) do if npc:IsA("Model") then local h = npc:FindFirstChildOfClass("Humanoid") local root = npc:FindFirstChild("HumanoidRootPart") or npc.PrimaryPart if h and root and h.Health > 0 then local dist = (root.Position - hrp.Position).Magnitude if dist <= RANGE then seen[npc] = true if not marks[npc] then local hl = Instance.new("Highlight") hl.FillColor = Color3.fromRGB(80, 160, 240) hl.FillTransparency = 0.7 hl.OutlineColor = Color3.fromRGB(120, 200, 255) hl.OutlineTransparency = 0.2 hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Adornee = npc hl.Parent = npc marks[npc] = hl end end end end end for mdl, hl in pairs(marks) do if not seen[mdl] then hl:Destroy() marks[mdl] = nil end end end) end local function stopEsp() if espConn then espConn:Disconnect() espConn = nil end clearMarks() end --// gui local sg = Instance.new("ScreenGui") sg.Name = "PVPanel" sg.ResetOnSpawn = false sg.IgnoreGuiInset = true sg.ZIndexBehavior = Enum.ZIndexBehavior.Sibling pcall(function() sg.Parent = game:GetService("CoreGui") end) if not sg.Parent then sg.Parent = me:WaitForChild("PlayerGui") end local WIDTH = 290 local window = Instance.new("Frame") window.Size = UDim2.fromOffset(WIDTH, 0) window.Position = UDim2.new(0, 24, 0.5, -90) window.BackgroundColor3 = Color3.fromRGB(10, 12, 18) window.BorderSizePixel = 0 window.Parent = sg local windowCorner = Instance.new("UICorner") windowCorner.CornerRadius = UDim.new(0, 10) windowCorner.Parent = window local windowStroke = Instance.new("UIStroke") windowStroke.Color = Color3.fromRGB(30, 52, 92) windowStroke.Thickness = 1 windowStroke.Transparency = 0.2 windowStroke.Parent = window local windowGrad = Instance.new("UIGradient") windowGrad.Rotation = 90 windowGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(16, 20, 32)), ColorSequenceKeypoint.new(1, Color3.fromRGB(8, 10, 16)), }) windowGrad.Parent = window local cropper = Instance.new("Frame") cropper.Size = UDim2.fromScale(1, 1) cropper.BackgroundTransparency = 1 cropper.ClipsDescendants = true cropper.Parent = window local topbar = Instance.new("Frame") topbar.Size = UDim2.new(1, 0, 0, 52) topbar.BackgroundColor3 = Color3.fromRGB(14, 18, 30) topbar.BorderSizePixel = 0 topbar.Parent = cropper local topbarCorner = Instance.new("UICorner") topbarCorner.CornerRadius = UDim.new(0, 10) topbarCorner.Parent = topbar local stripe = Instance.new("Frame") stripe.Size = UDim2.fromOffset(3, 18) stripe.Position = UDim2.fromOffset(8, 12) stripe.BackgroundColor3 = Color3.fromRGB(58, 120, 220) stripe.BorderSizePixel = 0 stripe.Parent = topbar local stripeCorner = Instance.new("UICorner") stripeCorner.CornerRadius = UDim.new(1, 0) stripeCorner.Parent = stripe local heading = Instance.new("TextLabel") heading.Size = UDim2.new(1, -90, 0, 28) heading.Position = UDim2.fromOffset(18, 6) heading.BackgroundTransparency = 1 heading.Font = Enum.Font.GothamMedium heading.Text = "sword slasher thing" heading.TextColor3 = Color3.fromRGB(225, 232, 245) heading.TextSize = 15 heading.TextXAlignment = Enum.TextXAlignment.Left heading.Parent = topbar local sub = Instance.new("TextLabel") sub.Size = UDim2.new(1, -90, 0, 14) sub.Position = UDim2.fromOffset(18, 31) sub.BackgroundTransparency = 1 sub.Font = Enum.Font.Gotham sub.Text = "made by connor2673 - discord" sub.TextColor3 = Color3.fromRGB(90, 150, 240) sub.TextSize = 11 sub.TextXAlignment = Enum.TextXAlignment.Left sub.Parent = topbar local xBtn = Instance.new("TextButton") xBtn.Size = UDim2.fromOffset(28, 28) xBtn.Position = UDim2.new(1, -68, 0, 12) xBtn.BackgroundColor3 = Color3.fromRGB(40, 20, 26) xBtn.Text = "×" xBtn.Font = Enum.Font.GothamBold xBtn.TextColor3 = Color3.fromRGB(220, 130, 140) xBtn.TextSize = 16 xBtn.AutoButtonColor = false xBtn.Parent = topbar local xCorner = Instance.new("UICorner") xCorner.CornerRadius = UDim.new(0, 6) xCorner.Parent = xBtn local dashBtn = Instance.new("TextButton") dashBtn.Size = UDim2.fromOffset(28, 28) dashBtn.Position = UDim2.new(1, -36, 0, 12) dashBtn.BackgroundColor3 = Color3.fromRGB(22, 28, 44) dashBtn.Text = "–" dashBtn.Font = Enum.Font.GothamBold dashBtn.TextColor3 = Color3.fromRGB(170, 185, 210) dashBtn.TextSize = 16 dashBtn.AutoButtonColor = false dashBtn.Parent = topbar local dashCorner = Instance.new("UICorner") dashCorner.CornerRadius = UDim.new(0, 6) dashCorner.Parent = dashBtn local panel = Instance.new("Frame") panel.Name = "Body" panel.Size = UDim2.new(1, 0, 0, 0) panel.AutomaticSize = Enum.AutomaticSize.Y panel.Position = UDim2.fromOffset(0, 52) panel.BackgroundTransparency = 1 panel.Parent = cropper local panelPad = Instance.new("UIPadding") panelPad.PaddingTop = UDim.new(0, 10) panelPad.PaddingBottom = UDim.new(0, 12) panelPad.PaddingLeft = UDim.new(0, 12) panelPad.PaddingRight = UDim.new(0, 12) panelPad.Parent = panel local panelList = Instance.new("UIListLayout") panelList.Padding = UDim.new(0, 8) panelList.SortOrder = Enum.SortOrder.LayoutOrder panelList.Parent = panel local waitingForKey = nil -- arc row local arcRow = Instance.new("Frame") arcRow.Size = UDim2.new(1, 0, 0, 38) arcRow.LayoutOrder = 1 arcRow.BackgroundColor3 = Color3.fromRGB(16, 20, 32) arcRow.BorderSizePixel = 0 arcRow.Parent = panel local arcRowCorner = Instance.new("UICorner") arcRowCorner.CornerRadius = UDim.new(0, 7) arcRowCorner.Parent = arcRow local arcRowStroke = Instance.new("UIStroke") arcRowStroke.Color = Color3.fromRGB(26, 36, 58) arcRowStroke.Transparency = 0.4 arcRowStroke.Parent = arcRow local arcLabel = Instance.new("TextLabel") arcLabel.Size = UDim2.fromOffset(120, 38) arcLabel.Position = UDim2.fromOffset(12, 0) arcLabel.BackgroundTransparency = 1 arcLabel.Font = Enum.Font.Gotham arcLabel.Text = "Arc" arcLabel.TextColor3 = Color3.fromRGB(205, 214, 230) arcLabel.TextSize = 13 arcLabel.TextXAlignment = Enum.TextXAlignment.Left arcLabel.Parent = arcRow local arcKey = Instance.new("TextButton") arcKey.Size = UDim2.fromOffset(46, 22) arcKey.Position = UDim2.new(1, -104, 0.5, -11) arcKey.BackgroundColor3 = Color3.fromRGB(24, 30, 48) arcKey.Font = Enum.Font.GothamMedium arcKey.Text = key_arc.Name arcKey.TextColor3 = Color3.fromRGB(150, 170, 205) arcKey.TextSize = 11 arcKey.AutoButtonColor = false arcKey.Parent = arcRow local arcKeyCorner = Instance.new("UICorner") arcKeyCorner.CornerRadius = UDim.new(0, 5) arcKeyCorner.Parent = arcKey local arcKeyStroke = Instance.new("UIStroke") arcKeyStroke.Color = Color3.fromRGB(40, 56, 90) arcKeyStroke.Parent = arcKey local arcSwitch = Instance.new("TextButton") arcSwitch.Size = UDim2.fromOffset(42, 22) arcSwitch.Position = UDim2.new(1, -50, 0.5, -11) arcSwitch.BackgroundColor3 = Color3.fromRGB(28, 34, 52) arcSwitch.Text = "" arcSwitch.AutoButtonColor = false arcSwitch.Parent = arcRow local arcSwitchCorner = Instance.new("UICorner") arcSwitchCorner.CornerRadius = UDim.new(1, 0) arcSwitchCorner.Parent = arcSwitch local arcKnob = Instance.new("Frame") arcKnob.Size = UDim2.fromOffset(16, 16) arcKnob.Position = UDim2.new(0, 3, 0.5, -8) arcKnob.BackgroundColor3 = Color3.fromRGB(235, 240, 250) arcKnob.BorderSizePixel = 0 arcKnob.Parent = arcSwitch local arcKnobCorner = Instance.new("UICorner") arcKnobCorner.CornerRadius = UDim.new(1, 0) arcKnobCorner.Parent = arcKnob -- esp row local espRow = Instance.new("Frame") espRow.Size = UDim2.new(1, 0, 0, 38) espRow.LayoutOrder = 2 espRow.BackgroundColor3 = Color3.fromRGB(16, 20, 32) espRow.BorderSizePixel = 0 espRow.Parent = panel local espRowCorner = Instance.new("UICorner") espRowCorner.CornerRadius = UDim.new(0, 7) espRowCorner.Parent = espRow local espRowStroke = Instance.new("UIStroke") espRowStroke.Color = Color3.fromRGB(26, 36, 58) espRowStroke.Transparency = 0.4 espRowStroke.Parent = espRow local espLabel = Instance.new("TextLabel") espLabel.Size = UDim2.fromOffset(120, 38) espLabel.Position = UDim2.fromOffset(12, 0) espLabel.BackgroundTransparency = 1 espLabel.Font = Enum.Font.Gotham espLabel.Text = "Visualizer" espLabel.TextColor3 = Color3.fromRGB(205, 214, 230) espLabel.TextSize = 13 espLabel.TextXAlignment = Enum.TextXAlignment.Left espLabel.Parent = espRow local espKey = Instance.new("TextButton") espKey.Size = UDim2.fromOffset(46, 22) espKey.Position = UDim2.new(1, -104, 0.5, -11) espKey.BackgroundColor3 = Color3.fromRGB(24, 30, 48) espKey.Font = Enum.Font.GothamMedium espKey.Text = key_esp.Name espKey.TextColor3 = Color3.fromRGB(150, 170, 205) espKey.TextSize = 11 espKey.AutoButtonColor = false espKey.Parent = espRow local espKeyCorner = Instance.new("UICorner") espKeyCorner.CornerRadius = UDim.new(0, 5) espKeyCorner.Parent = espKey local espKeyStroke = Instance.new("UIStroke") espKeyStroke.Color = Color3.fromRGB(40, 56, 90) espKeyStroke.Parent = espKey local espSwitch = Instance.new("TextButton") espSwitch.Size = UDim2.fromOffset(42, 22) espSwitch.Position = UDim2.new(1, -50, 0.5, -11) espSwitch.BackgroundColor3 = Color3.fromRGB(28, 34, 52) espSwitch.Text = "" espSwitch.AutoButtonColor = false espSwitch.Parent = espRow local espSwitchCorner = Instance.new("UICorner") espSwitchCorner.CornerRadius = UDim.new(1, 0) espSwitchCorner.Parent = espSwitch local espKnob = Instance.new("Frame") espKnob.Size = UDim2.fromOffset(16, 16) espKnob.Position = UDim2.new(0, 3, 0.5, -8) espKnob.BackgroundColor3 = Color3.fromRGB(235, 240, 250) espKnob.BorderSizePixel = 0 espKnob.Parent = espSwitch local espKnobCorner = Instance.new("UICorner") espKnobCorner.CornerRadius = UDim.new(1, 0) espKnobCorner.Parent = espKnob -- switch visuals local function slideSwitch(switch, knob, state) local bg if state then bg = Color3.fromRGB(40, 90, 200) else bg = Color3.fromRGB(28, 34, 52) end TweenService:Create(switch, TweenInfo.new(0.18, Enum.EasingStyle.Quad), { BackgroundColor3 = bg }):Play() local pos if state then pos = UDim2.new(1, -19, 0.5, -8) else pos = UDim2.new(0, 3, 0.5, -8) end TweenService:Create(knob, TweenInfo.new(0.18, Enum.EasingStyle.Quad), { Position = pos }):Play() end local function toggleArc() arcActive = not arcActive slideSwitch(arcSwitch, arcKnob, arcActive) if arcActive then startArc() else stopArc() end end local function toggleEsp() espActive = not espActive slideSwitch(espSwitch, espKnob, espActive) if espActive then startEsp() else stopEsp() end end remember(arcSwitch.MouseButton1Click:Connect(toggleArc)) remember(espSwitch.MouseButton1Click:Connect(toggleEsp)) remember(arcKey.MouseButton1Click:Connect(function() waitingForKey = "arc" arcKey.Text = "..." arcKey.TextColor3 = Color3.fromRGB(90, 150, 240) end)) remember(espKey.MouseButton1Click:Connect(function() waitingForKey = "esp" espKey.Text = "..." espKey.TextColor3 = Color3.fromRGB(90, 150, 240) end)) -- row hover glow local function hookHover(row, rowStroke) remember(row.MouseEnter:Connect(function() TweenService:Create(rowStroke, TweenInfo.new(0.15), { Transparency = 0.1 }):Play() end)) remember(row.MouseLeave:Connect(function() TweenService:Create(rowStroke, TweenInfo.new(0.15), { Transparency = 0.4 }):Play() end)) end hookHover(arcRow, arcRowStroke) hookHover(espRow, espRowStroke) local collapsed = false local function setCollapsed(state) collapsed = state if state then dashBtn.Text = "+" else dashBtn.Text = "–" end local target if state then target = 52 else target = 52 + panel.AbsoluteSize.Y end TweenService:Create(window, TweenInfo.new(0.28, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), { Size = UDim2.fromOffset(WIDTH, target) }):Play() end task.defer(function() window.Size = UDim2.fromOffset(WIDTH, 52 + panel.AbsoluteSize.Y) end) remember(panel:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() if not collapsed then window.Size = UDim2.fromOffset(WIDTH, 52 + panel.AbsoluteSize.Y) end end)) remember(dashBtn.MouseButton1Click:Connect(function() setCollapsed(not collapsed) end)) remember(dashBtn.MouseEnter:Connect(function() TweenService:Create(dashBtn, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(30, 40, 64) }):Play() end)) remember(dashBtn.MouseLeave:Connect(function() TweenService:Create(dashBtn, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(22, 28, 44) }):Play() end)) remember(xBtn.MouseEnter:Connect(function() TweenService:Create(xBtn, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(58, 26, 34) }):Play() end)) remember(xBtn.MouseLeave:Connect(function() TweenService:Create(xBtn, TweenInfo.new(0.15), { BackgroundColor3 = Color3.fromRGB(40, 20, 26) }):Play() end)) -- dragging local dragging = false local dragStart local windowStart remember(topbar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true windowStart = window.Position dragStart = i.Position end end)) remember(UIS.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local delta = i.Position - dragStart window.Position = UDim2.new( windowStart.X.Scale, windowStart.X.Offset + delta.X, windowStart.Y.Scale, windowStart.Y.Offset + delta.Y ) end end)) remember(UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end)) -- keys remember(UIS.InputBegan:Connect(function(i, processed) if i.UserInputType ~= Enum.UserInputType.Keyboard then return end if waitingForKey == "arc" then key_arc = i.KeyCode arcKey.Text = i.KeyCode.Name arcKey.TextColor3 = Color3.fromRGB(150, 170, 205) waitingForKey = nil return elseif waitingForKey == "esp" then key_esp = i.KeyCode espKey.Text = i.KeyCode.Name espKey.TextColor3 = Color3.fromRGB(150, 170, 205) waitingForKey = nil return end if processed then return end if i.KeyCode == key_menu then window.Visible = not window.Visible elseif i.KeyCode == key_arc then toggleArc() elseif i.KeyCode == key_esp then toggleEsp() end end)) local function destroy() for i = 1, #cleanupList do pcall(function() cleanupList[i]:Disconnect() end) end stopArc() stopEsp() pcall(function() sg:Destroy() end) _G.PV_CLEANUP = nil end _G.PV_CLEANUP = destroy remember(xBtn.MouseButton1Click:Connect(function() TweenService:Create(window, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.In), { Position = UDim2.new(0, -WIDTH - 40, 0.5, -90), BackgroundTransparency = 1 }):Play() task.delay(0.26, destroy) end)) window.BackgroundTransparency = 1 window.Position = UDim2.new(0, 24, 0.5, -70) TweenService:Create(window, TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), { BackgroundTransparency = 0, Position = UDim2.new(0, 24, 0.5, -90) }):Play()