local BASE_URL = "https://e.eyes-of-zero.workers.dev/?file=scripts/" local C = loadstring(game:HttpGet(BASE_URL.."shared/constants.lua",true))() local Keys = loadstring(game:HttpGet(BASE_URL.."shared/keys.lua",true))() local Players = game:GetService("Players") local Run = game:GetService("RunService") local UIS = game:GetService("UserInputService") local Http = game:GetService("HttpService") local SG = game:GetService("StarterGui") local WS = game:GetService("Workspace") local VIM = game:GetService("VirtualInputManager") local Light = game:GetService("Lighting") local TweenS = game:GetService("TweenService") local CAS = game:GetService("ContextActionService") local lp = Players.LocalPlayer -- ── Persistence ─────────────────────────────────────────────────────────────── local function cfgPath(tag) return("EyesOfZero_REDLINERS_%s_%s.json"):format((lp.Name or"u"):gsub("[^%w]",""),tag) end local function saveCfg(t,d) if writefile then pcall(function() writefile(cfgPath(t),Http:JSONEncode(d)) end) end end local function loadCfg(t,def) if not isfile or not isfile(cfgPath(t)) then return def end local ok,r=pcall(function() return Http:JSONDecode(readfile(cfgPath(t))) end) if not ok or type(r)~="table" then return def end for k,v in pairs(def) do if r[k]==nil then r[k]=v end end return r end local function loadBuilds() if not isfile or not isfile(cfgPath("builds")) then return{} end local ok,d=pcall(function() return Http:JSONDecode(readfile(cfgPath("builds"))) end) return(ok and type(d)=="table") and d or{} end local function saveBuilds(b) if writefile then pcall(function() writefile(cfgPath("builds"),Http:JSONEncode(b)) end) end end local function getAutoLoad() if not isfile or not isfile(cfgPath("autoload")) then return nil end local ok,d=pcall(function() return Http:JSONDecode(readfile(cfgPath("autoload"))) end) return(ok and type(d)=="table") and d.buildName or nil end local function setAutoLoad(name) if name then saveCfg("autoload",{buildName=name}) else if delfile then pcall(function() delfile(cfgPath("autoload")) end) end end end local function notify(t,d) pcall(function() SG:SetCore("SendNotification",{Title="Eyes Of Zero",Text=t,Duration=d or 3}) end) end Keys.show(C,{gameName="REDLINERS"},function() -- ── State & Config ──────────────────────────────────────────────────────────── local ON = { autoparry=false, automelee=false, aimbot=false, esp=false, chams=false, wallcheck=false, showfov=false, teamcheck=false, hitboxexpand=false, hitboxvisual=false, velocityboost=false, perftweaks=false, triggerbot=false, mouseunlock=false, } local Cfg = loadCfg("cfg",{ fovRadius = 150, smoothing = 1.0, -- 1.0 = instant snap (brusco/directo), <1 = smooth parryRange = 30, maxDist = 800, hitboxSize = 5, -- hitbox expander size (studs) velocityBoost = 2.8, -- velocity booster multiplier (default 2.8x = very noticeable) meleeRange = 12, -- auto melee range triggerHoldTime = 1.4, -- seconds the triggerbot lock holds after Q+M1 }) local Keybinds = loadCfg("keybinds",{ autoparry = "P", automelee = "N", esp = "H", chams = "J", wallcheck = "K", showfov = "B", aimbot = "None", triggerbot = "T", hitboxexpand = "G", hitboxvisual = "None", -- separate: ESP visual of hitbox (in Visuals page) teamcheck = "Y", velocityboost = "V", perftweaks = "M", mouseunlock = "U", togglehub = "L", }) local conns = {} local alive = true local BOXES = {} -- legacy SelectionBox refs (kept for compat, unused by new ESP) local CHAMS = {} -- Highlight refs (chams esp) local HITBOXES = {} -- expanded hitbox part refs local activeLoadedBuild = nil local listeningFor = nil local kbBtnRefs = {} local togBtnRefs = {} -- ── Entity helpers ──────────────────────────────────────────────────────────── local function getEntitiesFolder() return WS:FindFirstChild("Entities") end local function getMyChar() return lp.Character end local function getMyRoot() local c=getMyChar() return c and c:FindFirstChild("HumanoidRootPart") end local function getOwnerPlayer(model) -- Resolve which Player owns a given character model (for team check) local plr = Players:GetPlayerFromCharacter(model) if plr then return plr end -- Fallback: match by name against workspace.Entities naming for _, p in ipairs(Players:GetPlayers()) do if p.Character == model then return p end end return nil end local function isSameTeam(model) if not ON.teamcheck then return false end local plr = getOwnerPlayer(model) if not plr then return false end -- can't resolve = treat as enemy (battlegrounds/1v1 safe) if not plr.Team or not lp.Team then return false end -- no real teams = FFA/1v1, nothing is "ally" return plr.Team == lp.Team end local function getEnemies() local myChar = getMyChar() local seen = {} local t = {} local function tryAdd(model) if not model or model == myChar or seen[model] then return end local hum = model:FindFirstChildOfClass("Humanoid") local root = model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart if hum and hum.Health > 0 and root then if isSameTeam(model) then return end -- skip allies when team check is ON seen[model] = true t[#t+1] = {model=model, root=root} end end -- Source 1: workspace.Entities (game's primary entity folder) local ef = getEntitiesFolder() if ef then for _, e in ipairs(ef:GetChildren()) do tryAdd(e) end end -- Source 2: Players[*].Character (catches far/streamed players) for _, plr in ipairs(Players:GetPlayers()) do if plr ~= lp and plr.Character then tryAdd(plr.Character) end end return t end local function getAllies() -- Used by ESP to render green boxes in 2v2 when team check is on if not ON.teamcheck then return {} end local myChar = getMyChar() local t = {} for _, plr in ipairs(Players:GetPlayers()) do if plr ~= lp and plr.Character and plr.Team and lp.Team and plr.Team == lp.Team then local hum = plr.Character:FindFirstChildOfClass("Humanoid") local root = plr.Character:FindFirstChild("HumanoidRootPart") if hum and hum.Health > 0 and root then t[#t+1] = {model=plr.Character, root=root, player=plr} end end end return t end local function getNearestEnemy() local cam=WS.CurrentCamera local center=cam.ViewportSize/2 local best,bestDist=nil,math.huge for _,e in ipairs(getEnemies()) do local head=e.model:FindFirstChild("Head") or e.root local pos,vis=cam:WorldToViewportPoint(head.Position) if vis then local d=(Vector2.new(pos.X,pos.Y)-center).Magnitude if d Cfg.parryRange then continue end -- Check animator for recently-started attack animations local hum=e.model:FindFirstChildOfClass("Humanoid") local anim=hum and hum:FindFirstChild("Animator") if not anim then continue end for _,track in ipairs(anim:GetPlayingAnimationTracks()) do -- A track in its first 0.25s = just started = possible attack local id=track.Animation and track.Animation.AnimationId or "" local key=e.model.Name..id if track.TimePosition>0 and track.TimePosition<0.25 and not parryAnims[key] then parryAnims[key]=true task.delay(0.5, function() parryAnims[key]=nil end) -- Auto-parry! pressF() parryCooldown=true task.delay(0.45, function() parryCooldown=false end) break end end end end)) -- ── Auto Melee (auto-clicks M1 — left mouse button — when an enemy is close) ── -- Same trigger pattern as Auto Parry: distance-gated, fires a left click via -- VirtualInputManager so it behaves exactly like the player clicking M1. -- Cooldown kept short (0.15s) so it reacts fast instead of feeling laggy. local meleeCooldown = false local function pressQ() pcall(function() VIM:SendKeyEvent(true, Enum.KeyCode.Q, false, game) task.wait(0.05) VIM:SendKeyEvent(false, Enum.KeyCode.Q, false, game) end) end local function clickM1() pcall(function() local mp = UIS:GetMouseLocation() VIM:SendMouseButtonEvent(mp.X, mp.Y, 0, true, game, 0) task.wait(0.04) VIM:SendMouseButtonEvent(mp.X, mp.Y, 0, false, game, 0) end) end table.insert(conns, Run.Heartbeat:Connect(function() if not alive or not ON.automelee or meleeCooldown then return end local myRoot=getMyRoot() if not myRoot then return end for _,e in ipairs(getEnemies()) do if (e.root.Position-myRoot.Position).Magnitude <= Cfg.meleeRange then clickM1() meleeCooldown=true task.delay(0.15, function() meleeCooldown=false end) break end end end)) -- ── Triggerbot (Gun + M1) ───────────────────────────────────────────────────── -- Discreet behavior (not a permanent toggle-lock like Aimbot): -- 1. Player holds Q (draw gun) and presses M1 (left click) -- 2. Camera snaps to the nearest enemy and HOLDS there for ~1.2s so the shot -- (and any travel-time/animation the gun has) actually lands on target -- 3. Lock then releases automatically — no manual toggle needed -- This only watches for the Q+M1 combo; it does nothing on its own otherwise. local qHeld = false table.insert(conns, UIS.InputBegan:Connect(function(i, gp) if i.KeyCode == Enum.KeyCode.Q then qHeld = true end end)) table.insert(conns, UIS.InputEnded:Connect(function(i, gp) if i.KeyCode == Enum.KeyCode.Q then qHeld = false end end)) local triggerLockUntil = 0 local triggerLockTarget = nil table.insert(conns, UIS.InputBegan:Connect(function(i, gp) if not alive or not ON.triggerbot then return end if gp then return end if i.UserInputType ~= Enum.UserInputType.MouseButton1 then return end if not qHeld then return end -- only fires on the Q + M1 combo local myRoot = getMyRoot() if not myRoot then return end local target = getNearestEnemy() if not target then return end -- Hold the lock for Cfg.triggerHoldTime seconds instead of a single -- one-frame snap — this is what was causing it to "release" almost -- instantly before the shot could actually register. triggerLockTarget = target.model triggerLockUntil = os.clock() + Cfg.triggerHoldTime end)) table.insert(conns, Run.RenderStepped:Connect(function() if not alive or not ON.triggerbot then triggerLockTarget=nil return end if not triggerLockTarget or os.clock() > triggerLockUntil then triggerLockTarget=nil return end if not triggerLockTarget.Parent then triggerLockTarget=nil return end local head = triggerLockTarget:FindFirstChild("Head") or triggerLockTarget:FindFirstChild("HumanoidRootPart") if not head then triggerLockTarget=nil return end local cam = WS.CurrentCamera local targetPos = head.Position + Vector3.new(0, 0.25, 0) cam.CFrame = CFrame.new(cam.CFrame.Position, targetPos) end)) -- ── Aimbot (RenderPriority.Last — absolute last in render pipeline) ────────── -- Runs AFTER everything else, including the game's own camera scripts. -- No Q/LMB requirement — while ON, camera is permanently locked to nearest head. Run:BindToRenderStep("GothamAimbot", Enum.RenderPriority.Last.Value, function() if not alive or not ON.aimbot then return end local myRoot = getMyRoot() if not myRoot then return end -- Find nearest enemy by WORLD DISTANCE (not screen position) local nearest, nearestDist = nil, math.huge for _, e in ipairs(getEnemies()) do local d = (e.root.Position - myRoot.Position).Magnitude if d < nearestDist then nearestDist = d nearest = e end end if not nearest then return end local head = nearest.model:FindFirstChild("Head") or nearest.root local cam = WS.CurrentCamera -- Tiny upward offset so shots register at head center (not chin/neck) local targetPos = head.Position + Vector3.new(0, 0.25, 0) if Cfg.smoothing >= 0.999 then cam.CFrame = CFrame.new(cam.CFrame.Position, targetPos) else local goalCFrame = CFrame.new(cam.CFrame.Position, targetPos) cam.CFrame = cam.CFrame:Lerp(goalCFrame, Cfg.smoothing) end end) table.insert(conns, {Disconnect = function() pcall(function() Run:UnbindFromRenderStep("GothamAimbot") end) end}) -- ── Hitbox Expander (scales the enemy's HumanoidRootPart hitbox up) ────────── -- Uses a PropertyChangedSignal watchdog in addition to the loop: some games -- re-sync the hitbox size from the server every frame, which silently undid -- the old version. Re-asserting on the Size-changed signal wins that race. -- A red wireframe box (visualHitbox) is drawn so you can SEE the new hitbox. local hitboxWatchers = {} local function enforceHitboxSize(root, size) pcall(function() root.Size = size end) end table.insert(conns, Run.Heartbeat:Connect(function() if not alive then return end if not ON.hitboxexpand then for model, data in pairs(HITBOXES) do pcall(function() if data.part and data.part.Parent then data.part.Size = data.origSize end if data.visual then data.visual:Destroy() end end) if hitboxWatchers[model] then hitboxWatchers[model]:Disconnect() hitboxWatchers[model]=nil end end HITBOXES = {} return end for model, data in pairs(HITBOXES) do if not model or not model.Parent then if data.visual then pcall(function() data.visual:Destroy() end) end if hitboxWatchers[model] then hitboxWatchers[model]:Disconnect() hitboxWatchers[model]=nil end HITBOXES[model]=nil end end local target = Vector3.new(Cfg.hitboxSize, Cfg.hitboxSize, Cfg.hitboxSize) for _, e in ipairs(getEnemies()) do local root = e.root if not HITBOXES[e.model] then local visual = Instance.new("SelectionBox") visual.Name = "GothamHitboxVisual" visual.Adornee = root visual.Color3 = Color3.fromRGB(255, 210, 0) visual.LineThickness = 0.05 visual.SurfaceTransparency = 1 visual.Parent = WS HITBOXES[e.model] = {part=root, origSize=root.Size, visual=visual} -- Watchdog: if the server/game resets Size, snap it right back. hitboxWatchers[e.model] = root:GetPropertyChangedSignal("Size"):Connect(function() if ON.hitboxexpand and HITBOXES[e.model] and (root.Size - target).Magnitude > 0.05 then enforceHitboxSize(root, target) end end) end if (root.Size - target).Magnitude > 0.05 then enforceHitboxSize(root, target) end end end)) -- ── Velocity Booster (multiplies horizontal movement speed) ───────────────── -- Runs at RenderPriority.Last — the absolute final write each frame, same -- priority as the Aimbot — so it always wins the race against the game's own -- character-control script, which is what made the old version invisible. local baseWalkSpeed = 16 local walkSpeedCaptured = false Run:BindToRenderStep("GothamVelocityBoost", Enum.RenderPriority.Last.Value, function() if not alive then return end local char = getMyChar() local hum = char and char:FindFirstChildOfClass("Humanoid") if not hum then return end if not walkSpeedCaptured and hum.WalkSpeed > 0 and not ON.velocityboost then baseWalkSpeed = hum.WalkSpeed walkSpeedCaptured = true end if ON.velocityboost then local want = baseWalkSpeed * Cfg.velocityBoost if hum.WalkSpeed ~= want then hum.WalkSpeed = want end end end) table.insert(conns, {Disconnect = function() pcall(function() Run:UnbindFromRenderStep("GothamVelocityBoost") end) end}) -- ── Performance Tweaks (strip textures/effects for clearer, lighter visuals) ── local perfOriginals = {} local function applyPerfTweaks(on) if on then pcall(function() Light.GlobalShadows = false Light.FogEnd = 100000 end) for _, v in ipairs(WS:GetDescendants()) do if v:IsA("Texture") or v:IsA("Decal") then if perfOriginals[v]==nil then perfOriginals[v]=v.Transparency end pcall(function() v.Transparency = 1 end) elseif v:IsA("ParticleEmitter") or v:IsA("Trail") or v:IsA("Smoke") or v:IsA("Fire") then if perfOriginals[v]==nil then perfOriginals[v]=v.Enabled end pcall(function() v.Enabled = false end) elseif v:IsA("MeshPart") then if perfOriginals[v]==nil then perfOriginals[v]=v.Material end pcall(function() v.Material = Enum.Material.SmoothPlastic end) end end notify("Performance tweaks applied",2) else for inst, orig in pairs(perfOriginals) do pcall(function() if inst and inst.Parent then if inst:IsA("Texture") or inst:IsA("Decal") then inst.Transparency = orig elseif inst:IsA("ParticleEmitter") or inst:IsA("Trail") or inst:IsA("Smoke") or inst:IsA("Fire") then inst.Enabled = orig elseif inst:IsA("MeshPart") then inst.Material = orig end end end) end perfOriginals = {} end end local lastPerf = false table.insert(conns, Run.Heartbeat:Connect(function() if ON.perftweaks ~= lastPerf then lastPerf = ON.perftweaks applyPerfTweaks(lastPerf) end end)) -- ── Mouse Unlock (frees the cursor and makes it VISIBLY PRESENT) ────────────────────── -- Forces MouseBehavior.Default and aggressively sets cursor to always be visible. -- The game may try to hide it but we re-apply every frame with standard arrows. local mouse = lp:GetMouse() table.insert(conns, Run.Heartbeat:Connect(function() if not alive then return end if ON.mouseunlock then if UIS.MouseBehavior ~= Enum.MouseBehavior.Default then UIS.MouseBehavior = Enum.MouseBehavior.Default end UIS.MouseIconEnabled = true -- Force a visible cursor by constantly re-setting to default arrow icon -- which Roblox always provides built-in. if mouse.Icon ~= "rbxasset://textures/Cursors/MouseArrow.png" then mouse.Icon = "rbxasset://textures/Cursors/MouseArrow.png" end end end)) -- ══════════════════════════════════════════════════════════════════════════ -- ESP — built with the Drawing API (vector lines), not SelectionBox/ImageLabel. -- This is what fixes the "pixelated" look: SelectionBox renders through the -- game's 3D pipeline at native res and can look blocky at distance, and the -- old FOV circle was a raster image (rbxassetid) stretched up, which blurs. -- Drawing objects are GPU vector overlays — crisp at any zoom/distance. -- ══════════════════════════════════════════════════════════════════════════ local DrawingAvailable = (typeof(Drawing) == "table") local ESP_OBJ = {} -- [model] = { box, name, dist } local function newDrawing(class, props) local ok, obj = pcall(function() return Drawing.new(class) end) if not ok then return nil end for k,v in pairs(props) do pcall(function() obj[k]=v end) end return obj end local function destroyEspObj(e) for _,k in pairs(e) do if typeof(k)=="table" and k.Remove then pcall(function() k:Remove() end) end end end local function ensureEspObj(model) if ESP_OBJ[model] or not DrawingAvailable then return end ESP_OBJ[model] = { box = newDrawing("Square", {Thickness=1.4, Filled=false, Color=Color3.fromRGB(255,60,60), Transparency=1, Visible=false}), name = newDrawing("Text", {Size=14, Center=true, Outline=true, Color=Color3.fromRGB(255,255,255), Visible=false}), dist = newDrawing("Text", {Size=12, Center=true, Outline=true, Color=Color3.fromRGB(200,200,200), Visible=false}), } end local function hideEspObj(model) local e = ESP_OBJ[model] if not e then return end for k,v in pairs(e) do if typeof(v)=="table" and v.Visible~=nil then v.Visible=false end end end local function clearAllEsp() for model, e in pairs(ESP_OBJ) do destroyEspObj(e) end ESP_OBJ = {} end local function getToolName(model) local tool = model:FindFirstChildOfClass("Tool") return tool and tool.Name or nil end local function updateEspEntity(e, color, isAlly) ensureEspObj(e.model) local d = ESP_OBJ[e.model] if not d then return end local cam = WS.CurrentCamera local hum = e.model:FindFirstChildOfClass("Humanoid") local root = e.root local head = e.model:FindFirstChild("Head") or root -- Bounding box from head/root corners projected to screen local topPos, topVis = cam:WorldToViewportPoint((head.Position + Vector3.new(0,1,0))) local botPos, botVis = cam:WorldToViewportPoint((root.Position - Vector3.new(0,3,0))) if (not topVis and not botVis) or topPos.Z<0 then hideEspObj(e.model) return end local height = math.abs(topPos.Y - botPos.Y) local width = height * 0.55 local cx, cy = topPos.X, (topPos.Y+botPos.Y)/2 if ON.esp then d.box.Visible = true d.box.Color = color d.box.Size = Vector2.new(width, height) d.box.Position = Vector2.new(cx - width/2, topPos.Y) d.name.Visible = true d.name.Text = e.model.Name .. (isAlly and " [Ally]" or "") d.name.Color = isAlly and Color3.fromRGB(80,255,120) or Color3.fromRGB(255,255,255) d.name.Position = Vector2.new(cx, topPos.Y - 16) local dist = (getMyRoot() and (getMyRoot().Position - root.Position).Magnitude) or 0 d.dist.Visible = true d.dist.Text = string.format("[%dm]", dist) d.dist.Position = Vector2.new(cx, botPos.Y + 2) else d.box.Visible=false d.name.Visible=false d.dist.Visible=false end end table.insert(conns, Run.RenderStepped:Connect(function() if not alive or not DrawingAvailable then return end if not ON.esp then for _, e in pairs(ESP_OBJ) do hideEspObj(nil) end for model,_ in pairs(ESP_OBJ) do hideEspObj(model) end return end local seenModels = {} for _, e in ipairs(getEnemies()) do seenModels[e.model] = true updateEspEntity(e, Color3.fromRGB(255,60,60), false) end if ON.teamcheck then for _, e in ipairs(getAllies()) do seenModels[e.model] = true updateEspEntity(e, Color3.fromRGB(80,255,120), true) end end for model, e in pairs(ESP_OBJ) do if not seenModels[model] or not model.Parent then destroyEspObj(e) ESP_OBJ[model] = nil end end end)) -- ── Chams (Glow style or Box Fill style — selectable, always through walls) ── table.insert(conns, Run.Heartbeat:Connect(function() if not alive then return end if not ON.chams then for _,h in pairs(CHAMS) do pcall(function() h:Destroy() end) end CHAMS={} return end for e,h in pairs(CHAMS) do if not e or not e.Parent then pcall(function() h:Destroy() end) CHAMS[e]=nil end end for _,e in ipairs(getEnemies()) do if not CHAMS[e.model] then local h=Instance.new("Highlight") h.Adornee=e.model h.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop h.Parent=e.model CHAMS[e.model]=h end local h = CHAMS[e.model] if Cfg.chamsStyle == "boxfill" then h.FillColor=Color3.fromRGB(255,50,50) h.OutlineColor=Color3.fromRGB(255,80,80) h.FillTransparency=0.35 h.OutlineTransparency=0 else -- glow (default): thin outline, near-invisible fill = clean glow look h.FillColor=Color3.fromRGB(255,70,70) h.OutlineColor=Color3.fromRGB(255,120,120) h.FillTransparency=0.85 h.OutlineTransparency=0 end end end)) -- ── FOV Circle — now a clean ring (Drawing.Circle, Filled=false) ───────────── -- Replaces the old stretched rbxassetid image (which is what caused the -- blurry/pixelated look at larger radii). This is a crisp vector outline. local fovCircleDraw = DrawingAvailable and newDrawing("Circle", { Thickness = 1.5, Filled = false, Color = Color3.fromRGB(255,255,255), Transparency = 0.55, NumSides = 64, Visible = false, }) or nil table.insert(conns,Run.RenderStepped:Connect(function() if not alive or not fovCircleDraw then return end fovCircleDraw.Visible = ON.showfov and true or false if fovCircleDraw.Visible then fovCircleDraw.Radius = Cfg.fovRadius fovCircleDraw.Position = WS.CurrentCamera.ViewportSize/2 end end)) -- ── Build helpers ───────────────────────────────────────────────────────────── local function snapshot() return{name="", on={autoparry=ON.autoparry,automelee=ON.automelee,aimbot=ON.aimbot,esp=ON.esp, chams=ON.chams,wallcheck=ON.wallcheck,showfov=ON.showfov, teamcheck=ON.teamcheck, hitboxexpand=ON.hitboxexpand,hitboxvisual=ON.hitboxvisual,velocityboost=ON.velocityboost, perftweaks=ON.perftweaks,triggerbot=ON.triggerbot,mouseunlock=ON.mouseunlock}, cfg={fovRadius=Cfg.fovRadius,smoothing=Cfg.smoothing, parryRange=Cfg.parryRange,maxDist=Cfg.maxDist, hitboxSize=Cfg.hitboxSize, velocityBoost=Cfg.velocityBoost,meleeRange=Cfg.meleeRange, chamsStyle=Cfg.chamsStyle}, keybinds=Keybinds} end local function applyBuild(b) if b.on then for k,v in pairs(b.on) do ON[k]=v end end if b.cfg then for k,v in pairs(b.cfg) do if Cfg[k]~=nil then Cfg[k]=v end end end if b.keybinds then for k,v in pairs(b.keybinds) do Keybinds[k]=v end end for feat,btn in pairs(togBtnRefs) do if ON[feat] then btn.BackgroundColor3=C.VINO_TINTO_EXTREMO btn.Text="ON" btn.TextColor3=Color3.fromRGB(15,15,15) else btn.BackgroundColor3=C.BG_ROW btn.Text="OFF" btn.TextColor3=C.TEXT_FADE end end for feat,btn in pairs(kbBtnRefs) do btn.Text=Keybinds[feat] and Keybinds[feat]~="" and Keybinds[feat] or "---" end end -- Auto-load task.defer(function() local name=getAutoLoad() if not name then return end local builds=loadBuilds() for _,b in ipairs(builds) do if b.name==name then applyBuild(b) activeLoadedBuild=name notify("Auto-build: "..name,4) return end end end) -- ── GUI ─────────────────────────────────────────────────────────────────────── local old=lp.PlayerGui:FindFirstChild("EyesOfZeroREDLINERS") if old then old:Destroy() end local gui=Instance.new("ScreenGui") gui.Name="EyesOfZeroREDLINERS" gui.ResetOnSpawn=false gui.ZIndexBehavior=Enum.ZIndexBehavior.Sibling gui.Parent=lp:WaitForChild("PlayerGui") local win=Instance.new("Frame") win.Size=UDim2.new(0,820,0,580) win.Position=UDim2.new(0.5,-410,0.5,-290) win.BackgroundColor3=C.BG_HUB win.BorderSizePixel=0 win.Active=true win.Draggable=true win.Parent=gui Instance.new("UICorner").Parent=win Instance.new("UIStroke",win).Color=C.VINO_TINTO_EXTREMO -- Header local hdr=Instance.new("Frame") hdr.Size=UDim2.new(1,0,0,62) hdr.BackgroundTransparency=1 hdr.Parent=win local logo=Instance.new("ImageLabel") logo.Size=UDim2.new(0,52,0,52) logo.Position=UDim2.new(0,12,0.5,-26) logo.BackgroundTransparency=1 logo.Image=C.LOGO_ID logo.Parent=hdr local htl=Instance.new("TextLabel") htl.Size=UDim2.new(0.5,0,1,0) htl.Position=UDim2.new(0,76,0,0) htl.BackgroundTransparency=1 htl.Text="EYES OF ZERO" htl.TextColor3=C.TEXT_MAIN htl.Font=C.FONT_HUB_TITLE htl.TextSize=16 htl.TextXAlignment=Enum.TextXAlignment.Left htl.Parent=hdr local hsep=Instance.new("Frame") hsep.Size=UDim2.new(1,0,0,1) hsep.Position=UDim2.new(0,0,0,62) hsep.BackgroundColor3=C.VINO_TINTO_EXTREMO hsep.Parent=win -- Sidebar local side=Instance.new("Frame") side.Size=UDim2.new(0,200,1,-62) side.Position=UDim2.new(0,0,0,62) side.BackgroundColor3=C.BG_SIDE side.BorderSizePixel=0 side.Parent=win local ssep=Instance.new("Frame") ssep.Size=UDim2.new(0,1,1,0) ssep.Position=UDim2.new(1,-1,0,0) ssep.BackgroundColor3=C.VINO_TINTO_EXTREMO ssep.Parent=side local ca=Instance.new("Frame") ca.Size=UDim2.new(1,-200,1,-62) ca.Position=UDim2.new(0,200,0,62) ca.BackgroundTransparency=1 ca.Parent=win local function mkPage() local f=Instance.new("Frame") f.Size=UDim2.new(1,0,1,0) f.BackgroundTransparency=1 f.Visible=false f.Parent=ca return f end local pMain=mkPage() pMain.Visible=true local pVisual=mkPage() local pCfg =mkPage() local pAct =mkPage() local navData={} local function mkNav(lbl,y,pg) local b=Instance.new("TextButton") b.Size=UDim2.new(1,-16,0,38) b.Position=UDim2.new(0,8,0,y) b.BackgroundColor3=Color3.fromRGB(15,15,15) b.BorderSizePixel=0 b.Text="" b.Parent=side Instance.new("UICorner").Parent=b local ac=Instance.new("Frame") ac.Size=UDim2.new(0,3,1,0) ac.BackgroundColor3=C.VINO_TINTO_EXTREMO ac.BorderSizePixel=0 ac.Visible=false ac.Parent=b Instance.new("UICorner").Parent=ac local t=Instance.new("TextLabel") t.Size=UDim2.new(1,-10,1,0) t.Position=UDim2.new(0,14,0,0) t.BackgroundTransparency=1 t.Text=lbl t.TextColor3=C.TEXT_FADE t.Font=C.FONT_LABEL_BOLD t.TextSize=13 t.TextXAlignment=Enum.TextXAlignment.Left t.Parent=b navData[#navData+1]={t=t,pg=pg,ac=ac} b.MouseButton1Click:Connect(function() for _,n in ipairs(navData) do n.t.TextColor3=C.TEXT_FADE n.pg.Visible=false n.ac.Visible=false end t.TextColor3=C.TEXT_MAIN pg.Visible=true ac.Visible=true end) return t,ac end local nMain,aMain=mkNav("Main Scripts",10,pMain) mkNav("Visuals",58,pVisual) mkNav("Config",106,pCfg) mkNav("Actions",154,pAct) nMain.TextColor3=C.TEXT_MAIN aMain.Visible=true -- ── UI builders ─────────────────────────────────────────────────────────────── local function sec(par,txt,y) local l=Instance.new("TextLabel") l.Size=UDim2.new(1,-16,0,14) l.Position=UDim2.new(0,8,0,y) l.BackgroundTransparency=1 l.Text=txt l.TextColor3=C.TEXT_FADE l.Font=C.FONT_LABEL_BOLD l.TextSize=10 l.TextXAlignment=Enum.TextXAlignment.Left l.Parent=par end local function mkRow(par,lbl,y,key,hint) local rowH=hint and 48 or 38 local r=Instance.new("Frame") r.Size=UDim2.new(1,-16,0,rowH) r.Position=UDim2.new(0,8,0,y) r.BackgroundColor3=C.BG_ROW r.BorderSizePixel=0 r.Parent=par Instance.new("UICorner").Parent=r local acc=Instance.new("Frame") acc.Size=UDim2.new(0,3,1,0) acc.BackgroundColor3=C.VINO_TINTO_EXTREMO acc.BorderSizePixel=0 acc.Parent=r Instance.new("UICorner").Parent=acc local lbl2=Instance.new("TextLabel") lbl2.Size=UDim2.new(1,-136,0,hint and 22 or rowH) lbl2.Position=UDim2.new(0,12,0,hint and 4 or 0) lbl2.BackgroundTransparency=1 lbl2.Text=lbl lbl2.TextColor3=C.TEXT_MAIN lbl2.Font=C.FONT_LABEL_BOLD lbl2.TextSize=13 lbl2.TextXAlignment=Enum.TextXAlignment.Left lbl2.Parent=r if hint then local hl=Instance.new("TextLabel") hl.Size=UDim2.new(1,-136,0,14) hl.Position=UDim2.new(0,12,0,26) hl.BackgroundTransparency=1 hl.Text=hint hl.TextColor3=C.TEXT_FADE hl.Font=C.FONT_LABEL hl.TextSize=10 hl.TextXAlignment=Enum.TextXAlignment.Left hl.Parent=r end local kbBtn=Instance.new("TextButton") kbBtn.Size=UDim2.new(0,58,0,24) kbBtn.Position=UDim2.new(1,-120,0.5,-12) kbBtn.BackgroundColor3=Color3.fromRGB(22,22,22) kbBtn.BorderSizePixel=0 kbBtn.Font=C.FONT_MONO kbBtn.TextSize=11 kbBtn.TextColor3=C.TEXT_FADE kbBtn.Text=Keybinds[key] and Keybinds[key]~="" and Keybinds[key] or "---" kbBtn.Parent=r Instance.new("UICorner").Parent=kbBtn kbBtnRefs[key]=kbBtn local togBtn=Instance.new("TextButton") togBtn.Size=UDim2.new(0,52,0,24) togBtn.Position=UDim2.new(1,-60,0.5,-12) togBtn.BackgroundColor3=ON[key] and C.VINO_TINTO_EXTREMO or C.BG_ROW togBtn.Text=ON[key] and "ON" or "OFF" togBtn.BorderSizePixel=0 togBtn.TextColor3=ON[key] and Color3.fromRGB(15,15,15) or C.TEXT_FADE togBtn.Font=C.FONT_LABEL_BOLD togBtn.TextSize=12 togBtn.Parent=r Instance.new("UICorner").Parent=togBtn togBtnRefs[key]=togBtn togBtn.MouseButton1Click:Connect(function() ON[key]=not ON[key] togBtn.BackgroundColor3=ON[key] and C.VINO_TINTO_EXTREMO or C.BG_ROW togBtn.Text=ON[key] and "ON" or "OFF" togBtn.TextColor3=ON[key] and Color3.fromRGB(15,15,15) or C.TEXT_FADE end) kbBtn.MouseButton1Click:Connect(function() if listeningFor==key then listeningFor=nil kbBtn.BackgroundColor3=Color3.fromRGB(22,22,22) kbBtn.TextColor3=C.TEXT_FADE kbBtn.Text=Keybinds[key] and Keybinds[key]~="" and Keybinds[key] or "---" return end listeningFor=key kbBtn.BackgroundColor3=C.VINO_TINTO_EXTREMO kbBtn.TextColor3=Color3.fromRGB(15,15,15) kbBtn.Text="..." task.delay(4,function() if listeningFor==key then listeningFor=nil kbBtn.BackgroundColor3=Color3.fromRGB(22,22,22) kbBtn.TextColor3=C.TEXT_FADE kbBtn.Text=Keybinds[key] or"---" end end) end) end local function mkSlider(par,lbl,y,mn,mx,def,step,cb) step=step or 1 local r=Instance.new("Frame") r.Size=UDim2.new(1,-16,0,52) r.Position=UDim2.new(0,8,0,y) r.BackgroundColor3=C.BG_ROW r.BorderSizePixel=0 r.Parent=par Instance.new("UICorner").Parent=r local acc=Instance.new("Frame") acc.Size=UDim2.new(0,3,1,0) acc.BackgroundColor3=C.VINO_TINTO_EXTREMO acc.BorderSizePixel=0 acc.Parent=r Instance.new("UICorner").Parent=acc local vl=Instance.new("TextLabel") vl.Size=UDim2.new(1,-14,0,20) vl.Position=UDim2.new(0,12,0,4) vl.BackgroundTransparency=1 vl.TextColor3=C.TEXT_MAIN vl.Font=C.FONT_LABEL vl.TextSize=12 vl.TextXAlignment=Enum.TextXAlignment.Left vl.Parent=r local tr=Instance.new("Frame") tr.Size=UDim2.new(1,-20,0,6) tr.Position=UDim2.new(0,12,0,32) tr.BackgroundColor3=Color3.fromRGB(35,35,35) tr.BorderSizePixel=0 tr.Parent=r Instance.new("UICorner").Parent=tr local fi=Instance.new("Frame") fi.BackgroundColor3=C.VINO_TINTO_EXTREMO fi.BorderSizePixel=0 fi.Size=UDim2.new((def-mn)/(mx-mn),0,1,0) fi.Parent=tr Instance.new("UICorner").Parent=fi local kn=Instance.new("TextButton") kn.Size=UDim2.new(0,14,0,14) kn.Position=UDim2.new((def-mn)/(mx-mn),-7,0.5,-7) kn.BackgroundColor3=C.TEXT_MAIN kn.BorderSizePixel=0 kn.Text="" kn.Parent=tr Instance.new("UICorner").Parent=kn local cur=def local drag=false local function fmtVal(v) return step<1 and string.format("%.2f",v) or tostring(v) end vl.Text=lbl..": "..fmtVal(cur) kn.MouseButton1Down:Connect(function() drag=true end) local uc=UIS.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end) table.insert(conns,uc) local hc=Run.Heartbeat:Connect(function() if not drag then return end local mp=UIS:GetMouseLocation() local tp=tr.AbsolutePosition local ts=tr.AbsoluteSize local ratio=math.clamp((mp.X-tp.X)/ts.X,0,1) local raw=mn+ratio*(mx-mn) local nv=math.floor(raw/step+0.5)*step nv=math.clamp(nv,mn,mx) if nv~=cur then cur=nv vl.Text=lbl..": "..fmtVal(nv) local r2=(nv-mn)/(mx-mn) fi.Size=UDim2.new(r2,0,1,0) kn.Position=UDim2.new(r2,-7,0.5,-7) cb(nv) end end) table.insert(conns,hc) end local function mkBtn(par,lbl,y,fn,col) local b=Instance.new("TextButton") b.Size=UDim2.new(1,-16,0,38) b.Position=UDim2.new(0,8,0,y) b.BackgroundColor3=col or C.BG_ROW b.BorderSizePixel=0 b.Text=lbl b.TextColor3=C.TEXT_MAIN b.Font=C.FONT_LABEL_BOLD b.TextSize=13 b.Parent=par local s=Instance.new("UIStroke") s.Color=col or C.VINO_TINTO_EXTREMO s.Thickness=1 s.Parent=b Instance.new("UICorner").Parent=b b.MouseButton1Click:Connect(fn) return b end -- ── Main Scripts Page ───────────────────────────────────────────────────────── do local left=Instance.new("ScrollingFrame") left.Size=UDim2.new(0.5,-6,1,-6) left.Position=UDim2.new(0,3,0,3) left.BackgroundColor3=C.BG_CARD left.BorderSizePixel=0 left.ScrollBarThickness=3 left.ScrollBarImageColor3=C.VINO_TINTO_EXTREMO left.CanvasSize=UDim2.new(0,0,0,720) left.Parent=pMain Instance.new("UICorner").Parent=left Instance.new("UIStroke",left).Color=C.VINO_TINTO_EXTREMO sec(left,"── AIMBOT ──",4) mkRow(left,"Aimbot Lock",20,"aimbot") mkRow(left,"Triggerbot (Gun + M1)",64,"triggerbot") sec(left,"── COMBAT ──",112) mkRow(left,"Auto Parry [F auto]",130,"autoparry") mkRow(left,"Auto Melee [M1 auto]",174,"automelee") mkRow(left,"Hitbox Expander (execute only)",218,"hitboxexpand") mkRow(left,"Velocity Booster",262,"velocityboost") sec(left,"── UTILITY ──",310) mkRow(left,"Team Check (2v2)",328,"teamcheck","Hides allies from ESP/aimbot/triggerbot") mkRow(left,"Performance Tweaks",372,"perftweaks","Strips textures/fx for clarity + FPS") sec(left,"── CONFIG ──",420) mkSlider(left,"Aimbot FOV",438,50,500,Cfg.fovRadius,1,function(v) Cfg.fovRadius=v saveCfg("cfg",Cfg) end) mkSlider(left,"Smoothing",498,0.01,1,Cfg.smoothing,0.01,function(v) Cfg.smoothing=v saveCfg("cfg",Cfg) end) mkSlider(left,"Parry Range (studs)",558,10,80,Cfg.parryRange,1,function(v) Cfg.parryRange=v saveCfg("cfg",Cfg) end) mkSlider(left,"Melee Range (studs)",618,5,40,Cfg.meleeRange,1,function(v) Cfg.meleeRange=v saveCfg("cfg",Cfg) end) -- Right: info local right=Instance.new("Frame") right.Size=UDim2.new(0.5,-6,1,-6) right.Position=UDim2.new(0.5,3,0,3) right.BackgroundColor3=C.BG_CARD right.BorderSizePixel=0 right.Parent=pMain Instance.new("UICorner").Parent=right Instance.new("UIStroke",right).Color=C.VINO_TINTO_EXTREMO sec(right,"── INFORMATION ──",6) local function il(t,y) local l=Instance.new("TextLabel") l.Size=UDim2.new(1,-16,0,20) l.Position=UDim2.new(0,12,0,y) l.BackgroundTransparency=1 l.TextColor3=C.TEXT_DIM l.Text=t l.Font=C.FONT_LABEL l.TextSize=12 l.TextXAlignment=Enum.TextXAlignment.Left l.Parent=right end il("User: "..lp.Name,26) il("Executor: "..(identifyexecutor and identifyexecutor() or "Unknown"),46) il("Game: REDLINERS",66) il("Owner: jonas_l.s",86) local ns=Instance.new("TextLabel") ns.Size=UDim2.new(1,-16,0,18) ns.Position=UDim2.new(0,46,0,106) ns.BackgroundTransparency=1 ns.TextColor3=C.TEXT_FADE ns.Text="Noir" ns.Font=C.FONT_OWNER_SUB ns.TextSize=12 ns.TextXAlignment=Enum.TextXAlignment.Left ns.Parent=right local div=Instance.new("Frame") div.Size=UDim2.new(1,-24,0,1) div.Position=UDim2.new(0,12,0,132) div.BackgroundColor3=C.VINO_TINTO_EXTREMO div.Parent=right sec(right,"── STATUS ──",140) local tgtLbl=Instance.new("TextLabel") tgtLbl.Size=UDim2.new(1,-16,0,18) tgtLbl.Position=UDim2.new(0,12,0,160) tgtLbl.BackgroundTransparency=1 tgtLbl.Font=C.FONT_LABEL tgtLbl.TextSize=12 tgtLbl.TextColor3=C.TEXT_FADE tgtLbl.Text="Target: —" tgtLbl.TextXAlignment=Enum.TextXAlignment.Left tgtLbl.Parent=right local autoLbl=Instance.new("TextLabel") autoLbl.Size=UDim2.new(1,-16,0,18) autoLbl.Position=UDim2.new(0,12,0,182) autoLbl.BackgroundTransparency=1 autoLbl.Font=C.FONT_LABEL autoLbl.TextSize=12 autoLbl.TextXAlignment=Enum.TextXAlignment.Left autoLbl.Parent=right local alName=getAutoLoad() autoLbl.Text=alName and ("Auto-load: "..alName) or "Auto-load: —" autoLbl.TextColor3=alName and C.TEXT_AMBER or C.TEXT_FADE local kbListen=Instance.new("TextLabel") kbListen.Size=UDim2.new(1,-16,0,18) kbListen.Position=UDim2.new(0,12,0,204) kbListen.BackgroundTransparency=1 kbListen.Font=C.FONT_LABEL_BOLD kbListen.TextSize=11 kbListen.TextColor3=C.VINO_TINTO_EXTREMO kbListen.TextXAlignment=Enum.TextXAlignment.Left kbListen.Text="" kbListen.Parent=right local uTimer=0 table.insert(conns,Run.Heartbeat:Connect(function(dt) if not alive then return end uTimer=uTimer+dt if uTimer<0.25 then return end uTimer=0 local t=getNearestEnemy() if t then tgtLbl.Text="Target: "..t.model.Name tgtLbl.TextColor3=Color3.fromRGB(255,80,80) else tgtLbl.Text="Target: —" tgtLbl.TextColor3=C.TEXT_FADE end kbListen.Text=listeningFor and ("Listening: "..listeningFor.." (press key)") or "" end)) end -- ── Visuals Page (ESP detail toggles + Chams style + FOV) ──────────────────── -- NOTE: this is a ScrollingFrame, not a plain Frame — the old version was a -- fixed-height Frame and the FOV/Hitbox/Flick/Velocity sliders at the bottom -- physically overflowed past the visible card edge. Scrolling fixes that -- without needing to shrink everything to fit. do local card=Instance.new("ScrollingFrame") card.Size=UDim2.new(1,-6,1,-6) card.Position=UDim2.new(0,3,0,3) card.BackgroundColor3=C.BG_CARD card.BorderSizePixel=0 card.ScrollBarThickness=3 card.ScrollBarImageColor3=C.VINO_TINTO_EXTREMO card.CanvasSize=UDim2.new(0,0,0,760) card.Parent=pVisual Instance.new("UICorner").Parent=card Instance.new("UIStroke",card).Color=C.VINO_TINTO_EXTREMO sec(card,"── ESP ──",6) mkRow(card,"ESP Boxes / Names / Distance",24,"esp") mkRow(card,"Wall Check (raycast LOS gate)",68,"wallcheck") sec(card,"── CHAMS ──",116) mkRow(card,"Chams ESP",134,"chams") local styleLbl=Instance.new("TextLabel") styleLbl.Size=UDim2.new(1,-16,0,16) styleLbl.Position=UDim2.new(0,8,0,180) styleLbl.BackgroundTransparency=1 styleLbl.Text="Chams Style" styleLbl.TextColor3=C.TEXT_FADE styleLbl.Font=C.FONT_LABEL_BOLD styleLbl.TextSize=11 styleLbl.TextXAlignment=Enum.TextXAlignment.Left styleLbl.Parent=card local styleRow=Instance.new("Frame") styleRow.Size=UDim2.new(1,-16,0,34) styleRow.Position=UDim2.new(0,8,0,296) styleRow.BackgroundTransparency=1 styleRow.Parent=card local function styleBtn(text,xOff,style) local b=Instance.new("TextButton") b.Size=UDim2.new(0.5,-4,1,0) b.Position=UDim2.new(xOff,0,0,0) b.BackgroundColor3=(Cfg.chamsStyle==style) and C.VINO_TINTO_EXTREMO or C.BG_ROW b.BorderSizePixel=0 b.Text=text b.TextColor3=(Cfg.chamsStyle==style) and Color3.fromRGB(15,15,15) or C.TEXT_FADE b.Font=C.FONT_LABEL_BOLD b.TextSize=12 b.Parent=styleRow Instance.new("UICorner").Parent=b return b end Cfg.chamsStyle = Cfg.chamsStyle or "glow" local glowBtn = styleBtn("Glow",0,"glow") local fillBtn = styleBtn("Box Fill",0.5,"boxfill") glowBtn.MouseButton1Click:Connect(function() Cfg.chamsStyle="glow" saveCfg("cfg",Cfg) glowBtn.BackgroundColor3=C.VINO_TINTO_EXTREMO glowBtn.TextColor3=Color3.fromRGB(15,15,15) fillBtn.BackgroundColor3=C.BG_ROW fillBtn.TextColor3=C.TEXT_FADE end) fillBtn.MouseButton1Click:Connect(function() Cfg.chamsStyle="boxfill" saveCfg("cfg",Cfg) fillBtn.BackgroundColor3=C.VINO_TINTO_EXTREMO fillBtn.TextColor3=Color3.fromRGB(15,15,15) glowBtn.BackgroundColor3=C.BG_ROW glowBtn.TextColor3=C.TEXT_FADE end) sec(card,"── FOV ──",344) mkRow(card,"Show FOV (ring outline, not filled)",362,"showfov") mkSlider(card,"FOV Radius",410,50,500,Cfg.fovRadius,1,function(v) Cfg.fovRadius=v saveCfg("cfg",Cfg) end) sec(card,"── HITBOX ──",470) mkRow(card,"Hitbox Expander (yellow box = new hitbox)",488,"hitboxexpand") mkSlider(card,"Hitbox Size (studs)",532,2,20,Cfg.hitboxSize,0.5,function(v) Cfg.hitboxSize=v saveCfg("cfg",Cfg) end) sec(card,"── MOVEMENT / AIM ──",592) mkRow(card,"Mouse Unlock (free cursor)",610,"mouseunlock","Frees the cursor even mid-combat / locked camera states") mkSlider(card,"Velocity Multiplier",662,1,5,Cfg.velocityBoost,0.1,function(v) Cfg.velocityBoost=v saveCfg("cfg",Cfg) end) end -- ── Config Page (Build Manager) ─────────────────────────────────────────────── do local builds=loadBuilds() local brows={} local currentAuto=getAutoLoad() local card=Instance.new("Frame") card.Size=UDim2.new(1,-6,1,-6) card.Position=UDim2.new(0,3,0,3) card.BackgroundColor3=C.BG_CARD card.Parent=pCfg Instance.new("UICorner").Parent=card Instance.new("UIStroke",card).Color=C.VINO_TINTO_EXTREMO sec(card,"── BUILD MANAGER ──",6) local nb=Instance.new("TextBox") nb.Size=UDim2.new(1,-208,0,30) nb.Position=UDim2.new(0,12,0,26) nb.BackgroundColor3=C.BG_INPUT nb.BorderSizePixel=0 nb.PlaceholderText="Build name..." nb.Text="" nb.TextColor3=C.TEXT_MAIN nb.PlaceholderColor3=C.TEXT_FADE nb.Font=C.FONT_LABEL nb.TextSize=13 nb.Parent=card Instance.new("UICorner").Parent=nb local svNew=Instance.new("TextButton") svNew.Size=UDim2.new(0,86,0,30) svNew.Position=UDim2.new(1,-196,0,26) svNew.BackgroundColor3=C.VINO_TINTO_EXTREMO svNew.BorderSizePixel=0 svNew.Text="Save" svNew.TextColor3=Color3.fromRGB(15,15,15) svNew.Font=C.FONT_LABEL_BOLD svNew.TextSize=12 svNew.Parent=card Instance.new("UICorner").Parent=svNew local svCur=Instance.new("TextButton") svCur.Size=UDim2.new(0,100,0,30) svCur.Position=UDim2.new(1,-102,0,26) svCur.BackgroundColor3=Color3.fromRGB(15,40,15) svCur.BorderSizePixel=0 svCur.Text="Save current" svCur.TextColor3=C.TEXT_GREEN svCur.Font=C.FONT_LABEL_BOLD svCur.TextSize=12 svCur.Parent=card Instance.new("UICorner").Parent=svCur local desc=Instance.new("TextLabel") desc.Size=UDim2.new(1,-24,0,14) desc.Position=UDim2.new(0,12,0,62) desc.BackgroundTransparency=1 desc.Font=C.FONT_LABEL desc.TextSize=10 desc.TextColor3=C.TEXT_FADE desc.Text="★ Auto-Load on startup | Load | Save = overwrite | X = delete" desc.TextXAlignment=Enum.TextXAlignment.Left desc.Parent=card local dv=Instance.new("Frame") dv.Size=UDim2.new(1,-24,0,1) dv.Position=UDim2.new(0,12,0,80) dv.BackgroundColor3=C.VINO_TINTO_EXTREMO dv.Parent=card local bsc=Instance.new("ScrollingFrame") bsc.Size=UDim2.new(1,-24,1,-90) bsc.Position=UDim2.new(0,12,0,86) bsc.BackgroundTransparency=1 bsc.BorderSizePixel=0 bsc.ScrollBarThickness=3 bsc.ScrollBarImageColor3=C.VINO_TINTO_EXTREMO bsc.CanvasSize=UDim2.new(0,0,0,0) bsc.Parent=card local function refreshBuilds() for _,r in ipairs(brows) do r:Destroy() end brows={} bsc.CanvasSize=UDim2.new(0,0,0,math.max(#builds*50,10)) for i,b in ipairs(builds) do local isAuto=(b.name==currentAuto) local row=Instance.new("Frame") row.Size=UDim2.new(1,-4,0,44) row.Position=UDim2.new(0,2,0,(i-1)*48) row.BackgroundColor3=C.BG_ROW row.BorderSizePixel=0 row.Parent=bsc Instance.new("UICorner").Parent=row table.insert(brows,row) local ac2=Instance.new("Frame") ac2.Size=UDim2.new(0,3,1,0) ac2.BackgroundColor3=C.VINO_TINTO_EXTREMO ac2.BorderSizePixel=0 ac2.Parent=row Instance.new("UICorner").Parent=ac2 local star=Instance.new("TextButton") star.Size=UDim2.new(0,28,0,28) star.Position=UDim2.new(0,8,0.5,-14) star.BackgroundTransparency=1 star.Text=isAuto and "★" or "☆" star.TextColor3=isAuto and Color3.fromRGB(255,210,0) or C.TEXT_FADE star.Font=Enum.Font.GothamBold star.TextSize=16 star.BorderSizePixel=0 star.Parent=row local nl=Instance.new("TextLabel") nl.Size=UDim2.new(1,-210,1,0) nl.Position=UDim2.new(0,40,0,0) nl.BackgroundTransparency=1 nl.Text=b.name or("Build "..i) nl.TextColor3=C.TEXT_MAIN nl.Font=C.FONT_LABEL_BOLD nl.TextSize=13 nl.TextXAlignment=Enum.TextXAlignment.Left nl.Parent=row local lb=Instance.new("TextButton") lb.Size=UDim2.new(0,46,0,28) lb.Position=UDim2.new(1,-202,0.5,-14) lb.BackgroundColor3=C.VINO_TINTO_EXTREMO lb.BorderSizePixel=0 lb.Text="Load" lb.TextColor3=Color3.fromRGB(15,15,15) lb.Font=C.FONT_LABEL_BOLD lb.TextSize=12 lb.Parent=row Instance.new("UICorner").Parent=lb local sb2=Instance.new("TextButton") sb2.Size=UDim2.new(0,46,0,28) sb2.Position=UDim2.new(1,-150,0.5,-14) sb2.BackgroundColor3=Color3.fromRGB(15,40,15) sb2.BorderSizePixel=0 sb2.Text="Save" sb2.TextColor3=C.TEXT_GREEN sb2.Font=C.FONT_LABEL_BOLD sb2.TextSize=12 sb2.Parent=row Instance.new("UICorner").Parent=sb2 local db=Instance.new("TextButton") db.Size=UDim2.new(0,30,0,28) db.Position=UDim2.new(1,-98,0.5,-14) db.BackgroundColor3=Color3.fromRGB(50,8,8) db.BorderSizePixel=0 db.Text="X" db.TextColor3=C.TEXT_MAIN db.Font=C.FONT_LABEL_BOLD db.TextSize=12 db.Parent=row Instance.new("UICorner").Parent=db local idx=i lb.MouseButton1Click:Connect(function() applyBuild(builds[idx]) activeLoadedBuild=builds[idx].name lb.Text="✓" task.delay(1.5,function() lb.Text="Load" end) end) sb2.MouseButton1Click:Connect(function() local s2=snapshot() s2.name=builds[idx].name builds[idx]=s2 saveBuilds(builds) refreshBuilds() sb2.Text="✓" task.delay(1.5,function() sb2.Text="Save" end) end) db.MouseButton1Click:Connect(function() if builds[idx].name==currentAuto then currentAuto=nil setAutoLoad(nil) end table.remove(builds,idx) saveBuilds(builds) refreshBuilds() end) star.MouseButton1Click:Connect(function() if isAuto then currentAuto=nil setAutoLoad(nil) else currentAuto=builds[idx].name setAutoLoad(builds[idx].name) notify("Auto-load: "..builds[idx].name,3) end refreshBuilds() end) end end svNew.MouseButton1Click:Connect(function() local name=nb.Text~="" and nb.Text or("Build "..(#builds+1)) local s2=snapshot() s2.name=name table.insert(builds,s2) saveBuilds(builds) refreshBuilds() nb.Text="" svNew.Text="Saved!" task.delay(1.5,function() svNew.Text="Save" end) end) svCur.MouseButton1Click:Connect(function() if not activeLoadedBuild then notify("Load a build first",2) return end for i,b in ipairs(builds) do if b.name==activeLoadedBuild then local s2=snapshot() s2.name=b.name builds[i]=s2 saveBuilds(builds) refreshBuilds() svCur.Text="✓" task.delay(1.5,function() svCur.Text="Save current" end) return end end end) refreshBuilds() end -- ── Actions Page ───────────────────────────────────────────────────────────── do local card=Instance.new("Frame") card.Size=UDim2.new(1,-6,1,-6) card.Position=UDim2.new(0,3,0,3) card.BackgroundColor3=C.BG_CARD card.Parent=pAct Instance.new("UICorner").Parent=card Instance.new("UIStroke",card).Color=C.VINO_TINTO_EXTREMO sec(card,"── ACTIONS ──",6) mkRow(card,"Toggle Hub",26,"togglehub") -- Discord icon button (blurple) local _dWrap=Instance.new("Frame") _dWrap.Size=UDim2.new(0,44,0,44) _dWrap.Position=UDim2.new(0.5,-22,0,130) _dWrap.BackgroundColor3=Color3.fromRGB(88,101,242) _dWrap.BorderSizePixel=0 _dWrap.Parent=card Instance.new("UICorner").Parent=_dWrap local _dIcon=Instance.new("ImageButton") _dIcon.Size=UDim2.new(0.8,0,0.8,0) _dIcon.Position=UDim2.new(0.1,0,0.1,0) _dIcon.BackgroundTransparency=1 _dIcon.Image=C.DISCORD_IMG_ID _dIcon.Parent=_dWrap _dIcon.MouseButton1Click:Connect(function() if setclipboard then setclipboard("https://discord.gg/AD5NsXxMjn") _dWrap.BackgroundColor3=Color3.fromRGB(60,80,200) task.delay(1.5,function() _dWrap.BackgroundColor3=Color3.fromRGB(88,101,242) end) end end) mkBtn(card,"Unload Hub",184,function() alive=false for _,b in pairs(BOXES) do pcall(function() b:Destroy() end) end BOXES={} for _,h in pairs(CHAMS) do pcall(function() h:Destroy() end) end CHAMS={} for model,data in pairs(HITBOXES) do pcall(function() if data.part and data.part.Parent then data.part.Size=data.origSize end end) end HITBOXES={} clearAllEsp() if fovCircleDraw then pcall(function() fovCircleDraw:Remove() end) end applyPerfTweaks(false) for _,c in ipairs(conns) do pcall(function() c:Disconnect() end) end pcall(function() gui:Destroy() end) end,Color3.fromRGB(35,6,6)) end -- ── Global Input ────────────────────────────────────────────────────────────── table.insert(conns,UIS.InputBegan:Connect(function(i,p) if p then return end if i.UserInputType~=Enum.UserInputType.Keyboard then return end local kc=i.KeyCode if listeningFor then local feat=listeningFor listeningFor=nil Keybinds[feat]=kc==Enum.KeyCode.Escape and nil or kc.Name saveCfg("keybinds",Keybinds) local btn=kbBtnRefs[feat] if btn then btn.BackgroundColor3=Color3.fromRGB(22,22,22) btn.TextColor3=C.TEXT_FADE btn.Text=Keybinds[feat] or"---" end return end if Keybinds.togglehub and kc.Name==Keybinds.togglehub then win.Visible=not win.Visible return end for feat,keyName in pairs(Keybinds) do if keyName and keyName~="None" and keyName~="" and kc.Name==keyName then ON[feat]=not ON[feat] local btn=togBtnRefs[feat] if btn then btn.BackgroundColor3=ON[feat] and C.VINO_TINTO_EXTREMO or C.BG_ROW btn.Text=ON[feat] and"ON" or"OFF" btn.TextColor3=ON[feat] and Color3.fromRGB(15,15,15) or C.TEXT_FADE end end end end)) notify("REDLINERS loaded | L = toggle",4) end) -- Keys.show