-- ============================================================================== -- GLOBAL SCRIPT (GS) v54 - ANTI-BAN & CLONE REMOVER EDITION (ALL EXECUTORS) -- ============================================================================== local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local VirtualUser = game:GetService("VirtualUser") local TeleportService = game:GetService("TeleportService") local TweenService = game:GetService("TweenService") local ReplicatedStorage = game:GetService("ReplicatedStorage") -- ===== OBTENCIÓN SEGURA DE LOCALPLAYER ===== local LP = Players.LocalPlayer while not LP do task.wait() LP = Players.LocalPlayer end local Mouse = LP:GetMouse() -- ============================================================================== -- 🛡️ MOTOR ANTI-BAN & ANTI-KICK UNIVERSAL (BYPASS FE) -- ============================================================================== local antiKickActive = true pcall(function() if typeof(hookmetamethod) == "function" and typeof(newcclosure) == "function" then local oldNamecall oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...) local method = getnamecallmethod() local args = {...} if not checkcaller() and antiKickActive then local mLower = tostring(method):lower() if mLower == "kick" and (self == LP or self == Players or self == game) then warn("[GS ANTI-BAN] Intento de Kick bloqueado con éxito:", tostring(args[1])) return nil end if mLower == "fireserver" or mLower == "invokeserver" then local rName = tostring(self.Name):lower() if rName:find("ban") or rName:find("kick") or rName:find("detect") or rName:find("cheat") or rName:find("exploit") or rName:find("flag") or rName:find("report") or rName:find("anticheat") or rName:find("security") or rName:find("telemetry") then warn("[GS ANTI-BAN] Envío de reporte de cheat bloqueado a:", self.Name) return nil end end end return oldNamecall(self, ...) end)) local oldIndex oldIndex = hookmetamethod(game, "__index", newcclosure(function(self, key) if not checkcaller() and antiKickActive and (self == LP or self == Players) and tostring(key):lower() == "kick" then return newcclosure(function(...) warn("[GS ANTI-BAN] Intento de Kick por Index bloqueado.") return nil end) end return oldIndex(self, key) end)) end end) -- ===== DETECCIÓN DE DISPOSITIVO ===== local isMobile = false pcall(function() if UIS.TouchEnabled and not UIS.KeyboardEnabled then isMobile = true end local vSize = workspace.CurrentCamera and workspace.CurrentCamera.ViewportSize or Vector2.new(1000, 1000) if vSize.X < 800 or vSize.Y < 550 then isMobile = true end end) -- ===== PARENT GUI ANTI-CRASH ===== local function getSafeParent() local parent = nil if type(gethui) == "function" then pcall(function() parent = gethui() end) end if not parent then pcall(function() parent = game:GetService("CoreGui") end) end if not parent or not pcall(function() return parent.Name end) then parent = LP:WaitForChild("PlayerGui") end return parent end local guiParent = getSafeParent() -- Limpieza de versiones previas pcall(function() if guiParent:FindFirstChild("GS_V54") then guiParent.GS_V54:Destroy() end if LP.PlayerGui:FindFirstChild("GS_V54") then LP.PlayerGui.GS_V54:Destroy() end RunService:UnbindFromRenderStep("GS_AimbotV54") end) -- Variables de Personaje y Revive local Character = LP.Character or LP.CharacterAdded:Wait() local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid") local RootPart = Character and Character:FindFirstChild("HumanoidRootPart") local realSpawnCFrame = RootPart and RootPart.CFrame or nil local lastSafeCFrame = RootPart and RootPart.CFrame or nil -- Coordenadas y Estados local lastAliveCFrame = RootPart and RootPart.CFrame or nil local autoReviveInSitu = true local autoRemoteRevive = false local preventDeathFE = false local autoStandUp = true local isDeadState = false local autoFarmBABFT = false -- Duplicador y Rastreador de Clones local copiedObject = nil local clickToDupe = false local clickToDelete = false local customObjectName = "" local spawnedClones = {} -- Multiplicador de Daño local damageBoost = false local damageMultiplier = 3 local fastFireRate = false local isProcessingHit = false -- Pegado a la Cabeza (Sticky Head) local stickyHead = false local stickyOffset = 1.8 -- 1ra Persona Lock local firstPersonLock = false -- ============================================================================== -- MOTOR DE MULTIPLICACIÓN DE DAÑO Y CADENCIA -- ============================================================================== local function getEquippedTool() return Character and Character:FindFirstChildOfClass("Tool") end local function applyDamageBoostToTool(tool) if not tool or not tool:IsA("Tool") then return end pcall(function() for _, v in ipairs(tool:GetDescendants()) do if v:IsA("NumberValue") or v:IsA("IntValue") or v:IsA("DoubleConstrainedValue") then local n = string.lower(v.Name) if n:find("damage") or n:find("dmg") or n:find("power") or n:find("headshot") or n:find("hit") then if not v:FindFirstChild("GS_OrigDmg") then local orig = Instance.new("NumberValue", v) orig.Name = "GS_OrigDmg" orig.Value = v.Value end local baseVal = v:FindFirstChild("GS_OrigDmg") and v.GS_OrigDmg.Value or v.Value v.Value = baseVal * damageMultiplier elseif fastFireRate and (n:find("cooldown") or n:find("firerate") or n:find("delay") or n:find("wait") or n:find("reload")) then v.Value = 0.01 end end end end) end local function executeMultiHit(tool) if not damageBoost or isProcessingHit or not tool or tool.Parent ~= Character then return end isProcessingHit = true applyDamageBoostToTool(tool) task.spawn(function() local extraHits = math.clamp(damageMultiplier - 1, 1, 8) for i = 1, extraHits do if not damageBoost or not tool or tool.Parent ~= Character then break end task.wait(0.03) pcall(function() tool:Activate() local handle = tool:FindFirstChild("Handle") or tool:FindFirstChildOfClass("BasePart") if handle and typeof(firetouchinterest) == "function" then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local targetHrp = plr.Character:FindFirstChild("HumanoidRootPart") or plr.Character:FindFirstChild("Head") if targetHrp and RootPart and (targetHrp.Position - RootPart.Position).Magnitude <= 20 then firetouchinterest(handle, targetHrp, 0) task.wait(0.005) firetouchinterest(handle, targetHrp, 1) end end end end end) end isProcessingHit = false end) end local function hookToolActivation(tool) if not tool or not tool:IsA("Tool") then return end tool.Activated:Connect(function() if damageBoost then executeMultiHit(tool) end end) end -- ============================================================================== -- 🧬 MOTOR DE DUPLICACIÓN & ELIMINACIÓN DE CLONES -- ============================================================================== local function forceArchivable(obj) if not obj then return end pcall(function() obj.Archivable = true for _, descendant in ipairs(obj:GetDescendants()) do descendant.Archivable = true end end) end local function registerClone(clone) if not clone then return end pcall(function() clone:SetAttribute("GS_ClonedObject", true) end) table.insert(spawnedClones, clone) end local function smartClone(instance) if not instance then return nil end forceArchivable(instance) local ok, clone = pcall(function() return instance:Clone() end) if ok and clone then registerClone(clone) return clone end return nil end local function duplicateWorkspaceObject(objeto, heightOffset) if not objeto or not objeto:IsDescendantOf(workspace) then return false end heightOffset = heightOffset or Vector3.new(0, 5, 0) local copia = smartClone(objeto) if copia then copia.Parent = workspace pcall(function() if copia:IsA("BasePart") then copia.CFrame = objeto.CFrame + heightOffset elseif copia:IsA("Model") then copia:PivotTo(objeto:GetPivot() + heightOffset) elseif copia:IsA("Tool") then local handle = copia:FindFirstChild("Handle") or copia:FindFirstChildOfClass("BasePart") if handle then handle.CFrame = handle.CFrame + heightOffset end end end) return true, copia.Name end return false, nil end -- Funciones de Eliminación de Clones local function clearAllClones() local count = 0 for i = #spawnedClones, 1, -1 do local obj = spawnedClones[i] if obj and obj.Parent then pcall(function() obj:Destroy() end) count = count + 1 end table.remove(spawnedClones, i) end -- Escaneo adicional de respaldo en workspace for _, obj in ipairs(workspace:GetDescendants()) do if obj:GetAttribute("GS_ClonedObject") then pcall(function() obj:Destroy() end) count = count + 1 end end notify("🧹 Se eliminaron " .. count .. " objetos clonados.", THEME.warning, 3) end local function deleteLastClone() while #spawnedClones > 0 do local obj = table.remove(spawnedClones) if obj and obj.Parent then local name = obj.Name pcall(function() obj:Destroy() end) notify("↩️ Último clon '" .. name .. "' eliminado.", THEME.warning, 2) return end end notify("No hay clones recientes para eliminar.", THEME.danger, 2) end local function deleteTargetUnderMouse() local target = Mouse.Target if target and not target:IsDescendantOf(Character) and target ~= workspace then local obj = target.Parent:IsA("Model") and target.Parent ~= workspace and not target.Parent:FindFirstChildOfClass("Humanoid") and target.Parent or target local name = obj.Name pcall(function() obj:Destroy() end) notify("🗑️ Objeto '" .. name .. "' eliminado del mapa.", THEME.warning, 2.5) else notify("Apunta con el ratón a un objeto válido.", THEME.warning, 2) end end local copyHighlight = Instance.new("Highlight") copyHighlight.Name = "GS_DupeHighlight" copyHighlight.FillColor = Color3.fromRGB(46, 204, 113) copyHighlight.OutlineColor = Color3.fromRGB(255, 255, 255) copyHighlight.FillTransparency = 0.4 copyHighlight.OutlineTransparency = 0 copyHighlight.Enabled = false copyHighlight.Parent = guiParent -- ============================================================================== -- 👁️ FUNCIÓN DE 1RA PERSONA (LOCK FIRST PERSON) -- ============================================================================== local function setFirstPerson(enable) firstPersonLock = enable pcall(function() if enable then LP.CameraMode = Enum.CameraMode.LockFirstPerson LP.CameraMinZoomDistance = 0.5 LP.CameraMaxZoomDistance = 0.5 else LP.CameraMode = Enum.CameraMode.Classic LP.CameraMinZoomDistance = 0.5 LP.CameraMaxZoomDistance = 128 end end) end -- ============================================================================== -- FUNCIÓN DE REVIVIR -- ============================================================================== local function revivePlayer(character) if not character then character = LP.Character end if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.Health = humanoid.MaxHealth humanoid.WalkSpeed = 16 humanoid.JumpPower = 50 pcall(function() humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end) end end -- ===== SISTEMA DE KEYBINDS ===== local menuKey = Enum.KeyCode.Q local menuKeyName = "Q" local waitingForMenuKey = false local hackKeybinds = {} local waitingForHackKey = nil local NONE_KEY = Enum.KeyCode.Unknown local function registerKeybind(name, defKey, defName, func) hackKeybinds[name] = { key = defKey, keyName = defName, toggleFunc = func, default = {key = defKey, keyName = defName} } end local function resetAllKeybinds() menuKey = Enum.KeyCode.Q menuKeyName = "Q" for _, b in pairs(hackKeybinds) do b.key = NONE_KEY b.keyName = "Ninguno" end end -- ===== INVISIBILIDAD GLOBAL (FE) ===== local feInvisible = false local originalMotorC0s = {} local function setFEInvisibility(enable) feInvisible = enable local char = LP.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if enable then originalMotorC0s = {} for _, m in ipairs(char:GetDescendants()) do if m:IsA("Motor6D") and m.Name ~= "RootJoint" then originalMotorC0s[m] = m.C0 m.C0 = m.C0 * CFrame.new(0, -99999, 0) end end if hrp then hrp.Transparency = 0.5 hrp.Color = Color3.fromRGB(168, 85, 247) hrp.Material = Enum.Material.ForceField end else for m, c0 in pairs(originalMotorC0s) do if m and m.Parent then pcall(function() m.C0 = c0 end) end end originalMotorC0s = {} if hrp then hrp.Transparency = 1 end end end -- ===== FE GODMODE ===== local function applyFEGodmode() pcall(function() local char = LP.Character if not char then return end local hum = char:FindFirstChildOfClass("Humanoid") if not hum then return end local newHum = hum:Clone() newHum.Parent = char newHum.MaxHealth = hum.MaxHealth newHum.Health = hum.MaxHealth hum:Destroy() workspace.CurrentCamera.CameraSubject = newHum Character = char Humanoid = newHum newHum.BreakJointsOnDeath = false pcall(function() newHum:SetStateEnabled(Enum.HumanoidStateType.Dead, false) end) end) end -- MANEJADOR DE RESPAWN local function updateChar(char) Character = char Humanoid = char:WaitForChild("Humanoid", 5) RootPart = char:WaitForChild("HumanoidRootPart", 5) if not realSpawnCFrame and RootPart then realSpawnCFrame = RootPart.CFrame end isDeadState = false revivePlayer(char) char.ChildAdded:Connect(function(child) if child:IsA("Tool") then hookToolActivation(child) applyDamageBoostToTool(child) end end) for _, child in ipairs(char:GetChildren()) do if child:IsA("Tool") then hookToolActivation(child) applyDamageBoostToTool(child) end end if autoReviveInSitu and lastAliveCFrame and RootPart then task.spawn(function() task.wait(0.05) for i = 1, 6 do if RootPart then RootPart.CFrame = lastAliveCFrame RootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end task.wait(0.04) end end) end if feInvisible then task.wait(0.6) setFEInvisibility(true) end if preventDeathFE then task.wait(0.5) applyFEGodmode() end if firstPersonLock then setFirstPerson(true) end end LP.CharacterAdded:Connect(updateChar) -- RASTREADOR DE POSICIÓN VIVA RunService.Heartbeat:Connect(function() pcall(function() if Character and RootPart and Humanoid and Humanoid.Health > 0 then lastAliveCFrame = RootPart.CFrame end if autoStandUp and Humanoid and Character then local state = Humanoid:GetState() if state == Enum.HumanoidStateType.FallingDown or state == Enum.HumanoidStateType.Ragdoll or state == Enum.HumanoidStateType.PlatformStanding or state == Enum.HumanoidStateType.Seated then pcall(function() Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false) Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false) Humanoid.PlatformStand = false Humanoid.Sit = false Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end) end end end) end) -- BUCLE AUTO-REVIVE task.spawn(function() while true do pcall(function() local char = LP.Character local hum = char and char:FindFirstChildOfClass("Humanoid") local deadNow = false if hum then deadNow = (hum.Health <= 0) elseif char then deadNow = (char:FindFirstChild("Head") == nil and char:FindFirstChild("HumanoidRootPart") == nil) else deadNow = true end if deadNow and not isDeadState then isDeadState = true revivePlayer(char) local pGui = LP:FindFirstChild("PlayerGui") if pGui then for _, b in ipairs(pGui:GetDescendants()) do if b:IsA("TextButton") or b:IsA("ImageButton") then local n = string.lower(b.Name) local txt = b:IsA("TextButton") and string.lower(b.Text) or "" if n:find("respawn") or n:find("revive") or n:find("play") or txt:find("respawn") or txt:find("revive") or txt:find("spawn") then pcall(function() b:Activate() end) end end end end task.wait(0.5) pcall(function() LP:LoadCharacter() end) end end) task.wait(0.4) end end) -- ===== RESOLVER DE OBJETIVOS UNIVERSAL ===== local function getPlayerCharacter(plr) if not plr then return nil end if plr.Character and plr.Character:IsDescendantOf(workspace) then return plr.Character end for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("Model") and (obj.Name == plr.Name or obj.Name == plr.DisplayName) then if obj:FindFirstChildOfClass("Humanoid") or obj:FindFirstChild("Head") then return obj end end end return nil end local function getPlayerRoot(plr) if not plr then return nil end local char = getPlayerCharacter(plr) if not char then return nil end return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Head") or char:FindFirstChildOfClass("BasePart") end -- ===== VARIABLES GENERALES ===== local defaultSpeed = 16 local flying, noclipping = false, false local speeding, godMode, espOn, fullbright, noFog = false, false, false, false, false local infJump, spinBot, antiVoid, antiAFK = false, false, false, false local clickTP, instantPrompt, antiRagdoll, infiniteZoom = false, false, false, false local flySpeed, runSpeed, jumpPower, spinSpeed = 70, 100, 100, 20 local unlockMouse, unlock3rdPerson = false, false -- Aimbot local aimOn = false local aimPart = "Head" local aimSmooth = 4 local aimPrediction = 0.12 local aimFOVRadius = 220 local aimShowFOV = false local aimWallCheck = false local aimTeamCheck = false local aimTargetPlayer = nil local aimOnlyOnRightClick = false local tpTargetPlayer, tpPart = nil, "HumanoidRootPart" local trollTargetPlayer = nil local flyBV, flyBG = nil, nil local savedPos = nil local keys = {W = 0, A = 0, S = 0, D = 0, Up = 0, Down = 0} local pickersToUpdate = {} local afkConn = nil local friendTargetPlayer = nil local matchInfiltrator, infiltratorConn = false, nil local killAura, killAuraRange = false, 18 local hitboxOn, hitboxSize = false, 15 local triggerbot = false local autoClicker, autoClickCPS = false, 12 local bhop, airWalk = false, false local xray, espNames = false, false local hitboxOriginals, xrayOriginals = {}, {} local originalPromptDurations = {} local freecamOn, freecamSpeed = false, 2 local freecamRotX, freecamRotY = 0, 0 local freecamConn = nil local airWalkPart = nil local noFallDamage = false -- ===== TEMA VISUAL DE LA UI ===== local THEME = { bg = Color3.fromRGB(12, 12, 18), bgLight = Color3.fromRGB(18, 18, 26), bgMid = Color3.fromRGB(24, 24, 34), bgCard = Color3.fromRGB(30, 30, 42), accent = Color3.fromRGB(130, 60, 255), accent2 = Color3.fromRGB(219, 39, 119), accent3 = Color3.fromRGB(59, 130, 246), text = Color3.fromRGB(245, 245, 255), textDim = Color3.fromRGB(160, 160, 180), textFade = Color3.fromRGB(100, 100, 120), success = Color3.fromRGB(46, 204, 113), warning = Color3.fromRGB(241, 196, 15), danger = Color3.fromRGB(231, 76, 60), stroke = Color3.fromRGB(45, 45, 65), } -- ScreenGui Principal local SG = Instance.new("ScreenGui") SG.Name = "GS_V54" SG.ResetOnSpawn = false SG.ZIndexBehavior = Enum.ZIndexBehavior.Sibling SG.Parent = guiParent local function onTap(button, callback) button.Activated:Connect(callback) end -- Círculo FOV local FOVCircle = Instance.new("Frame") FOVCircle.Name = "AimFOV" FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5) FOVCircle.Position = UDim2.new(0.5, 0, 0.5, 0) FOVCircle.Size = UDim2.new(0, aimFOVRadius * 2, 0, aimFOVRadius * 2) FOVCircle.BackgroundTransparency = 1 FOVCircle.Visible = false FOVCircle.Parent = SG Instance.new("UICorner", FOVCircle).CornerRadius = UDim.new(1, 0) local fovStroke = Instance.new("UIStroke", FOVCircle) fovStroke.Color = THEME.accent2 fovStroke.Thickness = 1.5 -- Notificaciones local NotifHolder = Instance.new("Frame") NotifHolder.Size = UDim2.new(0, 280, 1, -20) NotifHolder.Position = UDim2.new(1, -290, 0, 10) NotifHolder.BackgroundTransparency = 1 NotifHolder.Parent = SG local nLay = Instance.new("UIListLayout", NotifHolder) nLay.VerticalAlignment = Enum.VerticalAlignment.Bottom nLay.Padding = UDim.new(0, 8) local function notify(text, color, duration) color = color or THEME.accent duration = duration or 3 local n = Instance.new("Frame") n.Size = UDim2.new(1, 0, 0, 46) n.BackgroundColor3 = THEME.bg n.Position = UDim2.new(1, 300, 0, 0) n.Parent = NotifHolder Instance.new("UICorner", n).CornerRadius = UDim.new(0, 10) local st = Instance.new("UIStroke", n) st.Color = color st.Thickness = 1.5 local strip = Instance.new("Frame") strip.Size = UDim2.new(0, 4, 1, -8) strip.Position = UDim2.new(0, 4, 0, 4) strip.BackgroundColor3 = color strip.BorderSizePixel = 0 strip.Parent = n Instance.new("UICorner", strip).CornerRadius = UDim.new(1, 0) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -20, 1, 0) lbl.Position = UDim2.new(0, 14, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = THEME.text lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 11 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.TextWrapped = true lbl.Parent = n local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end tween(n, {Position = UDim2.new(0, 0, 0, 0)}, 0.4, Enum.EasingStyle.Back) task.delay(duration, function() pcall(function() tween(n, {Position = UDim2.new(1, 300, 0, 0)}, 0.3) task.wait(0.35) n:Destroy() end) end) end -- Botón Flotante local Circle = Instance.new("ImageButton") Circle.Size = UDim2.new(0, 52, 0, 52) Circle.Position = UDim2.new(0, 15, 0.4, 0) Circle.BackgroundColor3 = THEME.accent Circle.Image = "rbxthumb://type=AvatarHeadShot&id=" .. LP.UserId .. "&w=150&h=150" Circle.Visible = false Circle.ZIndex = 100 Circle.Parent = SG Instance.new("UICorner", Circle).CornerRadius = UDim.new(1, 0) local cStroke = Instance.new("UIStroke", Circle) cStroke.Color = THEME.accent2 cStroke.Thickness = 2 -- Ventana Principal local Main = Instance.new("Frame") Main.Size = isMobile and UDim2.new(0, 390, 0, 470) or UDim2.new(0, 480, 0, 540) Main.AnchorPoint = Vector2.new(0.5, 0.5) Main.Position = UDim2.new(0.5, 0, 0.5, 0) Main.BackgroundColor3 = THEME.bg Main.BorderSizePixel = 0 Main.Parent = SG Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 14) local mStroke = Instance.new("UIStroke", Main) mStroke.Color = THEME.accent mStroke.Thickness = 1.5 -- Top Bar local Top = Instance.new("Frame") Top.Size = UDim2.new(1, 0, 0, 52) Top.BackgroundColor3 = THEME.accent Top.BorderSizePixel = 0 Top.Parent = Main Instance.new("UICorner", Top).CornerRadius = UDim.new(0, 14) local TitleLbl = Instance.new("TextLabel") TitleLbl.Size = UDim2.new(1, -120, 0, 22) TitleLbl.Position = UDim2.new(0, 14, 0, 6) TitleLbl.BackgroundTransparency = 1 TitleLbl.Text = "GLOBAL SCRIPT ⚡ [ANTI-BAN]" TitleLbl.TextColor3 = Color3.fromRGB(255, 255, 255) TitleLbl.Font = Enum.Font.GothamBold TitleLbl.TextSize = 15 TitleLbl.TextXAlignment = Enum.TextXAlignment.Left TitleLbl.Parent = Top local SubTitleLbl = Instance.new("TextLabel") SubTitleLbl.Size = UDim2.new(1, -120, 0, 16) SubTitleLbl.Position = UDim2.new(0, 14, 0, 28) SubTitleLbl.BackgroundTransparency = 1 SubTitleLbl.Text = "@" .. LP.Name .. " | Clone Cleaner Edition" SubTitleLbl.TextColor3 = Color3.fromRGB(220, 210, 255) SubTitleLbl.Font = Enum.Font.GothamMedium SubTitleLbl.TextSize = 10 SubTitleLbl.TextXAlignment = Enum.TextXAlignment.Left SubTitleLbl.Parent = Top local function makeTopBtn(text, xOff, color) local b = Instance.new("TextButton") b.Size = UDim2.new(0, 34, 0, 34) b.Position = UDim2.new(1, xOff, 0, 9) b.BackgroundColor3 = color b.Text = text b.TextColor3 = Color3.fromRGB(255, 255, 255) b.Font = Enum.Font.GothamBold b.TextSize = 16 b.AutoButtonColor = false b.Parent = Top Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8) return b end local CloseBtn = makeTopBtn("X", -42, THEME.danger) local MinBtn = makeTopBtn("-", -82, Color3.fromRGB(60, 60, 80)) -- Arrastre de Ventana local pDrag, pStart, pPos Top.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then pDrag = true pStart = i.Position pPos = Main.Position end end) UIS.InputChanged:Connect(function(i) if pDrag and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local d = i.Position - pStart Main.Position = UDim2.new(pPos.X.Scale, pPos.X.Offset + d.X, pPos.Y.Scale, pPos.Y.Offset + d.Y) end end) UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then pDrag = false end end) -- Barra de Pestañas local TabBar = Instance.new("ScrollingFrame") TabBar.Size = UDim2.new(1, -16, 0, 36) TabBar.Position = UDim2.new(0, 8, 0, 58) TabBar.BackgroundColor3 = THEME.bgLight TabBar.BorderSizePixel = 0 TabBar.ScrollBarThickness = 0 TabBar.ScrollingDirection = Enum.ScrollingDirection.X TabBar.AutomaticCanvasSize = Enum.AutomaticSize.X TabBar.Parent = Main Instance.new("UICorner", TabBar).CornerRadius = UDim.new(0, 8) local tabLayout = Instance.new("UIListLayout", TabBar) tabLayout.FillDirection = Enum.FillDirection.Horizontal tabLayout.Padding = UDim.new(0, 4) local tabPad = Instance.new("UIPadding", TabBar) tabPad.PaddingLeft = UDim.new(0, 4) tabPad.PaddingTop = UDim.new(0, 4) local Content = Instance.new("Frame") Content.Size = UDim2.new(1, -16, 1, -125) Content.Position = UDim2.new(0, 8, 0, 98) Content.BackgroundColor3 = THEME.bgLight Content.BorderSizePixel = 0 Content.ClipsDescendants = true Content.Parent = Main Instance.new("UICorner", Content).CornerRadius = UDim.new(0, 8) local tabs = { {id = "combat", name = "Combate", icon = "🎯", color = Color3.fromRGB(239, 68, 68)}, {id = "general", name = "Inicio", icon = "🏠", color = THEME.accent3}, {id = "lobby", name = "Salas", icon = "🚪", color = Color3.fromRGB(168, 85, 247)}, {id = "move", name = "Mover", icon = "🏃", color = Color3.fromRGB(34, 197, 94)}, {id = "hacks", name = "Hacks", icon = "⚡", color = Color3.fromRGB(236, 72, 153)}, {id = "visual", name = "Visual", icon = "👁", color = Color3.fromRGB(251, 191, 36)}, {id = "tp", name = "TP", icon = "🌀", color = THEME.accent}, {id = "troll", name = "Troll", icon = "🎭", color = Color3.fromRGB(249, 115, 22)}, {id = "misc", name = "Extra", icon = "✨", color = Color3.fromRGB(244, 114, 182)}, {id = "settings", name = "Ajustes", icon = "⚙", color = Color3.fromRGB(148, 163, 184)}, } local tabBtns, tabPages = {}, {} for _, t in ipairs(tabs) do local b = Instance.new("TextButton") b.Size = UDim2.new(0, 90, 0, 28) b.BackgroundColor3 = THEME.bgCard b.Text = t.icon .. " " .. t.name b.TextColor3 = THEME.textDim b.Font = Enum.Font.GothamBold b.TextSize = 10 b.AutoButtonColor = false b.Parent = TabBar Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) tabBtns[t.id] = {btn = b, color = t.color} local page = Instance.new("ScrollingFrame") page.Size = UDim2.new(1, -8, 1, -8) page.Position = UDim2.new(0, 4, 0, 4) page.BackgroundTransparency = 1 page.ScrollBarThickness = 4 page.CanvasSize = UDim2.new(0, 0, 0, 0) page.Visible = false page.Parent = Content local pageLayout = Instance.new("UIListLayout", page) pageLayout.Padding = UDim.new(0, 6) pageLayout.SortOrder = Enum.SortOrder.LayoutOrder pageLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() page.CanvasSize = UDim2.new(0, 0, 0, pageLayout.AbsoluteContentSize.Y + 24) end) tabPages[t.id] = page end local function switchTab(id) local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end for k, v in pairs(tabBtns) do if k == id then tween(v.btn, {BackgroundColor3 = v.color, TextColor3 = Color3.fromRGB(255, 255, 255)}, 0.2) else tween(v.btn, {BackgroundColor3 = THEME.bgCard, TextColor3 = THEME.textDim}, 0.2) end end for k, p in pairs(tabPages) do p.Visible = (k == id) end end for id, v in pairs(tabBtns) do onTap(v.btn, function() switchTab(id) end) end switchTab("combat") -- UI Helpers local function section(p, t) local f = Instance.new("Frame") f.Size = UDim2.new(1, -4, 0, 24) f.BackgroundTransparency = 1 f.Parent = p local bar = Instance.new("Frame") bar.Size = UDim2.new(0, 4, 0, 16) bar.Position = UDim2.new(0, 4, 0.5, -8) bar.BackgroundColor3 = THEME.accent bar.BorderSizePixel = 0 bar.Parent = f Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0) local l = Instance.new("TextLabel") l.Size = UDim2.new(1, -16, 1, 0) l.Position = UDim2.new(0, 14, 0, 0) l.BackgroundTransparency = 1 l.Text = t l.TextColor3 = Color3.fromRGB(210, 180, 255) l.Font = Enum.Font.GothamBold l.TextSize = 11 l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = f end local function mkToggle(p, label, get, set) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -4, 0, 38) b.BackgroundColor3 = THEME.bgCard b.Text = "" b.AutoButtonColor = false b.Parent = p Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8) local st = Instance.new("UIStroke", b) st.Color = THEME.stroke local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -60, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = label lbl.TextColor3 = THEME.text lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 11 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = b local track = Instance.new("Frame") track.Size = UDim2.new(0, 40, 0, 20) track.Position = UDim2.new(1, -48, 0.5, -10) track.BackgroundColor3 = THEME.stroke track.BorderSizePixel = 0 track.Parent = b Instance.new("UICorner", track).CornerRadius = UDim.new(1, 0) local knob = Instance.new("Frame") knob.Size = UDim2.new(0, 16, 0, 16) knob.Position = UDim2.new(0, 2, 0.5, -8) knob.BackgroundColor3 = Color3.fromRGB(220, 220, 235) knob.BorderSizePixel = 0 knob.Parent = track Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local function paint() local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end if get() then tween(track, {BackgroundColor3 = THEME.success}, 0.2) tween(knob, {Position = UDim2.new(0, 22, 0.5, -8)}, 0.2) else tween(track, {BackgroundColor3 = THEME.stroke}, 0.2) tween(knob, {Position = UDim2.new(0, 2, 0.5, -8)}, 0.2) end end onTap(b, function() set(not get()) paint() end) paint() return b end local function mkBtn(p, t, cb) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -4, 0, 36) b.BackgroundColor3 = THEME.bgCard b.Text = t b.TextColor3 = THEME.text b.Font = Enum.Font.GothamBold b.TextSize = 11 b.AutoButtonColor = false b.Parent = p Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8) local st = Instance.new("UIStroke", b) st.Color = THEME.accent onTap(b, function() local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end tween(b, {BackgroundColor3 = THEME.accent}, 0.1) task.wait(0.1) tween(b, {BackgroundColor3 = THEME.bgCard}, 0.15) cb() end) return b end local function mkSlider(p, label, minV, maxV, default, cb) local w = Instance.new("Frame") w.Size = UDim2.new(1, -4, 0, 48) w.BackgroundColor3 = THEME.bgCard w.Parent = p Instance.new("UICorner", w).CornerRadius = UDim.new(0, 8) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -60, 0, 20) lbl.Position = UDim2.new(0, 10, 0, 2) lbl.BackgroundTransparency = 1 lbl.Text = label lbl.TextColor3 = THEME.text lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 11 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = w local valLbl = Instance.new("TextLabel") valLbl.Size = UDim2.new(0, 45, 0, 18) valLbl.Position = UDim2.new(1, -50, 0, 3) valLbl.BackgroundColor3 = THEME.accent valLbl.BackgroundTransparency = 0.5 valLbl.Text = tostring(default) valLbl.TextColor3 = Color3.fromRGB(255, 255, 255) valLbl.Font = Enum.Font.GothamBold valLbl.TextSize = 10 valLbl.Parent = w Instance.new("UICorner", valLbl).CornerRadius = UDim.new(0, 4) local tr = Instance.new("Frame") tr.Size = UDim2.new(1, -20, 0, 8) tr.Position = UDim2.new(0, 10, 0, 30) tr.BackgroundColor3 = THEME.stroke tr.Parent = w Instance.new("UICorner", tr).CornerRadius = UDim.new(1, 0) local initFrac = math.clamp((default - minV) / (maxV - minV), 0, 1) local fl = Instance.new("Frame") fl.Size = UDim2.new(initFrac, 0, 1, 0) fl.BackgroundColor3 = THEME.accent fl.BorderSizePixel = 0 fl.Parent = tr Instance.new("UICorner", fl).CornerRadius = UDim.new(1, 0) local dr = false local function sx(x) local r = math.clamp((x - tr.AbsolutePosition.X) / math.max(tr.AbsoluteSize.X, 1), 0, 1) fl.Size = UDim2.new(r, 0, 1, 0) local v = math.floor(minV + (maxV - minV) * r) valLbl.Text = tostring(v) cb(v) end tr.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dr = true sx(i.Position.X) end end) UIS.InputChanged:Connect(function(i) if dr and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then sx(i.Position.X) end end) UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dr = false end end) end local function mkDrop(p, title, opts, cb) local w = Instance.new("Frame") w.Size = UDim2.new(1, -4, 0, 36) w.BackgroundTransparency = 1 w.Parent = p local b = Instance.new("TextButton") b.Size = UDim2.new(1, 0, 1, 0) b.BackgroundColor3 = THEME.bgCard b.Text = " " .. title .. " ▼" b.TextColor3 = THEME.text b.Font = Enum.Font.GothamMedium b.TextSize = 11 b.TextXAlignment = Enum.TextXAlignment.Left b.AutoButtonColor = false b.Parent = w Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8) local li = Instance.new("Frame") li.Size = UDim2.new(1, 0, 0, #opts * 30) li.Position = UDim2.new(0, 0, 0, 40) li.BackgroundColor3 = THEME.bgMid li.Visible = false li.ZIndex = 50 li.Parent = w Instance.new("UICorner", li).CornerRadius = UDim.new(0, 8) Instance.new("UIListLayout", li) for _, o in ipairs(opts) do local ob = Instance.new("TextButton") ob.Size = UDim2.new(1, 0, 0, 30) ob.BackgroundColor3 = THEME.bgCard ob.Text = " " .. o[1] ob.TextColor3 = THEME.text ob.Font = Enum.Font.GothamMedium ob.TextSize = 10 ob.TextXAlignment = Enum.TextXAlignment.Left ob.ZIndex = 51 ob.AutoButtonColor = false ob.Parent = li onTap(ob, function() b.Text = " " .. o[1] .. " ▼" li.Visible = false w.Size = UDim2.new(1, -4, 0, 36) cb(o[2]) end) end onTap(b, function() li.Visible = not li.Visible w.Size = li.Visible and UDim2.new(1, -4, 0, 36 + li.Size.Y.Offset) or UDim2.new(1, -4, 0, 36) end) end local function mkInput(p, placeholder, cb) local w = Instance.new("Frame") w.Size = UDim2.new(1, -4, 0, 38) w.BackgroundColor3 = THEME.bgCard w.Parent = p Instance.new("UICorner", w).CornerRadius = UDim.new(0, 8) Instance.new("UIStroke", w).Color = THEME.stroke local tb = Instance.new("TextBox") tb.Size = UDim2.new(1, -16, 1, 0) tb.Position = UDim2.new(0, 8, 0, 0) tb.BackgroundTransparency = 1 tb.PlaceholderText = placeholder tb.Text = "" tb.TextColor3 = THEME.text tb.Font = Enum.Font.GothamMedium tb.TextSize = 11 tb.TextXAlignment = Enum.TextXAlignment.Left tb.ClearTextOnFocus = false tb.Parent = w tb.FocusLost:Connect(function() cb(tb.Text) end) return tb end local keybindButtons = {} local function mkKeybindBtn(p, hackName, label) local w = Instance.new("Frame") w.Size = UDim2.new(1, -4, 0, 38) w.BackgroundColor3 = THEME.bgCard w.Parent = p Instance.new("UICorner", w).CornerRadius = UDim.new(0, 8) local st = Instance.new("UIStroke", w) st.Color = THEME.stroke local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.55, 0, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = label lbl.TextColor3 = THEME.text lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 11 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = w local keyBtn = Instance.new("TextButton") keyBtn.Size = UDim2.new(0, 100, 0, 26) keyBtn.Position = UDim2.new(1, -110, 0.5, -13) keyBtn.BackgroundColor3 = THEME.accent keyBtn.AutoButtonColor = false keyBtn.Font = Enum.Font.GothamBold keyBtn.TextSize = 11 keyBtn.TextColor3 = Color3.fromRGB(255, 255, 255) keyBtn.Parent = w Instance.new("UICorner", keyBtn).CornerRadius = UDim.new(0, 6) local function updateText() if hackName == "_MENU_" then keyBtn.Text = "[ " .. menuKeyName .. " ]" elseif hackKeybinds[hackName] then keyBtn.Text = "[ " .. hackKeybinds[hackName].keyName .. " ]" end end updateText() keybindButtons[hackName] = {btn = keyBtn, update = updateText} onTap(keyBtn, function() local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end if hackName == "_MENU_" then waitingForMenuKey = true waitingForHackKey = nil else waitingForHackKey = hackName waitingForMenuKey = false end keyBtn.Text = "[ ... ]" tween(keyBtn, {BackgroundColor3 = THEME.warning}, 0.15) notify("Presiona una tecla para: " .. label, THEME.warning, 3) end) end -- ============================================================================== -- SISTEMA DE BUSCADOR DE SELECCIÓN GENERAL (Aimbot, TP, Troll, etc.) -- ============================================================================== local function createPicker(parent, col, onSel, allowAll) local header = Instance.new("Frame") header.Size = UDim2.new(1, -4, 0, 48) header.BackgroundTransparency = 1 header.Parent = parent local Card = Instance.new("Frame") Card.Size = UDim2.new(0.48, -2, 1, 0) Card.BackgroundColor3 = THEME.bgMid Card.Parent = header Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 8) local cs = Instance.new("UIStroke", Card) cs.Color = col local CT = Instance.new("TextLabel") CT.Size = UDim2.new(1, -10, 1, 0) CT.Position = UDim2.new(0, 6, 0, 0) CT.BackgroundTransparency = 1 CT.Text = allowAll and "🎯 AUTO" or " Ninguno" CT.TextColor3 = THEME.textDim CT.Font = Enum.Font.GothamBold CT.TextSize = 10 CT.TextXAlignment = Enum.TextXAlignment.Left CT.Parent = Card local searchWrap = Instance.new("Frame") searchWrap.Size = UDim2.new(0.5, 0, 1, 0) searchWrap.Position = UDim2.new(0.5, 0, 0, 0) searchWrap.BackgroundColor3 = THEME.bgCard searchWrap.Parent = header Instance.new("UICorner", searchWrap).CornerRadius = UDim.new(0, 8) local SB = Instance.new("TextBox") SB.Size = UDim2.new(1, -12, 1, 0) SB.Position = UDim2.new(0, 6, 0, 0) SB.BackgroundTransparency = 1 SB.PlaceholderText = "🔍 Buscar..." SB.Text = "" SB.TextColor3 = THEME.text SB.Font = Enum.Font.GothamMedium SB.TextSize = 10 SB.ClearTextOnFocus = false SB.Parent = searchWrap local Sc = Instance.new("ScrollingFrame") Sc.Size = UDim2.new(1, -4, 0, 92) Sc.BackgroundColor3 = THEME.bg Sc.ScrollBarThickness = 3 Sc.AutomaticCanvasSize = Enum.AutomaticSize.Y Sc.Parent = parent Instance.new("UICorner", Sc).CornerRadius = UDim.new(0, 8) local scLayout = Instance.new("UIListLayout", Sc) scLayout.Padding = UDim.new(0, 4) scLayout.SortOrder = Enum.SortOrder.LayoutOrder local scP = Instance.new("UIPadding", Sc) scP.PaddingTop = UDim.new(0, 4) local pI = {} local function filt() local q = string.lower(SB.Text):gsub("%s+", "") for k, b in pairs(pI) do if q == "" then b.Visible = true b.LayoutOrder = 5 if k == "closest" then b.TextColor3 = Color3.fromRGB(255, 120, 120) b.BackgroundColor3 = Color3.fromRGB(45, 20, 30) else b.TextColor3 = THEME.text b.BackgroundColor3 = THEME.bgCard end else local isMatch = false if typeof(k) == "string" then isMatch = (k:lower():find(q, 1, true) ~= nil) elseif k and k.Parent == Players then isMatch = ((k.DisplayName or ""):lower():find(q, 1, true) ~= nil or (k.Name or ""):lower():find(q, 1, true) ~= nil) end if isMatch then b.Visible = true b.LayoutOrder = 1 b.TextColor3 = Color3.fromRGB(46, 204, 113) b.BackgroundColor3 = Color3.fromRGB(15, 40, 25) else b.Visible = false b.LayoutOrder = 10 end end end end SB:GetPropertyChangedSignal("Text"):Connect(filt) local function pop() for _, v in ipairs(Sc:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end pI = {} if allowAll then local cb = Instance.new("TextButton") cb.Size = UDim2.new(1, -8, 0, 28) cb.BackgroundColor3 = Color3.fromRGB(45, 20, 30) cb.Text = " 🎯 AUTO" cb.TextColor3 = Color3.fromRGB(255, 120, 120) cb.Font = Enum.Font.GothamBold cb.TextSize = 10 cb.TextXAlignment = Enum.TextXAlignment.Left cb.Parent = Sc Instance.new("UICorner", cb).CornerRadius = UDim.new(0, 6) onTap(cb, function() CT.Text = "🎯 AUTO" onSel(nil) end) pI["closest"] = cb end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP then local b = Instance.new("TextButton") b.Size = UDim2.new(1, -8, 0, 28) b.BackgroundColor3 = THEME.bgCard b.Text = " 👤 " .. plr.DisplayName .. " (@" .. plr.Name .. ")" b.TextColor3 = THEME.text b.Font = Enum.Font.GothamMedium b.TextSize = 10 b.TextXAlignment = Enum.TextXAlignment.Left b.Parent = Sc Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) onTap(b, function() CT.Text = plr.DisplayName onSel(plr) end) pI[plr] = b end end filt() end table.insert(pickersToUpdate, pop) pop() end Players.PlayerAdded:Connect(function() task.wait(0.5) for _, fn in ipairs(pickersToUpdate) do fn() end end) Players.PlayerRemoving:Connect(function(plr) if aimTargetPlayer == plr then aimTargetPlayer = nil end if trollTargetPlayer == plr then trollTargetPlayer = nil end task.wait(0.5) for _, fn in ipairs(pickersToUpdate) do fn() end end) -- ===== AIMBOT ===== local function isAlive(char) if not char then return false end local hum = char:FindFirstChildOfClass("Humanoid") if hum then return hum.Health > 0 end return char:FindFirstChild("Head") ~= nil end local function findPart(char, pref) if not char then return nil end for _, n in ipairs({pref, "Head", "HumanoidRootPart", "UpperTorso", "Torso"}) do local p = char:FindFirstChild(n) if p and p:IsA("BasePart") then return p end end return char:FindFirstChildOfClass("BasePart") end local function canSeeTarget(part) if not aimWallCheck then return true end local cam = workspace.CurrentCamera if not cam or not part then return true end local origin = cam.CFrame.Position local dir = part.Position - origin if dir.Magnitude < 0.1 then return true end local params = RaycastParams.new() params.FilterDescendantsInstances = {Character, cam} params.FilterType = Enum.RaycastFilterType.Exclude params.IgnoreWater = true local res = workspace:Raycast(origin, dir, params) if not res then return true end return res.Instance:IsDescendantOf(part.Parent) end local function getAimbotTarget() local cam = workspace.CurrentCamera if not cam then return nil end local center = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2) if aimTargetPlayer then if aimTargetPlayer.Parent ~= Players then aimTargetPlayer = nil return nil end local char = getPlayerCharacter(aimTargetPlayer) if char and isAlive(char) then local part = findPart(char, aimPart) if part then local sp, vis = cam:WorldToViewportPoint(part.Position) if vis and sp.Z > 0 and canSeeTarget(part) then return part end end end return nil end local bestPart, bestDist = nil, aimFOVRadius for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character and not (aimTeamCheck and plr.Team and LP.Team and plr.Team == LP.Team) then local char = getPlayerCharacter(plr) if char and isAlive(char) then local part = findPart(char, aimPart) if part then local sp, vis = cam:WorldToViewportPoint(part.Position) if vis and sp.Z > 0 then local dist2D = (Vector2.new(sp.X, sp.Y) - center).Magnitude if dist2D < bestDist and canSeeTarget(part) then bestDist = dist2D bestPart = part end end end end end end return bestPart end RunService:BindToRenderStep("GS_AimbotV54", Enum.RenderPriority.Camera.Value + 1, function(dt) if not aimOn then return end if aimOnlyOnRightClick and not UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) and not isMobile then return end local cam = workspace.CurrentCamera if not cam then return end local targetPart = getAimbotTarget() if not targetPart then return end local targetPos = targetPart.Position if aimPrediction > 0 then local model = targetPart.Parent local hrp = model and (model:FindFirstChild("HumanoidRootPart") or model:FindFirstChild("Torso")) if hrp then local vel = hrp.AssemblyLinearVelocity if vel and vel == vel and vel.Magnitude > 1 then targetPos = targetPos + vel * ((targetPos - cam.CFrame.Position).Magnitude / 800) * aimPrediction end end end local screenPos, onScreen = cam:WorldToViewportPoint(targetPos) if not onScreen or screenPos.Z <= 0 then return end local center = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2) local offset = Vector2.new(screenPos.X, screenPos.Y) - center local speedFactor = math.clamp((11 - aimSmooth) / 10, 0.1, 1) local moved = false if typeof(mousemoverel) == "function" then pcall(function() mousemoverel(offset.X * speedFactor, offset.Y * speedFactor) moved = true end) end if not moved then local camPos = cam.CFrame.Position local dir = targetPos - camPos if dir.Magnitude > 0.1 and dir == dir then cam.CFrame = cam.CFrame:Lerp(CFrame.lookAt(camPos, targetPos), math.clamp(speedFactor * dt * 35, 0.05, 1)) end end end) -- FLY & FREECAM local function toggleFreecam(enable) freecamOn = enable local Cam = workspace.CurrentCamera if not Cam then return end if enable then Cam.CameraType = Enum.CameraType.Scriptable local look = Cam.CFrame.LookVector freecamRotX = math.asin(look.Y) freecamRotY = math.atan2(-look.X, -look.Z) freecamConn = RunService.RenderStepped:Connect(function() if not freecamOn then return end local camera = workspace.CurrentCamera if not camera then return end local mv = Vector3.new(0, 0, 0) if UIS:IsKeyDown(Enum.KeyCode.W) then mv = mv + Vector3.new(0, 0, -1) end if UIS:IsKeyDown(Enum.KeyCode.S) then mv = mv + Vector3.new(0, 0, 1) end if UIS:IsKeyDown(Enum.KeyCode.A) then mv = mv + Vector3.new(-1, 0, 0) end if UIS:IsKeyDown(Enum.KeyCode.D) then mv = mv + Vector3.new(1, 0, 0) end if UIS:IsKeyDown(Enum.KeyCode.Space) then mv = mv + Vector3.new(0, 1, 0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then mv = mv + Vector3.new(0, -1, 0) end if UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) or isMobile then local d = UIS:GetMouseDelta() freecamRotY = freecamRotY - d.X * 0.004 freecamRotX = math.clamp(freecamRotX - d.Y * 0.004, -1.4, 1.4) end local rot = CFrame.Angles(0, freecamRotY, 0) * CFrame.Angles(freecamRotX, 0, 0) camera.CFrame = CFrame.new(camera.CFrame.Position) * rot + rot:VectorToWorldSpace(mv) * freecamSpeed end) else if freecamConn then freecamConn:Disconnect(); freecamConn = nil end Cam.CameraType = Enum.CameraType.Custom local hum = Character and Character:FindFirstChildOfClass("Humanoid") if hum then Cam.CameraSubject = hum end end end local function startFly() if not RootPart or not Humanoid then return end flying = true Humanoid.PlatformStand = true if flyBV then flyBV:Destroy() end if flyBG then flyBG:Destroy() end flyBV = Instance.new("BodyVelocity") flyBV.MaxForce = Vector3.new(1e6, 1e6, 1e6) flyBV.Parent = RootPart flyBG = Instance.new("BodyGyro") flyBG.MaxTorque = Vector3.new(1e6, 1e6, 1e6) flyBG.P = 9000 flyBG.Parent = RootPart end local function stopFly() flying = false if Humanoid then Humanoid.PlatformStand = false end if flyBV then flyBV:Destroy(); flyBV = nil end if flyBG then flyBG:Destroy(); flyBG = nil end end -- ============================================================================== -- SISTEMA DE KEYBINDS GENERALES -- ============================================================================== registerKeybind("fly", NONE_KEY, "Ninguno", function() if flying then stopFly() else startFly() end; notify(flying and "Fly ON" or "Fly OFF", THEME.accent, 1) end) registerKeybind("noclip", NONE_KEY, "Ninguno", function() noclipping = not noclipping; notify(noclipping and "Noclip ON" or "Noclip OFF", THEME.accent2, 1) end) registerKeybind("speed", NONE_KEY, "Ninguno", function() speeding = not speeding; if not speeding and Humanoid then Humanoid.WalkSpeed = defaultSpeed end; notify(speeding and "Speed ON" or "Speed OFF", THEME.success, 1) end) registerKeybind("invisible", NONE_KEY, "Ninguno", function() setFEInvisibility(not feInvisible); notify(feInvisible and "👻 Invisible ON" or "Visible", feInvisible and THEME.success or THEME.danger, 1) end) registerKeybind("aimbot", NONE_KEY, "Ninguno", function() aimOn = not aimOn; notify(aimOn and "🎯 Aimbot ON" or "Aimbot OFF", aimOn and THEME.success or THEME.danger, 1) end) registerKeybind("esp", NONE_KEY, "Ninguno", function() espOn = not espOn; if not espOn then for _, plr in ipairs(Players:GetPlayers()) do if plr.Character and plr.Character:FindFirstChild("GS_HL") then plr.Character.GS_HL:Destroy() end end end; notify(espOn and "ESP ON" or "ESP OFF", THEME.warning, 1) end) registerKeybind("firstperson", NONE_KEY, "Ninguno", function() setFirstPerson(not firstPersonLock); notify(firstPersonLock and "👁️ 1ra Persona ON" or "1ra Persona OFF", THEME.accent, 1.5) end) -- ACCIÓN DE PASO 1: COPIAR OBJETO CON TECLA C (O CONFIGURADA) registerKeybind("copyMouseTarget", Enum.KeyCode.C, "C", function() local target = Mouse.Target if target then local objToCopy = target.Parent:IsA("Model") and target.Parent ~= workspace and not target.Parent:FindFirstChildOfClass("Humanoid") and target.Parent or target copiedObject = objToCopy copyHighlight.Adornee = copiedObject copyHighlight.Enabled = true notify("📋 Copiado: '" .. copiedObject.Name .. "'. ¡Haz CLICK DERECHO donde quieras colocarlo!", THEME.success, 4) else notify("Apunta con el ratón a un objeto válido.", THEME.warning, 2) end end) -- TECLA PARA BORRAR OBJETO EN LA MIRA DEL RATÓN (TECLA X POR DEFECTO) registerKeybind("deleteMouseTarget", Enum.KeyCode.X, "X", function() deleteTargetUnderMouse() end) -- ================= PESTAÑAS ================= -- COMBATE local c = tabPages.combat section(c, "💥 MULTIPLICADOR DE DAÑO Y ATAQUE") mkToggle(c, "💥 Multiplicador de Daño (Super Daño / Multi-Hit)", function() return damageBoost end, function(v) damageBoost = v notify(v and "💥 Multiplicador de Daño ACTIVADO (" .. damageMultiplier .. "x)" or "Multiplicador de Daño Desactivado", v and THEME.success or THEME.danger, 2.5) end) mkSlider(c, "Multiplicador de Golpes / Daño (2x - 10x)", 2, 10, 3, function(v) damageMultiplier = v local tool = getEquippedTool() if tool then applyDamageBoostToTool(tool) end end) mkToggle(c, "⚡ Cadencia Súper Rápida (Sin Cooldown)", function() return fastFireRate end, function(v) fastFireRate = v local tool = getEquippedTool() if tool then applyDamageBoostToTool(tool) end notify(v and "⚡ Cadencia Súper Rápida ACTIVADA" or "Cadencia Desactivada", v and THEME.success or THEME.danger, 2) end) section(c, "🎯 AIMBOT (RIVALS ENGINE)") createPicker(c, THEME.danger, function(p) aimTargetPlayer = p end, true) mkToggle(c, "Aimbot Activado", function() return aimOn end, function(v) aimOn = v end) mkToggle(c, "Mostrar FOV", function() return aimShowFOV end, function(v) aimShowFOV = v; FOVCircle.Visible = v end) mkDrop(c, "Parte: Cabeza", {{"Cabeza", "Head"}, {"Torso", "HumanoidRootPart"}, {"Pecho", "UpperTorso"}, {"Cadera", "LowerTorso"}}, function(v) aimPart = v end) mkSlider(c, "Radio FOV", 50, 600, 220, function(v) aimFOVRadius = v; FOVCircle.Size = UDim2.new(0, v * 2, 0, v * 2) end) mkSlider(c, "Suavidad (1=rápido 10=suave)", 1, 10, 4, function(v) aimSmooth = v end) mkToggle(c, "Wallcheck", function() return aimWallCheck end, function(v) aimWallCheck = v end) mkToggle(c, "Team Check", function() return aimTeamCheck end, function(v) aimTeamCheck = v end) mkToggle(c, "Solo Click Derecho (PC)", function() return aimOnlyOnRightClick end, function(v) aimOnlyOnRightClick = v end) section(c, "⚡ DISPARO") mkToggle(c, "Triggerbot", function() return triggerbot end, function(v) triggerbot = v end) mkToggle(c, "Auto-Clicker", function() return autoClicker end, function(v) autoClicker = v end) mkSlider(c, "CPS", 1, 35, 12, function(v) autoClickCPS = v end) mkToggle(c, "Kill Aura", function() return killAura end, function(v) killAura = v end) mkSlider(c, "Rango Aura", 5, 50, 18, function(v) killAuraRange = v end) mkToggle(c, "Hitbox Expander", function() return hitboxOn end, function(v) hitboxOn = v if not v then for p, s in pairs(hitboxOriginals) do pcall(function() p.Size = s; p.Transparency = 0 end) end hitboxOriginals = {} end end) mkSlider(c, "Tamaño Hitbox", 5, 40, 15, function(v) hitboxSize = v end) -- INICIO local g = tabPages.general section(g, "🛡️ SUPERVIVENCIA & PROTECCIÓN") mkToggle(g, "🛡️ Anti-Kick / Anti-Ban Bypass", function() return antiKickActive end, function(v) antiKickActive = v notify(v and "🛡️ Protección Anti-Ban ACTIVA" or "Protección Anti-Ban Desactivada", v and THEME.success or THEME.danger, 2) end) mkToggle(g, "👻 Invisibilidad FE (Global)", function() return feInvisible end, function(v) setFEInvisibility(v) end) mkToggle(g, "Modo Dios (God Mode)", function() return godMode end, function(v) godMode = v end) mkToggle(g, "Anti-AFK", function() return antiAFK end, function(v) antiAFK = v if v then afkConn = LP.Idled:Connect(function() VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new(0, 0)) end) elseif afkConn then afkConn:Disconnect() end end) section(g, "🎬 ACCIONES") mkBtn(g, "🔄 Reiniciar Personaje", function() if Humanoid then Humanoid.Health = 0 end end) mkBtn(g, "🔁 Rejoin al Servidor", function() TeleportService:Teleport(game.PlaceId, LP) end) -- SALAS local lob = tabPages.lobby section(lob, "👥 BUSCADOR DE AMIGOS ONLINE") local friendsContainer = Instance.new("Frame") friendsContainer.Size = UDim2.new(1, -4, 0, 240) friendsContainer.BackgroundTransparency = 1 friendsContainer.Parent = lob local searchFriendWrap = Instance.new("Frame") searchFriendWrap.Size = UDim2.new(1, 0, 0, 32) searchFriendWrap.BackgroundColor3 = THEME.bgCard searchFriendWrap.Parent = friendsContainer Instance.new("UICorner", searchFriendWrap).CornerRadius = UDim.new(0, 8) local searchFriendStroke = Instance.new("UIStroke", searchFriendWrap) searchFriendStroke.Color = THEME.stroke local SBFriends = Instance.new("TextBox") SBFriends.Size = UDim2.new(1, -16, 1, 0) SBFriends.Position = UDim2.new(0, 8, 0, 0) SBFriends.BackgroundTransparency = 1 SBFriends.PlaceholderText = "🔍 Buscar amigo o juego en línea..." SBFriends.Text = "" SBFriends.TextColor3 = THEME.text SBFriends.Font = Enum.Font.GothamMedium SBFriends.TextSize = 11 SBFriends.ClearTextOnFocus = false SBFriends.Parent = searchFriendWrap local controlFrame = Instance.new("Frame") controlFrame.Size = UDim2.new(1, 0, 0, 32) controlFrame.Position = UDim2.new(0, 0, 0, 38) controlFrame.BackgroundTransparency = 1 controlFrame.Parent = friendsContainer local refBtn = mkBtn(controlFrame, "🔄 Actualizar Lista de Amigos", function() end) refBtn.Size = UDim2.new(1, 0, 1, 0) local sc = Instance.new("ScrollingFrame") sc.Size = UDim2.new(1, 0, 1, -80) sc.Position = UDim2.new(0, 0, 0, 76) sc.BackgroundColor3 = THEME.bg sc.ScrollBarThickness = 3 sc.CanvasSize = UDim2.new(0, 0, 0, 0) sc.Parent = friendsContainer Instance.new("UICorner", sc).CornerRadius = UDim.new(0, 8) local scLayout = Instance.new("UIListLayout", sc) scLayout.Padding = UDim.new(0, 4) scLayout.SortOrder = Enum.SortOrder.LayoutOrder local scPad = Instance.new("UIPadding", sc) scPad.PaddingTop = UDim.new(0, 4) scPad.PaddingLeft = UDim.new(0, 4) scPad.PaddingRight = UDim.new(0, 4) scLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() sc.CanvasSize = UDim2.new(0, 0, 0, scLayout.AbsoluteContentSize.Y + 10) end) local createdFriendCards = {} local function filterFriends() local q = string.lower(SBFriends.Text):gsub("%s+", "") for card, data in pairs(createdFriendCards) do if q == "" then card.Visible = true card.LayoutOrder = 5 card.BackgroundColor3 = THEME.bgCard data.title.TextColor3 = THEME.text data.status.TextColor3 = data.defaultStatusColor else local nameMatch = data.displayName:lower():find(q, 1, true) or data.userName:lower():find(q, 1, true) local gameMatch = data.gamePlaying:lower():find(q, 1, true) if nameMatch or gameMatch then card.Visible = true card.LayoutOrder = 1 card.BackgroundColor3 = Color3.fromRGB(15, 40, 25) data.title.TextColor3 = Color3.fromRGB(46, 204, 113) data.status.TextColor3 = Color3.fromRGB(150, 240, 180) else card.Visible = false card.LayoutOrder = 10 end end end end SBFriends:GetPropertyChangedSignal("Text"):Connect(filterFriends) local function refreshFriendsList(container) createdFriendCards = {} for _, item in ipairs(container:GetChildren()) do if not item:IsA("UIListLayout") and not item:IsA("UIPadding") then item:Destroy() end end local success, friends = pcall(function() return LP:GetFriendsOnline() end) if not success or not friends then local errLbl = Instance.new("TextLabel") errLbl.Size = UDim2.new(1, 0, 0, 30) errLbl.BackgroundTransparency = 1 errLbl.Text = "❌ Error al conectar con amigos de Roblox" errLbl.TextColor3 = THEME.danger errLbl.Font = Enum.Font.GothamBold errLbl.TextSize = 10 errLbl.Parent = container return end if #friends == 0 then local emptyLbl = Instance.new("TextLabel") emptyLbl.Size = UDim2.new(1, 0, 0, 30) emptyLbl.BackgroundTransparency = 1 emptyLbl.Text = "Ningún amigo está jugando actualmente en línea." emptyLbl.TextColor3 = THEME.textDim emptyLbl.Font = Enum.Font.GothamMedium emptyLbl.TextSize = 10 emptyLbl.Parent = container return end for _, friend in ipairs(friends) do local card = Instance.new("Frame") card.Size = UDim2.new(1, -4, 0, 48) card.BackgroundColor3 = THEME.bgCard card.Parent = container Instance.new("UICorner", card).CornerRadius = UDim.new(0, 8) local st = Instance.new("UIStroke", card) st.Color = THEME.stroke local title = Instance.new("TextLabel") title.Size = UDim2.new(0.6, 0, 0, 20) title.Position = UDim2.new(0, 8, 0, 4) title.BackgroundTransparency = 1 title.Text = friend.DisplayName .. " (@" .. friend.UserName .. ")" title.TextColor3 = THEME.text title.Font = Enum.Font.GothamBold title.TextSize = 11 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = card local gamePlayingName = friend.LastLocation or "Roblox" local statusText = "Desconectado" local presence = friend.Presence local canJoin = false local defaultStatusColor = THEME.textDim if presence == 2 then statusText = "🎮 Jugando a: " .. gamePlayingName canJoin = true defaultStatusColor = Color3.fromRGB(34, 197, 94) elseif presence == 1 then statusText = "📱 En línea (Menú principal o Web)" elseif presence == 3 then statusText = "🛠️ Editando en Roblox Studio" end local statusLbl = Instance.new("TextLabel") statusLbl.Size = UDim2.new(0.6, 0, 0, 16) statusLbl.Position = UDim2.new(0, 8, 0, 24) statusLbl.BackgroundTransparency = 1 statusLbl.Text = statusText statusLbl.TextColor3 = defaultStatusColor statusLbl.Font = Enum.Font.GothamMedium statusLbl.TextSize = 9 statusLbl.TextXAlignment = Enum.TextXAlignment.Left statusLbl.Parent = card createdFriendCards[card] = { friend = friend, title = title, status = statusLbl, displayName = friend.DisplayName, userName = friend.UserName, gamePlaying = gamePlayingName, defaultStatusColor = defaultStatusColor } if canJoin then local joinBtn = Instance.new("TextButton") joinBtn.Size = UDim2.new(0.35, 0, 0, 30) joinBtn.Position = UDim2.new(0.62, 0, 0.5, -15) joinBtn.BackgroundColor3 = THEME.accent joinBtn.Text = "⚡ UNIRSE" joinBtn.TextColor3 = Color3.fromRGB(255, 255, 255) joinBtn.Font = Enum.Font.GothamBold joinBtn.TextSize = 10 joinBtn.Parent = card Instance.new("UICorner", joinBtn).CornerRadius = UDim.new(0, 6) onTap(joinBtn, function() notify("Conectando al juego: " .. gamePlayingName, THEME.warning, 4) task.spawn(function() pcall(function() if friend.GameId and friend.GameId ~= "" then TeleportService:TeleportToPlaceInstance(friend.PlaceId, friend.GameId, LP) else TeleportService:Teleport(friend.PlaceId, LP) end end) end) end) else if presence == 2 and tostring(friend.GameId) == tostring(game.JobId) then local targetBtn = Instance.new("TextButton") targetBtn.Size = UDim2.new(0.35, 0, 0, 30) targetBtn.Position = UDim2.new(0.62, 0, 0.5, -15) targetBtn.BackgroundColor3 = THEME.accent3 targetBtn.Text = "🎯 FIJAR" targetBtn.TextColor3 = Color3.fromRGB(255, 255, 255) targetBtn.Font = Enum.Font.GothamBold targetBtn.TextSize = 10 targetBtn.Parent = card Instance.new("UICorner", targetBtn).CornerRadius = UDim.new(0, 6) onTap(targetBtn, function() local targetPlr = Players:FindFirstChild(friend.UserName) if targetPlr then friendTargetPlayer = targetPlr notify("Fijado: " .. friend.DisplayName .. " como objetivo del servidor.", THEME.success, 3) else notify("No se encontró al jugador físicamente en el mapa.", THEME.danger, 2.5) end end) end end end filterFriends() end onTap(refBtn, function() refreshFriendsList(sc) end) task.spawn(function() task.wait(1) refreshFriendsList(sc) end) section(lob, "🚪 BYPASS DE TELEPORT") mkToggle(lob, "🔗 Soldarse al Amigo (Requiere Fijar)", function() return matchInfiltrator end, function(v) matchInfiltrator = v if v then if not friendTargetPlayer then notify("Fija a un amigo antes de activar esto usando [🎯 FIJAR]", THEME.warning, 4) matchInfiltrator = false return end infiltratorConn = RunService.Heartbeat:Connect(function() if matchInfiltrator and friendTargetPlayer and RootPart then local fR = getPlayerRoot(friendTargetPlayer) if fR then noclipping = true RootPart.CFrame = fR.CFrame * CFrame.new(0, 0.2, 0) RootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end else if infiltratorConn then infiltratorConn:Disconnect(); infiltratorConn = nil end end end) elseif not v and infiltratorConn then infiltratorConn:Disconnect() infiltratorConn = nil end end) mkBtn(lob, "🧱 Destruir Barreras / Paredes", function() local count = 0 for _, p in ipairs(workspace:GetDescendants()) do if p:IsA("BasePart") and not p:IsDescendantOf(Character) then local n = p.Name:lower() if n:find("barrier") or n:find("wall") or n:find("invisible") or n:find("door") or n:find("blocker") or (p.Transparency == 1 and p.CanCollide) then p.CanCollide = false count = count + 1 end end end noclipping = true notify("Destruidas " .. count .. " barreras!", THEME.success) end) -- ============================================================================== -- MOVER local m = tabPages.move section(m, "🦘 SALTO") mkBtn(m, "🚀 Súper Salto", doSuperJump) mkSlider(m, "Fuerza Salto", 50, 500, 100, function(v) jumpPower = v if Humanoid then pcall(function() Humanoid.JumpPower = v; Humanoid.UseJumpPower = true end) end end) mkToggle(m, "Salto Infinito", function() return infJump end, function(v) infJump = v end) section(m, "🕊️ VOLAR") mkToggle(m, "Fly", function() return flying end, function(v) if v then startFly() else stopFly() end end) mkSlider(m, "Velocidad Vuelo", 20, 300, 70, function(v) flySpeed = v end) mkToggle(m, "AirWalk", function() return airWalk end, function(v) airWalk = v if not v and airWalkPart then airWalkPart:Destroy(); airWalkPart = nil end end) section(m, "⚡ VELOCIDAD") mkToggle(m, "Super Velocidad", function() return speeding end, function(v) speeding = v if not v and Humanoid then Humanoid.WalkSpeed = defaultSpeed end end) mkSlider(m, "WalkSpeed", 16, 400, 100, function(v) runSpeed = v end) -- HACKS local hk = tabPages.hacks section(hk, "🌀 UTILIDADES") mkToggle(hk, "Noclip", function() return noclipping end, function(v) noclipping = v if not v and Character then for _, p in ipairs(Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = true end end end end) mkToggle(hk, "Spinbot", function() return spinBot end, function(v) spinBot = v end) mkSlider(hk, "Vel. Spinbot", 5, 60, 20, function(v) spinSpeed = v end) mkToggle(hk, "Click TP", function() return clickTP end, function(v) clickTP = v end) mkToggle(hk, "Instant Prompt", function() return instantPrompt end, function(v) instantPrompt = v for _, pr in ipairs(workspace:GetDescendants()) do if pr:IsA("ProximityPrompt") then if v then if not originalPromptDurations[pr] then originalPromptDurations[pr] = pr.HoldDuration end pr.HoldDuration = 0 else if originalPromptDurations[pr] then pr.HoldDuration = originalPromptDurations[pr] end end end end end) mkToggle(hk, "Bhop", function() return bhop end, function(v) bhop = v end) -- VISUAL local vi = tabPages.visual section(vi, "👁️ ESP") mkToggle(vi, "ESP Highlight", function() return espOn end, function(on) espOn = on if not on then for _, plr in ipairs(Players:GetPlayers()) do if plr.Character and plr.Character:FindFirstChild("GS_HL") then plr.Character.GS_HL:Destroy() end end end end) mkToggle(vi, "ESP Nombres/Distancia", function() return espNames end, function(on) espNames = on if not on then for _, plr in ipairs(Players:GetPlayers()) do if plr.Character and plr.Character:FindFirstChild("Head") and plr.Character.Head:FindFirstChild("GS_TAG") then plr.Character.Head.GS_TAG:Destroy() end end end end) mkToggle(vi, "X-Ray", function() return xray end, function(on) xray = on for _, part in ipairs(workspace:GetDescendants()) do if part:IsA("BasePart") and not part:IsDescendantOf(Character) and not part.Parent:FindFirstChildOfClass("Humanoid") then if on then if not xrayOriginals[part] then xrayOriginals[part] = part.Transparency end part.Transparency = 0.65 else if xrayOriginals[part] then part.Transparency = xrayOriginals[part] end end end end if not on then xrayOriginals = {} end end) section(vi, "📹 CÁMARA & PRIMERA PERSONA") mkToggle(vi, "👁️ Forzar 1ra Persona (Lock)", function() return firstPersonLock end, function(val) setFirstPerson(val) notify(val and "👁️ Bloqueado en 1ra Persona" or "Modo Normal", val and THEME.success or THEME.danger, 2) end) mkToggle(vi, "Freecam", function() return freecamOn end, function(val) toggleFreecam(val) end) mkSlider(vi, "Vel. Freecam", 1, 10, 2, function(val) freecamSpeed = val end) mkToggle(vi, "Zoom Infinito", function() return infiniteZoom end, function(val) infiniteZoom = val LP.CameraMaxZoomDistance = val and 100000 or 128 end) section(vi, "💡 ILUMINACIÓN") mkToggle(vi, "Fullbright", function() return fullbright end, function(on) fullbright = on Lighting.Brightness = on and 2 or 1 Lighting.GlobalShadows = not on end) mkToggle(vi, "Sin Niebla", function() return noFog end, function(on) noFog = on Lighting.FogEnd = on and 1e9 or 1e5 end) -- TP local t = tabPages.tp section(t, "🌀 TELEPORT") createPicker(t, THEME.accent, function(p) tpTargetPlayer = p end, false) mkDrop(t, "Parte: Torso", {{"Cabeza", "Head"}, {"Cuerpo", "HumanoidRootPart"}, {"Pecho", "UpperTorso"}, {"Pie", "LeftFoot"}}, function(v) tpPart = v end) mkBtn(t, "🚀 Teletransportarse", function() if tpTargetPlayer and RootPart then local d = findPart(getPlayerCharacter(tpTargetPlayer), tpPart) if d then RootPart.CFrame = d.CFrame * CFrame.new(0, 2, 2) end end end) section(t, "⚡ POSICIONES") mkBtn(t, "🏠 Spawn", function() if RootPart and realSpawnCFrame then RootPart.CFrame = realSpawnCFrame end end) mkBtn(t, "💾 Guardar Pos", function() if RootPart then savedPos = RootPart.CFrame; notify("Guardada", THEME.success) end end) mkBtn(t, "📥 Cargar Pos", function() if savedPos and RootPart then RootPart.CFrame = savedPos end end) -- ============================================================================== -- 🎭 TROLL (CON PEGADO A LA CABEZA INFINITO) -- ============================================================================== local tr = tabPages.troll section(tr, "🎭 SELECCIONAR VÍCTIMA") createPicker(tr, Color3.fromRGB(249, 115, 22), function(p) trollTargetPlayer = p end, false) section(tr, "👑 MODO PARÁSITO (PEGADO A CABEZA)") mkToggle(tr, "👑 Pegarse a la Cabeza (Infinito / Parásito)", function() return stickyHead end, function(v) stickyHead = v if v then if not trollTargetPlayer then notify("¡Selecciona a un jugador primero en el buscador!", THEME.warning, 3.5) stickyHead = false return end notify("👑 ¡Pegado a la cabeza de " .. trollTargetPlayer.DisplayName .. "!", THEME.success, 3) else notify("Despegado de la cabeza.", THEME.danger, 2) end end) mkSlider(tr, "Altura sobre la cabeza", 0, 10, 2, function(v) stickyOffset = v end) section(tr, "🌀 OTRAS ACCIONES TROLL") mkBtn(tr, "🌀 Fling a Víctima", function() if trollTargetPlayer and RootPart then local tR = getPlayerRoot(trollTargetPlayer) if tR then local old = RootPart.CFrame local bav = Instance.new("BodyAngularVelocity") bav.MaxTorque = Vector3.new(1e8, 1e8, 1e8) bav.AngularVelocity = Vector3.new(10000, 10000, 10000) bav.Parent = RootPart for i = 1, 35 do if not tR or not tR.Parent then break end RootPart.CFrame = tR.CFrame * CFrame.new(math.random(-1, 1), 0, math.random(-1, 1)) RootPart.AssemblyLinearVelocity = Vector3.new(9000, 9000, 9000) task.wait(0.03) end bav:Destroy() RootPart.CFrame = old end end end) mkBtn(tr, "👑 TP a Cabeza (1 Sola Vez)", function() if trollTargetPlayer and RootPart then local h = findPart(getPlayerCharacter(trollTargetPlayer), "Head") if h then RootPart.CFrame = h.CFrame * CFrame.new(0, stickyOffset, 0) end end end) -- ===== EXTRA / MISC (DUPLICADOR Y ELIMINADOR DE CLONES) ===== local ex = tabPages.misc section(ex, "📦 DUPLICADOR DE OBJETOS EN WORKSPACE") mkInput(ex, "🔍 Nombre del objeto en Workspace...", function(txt) customObjectName = txt end) mkBtn(ex, "✨ Duplicar Objeto por Nombre en Workspace (+5 Studs)", function() if customObjectName == "" then notify("¡Escribe el nombre del objeto primero!", THEME.warning, 2) return end local obj = workspace:FindFirstChild(customObjectName, true) if obj then local ok, name = duplicateWorkspaceObject(obj) if ok then notify("✨ Objeto '" .. name .. "' duplicado (+5 bloques)", THEME.success, 3) else notify("Error al duplicar '" .. customObjectName .. "'", THEME.danger, 2) end else notify("No se encontró '" .. customObjectName .. "' en Workspace", THEME.danger, 2.5) end end) mkBtn(ex, "🎯 Duplicar Objeto Apuntado con Mouse (+5 Studs)", function() local target = Mouse.Target if target then local objToClone = target.Parent:IsA("Model") and target.Parent ~= workspace and not target.Parent:FindFirstChildOfClass("Humanoid") and target.Parent or target local ok, name = duplicateWorkspaceObject(objToClone) if ok then notify("✨ Objeto '" .. name .. "' duplicado", THEME.success, 3) else notify("No se pudo duplicar el objeto", THEME.danger, 2) end else notify("Apunta a un objeto con la mira", THEME.warning, 2) end end) mkBtn(ex, "✋ Duplicar Objeto Equipado en Mano (Físico)", function() local tool = getEquippedTool() if tool then local ok, name = duplicateWorkspaceObject(tool) if ok then notify("✨ Objeto en mano '" .. name .. "' duplicado", THEME.success, 3) else notify("No se pudo duplicar el objeto en mano", THEME.danger, 2) end else notify("¡Equipa un objeto primero!", THEME.warning, 2) end end) mkToggle(ex, "🖱️ Click para Duplicar Objeto en Workspace", function() return clickToDupe end, function(v) clickToDupe = v if v and clickToDelete then clickToDelete = false end notify(v and "🖱️ Click en cualquier objeto para duplicarlo" or "Click Dupe Desactivado", v and THEME.success or THEME.danger, 2) end) section(ex, "🧹 LIMPIEZA DE OBJETOS CLONADOS EN EL SUELO") mkBtn(ex, "🧹 Eliminar TODOS los Objetos Clonados", function() clearAllClones() end) mkBtn(ex, "↩️ Deshacer Último Objeto Clonado", function() deleteLastClone() end) mkBtn(ex, "🎯 Eliminar Objeto Apuntado con el Ratón", function() deleteTargetUnderMouse() end) mkToggle(ex, "❌ Clic para Eliminar Objeto Apuntado", function() return clickToDelete end, function(v) clickToDelete = v if v and clickToDupe then clickToDupe = false end notify(v and "❌ Modo Borrar: Haz clic sobre cualquier objeto para eliminarlo" or "Modo Borrar Desactivado", v and THEME.warning or THEME.danger, 2.5) end) section(ex, "⛵ BUILD A BOAT FOR TREASURE") mkToggle(ex, "💰 Auto-Farm Oro (Ir al Cofre Final)", function() return autoFarmBABFT end, function(v) autoFarmBABFT = v if v then notify("💰 Auto-Farm Activado!", THEME.success, 3) task.spawn(function() while autoFarmBABFT do pcall(function() if Character and RootPart then noclipping = true for i = 1, 10 do if not autoFarmBABFT then break end RootPart.CFrame = CFrame.new(-50 + (i * 800), 50, 0) task.wait(0.6) end if autoFarmBABFT and RootPart then RootPart.CFrame = CFrame.new(100, -350, 9400) task.wait(4) end end end) task.wait(1) end end) else notify("Auto-Farm Desactivado", THEME.danger, 2) end end) section(ex, "💀 MOTOR DE REVIVIR & AUTO-REVIVE") mkBtn(ex, "💖 Revivir Personaje (revivePlayer)", function() revivePlayer(LP.Character) notify("💖 revivePlayer ejecutado!", THEME.success, 3) end) mkToggle(ex, "🔄 Revive In-Situ (Reaparecer donde moriste)", function() return autoReviveInSitu end, function(v) autoReviveInSitu = v end) mkToggle(ex, "🛡️ Inmortalidad FE GodMode (Humanoid Swap)", function() return preventDeathFE end, function(v) preventDeathFE = v if v then applyFEGodmode(); notify("🛡️ Inmortalidad FE Aplicada", THEME.success, 3) end end) mkToggle(ex, "⚡ Auto-Levantarse (Anti-Knockout)", function() return autoStandUp end, function(v) autoStandUp = v end) section(ex, "☠️ ACCIONES DE MUERTE") mkBtn(ex, "☠️ Morir / Suicidio Instantáneo", function() pcall(function() if Character then local hum = Character:FindFirstChildOfClass("Humanoid") if hum then hum.Health = 0 else Character:BreakJoints() end end end) notify("☠️ Personaje eliminado", THEME.danger, 2) end) section(ex, "🧹 ELIMINADOR DE OBJETOS DE INVENTARIO") mkBtn(ex, "🗑️ Eliminar Objeto en Mano (Equipado)", function() local tool = getEquippedTool() if tool then local name = tool.Name tool:Destroy() notify("🗑️ Objeto '" .. name .. "' eliminado!", THEME.warning, 2.5) else notify("¡No tienes ningún objeto equipado!", THEME.danger, 2) end end) mkBtn(ex, "🧹 Eliminar TODOS los Objetos del Inventario", function() local count = 0 local bp = LP:FindFirstChild("Backpack") if bp then for _, item in ipairs(bp:GetChildren()) do if item:IsA("Tool") then item:Destroy() count = count + 1 end end end if Character then for _, item in ipairs(Character:GetChildren()) do if item:IsA("Tool") then item:Destroy() count = count + 1 end end end notify("🧹 Eliminados " .. count .. " objetos del inventario!", THEME.danger, 3) end) section(ex, "🛡️ OTRAS PROTECCIONES") mkToggle(ex, "Anti-Void (Rescate)", function() return antiVoid end, function(v) antiVoid = v end) mkToggle(ex, "Sin Daño de Caída", function() return noFallDamage end, function(v) noFallDamage = v if Humanoid then Humanoid:SetStateEnabled(Enum.HumanoidStateType.Freefall, not v) end end) section(ex, "🖱️ RATÓN Y CÁMARA") mkToggle(ex, "Desbloquear Ratón", function() return unlockMouse end, function(v) unlockMouse = v end) mkToggle(ex, "Desbloquear 3ra Persona", function() return unlock3rdPerson end, function(v) unlock3rdPerson = v if v then pcall(function() LP.CameraMinZoomDistance = 0.5 LP.CameraMaxZoomDistance = 200 LP.CameraMode = Enum.CameraMode.Classic end) else pcall(function() LP.CameraMode = Enum.CameraMode.LockFirstPerson end) end end) section(ex, "✨ OPTIMIZACIÓN") mkBtn(ex, "🚀 FPS Booster", function() pcall(function() for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("BasePart") then v.Material = Enum.Material.SmoothPlastic elseif v:IsA("Decal") or v:IsA("Texture") or v:IsA("ParticleEmitter") or v:IsA("Trail") or v:IsA("Beam") then v:Destroy() end end Lighting.GlobalShadows = false for _, ef in ipairs(Lighting:GetDescendants()) do if ef:IsA("PostEffect") then ef.Enabled = false end end notify("FPS Optimizado!", THEME.success) end) end) -- AJUSTES local st = tabPages.settings section(st, "🎮 TECLA PARA ABRIR MENÚ") mkKeybindBtn(st, "_MENU_", "Abrir / Cerrar Menú") section(st, "⌨️ ATAJOS (Sin tecla = desactivado)") mkKeybindBtn(st, "fly", "Fly") mkKeybindBtn(st, "noclip", "Noclip") mkKeybindBtn(st, "speed", "Speed") mkKeybindBtn(st, "invisible", "Invisible FE") mkKeybindBtn(st, "aimbot", "Aimbot") mkKeybindBtn(st, "esp", "ESP") mkKeybindBtn(st, "firstperson", "Forzar 1ra Persona") mkKeybindBtn(st, "copyMouseTarget", "Copiar Objeto del Ratón") mkKeybindBtn(st, "deleteMouseTarget", "Borrar Objeto Apuntado") section(st, "🔧 ACCIONES") mkBtn(st, "🔄 Quitar TODOS los Atajos", function() resetAllKeybinds() for _, d in pairs(keybindButtons) do d.update() local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end tween(d.btn, {BackgroundColor3 = THEME.accent}, 0.15) end notify("Atajos eliminados", THEME.success, 3) end) mkBtn(st, "🔄 Centrar Menú", function() Main.Position = UDim2.new(0.5, 0, 0.5, 0) end) -- ===== CLICK EVENTOS ===== Mouse.Button1Down:Connect(function() if clickTP and RootPart and not UIS:GetFocusedTextBox() then RootPart.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 3, 0)) end if clickToDupe and not UIS:GetFocusedTextBox() then local target = Mouse.Target if target then local obj = target.Parent:IsA("Model") and target.Parent ~= workspace and not target.Parent:FindFirstChildOfClass("Humanoid") and target.Parent or target local ok, name = duplicateWorkspaceObject(obj) if ok then notify("✨ Objeto '" .. name .. "' duplicado con Click!", THEME.success, 2) end end end if clickToDelete and not UIS:GetFocusedTextBox() then deleteTargetUnderMouse() end end) -- PASO 2: CLICK DERECHO PARA DUPLICAR EL OBJETO GUARDADO UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.UserInputType == Enum.UserInputType.MouseButton2 and copiedObject then local clone = smartClone(copiedObject) if clone then clone.Parent = workspace local targetPos = Mouse.Hit and Mouse.Hit.Position or (workspace.CurrentCamera.CFrame.Position + workspace.CurrentCamera.CFrame.LookVector * 15) pcall(function() if clone:IsA("BasePart") then clone.CFrame = CFrame.new(targetPos + Vector3.new(0, clone.Size.Y / 2, 0)) elseif clone:IsA("Model") then local _, bSize = clone:GetBoundingBox() clone:PivotTo(CFrame.new(targetPos + Vector3.new(0, bSize.Y / 2, 0))) elseif clone:IsA("Tool") then local handle = clone:FindFirstChild("Handle") or clone:FindFirstChildOfClass("BasePart") if handle then handle.CFrame = CFrame.new(targetPos) end end end) notify("✨ Objeto '" .. clone.Name .. "' colocado con Clic Derecho!", THEME.success, 2) else notify("Error: No se pudo clonar el objeto seleccionado.", THEME.danger, 2.5) copiedObject = nil copyHighlight.Enabled = false end end end) -- TOGGLE MENÚ local function toggleMenu() if Main.Visible then Main.Visible = false Circle.Visible = true else Main.Visible = true Circle.Visible = false end end onTap(MinBtn, toggleMenu) onTap(Circle, toggleMenu) onTap(CloseBtn, function() pcall(function() setFEInvisibility(false) setFirstPerson(false) RunService:UnbindFromRenderStep("GS_AimbotV54") if freecamOn then toggleFreecam(false) end if flying then stopFly() end if infiltratorConn then infiltratorConn:Disconnect() end copyHighlight:Destroy() end) SG:Destroy() end) -- INPUT UIS.InputBegan:Connect(function(i, gpe) if gpe then return end local function tween(obj, props, time, style, dir) if not obj then return end local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) t:Play() return t end if waitingForMenuKey then menuKey = i.KeyCode menuKeyName = i.KeyCode.Name waitingForMenuKey = false if keybindButtons["_MENU_"] then keybindButtons["_MENU_"].update() tween(keybindButtons["_MENU_"].btn, {BackgroundColor3 = THEME.accent}, 0.2) end notify("Tecla del menú: " .. menuKeyName, THEME.success, 2) return end if waitingForHackKey then local name = waitingForHackKey if hackKeybinds[name] then hackKeybinds[name].key = i.KeyCode hackKeybinds[name].keyName = i.KeyCode.Name end waitingForHackKey = nil if keybindButtons[name] then keybindButtons[name].update() tween(keybindButtons[name].btn, {BackgroundColor3 = THEME.accent}, 0.2) end notify("Atajo asignado: " .. i.KeyCode.Name, THEME.success, 2) return end if i.KeyCode == menuKey then toggleMenu() end for _, bind in pairs(hackKeybinds) do if bind.key ~= NONE_KEY and i.KeyCode == bind.key then bind.toggleFunc() end end if i.KeyCode == Enum.KeyCode.Space and infJump then doJump() end if i.KeyCode == Enum.KeyCode.W then keys.W = 1 end if i.KeyCode == Enum.KeyCode.S then keys.S = 1 end if i.KeyCode == Enum.KeyCode.A then keys.A = 1 end if i.KeyCode == Enum.KeyCode.D then keys.D = 1 end if i.KeyCode == Enum.KeyCode.Space then keys.Up = 1 end if i.KeyCode == Enum.KeyCode.LeftShift then keys.Down = 1 end end) UIS.InputEnded:Connect(function(i) if i.KeyCode == Enum.KeyCode.W then keys.W = 0 end if i.KeyCode == Enum.KeyCode.S then keys.S = 0 end if i.KeyCode == Enum.KeyCode.A then keys.A = 0 end if i.KeyCode == Enum.KeyCode.D then keys.D = 0 end if i.KeyCode == Enum.KeyCode.Space then keys.Up = 0 end if i.KeyCode == Enum.KeyCode.LeftShift then keys.Down = 0 end end) -- MANTENEDORES task.spawn(function() while true do if firstPersonLock then pcall(function() LP.CameraMode = Enum.CameraMode.LockFirstPerson LP.CameraMinZoomDistance = 0.5 LP.CameraMaxZoomDistance = 0.5 end) end task.wait(0.2) end end) task.spawn(function() while true do if unlockMouse then pcall(function() UIS.MouseBehavior = Enum.MouseBehavior.Default UIS.MouseIconEnabled = true end) end task.wait(0.1) end end) task.spawn(function() while true do if unlock3rdPerson and not firstPersonLock then pcall(function() LP.CameraMode = Enum.CameraMode.Classic LP.CameraMinZoomDistance = 0.5 LP.CameraMaxZoomDistance = 200 end) end task.wait(0.5) end end) task.spawn(function() while true do if autoClicker and Character then pcall(function() for _, tool in ipairs(Character:GetChildren()) do if tool:IsA("Tool") then tool:Activate() end end end) task.wait(1 / autoClickCPS) else task.wait(0.1) end end end) -- MÓVIL if isMobile then local MP = Instance.new("Frame") MP.Size = UDim2.new(0, 115, 0, 215) MP.Position = UDim2.new(1, -125, 0.5, -105) MP.BackgroundColor3 = THEME.bg MP.BackgroundTransparency = 0.2 MP.Parent = SG Instance.new("UICorner", MP).CornerRadius = UDim.new(0, 10) local ml = Instance.new("UIListLayout", MP) ml.Padding = UDim.new(0, 4) ml.HorizontalAlignment = Enum.HorizontalAlignment.Center local mpPad = Instance.new("UIPadding", MP) mpPad.PaddingTop = UDim.new(0, 6) local function mBtn(text, col, cb) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -10, 0, 30) b.BackgroundColor3 = col b.Text = text b.TextColor3 = Color3.fromRGB(255, 255, 255) b.Font = Enum.Font.GothamBold b.TextSize = 10 b.Parent = MP Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) onTap(b, cb) end mBtn("🚀 SÚPER", THEME.warning, doSuperJump) mBtn("🦘 SALTO", THEME.success, doJump) mBtn("NOCLIP", THEME.accent2, function() noclipping = not noclipping end) mBtn("VOLAR", THEME.accent, function() if flying then stopFly() else startFly() end end) mBtn("MENÚ", Color3.fromRGB(50, 50, 70), toggleMenu) end -- ============================================================================== -- 🚀 BUCLE PRINCIPAL (RENDER STEPPED) -- ============================================================================== RunService.RenderStepped:Connect(function() pcall(function() local Cam = workspace.CurrentCamera -- 👑 MOTOR DE PEGADO A LA CABEZA INFINITO (STICKY HEAD) if stickyHead and trollTargetPlayer and RootPart then local tChar = getPlayerCharacter(trollTargetPlayer) local tHead = tChar and (tChar:FindFirstChild("Head") or tChar:FindFirstChild("HumanoidRootPart")) if tHead and Character then noclipping = true for _, p in ipairs(Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end RootPart.CFrame = tHead.CFrame * CFrame.new(0, stickyOffset, 0) RootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) RootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end end if noclipping and Character then for _, p in ipairs(Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end if bhop and Humanoid and Humanoid.FloorMaterial ~= Enum.Material.Air then doJump() end if airWalk and RootPart then if not airWalkPart or not airWalkPart.Parent then airWalkPart = Instance.new("Part") airWalkPart.Size = Vector3.new(6, 1, 6) airWalkPart.Transparency = 0.8 airWalkPart.Anchored = true airWalkPart.CanCollide = true airWalkPart.Color = THEME.accent airWalkPart.Parent = workspace end airWalkPart.CFrame = CFrame.new(RootPart.Position.X, RootPart.Position.Y - 3.5, RootPart.Position.Z) end if antiVoid and RootPart then if RootPart.Position.Y > -20 then lastSafeCFrame = RootPart.CFrame elseif RootPart.Position.Y < -60 then RootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) RootPart.CFrame = lastSafeCFrame or realSpawnCFrame notify("🛡️ Rescatado", THEME.warning, 1) end end if spinBot and RootPart then RootPart.CFrame = RootPart.CFrame * CFrame.Angles(0, math.rad(spinSpeed), 0) end if hitboxOn then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then if not hitboxOriginals[hrp] then hitboxOriginals[hrp] = hrp.Size end hrp.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize) hrp.Transparency = 0.7 hrp.CanCollide = false end end end end if killAura and Character and RootPart then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hrp and hum and hum.Health > 0 and (hrp.Position - RootPart.Position).Magnitude <= killAuraRange then for _, tool in ipairs(Character:GetChildren()) do if tool:IsA("Tool") then tool:Activate() end end end end end end if triggerbot and Cam and Character then local ray = Cam:ViewportPointToRay(Cam.ViewportSize.X / 2, Cam.ViewportSize.Y / 2) local params = RaycastParams.new() params.FilterDescendantsInstances = {Character} params.FilterType = Enum.RaycastFilterType.Exclude local res = workspace:Raycast(ray.Origin, ray.Direction * 1000, params) if res and res.Instance and res.Instance.Parent:FindFirstChildOfClass("Humanoid") then for _, tool in ipairs(Character:GetChildren()) do if tool:IsA("Tool") then tool:Activate() end end end end if espOn then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character and not plr.Character:FindFirstChild("GS_HL") then local h = Instance.new("Highlight") h.Name = "GS_HL" h.FillColor = THEME.danger h.OutlineColor = Color3.fromRGB(255, 255, 255) h.FillTransparency = 0.5 h.Parent = plr.Character end end end if espNames and RootPart then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character and plr.Character:FindFirstChild("Head") then local head = plr.Character.Head local tag = head:FindFirstChild("GS_TAG") if not tag then tag = Instance.new("BillboardGui") tag.Name = "GS_TAG" tag.Size = UDim2.new(0, 140, 0, 30) tag.StudsOffset = Vector3.new(0, 2.2, 0) tag.AlwaysOnTop = true local tl = Instance.new("TextLabel", tag) tl.Name = "Lbl" tl.Size = UDim2.new(1, 0, 1, 0) tl.BackgroundTransparency = 1 tl.TextColor3 = Color3.fromRGB(255, 255, 255) tl.Font = Enum.Font.GothamBold tl.TextSize = 11 tag.Parent = head end tag.Lbl.Text = plr.DisplayName .. "\n[" .. math.floor((head.Position - RootPart.Position).Magnitude) .. "m]" end end end if flying and flyBV and flyBG and Cam then local cf = Cam.CFrame local dir = (cf.LookVector * (keys.W - keys.S)) + (cf.RightVector * (keys.D - keys.A)) + Vector3.new(0, keys.Up - keys.Down, 0) flyBV.Velocity = dir.Magnitude > 0 and dir.Unit * flySpeed or Vector3.new(0, 0, 0) flyBG.CFrame = cf end if speeding and Humanoid then Humanoid.WalkSpeed = runSpeed end if godMode and Humanoid then Humanoid.Health = Humanoid.MaxHealth end end) end) notify("🧹 GS v54 - Sistema Limpiador de Clones Cargado!", THEME.success, 3.5)