-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6aba4ed69f9bdea803a894db"))() end) end) --[[rscripts:analytics:end]] --[[ ZOMBIE FARM HUB v3.1 — ULTIMATE FINAL FIX (Real) FIX: GetRayCast nggak pernah return nil (crash shotgun loop) FIX: target MB = searah crosshair (bukan terdekat) ]] local Players = game:GetService("Players") local LP = Players.LocalPlayer local Workspace = game:GetService("Workspace") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") print("========== [ZOMBIE FARM HUB v3.1] ==========") -- ═══════════════════ CONFIG ═══════════════════ local CFG_FILE = "zombiefarm_cfg.txt" local CFG = { silent = true, fov = 90, dist = 400, aimHead = true, esp = true, aim360 = true, bigDmg = true, dmg = 999999, hs = 99, infAmmo = true, noRecoil = true, magicBullet = true, mbGap = 300, mbRange = 1000, aimAll = true, noSplit = true, expander = true, expandSize = 3, godMode = true, autoFire = false, uavSpeed = true, fpsBoost = true, fly = false, flySpeed = 60, flyBoost = 150, noclip = false, walkSpeed = 60, infJump = true, } local kills = 0 local unloadToken = false local conns = {} local ammoRegistry = {} local boostedSet = {} local expandedParts = {} local shotgunForced = {} local fireHooked = {} local gunSkills = {} local espCache = {} local flyKeys = {} local flying = false local flyConn = nil local noclipConn = nil local uavFolder = nil local scanQueued = true local pelletNum = 0 local modulesReady = false local godHooked = false local origSetAttr, origHurt = nil, nil -- ═══════════════════ SAVE / LOAD ═══════════════════ local function saveCFG() return pcall(function() local parts = {} for k, v in pairs(CFG) do local vs if type(v) == "string" then vs = '"' .. v .. '"' elseif type(v) == "boolean" then vs = tostring(v) else vs = tostring(v) end table.insert(parts, k .. "=" .. vs) end writefile(CFG_FILE, table.concat(parts, "\n")) end) end local function loadCFG() local ok, content = pcall(readfile, CFG_FILE) if not ok or type(content) ~= "string" then return end for line in string.gmatch(content, "[^\n]+") do local k, v = string.match(line, "^(%w+)=(.+)$") if k and v then if v == "true" then CFG[k] = true elseif v == "false" then CFG[k] = false elseif string.sub(v, 1, 1) == '"' then CFG[k] = string.sub(v, 2, -2) else CFG[k] = tonumber(v) or CFG[k] end end end end loadCFG() -- ═══════════════════ HELPERS ═══════════════════ local function track(conn) table.insert(conns, conn) return conn end local function sg(t, k) local ok, v = pcall(function() return t[k] end) if ok then return v end return nil end local function getChar() return LP.Character or (Workspace:FindFirstChild("Characters") and Workspace.Characters:FindFirstChild(LP.Name)) end local function getAimPart() return CFG.aimHead and "Head" or "Torso" end -- ═══════════════════ CORE: FPS BOOSTER ═══════════════════ local function applyFPSBoost() pcall(function() settings().Rendering.QualityLevel = Enum.QualityLevel.Level01 end) pcall(function() Lighting.GlobalShadows = false end) pcall(function() Lighting.FogEnd = 9e9 end) for _, v in ipairs(Lighting:GetChildren()) do if v:IsA("PostEffect") then pcall(function() v.Enabled = false end) end end for _, d in ipairs(Workspace:GetDescendants()) do if d:IsA("ParticleEmitter") or d:IsA("Trail") or d:IsA("Smoke") or d:IsA("Fire") or d:IsA("Sparkles") then pcall(function() d.Enabled = false end) end end end if CFG.fpsBoost then applyFPSBoost() print(">> [CORE] FPS booster: ON") end Workspace.DescendantAdded:Connect(function(d) if not CFG.fpsBoost then return end pcall(function() if d:IsA("ParticleEmitter") or d:IsA("Trail") or d:IsA("Smoke") or d:IsA("Fire") or d:IsA("Sparkles") then d.Enabled = false end end) end) task.spawn(function() while not unloadToken do if CFG.fpsBoost then pcall(function() Lighting.GlobalShadows = false end) end task.wait(3) end end) -- ═══════════════════ CORE: EXPANDER ═══════════════════ local function expandPart(part) if expandedParts[part] then return end if part.CanCollide then return end local ok, orig = pcall(function() return part.Size end) if not ok then return end expandedParts[part] = orig pcall(function() part.Size = orig * CFG.expandSize end) end local function restoreExpander() for part, orig in pairs(expandedParts) do pcall(function() part.Size = orig end) end expandedParts = {} end task.spawn(function() while not unloadToken do if CFG.expander then local entity = Workspace:FindFirstChild("Entity") if entity then for _, z in ipairs(entity:GetChildren()) do for _, p in ipairs(z:GetDescendants()) do if p:IsA("BasePart") then expandPart(p) end end end end for part, orig in pairs(expandedParts) do pcall(function() if part.Parent and part.Size ~= orig * CFG.expandSize then part.Size = orig * CFG.expandSize end end) end end task.wait(2) end end) -- ═══════════════════ CORE: TARGET FINDERS ═══════════════════ -- silent aim: cone-based local function getTargetSA(camPos, camLook) local entity = Workspace:FindFirstChild("Entity") if not entity then return nil end local best, bestScore = nil, math.huge for _, z in ipairs(entity:GetChildren()) do local hum = z:FindFirstChildWhichIsA("Humanoid") local part = z:FindFirstChild(getAimPart()) or z:FindFirstChild("Head") if hum and hum.Health > 0 and part then local toPart = part.Position - camPos local d = toPart.Magnitude if d <= CFG.dist and d > 2 then local score if CFG.aim360 then score = d else local angle = math.deg(math.acos(math.clamp(camLook:Dot(toPart.Unit), -1, 1))) if angle <= CFG.fov then score = angle * 2 + d * 0.05 end end if score and score < bestScore then bestScore = score best = part end end end end return best end -- magic bullet: paling SEARAH crosshair (45°), fallback terdekat local function getTargetMB(camPos, camLook) local entity = Workspace:FindFirstChild("Entity") if not entity then return nil end local target, bestAngle = nil, 45 for _, z in ipairs(entity:GetChildren()) do local hum = z:FindFirstChildWhichIsA("Humanoid") local head = z:FindFirstChild("Head") if hum and hum.Health > 0 and head then local to = head.Position - camPos local d = to.Magnitude if d <= CFG.mbRange and d > 2 then local angle = math.deg(math.acos(math.clamp(camLook:Dot(to.Unit), -1, 1))) if angle < bestAngle then bestAngle = angle target = head end end end end if not target then local bestDist = 300 for _, z in ipairs(entity:GetChildren()) do local hum = z:FindFirstChildWhichIsA("Humanoid") local head = z:FindFirstChild("Head") if hum and hum.Health > 0 and head then local d = (head.Position - camPos).Magnitude if d < bestDist then bestDist = d target = head end end end end return target end -- ═══════════════════ MODULE LOADER (retry) ═══════════════════ local GameMgr, CP, GunFire = nil, nil, nil local origGetRayCast, GunFireAtk = nil, nil local function tryLoadModules() if GunFireAtk then return true end for _, m in ipairs(getloadedmodules()) do local fn = m:GetFullName() if not GameMgr and m.Name == "GameMgr" and string.find(fn, "BaseManager", 1, true) then GameMgr = require(m) origGetRayCast = sg(GameMgr, "GetRayCast") end if not CP and m.Name == "ClientPlayer" and string.find(fn, "Object.ClientPlayer", 1, true) then CP = require(m) end if not GunFire and m.Name == "GunFire" then GunFire = require(m) GunFireAtk = sg(GunFire, "Atk") end end return GunFireAtk ~= nil end task.spawn(function() for i = 1, 60 do if tryLoadModules() then modulesReady = true print(">> [CORE] Modules loaded! (attempt #" .. i .. ")") if GameMgr and origGetRayCast then GameMgr.GetRayCast = function(self, useMouse, spread, ...) local cam = Workspace.CurrentCamera if not cam then return origGetRayCast(self, useMouse, spread, ...) end local camCF = cam.CFrame local entity = Workspace:FindFirstChild("Entity") if not entity then return origGetRayCast(self, useMouse, spread, ...) end local modeMB = CFG.magicBullet local modeSA = CFG.silent and not CFG.magicBullet if not modeMB and not modeSA then return origGetRayCast(self, useMouse, spread, ...) end -- TARGET PILIH local target = nil if CFG.aimAll and spread then -- shotgun pellet: rotasi pelletNum = pelletNum + 1 local list = {} for _, z in ipairs(entity:GetChildren()) do local hum = z:FindFirstChildWhichIsA("Humanoid") local head = z:FindFirstChild("Head") if hum and hum.Health > 0 and head then table.insert(list, {head = head, d = (head.Position - camCF.Position).Magnitude}) end end table.sort(list, function(a, b) return a.d < b.d end) if #list > 0 then local idx = ((pelletNum - 1) % math.min(8, #list)) + 1 target = list[idx].head end elseif modeMB then target = getTargetMB(camCF.Position, camCF.LookVector) else target = getTargetSA(camCF.Position, camCF.LookVector) end if not target then return origGetRayCast(self, useMouse, spread, ...) end pcall(function() cam.CFrame = CFrame.lookAt(camCF.Position, target.Position) end) local result = origGetRayCast(self, useMouse, spread, ...) pcall(function() cam.CFrame = camCF end) -- kena zombie langsung if result and result.Instance then local hm = result.Instance:FindFirstAncestorWhichIsA("Model") if hm and hm.Parent == entity then return result end end -- MAGIC PENETRATION if modeMB then local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Include params.FilterDescendantsInstances = {entity} local dir = (target.Position - camCF.Position).Unit local r2 = Workspace:Raycast(camCF.Position + dir * 0.3, dir * 10000, params) if r2 and r2.Instance then local m2 = r2.Instance:FindFirstAncestorWhichIsA("Model") if m2 and m2.Parent == entity then local vPos = (result and result.Position) or camCF.Position if (r2.Position - vPos).Magnitude <= CFG.mbGap then if result then result.Instance = r2.Instance result.Position = r2.Position result.Normal = r2.Normal result.Distance = r2.Distance return result else return {Position=r2.Position, Normal=r2.Normal, Instance=r2.Instance, Distance=r2.Distance, Material=r2.Material} end end end end end -- SAFE FALLBACKS — nggak pernah return nil ke shotgun loop if result then return result end if spread then return CFrame.lookAt(camCF.Position, target.Position) end return nil end print(">> [CORE] Aim system: OK") end scanQueued = true break end task.wait(1) end if not modulesReady then print(">> [CORE] Modules TIDAK ketemu — rejoin & run lagi") end end) -- ═══════════════════ CORE: GOD MODE ═══════════════════ local function applyGodMode() if godHooked then return end local cPlayer = CP and sg(CP, "cPlayer") or nil if not cPlayer then return end local sa = sg(cPlayer, "SetAttribute") if type(sa) ~= "function" then return end origSetAttr = sa pcall(function() cPlayer.maxHp = 999999 end) cPlayer.SetAttribute = function(self, key, value) if CFG.godMode then if key == "hp" then value = sg(self, "maxHp") or 999999 elseif key == "maxHp" then value = 999999 end end return origSetAttr(self, key, value) end local hu = sg(cPlayer, "Hurt") if type(hu) == "function" then origHurt = hu cPlayer.Hurt = function(self, ...) if CFG.godMode then return end return origHurt(self, ...) end end local netMsg = Workspace:FindFirstChild("Characters") and Workspace.Characters:FindFirstChild(LP.Name) and Workspace.Characters[LP.Name]:FindFirstChild("NetMessage") if netMsg then local setAttr = netMsg:FindFirstChild("SetAttribute") if setAttr then pcall(function() local cconns = getconnections(setAttr.OnClientEvent) for _, conn in ipairs(cconns) do local fn = conn.Function if type(fn) == "function" then conn:Disable() setAttr.OnClientEvent:Connect(function(...) local args = {...} local n = select("#", ...) if args[1] == "hp" then return end return fn(unpack(args, 1, n)) end) end end end) end end godHooked = true print(">> [CORE] God mode: OK") end task.spawn(function() for i = 1, 30 do applyGodMode() if godHooked then break end task.wait(1) end end) task.spawn(function() while not unloadToken do if CFG.godMode and CP then local cPlayer = sg(CP, "cPlayer") if cPlayer then pcall(function() if sg(cPlayer, "maxHp") ~= 999999 then cPlayer.maxHp = 999999 end if sg(cPlayer, "hp") and sg(cPlayer, "hp") < 999999 then cPlayer.hp = 999999 end end) end local char = getChar() if char then local hum = char:FindFirstChildWhichIsA("Humanoid") if hum and hum.Health < hum.MaxHealth then pcall(function() hum.Health = hum.MaxHealth end) end end end task.wait(0.5) end end) -- ═══════════════════ CORE: WEAPON SCAN ═══════════════════ local function hookWeapon(v) local detail = sg(v, "detail") local orig = sg(v, "RemoveBullet") if type(orig) ~= "function" or type(detail) ~= "table" then return end if ammoRegistry[v] then return end ammoRegistry[v] = orig v.RemoveBullet = function(self, n) if CFG.infAmmo then pcall(function() self.detail.ammo = 99999 end) return true end return orig(self, n) end end local function boostWeapon(v) local data = sg(v, "data") local detail = sg(v, "detail") if CFG.bigDmg then pcall(function() data.atk = CFG.dmg data.headshotMultiplier = CFG.hs v.level = 60 detail.rate = 10 if CFG.infAmmo then detail.ammo = 99999 end end) end if CFG.noRecoil then pcall(function() data.recoilVal = 0 end) pcall(function() data.vmRecoil = Vector3.zero end) pcall(function() data.recoilReduce = 0 end) local recoil = sg(data, "recoil") if type(recoil) == "table" then for _, key in ipairs({"AngleX_Min","AngleX_Max","AngleY_Min","AngleY_Max","AngleZ_Min","AngleZ_Max"}) do pcall(function() recoil[key] = 0 end) end end pcall(function() v.BSpread = 0 end) end if CFG.aimAll then if not rawget(v, "__origWT") then rawset(v, "__origWT", sg(data, "weaponType")) end pcall(function() data.weaponType = "Shotgun" end) shotgunForced[v] = true end end local function restoreShotgun() for v, _ in pairs(shotgunForced) do local orig = rawget(v, "__origWT") local data = sg(v, "data") if orig and type(data) == "table" then pcall(function() data.weaponType = orig end) end end shotgunForced = {} end local function hookFire(s) if rawget(s, "__fireHooked") then return end local origFire = sg(s, "Fire") if type(origFire) ~= "function" then return end rawset(s, "__fireHooked", true) fireHooked[s] = origFire s.Fire = function(self, event, a, b, ratio, ...) if CFG.noSplit and event == "Atk" and type(ratio) == "number" then ratio = 1 end return origFire(self, event, a, b, ratio, ...) end end local function restoreFire() for s, orig in pairs(fireHooked) do pcall(function() s.Fire = orig end) end fireHooked = {} end local function scanOnce() for _, v in pairs(getgc(true)) do if type(v) == "table" then if not boostedSet[v] then local ok, isWeapon = pcall(function() local data = sg(v, "data") local detail = sg(v, "detail") return type(data) == "table" and type(detail) == "table" and type(sg(detail, "bullet")) == "number" and type(sg(data, "atk")) == "number" end) if ok and isWeapon then boostedSet[v] = true pcall(hookWeapon, v) pcall(boostWeapon, v) end end if GunFireAtk and sg(v, "Atk") == GunFireAtk then gunSkills[v] = true if CFG.noSplit then pcall(hookFire, v) end end end end end task.spawn(function() while not unloadToken do if scanQueued then scanQueued = false pcall(scanOnce) end task.wait(8) scanQueued = true end end) -- ═══════════════════ CORE: AUTO-FIRE ═══════════════════ local function setAutoFire(on) CFG.autoFire = on if on then local found = false for s in pairs(gunSkills) do pcall(function() rawset(s, "isEnter", true) s:OnEnter() end) found = true end print("[AUTO-FIRE] " .. (found and "ON" or "ON (tunggu skill...)")) else for s in pairs(gunSkills) do pcall(function() rawset(s, "isEnter", false) end) end print("[AUTO-FIRE] OFF") end end task.spawn(function() while not unloadToken do if CFG.autoFire and modulesReady then for s in pairs(gunSkills) do pcall(function() rawset(s, "isEnter", true) s:OnEnter() end) end end task.wait(0.4) end end) -- ═══════════════════ CORE: FLY ═══════════════════ local function startFly() local char = getChar() local hrp = char and char:FindFirstChild("HumanoidRootPart") if not hrp then print("[FLY] HRP tidak ketemu") CFG.fly = false return end flying = true for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then pcall(function() p.CanCollide = false end) end end local bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(9e9, 9e9, 9e9) bv.Velocity = Vector3.zero bv.Name = "__fly" bv.Parent = hrp flyConn = RunService.Heartbeat:Connect(function() if not flying then return end local cam = Workspace.CurrentCamera if not cam then return end local move = Vector3.zero if flyKeys[Enum.KeyCode.W] then move = move + cam.CFrame.LookVector end if flyKeys[Enum.KeyCode.S] then move = move - cam.CFrame.LookVector end if flyKeys[Enum.KeyCode.D] then move = move + cam.CFrame.RightVector end if flyKeys[Enum.KeyCode.A] then move = move - cam.CFrame.RightVector end if flyKeys[Enum.KeyCode.Space] then move = move + Vector3.new(0, 1, 0) end if flyKeys[Enum.KeyCode.LeftControl] or flyKeys[Enum.KeyCode.C] then move = move - Vector3.new(0, 1, 0) end local speed = UIS:IsKeyDown(Enum.KeyCode.LeftShift) and CFG.flyBoost or CFG.flySpeed bv.Velocity = move.Magnitude > 0 and move.Unit * speed or Vector3.zero end) end local function stopFly() flying = false if flyConn then flyConn:Disconnect() flyConn = nil end local char = getChar() if char then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then local bv = hrp:FindFirstChild("__fly") if bv then bv:Destroy() end if not CFG.noclip then pcall(function() hrp.CanCollide = true end) end end end end -- ═══════════════════ CORE: NOCLIP ═══════════════════ local function setNoclipParts(on) local char = getChar() if not char then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then pcall(function() p.CanCollide = not on end) end end end local function startNoclip() if noclipConn then return end noclipConn = RunService.Stepped:Connect(function() if CFG.noclip then setNoclipParts(true) end end) track(noclipConn) end local function stopNoclip() if noclipConn then pcall(function() noclipConn:Disconnect() end) noclipConn = nil end setNoclipParts(false) local char = getChar() if char and not CFG.fly then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then pcall(function() hrp.CanCollide = true end) end end end local function setNoclipState(on) CFG.noclip = on if on then startNoclip() else stopNoclip() end print("[NOCLIP] " .. (on and "ON" or "OFF")) end -- ═══════════════════ CORE: ESP ═══════════════════ local function addESP(z) if espCache[z] then return end if not z:FindFirstChild("HumanoidRootPart") and not z:FindFirstChild("Head") then return end local hl = Instance.new("Highlight") hl.FillTransparency = 0.75 hl.OutlineTransparency = 0 hl.FillColor = Color3.fromRGB(255, 60, 60) hl.OutlineColor = Color3.fromRGB(255, 0, 0) hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.Parent = z espCache[z] = hl end local function removeESP(z) if espCache[z] then pcall(function() espCache[z]:Destroy() end) espCache[z] = nil end end task.spawn(function() while not unloadToken do local entity = Workspace:FindFirstChild("Entity") if entity then for _, z in ipairs(entity:GetChildren()) do if CFG.esp then addESP(z) else removeESP(z) end end end for z, _ in pairs(espCache) do if not z.Parent then removeESP(z) end end task.wait(2) end end) -- ═══════════════════ CORE: WALK SPEED ═══════════════════ task.spawn(function() while not unloadToken do local char = getChar() if char then local hum = char:FindFirstChildWhichIsA("Humanoid") if hum then pcall(function() hum.WalkSpeed = CFG.walkSpeed end) end end task.wait(0.5) end end) -- ═══════════════════ CORE: UAV SPEED ═══════════════════ task.spawn(function() uavFolder = Workspace:WaitForChild("UAV", 15) local uavPatched = {} while not unloadToken do if CFG.uavSpeed and uavFolder then for _, v in pairs(getgc(true)) do if type(v) == "table" and not uavPatched[v] then local obj = sg(v, "obj") local speed = sg(v, "speed") if typeof(obj) == "Instance" and obj:IsA("Model") and type(speed) == "number" then local cur = obj.Parent local inUAV = false while cur do if cur == uavFolder then inUAV = true break end cur = cur.Parent end if inUAV then uavPatched[v] = true pcall(function() v.speed = 500 end) local cfg = sg(v, "config") if type(cfg) == "table" then pcall(function() cfg.range = 50 end) end end end end end end task.wait(2) end end) print(">> [CORE] UAV speed: OK") -- ═══════════════════ AXENIELD HUB GUI ═══════════════════ local guiParent = (gethui and pcall(gethui) and gethui()) or game:GetService("CoreGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "AxenieldHub" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = guiParent local COLORS = { bg = Color3.fromRGB(13, 15, 20), panel = Color3.fromRGB(20, 23, 30), panel2 = Color3.fromRGB(26, 30, 39), btn = Color3.fromRGB(31, 36, 46), active = Color3.fromRGB(0, 190, 125), accent = Color3.fromRGB(0, 255, 165), text = Color3.fromRGB(235, 238, 242), dim = Color3.fromRGB(145, 153, 165), danger = Color3.fromRGB(205, 70, 75), line = Color3.fromRGB(42, 48, 60), } local main = Instance.new("Frame") main.Name = "Main" main.AnchorPoint = Vector2.new(0.5, 0.5) main.Position = UDim2.fromScale(0.5, 0.5) main.Size = UDim2.new(0, 620, 0, 455) main.BackgroundColor3 = COLORS.bg main.BorderSizePixel = 0 main.Active = true main.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 14) mainCorner.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Color = COLORS.line mainStroke.Thickness = 1 mainStroke.Transparency = 0.15 mainStroke.Parent = main local scale = Instance.new("UIScale") scale.Parent = main local function updateScale() local cam = Workspace.CurrentCamera if not cam then return end local vp = cam.ViewportSize local factor = math.min((vp.X - 18) / 620, (vp.Y - 18) / 455, 1) scale.Scale = math.clamp(factor, 0.55, 1) end updateScale() if Workspace.CurrentCamera then track(Workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(updateScale)) end -- custom drag: mouse + touch local dragging, dragStart, startPos local function beginDrag(input) if input.UserInputType ~= Enum.UserInputType.MouseButton1 and input.UserInputType ~= Enum.UserInputType.Touch then return end dragging = true dragStart = input.Position startPos = main.Position end local function updateDrag(input) if not dragging then return end if input.UserInputType ~= Enum.UserInputType.MouseMovement and input.UserInputType ~= Enum.UserInputType.Touch then return end local delta = input.Position - dragStart main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end local function endDrag(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 48) titleBar.BackgroundColor3 = COLORS.panel titleBar.BorderSizePixel = 0 titleBar.Active = true titleBar.Parent = main local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 14) titleCorner.Parent = titleBar titleBar.InputBegan:Connect(beginDrag) titleBar.InputChanged:Connect(updateDrag) track(UIS.InputChanged:Connect(updateDrag)) track(UIS.InputEnded:Connect(endDrag)) local title = Instance.new("TextLabel") title.BackgroundTransparency = 1 title.Position = UDim2.new(0, 16, 0, 4) title.Size = UDim2.new(1, -155, 0, 24) title.Text = "AXENIELD HUB" title.TextColor3 = COLORS.accent title.Font = Enum.Font.GothamBold title.TextSize = 17 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = titleBar local sub = Instance.new("TextLabel") sub.BackgroundTransparency = 1 sub.Position = UDim2.new(0, 17, 0, 27) sub.Size = UDim2.new(1, -155, 0, 16) sub.Text = "ZOMBIE FARM • UNIVERSAL GUI" sub.TextColor3 = COLORS.dim sub.Font = Enum.Font.Gotham sub.TextSize = 9 sub.TextXAlignment = Enum.TextXAlignment.Left sub.Parent = titleBar local minBtn = Instance.new("TextButton") minBtn.Size = UDim2.new(0, 30, 0, 28) minBtn.Position = UDim2.new(1, -76, 0, 10) minBtn.BackgroundColor3 = COLORS.btn minBtn.Text = "—" minBtn.TextColor3 = COLORS.text minBtn.Font = Enum.Font.GothamBold minBtn.TextSize = 14 minBtn.BorderSizePixel = 0 minBtn.Parent = titleBar local minCorner = Instance.new("UICorner") minCorner.CornerRadius = UDim.new(0, 7) minCorner.Parent = minBtn local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 28) closeBtn.Position = UDim2.new(1, -40, 0, 10) closeBtn.BackgroundColor3 = COLORS.danger closeBtn.Text = "×" closeBtn.TextColor3 = Color3.new(1,1,1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.BorderSizePixel = 0 closeBtn.Parent = titleBar local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 7) closeCorner.Parent = closeBtn local sidebar = Instance.new("Frame") sidebar.Size = UDim2.new(0, 145, 1, -60) sidebar.Position = UDim2.new(0, 8, 0, 54) sidebar.BackgroundColor3 = COLORS.panel sidebar.BorderSizePixel = 0 sidebar.Parent = main local sideCorner = Instance.new("UICorner") sideCorner.CornerRadius = UDim.new(0, 10) sideCorner.Parent = sidebar local content = Instance.new("Frame") content.Size = UDim2.new(1, -161, 1, -60) content.Position = UDim2.new(0, 153, 0, 54) content.BackgroundTransparency = 1 content.Parent = main local pages = {} local navBtns = {} local function mkNav(name, label, order) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -12, 0, 38) b.Position = UDim2.new(0, 6, 0, 8 + (order - 1) * 44) b.BackgroundColor3 = COLORS.btn b.Text = label b.TextColor3 = COLORS.text b.Font = Enum.Font.GothamSemibold b.TextSize = 12 b.BorderSizePixel = 0 b.AutoButtonColor = false b.Parent = sidebar local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = b navBtns[name] = b return b end local function newPage(name) local f = Instance.new("ScrollingFrame") f.Name = name f.Size = UDim2.fromScale(1, 1) f.BackgroundTransparency = 1 f.BorderSizePixel = 0 f.ScrollBarThickness = 3 f.ScrollBarImageColor3 = COLORS.accent f.CanvasSize = UDim2.new(0,0,0,0) f.AutomaticCanvasSize = Enum.AutomaticSize.Y f.ScrollingDirection = Enum.ScrollingDirection.Y f.Visible = false f.Parent = content local pad = Instance.new("UIPadding") pad.PaddingLeft = UDim.new(0, 8) pad.PaddingRight = UDim.new(0, 8) pad.PaddingTop = UDim.new(0, 4) pad.PaddingBottom = UDim.new(0, 8) pad.Parent = f pages[name] = f return f end local function showPage(name) for n, f in pairs(pages) do f.Visible = n == name end for n, b in pairs(navBtns) do b.BackgroundColor3 = n == name and COLORS.active or COLORS.btn end end local function mkToggle(parent, labelText, order, default, cb) local row = Instance.new("Frame") row.Size = UDim2.new(1, -4, 0, 42) row.BackgroundColor3 = COLORS.panel row.BorderSizePixel = 0 row.LayoutOrder = order row.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = row local lbl = Instance.new("TextLabel") lbl.BackgroundTransparency = 1 lbl.Position = UDim2.new(0, 12, 0, 0) lbl.Size = UDim2.new(1, -82, 1, 0) lbl.Text = labelText lbl.TextColor3 = COLORS.text lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = row local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 58, 0, 27) btn.Position = UDim2.new(1, -68, 0.5, -13.5) btn.BackgroundColor3 = default and COLORS.active or COLORS.btn btn.Text = default and "ON" or "OFF" btn.TextColor3 = Color3.new(1,1,1) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.BorderSizePixel = 0 btn.Parent = row local bc = Instance.new("UICorner") bc.CornerRadius = UDim.new(0, 14) bc.Parent = btn btn.Activated:Connect(function() default = not default btn.BackgroundColor3 = default and COLORS.active or COLORS.btn btn.Text = default and "ON" or "OFF" cb(default) saveCFG() end) end local function mkSlider(parent, labelText, order, min, max, default, cb) local row = Instance.new("Frame") row.Size = UDim2.new(1, -4, 0, 58) row.BackgroundColor3 = COLORS.panel row.BorderSizePixel = 0 row.LayoutOrder = order row.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 8) c.Parent = row local lbl = Instance.new("TextLabel") lbl.BackgroundTransparency = 1 lbl.Position = UDim2.new(0, 12, 0, 5) lbl.Size = UDim2.new(1, -24, 0, 18) lbl.Text = labelText .. ": " .. tostring(default) lbl.TextColor3 = COLORS.text lbl.Font = Enum.Font.Gotham lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = row local bar = Instance.new("Frame") bar.Size = UDim2.new(1, -24, 0, 7) bar.Position = UDim2.new(0, 12, 0, 37) bar.BackgroundColor3 = COLORS.btn bar.BorderSizePixel = 0 bar.Active = true bar.Parent = row local bc = Instance.new("UICorner") bc.CornerRadius = UDim.new(0, 4) bc.Parent = bar local knob = Instance.new("TextButton") knob.Size = UDim2.new(0, 18, 0, 18) knob.AnchorPoint = Vector2.new(0.5, 0.5) knob.BackgroundColor3 = COLORS.accent knob.Text = "" knob.BorderSizePixel = 0 knob.Parent = bar local kc = Instance.new("UICorner") kc.CornerRadius = UDim.new(1,0) kc.Parent = knob local value = default local draggingSlider = false local function setFromX(x) local rel = math.clamp((x - bar.AbsolutePosition.X) / math.max(bar.AbsoluteSize.X, 1), 0, 1) value = math.floor(min + rel * (max - min) + 0.5) knob.Position = UDim2.new(rel, 0, 0.5, 0) lbl.Text = labelText .. ": " .. tostring(value) cb(value) end knob.Position = UDim2.new(math.clamp((default-min)/(max-min),0,1), 0, 0.5, 0) local function inputDown(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = true setFromX(input.Position.X) end end bar.InputBegan:Connect(inputDown) knob.InputBegan:Connect(inputDown) track(UIS.InputChanged:Connect(function(input) if draggingSlider and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then setFromX(input.Position.X) end end)) track(UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = false saveCFG() end end)) end local function mkButton(parent, text, order, cb, danger) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -4, 0, 40) b.BackgroundColor3 = danger and COLORS.danger or COLORS.btn b.Text = text b.TextColor3 = Color3.new(1,1,1) b.Font = Enum.Font.GothamBold b.TextSize = 12 b.BorderSizePixel = 0 b.LayoutOrder = order b.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0,8) c.Parent = b b.Activated:Connect(cb) return b end local function preparePage(page) local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 7) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = page end -- PAGES: same controls/config, new GUI only local pCombat = newPage("combat") preparePage(pCombat) mkToggle(pCombat, "Silent Aim (K)", 1, CFG.silent, function(v) CFG.silent = v end) mkSlider(pCombat, "FOV", 2, 5, 180, CFG.fov, function(v) CFG.fov = v end) mkSlider(pCombat, "Max Distance", 3, 50, 800, CFG.dist, function(v) CFG.dist = v end) mkToggle(pCombat, "Aim Head (OFF = Torso)", 4, CFG.aimHead, function(v) CFG.aimHead = v end) mkToggle(pCombat, "ESP Zombie (P)", 5, CFG.esp, function(v) CFG.esp = v end) mkToggle(pCombat, "360° Aim", 6, CFG.aim360, function(v) CFG.aim360 = v end) local pDmg = newPage("dmg") preparePage(pDmg) mkToggle(pDmg, "Big Damage", 1, CFG.bigDmg, function(v) CFG.bigDmg = v end) mkSlider(pDmg, "Damage", 2, 100, 999999, CFG.dmg, function(v) CFG.dmg = v end) mkSlider(pDmg, "Headshot x", 3, 2, 99, CFG.hs, function(v) CFG.hs = v end) mkToggle(pDmg, "Unlimited Ammo", 4, CFG.infAmmo, function(v) CFG.infAmmo = v end) mkToggle(pDmg, "No Recoil / Spread", 5, CFG.noRecoil, function(v) CFG.noRecoil = v end) local pBrutal = newPage("brutal") preparePage(pBrutal) mkToggle(pBrutal, "Magic Bullet", 1, CFG.magicBullet, function(v) CFG.magicBullet = v end) mkSlider(pBrutal, "MB Gap", 2, 50, 2000, CFG.mbGap, function(v) CFG.mbGap = v end) mkSlider(pBrutal, "MB Range", 3, 250, 3000, CFG.mbRange, function(v) CFG.mbRange = v end) mkToggle(pBrutal, "AIM ALL (8 zombie / shot)", 4, CFG.aimAll, function(v) CFG.aimAll = v if not v then restoreShotgun() end end) mkToggle(pBrutal, "No Split DMG", 5, CFG.noSplit, function(v) CFG.noSplit = v end) mkToggle(pBrutal, "Hitbox Expander", 6, CFG.expander, function(v) CFG.expander = v if not v then restoreExpander() end end) mkSlider(pBrutal, "Expand Size", 7, 2, 10, CFG.expandSize, function(v) CFG.expandSize = v end) mkToggle(pBrutal, "God Mode (G)", 8, CFG.godMode, function(v) CFG.godMode = v end) local pFarm = newPage("farm") preparePage(pFarm) mkToggle(pFarm, "Auto-Fire (9)", 1, CFG.autoFire, function(v) setAutoFire(v) end) mkToggle(pFarm, "UAV Speed", 2, CFG.uavSpeed, function(v) CFG.uavSpeed = v end) mkToggle(pFarm, "FPS Booster", 3, CFG.fpsBoost, function(v) CFG.fpsBoost = v if v then applyFPSBoost() end end) local killLbl = Instance.new("TextLabel") killLbl.Size = UDim2.new(1,-4,0,34) killLbl.BackgroundColor3 = COLORS.panel killLbl.Text = "KILLS • 0" killLbl.TextColor3 = COLORS.accent killLbl.Font = Enum.Font.GothamBold killLbl.TextSize = 14 killLbl.LayoutOrder = 4 killLbl.Parent = pFarm local kc = Instance.new("UICorner") kc.CornerRadius = UDim.new(0,8) kc.Parent = killLbl local pMove = newPage("move") preparePage(pMove) mkToggle(pMove, "Fly (F)", 1, CFG.fly, function(v) CFG.fly = v if v then startFly() else stopFly() end end) mkSlider(pMove, "Fly Speed", 2, 20, 200, CFG.flySpeed, function(v) CFG.flySpeed = v end) mkSlider(pMove, "Boost (Shift)", 3, 50, 500, CFG.flyBoost, function(v) CFG.flyBoost = v end) mkToggle(pMove, "Noclip (N)", 4, CFG.noclip, function(v) setNoclipState(v) end) mkSlider(pMove, "Walk Speed", 5, 16, 200, CFG.walkSpeed, function(v) CFG.walkSpeed = v end) mkToggle(pMove, "Infinite Jump", 6, CFG.infJump, function(v) CFG.infJump = v end) local pMisc = newPage("misc") preparePage(pMisc) local saveBtn = mkButton(pMisc, "SAVE CONFIG", 1, function() local ok = saveCFG() saveBtn.Text = ok and "SAVED ✓" or "FAILED ✕" task.delay(1.2, function() if saveBtn.Parent then saveBtn.Text = "SAVE CONFIG" end end) end) local unloadBtn = mkButton(pMisc, "UNLOAD AXENIELD HUB", 2, function() unload() end, true) local info = Instance.new("TextLabel") info.Size = UDim2.new(1,-4,0,120) info.BackgroundColor3 = COLORS.panel info.Text = "HOTKEYS\nK Silent Aim • 9 Auto-Fire • P ESP\nF Fly • N Noclip • G God Mode\n+ / - Walk Speed • RightShift Hide / Show\n\nAXENIELD HUB • PC + MOBILE" info.TextColor3 = COLORS.dim info.Font = Enum.Font.Gotham info.TextSize = 11 info.TextXAlignment = Enum.TextXAlignment.Left info.TextYAlignment = Enum.TextYAlignment.Top info.LayoutOrder = 3 info.Parent = pMisc local ip = Instance.new("UIPadding") ip.PaddingLeft=UDim.new(0,12) ip.PaddingTop=UDim.new(0,10) ip.Parent=info local bCombat = mkNav("combat", "COMBAT", 1) local bDmg = mkNav("dmg", "DAMAGE", 2) local bBrutal = mkNav("brutal", "BRUTAL", 3) local bFarm = mkNav("farm", "FARM", 4) local bMove = mkNav("move", "MOVE", 5) local bMisc = mkNav("misc", "MISC", 6) for name, b in pairs(navBtns) do b.Activated:Connect(function() showPage(name) end) end showPage("combat") local bodyHidden = false local function setBodyHidden(hide) bodyHidden = hide sidebar.Visible = not hide content.Visible = not hide main.Size = hide and UDim2.new(0, 620, 0, 48) or UDim2.new(0, 620, 0, 455) if not hide then updateScale() end end minBtn.Activated:Connect(function() setBodyHidden(not bodyHidden) end) -- floating AX button for mobile / hidden GUI local reopen = Instance.new("TextButton") reopen.Name = "Reopen" reopen.Size = UDim2.new(0, 52, 0, 52) reopen.Position = UDim2.new(1, -70, 0.5, -26) reopen.BackgroundColor3 = COLORS.panel2 reopen.Text = "AX" reopen.TextColor3 = COLORS.accent reopen.Font = Enum.Font.GothamBlack reopen.TextSize = 16 reopen.BorderSizePixel = 0 reopen.Visible = false reopen.Active = true reopen.Parent = screenGui local rc = Instance.new("UICorner") rc.CornerRadius = UDim.new(1,0) rc.Parent = reopen local rs = Instance.new("UIStroke") rs.Color = COLORS.accent rs.Thickness = 1.5 rs.Parent = reopen reopen.Activated:Connect(function() main.Visible = true bodyHidden = false setBodyHidden(false) reopen.Visible = false end) closeBtn.Activated:Connect(function() main.Visible = false reopen.Visible = true end) -- Replace old RightShift behavior with hide/show while keeping same hotkey. local oldHotkey = nil track(UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.RightShift then if main.Visible then main.Visible = false reopen.Visible = true else main.Visible = true reopen.Visible = false end end end)) -- make sure the GUI remains inside the screen after viewport changes track(UIS.TouchTap:Connect(function() updateScale() end)) -- ═══════════════════ UNLOAD ═══════════════════ function unload() unloadToken = true setAutoFire(false) stopFly() stopNoclip() for z, _ in pairs(espCache) do removeESP(z) end restoreExpander() restoreShotgun() restoreFire() if godHooked and CP then local cPlayer = sg(CP, "cPlayer") if cPlayer then if origSetAttr then pcall(function() cPlayer.SetAttribute = origSetAttr end) end if origHurt then pcall(function() cPlayer.Hurt = origHurt end) end end end if GameMgr and origGetRayCast then pcall(function() GameMgr.GetRayCast = origGetRayCast end) end for t, orig in pairs(ammoRegistry) do pcall(function() t.RemoveBullet = orig end) end for _, c in ipairs(conns) do pcall(function() c:Disconnect() end) end screenGui:Destroy() print("========== [UNLOADED] ==========") end -- ═══════════════════ HOTKEYS ═══════════════════ track(UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.K then CFG.silent = not CFG.silent print("[SILENT] " .. (CFG.silent and "ON" or "OFF")) saveCFG() elseif input.KeyCode == Enum.KeyCode.Nine then setAutoFire(not CFG.autoFire) saveCFG() elseif input.KeyCode == Enum.KeyCode.F then CFG.fly = not CFG.fly if CFG.fly then startFly() else stopFly() end print("[FLY] " .. (CFG.fly and "ON" or "OFF")) saveCFG() elseif input.KeyCode == Enum.KeyCode.N then setNoclipState(not CFG.noclip) saveCFG() elseif input.KeyCode == Enum.KeyCode.P then CFG.esp = not CFG.esp print("[ESP] " .. (CFG.esp and "ON" or "OFF")) saveCFG() elseif input.KeyCode == Enum.KeyCode.G then CFG.godMode = not CFG.godMode print("[GOD] " .. (CFG.godMode and "ON" or "OFF")) saveCFG() elseif input.KeyCode == Enum.KeyCode.Equals then CFG.walkSpeed = math.min(200, CFG.walkSpeed + 10) print("[WALK] " .. CFG.walkSpeed) saveCFG() elseif input.KeyCode == Enum.KeyCode.Minus then CFG.walkSpeed = math.max(16, CFG.walkSpeed - 10) print("[WALK] " .. CFG.walkSpeed) saveCFG() end flyKeys[input.KeyCode] = true end)) track(UIS.InputEnded:Connect(function(input) flyKeys[input.KeyCode] = nil end)) track(UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if CFG.infJump and input.KeyCode == Enum.KeyCode.Space then local char = getChar() local hum = char and char:FindFirstChildWhichIsA("Humanoid") if hum then pcall(function() hum:ChangeState(Enum.HumanoidStateType.Jumping) end) end end end)) -- ═══════════════════ KILL TRACKER ═══════════════════ local entity = Workspace:FindFirstChild("Entity") local hookedZ = {} local function hookZombie(z) if hookedZ[z] then return end hookedZ[z] = true local hum = z:FindFirstChildWhichIsA("Humanoid") if not hum then return end hum.Died:Connect(function() kills = kills + 1 killLbl.Text = "KILLS • " .. kills print("[KILL #" .. kills .. "] " .. z.Name) end) end if entity then for _, z in ipairs(entity:GetChildren()) do hookZombie(z) end entity.ChildAdded:Connect(function(z) task.wait(0.5) hookZombie(z) end) end local char0 = getChar() if char0 then char0.ChildAdded:Connect(function() scanQueued = true end) end LP.CharacterAdded:Connect(function(char) if flying then stopFly() end if CFG.noclip then setNoclipState(false) end scanQueued = true char.ChildAdded:Connect(function() scanQueued = true end) end) scanQueued = true if CFG.fly then task.delay(1, function() if not flying then startFly() end end) end print("========== [READY] ==========") print("v3.1: nembus jarak jauh (bidik tembok, target searah), no crash shotgun, GOD MODE")