get paid to paste

PHANTOM FORCES / APOCALYPSE RISING 2 Script...

---@diagnostic disable: undefined-global
 
math.randomseed(tick())
 
local library = loadstring(syn.request({
    Method = "GET",
    Url = "https://wednesday.wtf/ars/library.lua"
}).Body)()
 
local cheat = {
    aimbot = {
        info = {},
    },
    visuals = {
        info = {},
        tracers = {},
        zombies = {},
        events = {},
        chams = {}
    },
    guns = {
        restore = {},
        data = {},
    },
    objects = {},
}
 
if (getgenv().cheat) then
    for _, object in next, getgenv().cheat.objects do
        object:Remove()
 
        object = nil
    end
 
    getgenv().cheat = nil
end
 
local old_library = library
 
getgenv().library = library
getgenv().cheat = cheat
 
cheat.draw = function(class, properties)
    local object = Drawing.new(class)
 
    for property, value in pairs(properties) do
        object[property] = value
    end
 
    cheat.objects[#cheat.objects + 1] = object
 
    return object
end
 
cheat.lerp = function(a,b,c)
    return a + (b-a) * c
end
 
cheat.bezier = function(p0,p1,p2,p3,t)
    local l1 = cheat.lerp(p0, p1, t)
    local l2 = cheat.lerp(p1, p2, t)
    local l3 = cheat.lerp(p2, p3, t)
 
    local a = cheat.lerp(l1, l2, t)
    local b = cheat.lerp(l2, l3, t)
 
    local cubic = cheat.lerp(a, b, t)
 
    return cubic
end
 
local physics = {}
 
-- Local variable bypass..?
(function()
	local sort			=table.sort
	local atan2			=math.atan2
	local inf			=math.huge
	local cos			=math.cos
	local sin			=math.sin
	local setmetatable	=setmetatable
	local tick			=tick
	local dot			=Vector3.new().Dot
 
	local function rootreals4(a,b,c,d,e)
		local x0,x1,x2,x3
		local m10=3*a
		local m0=-b/(4*a)
		local m4=c*c-3*b*d+12*a*e
		local m6=(b*b/(4*a)-2/3*c)/a
		local m9=((b*(4*c-b*b/a))/a-(8*d))/a
		local m5=c*(2*c*c-9*b*d-72*a*e)+27*a*d*d+27*b*b*e
		local m11=m5*m5-4*m4*m4*m4
		local m7
		if m11<0 then--Optimize
			local th=atan2((-m11)^0.5,m5)/3
			local m=((m5*m5-m11)/4)^(1/6)
			m7=(m4/m+m)/m10*cos(th)
		else--MAY NEED CASE FOR WHEN 2*c*c*c-9*b*c*d+27*a*d*d+27*b*b*e-72*a*c*e+((2*c*c*c-9*b*c*d+27*a*d*d+27*b*b*e-72*a*c*e)^2-4*(c*c-3*b*d+12*a*e)^3)^(1/2)=0
			local m8=(m5+m11^0.5)/2
			m8=m8<0 and -(-m8)^(1/3) or m8^(1/3)
			m7=(m4/m8+m8)/m10
		end
		local m2=2*m6-m7
		--print("m2",m2,0)
		local m12=m6+m7
		if m12<0 then
			local m3i=m9/(4*(-m12)^0.5)
			local m13=(m3i*m3i+m2*m2)^(1/4)*cos(atan2(m3i,m2)/2)/2
			--In order
			x0=m0-m13
			x1=m0-m13
			x2=m0+m13
			x3=m0+m13
		else
			local m1=m12^0.5
			--print("m1",m1,0)
			local m3=m9/(4*m1)
			--print("m3",m3,0)
			local m14=m2-m3
			local m15=m2+m3
			if m14<0 then
				x0=m0-m1/2
				x1=m0-m1/2
			else
				local m16=m14^0.5
				x0=m0-(m1+m16)/2
				x1=m0-(m1-m16)/2
			end
			if m15<0 then
				x2=m0+m1/2
				x3=m0+m1/2
			else
				local m17=m15^0.5
				x2=m0+(m1-m17)/2
				x3=m0+(m1+m17)/2
			end
			--bubble sort lel
			if x1<x0 then x0,x1=x1,x0 end
			if x2<x1 then x1,x2=x2,x1 end
			if x3<x2 then x2,x3=x3,x2 end
			if x1<x0 then x0,x1=x1,x0 end
			if x2<x1 then x1,x2=x2,x1 end
			if x1<x0 then x0,x1=x1,x0 end
		end
		return x0,x1,x2,x3
	end
 
	local function rootreals3(a,b,c,d)
		local x0,x1,x2
		local d0=b*b-3*a*c
		local d1=2*b*b*b+27*a*a*d-9*a*b*c
		local d=d1*d1-4*d0*d0*d0
		local m0=-1/(3*a)
		if d<0 then
			local cr,ci=d1/2,(-d)^0.5/2
			local th=atan2(ci,cr)/3
			local m=(cr*cr+ci*ci)^(1/6)
			local cr,ci=m*cos(th),m*sin(th)
			local m1=(1+d0/(m*m))/2
			local m2=(cr*d0+(cr-2*b)*m*m)/(6*a*m*m)
			local m3=ci*(d0+m*m)/(2*3^0.5*a*m*m)
			x0=-(b+cr*(1+d0/(m*m)))/(3*a)
			x1=m2-m3
			x2=m2+m3
		else
			local c3=(d1+d^0.5)/2
			c=c3<0 and -(-c3)^(1/3) or c3^(1/3)
			x0=m0*(b+c+d0/c)
			x1=m0*(b-(c*c+d0)/(2*c))
			x2=x1
		end
		if x1<x0 then x0,x1=x1,x0 end
		if x2<x1 then x1,x2=x2,x1 end
		if x1<x0 then x0,x1=x1,x0 end
		return x0,x1,x2
	end
 
	local function rootreals2(a,b,c)
		local p=-b/(2*a)
		local q2=p*p-c/a
		if 0<q2 then
			local q=q2^0.5
			return p-q,p+q
		else
			return p,p
		end
	end
 
	local solvemoar
 
	local function solve(a,b,c,d,e)
		if a*a<1e-32 then
			return solve(b,c,d,e)
		elseif e then
			if e*e<1e-32 then
				return solvemoar(a,b,c,d)
			elseif b*b<1e-12 and d*d<1e-12 then
				local roots={}
				local found={}
				local r0,r1=solve(a,c,e)
				if r0 then
					if r0>0 then
						local x=r0^0.5
						roots[#roots+1]=-x
						roots[#roots+1]=x
					elseif r0*r0<1e-32 then
						roots[#roots+1]=0
					end
				end
				if r1 then
					if r1>0 then
						local x=r1^0.5
						roots[#roots+1]=-x
						roots[#roots+1]=x
					elseif r1*r1<1e-32 then
						roots[#roots+1]=0
					end
				end
				sort(roots)
				return unpack(roots)
			else
				local roots={}
				local found={}
				local x0,x1,x2,x3=rootreals4(a,b,c,d,e)
				local d0,d1,d2=rootreals3(4*a,3*b,2*c,d)
				local m0,m1,m2,m3,m4=-inf,d0,d1,d2,inf
				local l0,l1,l2,l3,l4=a*inf,(((a*d0+b)*d0+c)*d0+d)*d0+e,(((a*d1+b)*d1+c)*d1+d)*d1+e,(((a*d2+b)*d2+c)*d2+d)*d2+e,a*inf
				if (l0<=0)==(0<=l1) then
                    if (not roots[#roots + 1]) then
                        return
                    end
 
					roots[#roots+1]=x0
					found[x0]=true
				end
				if (l1<=0)==(0<=l2) and not found[x1] then
					roots[#roots+1]=x1
					found[x1]=true
				end
				if (l2<=0)==(0<=l3) and not found[x2] then
					roots[#roots+1]=x2
					found[x2]=true
				end
				if (l3<=0)==(0<=l4) and not found[x3] then
					roots[#roots+1]=x3
				end
				return unpack(roots)
			end
		elseif d then
			if d*d<1e-32 then
				return solvemoar(a,b,c)
			elseif b*b<1e-12 and c*c<1e-12 then
				local p=d/a
				return p<0 and (-p)^(1/3) or -p^(1/3)
			else
				local roots={}
				local found={}
				local x0,x1,x2=rootreals3(a,b,c,d)
				local d0,d1=rootreals2(3*a,2*b,c)
				local l0,l1,l2,l3=-a*inf,((a*d0+b)*d0+c)*d0+d,((a*d1+b)*d1+c)*d1+d,a*inf
				if (l0<=0)==(0<=l1) then
					roots[#roots+1]=x0
					found[x0]=true
				end
				if (l1<=0)==(0<=l2) and not found[x1] then
					roots[#roots+1]=x1
					found[x1]=true
				end
				if (l2<=0)==(0<=l3) and not found[x2] then
					roots[#roots+1]=x2
				end
				return unpack(roots)
			end
		elseif c then
			local p=-b/(2*a)
			local q2=p*p-c/a
			if 0<q2 then
				local q=q2^0.5
				return p-q,p+q
			elseif q2==0 then
				return p
			end
		elseif b then
			if a*a>1e-32 then
				return -b/a
			end
		end
	end
 
	function solvemoar(a,b,c,d,e)
		local roots={solve(a,b,c,d,e)}
		local good=true
		for i=1,#roots do
			if roots[i]==0 then
				good=false
				break
			end
		end
		if good then
			roots[#roots+1]=0
			sort(roots)
		end
		return unpack(roots)
	end
 
    function physics.time_to_hit(tp, ps, sp, g)
        local d = (tp - sp).Magnitude
 
        return ps / g + math.sqrt(2 * d / g + ps ^ 2 / g ^ 2) -- It feels like cheating to use ^ as pow & not xor lol
    end
 
	function physics.trajectory(pp,pv,pa,tp,tv,ta,s)
		local rp=tp-pp
		local rv=tv-pv
		local ra=ta-pa
		local t0,t1,t2,t3=solve(
			dot(ra,ra)/4,
			dot(ra,rv),
			dot(ra,rp)+dot(rv,rv)-s*s,
			2*dot(rp,rv),
			dot(rp,rp)
		)
		if t0 and t0>0 then
			return ra*t0/2+tv+rp/t0,t0
		elseif t1 and t1>0 then
			return ra*t1/2+tv+rp/t1,t1
		elseif t2 and t2>0 then
			return ra*t2/2+tv+rp/t2,t2
		elseif t3 and t3>0 then
			return ra*t3/2+tv+rp/t3,t3
		end
	end
end)()
 
local framework = require(game:GetService("ReplicatedFirst").Framework) -- Mother of all modules
 
local modules = {
    ["steppers"] = framework.require("Classes", "Steppers"),
    ["interface"] = framework.require("Libraries", "Interface"),
    ["keybinds"] = framework.require("Libraries", "Keybinds"),
    ["raycasting"] = framework.require("Libraries", "Raycasting"),
    ["stepped_springs"] = framework.require("Classes", "SteppedSprings"),
    ["maids"] = framework.require("Classes", "Maids"),
    ["springs"] = framework.require("Classes", "Springs"),
    ["old_springs"] = framework.require("Classes", "OldSprings"),
    ["signals"] = framework.require("Classes", "Signals"),
    ["resources"] = framework.require("Libraries", "Resources"),
    ["characters_require"] = framework.require("Classes", "Characters"),
    ["lighting_require"] = framework.require("Libraries", "Lighting"),
    ["camera"] = framework.require("Libraries", "Cameras"),
    ["world"] = framework.require("Libraries", "World"),
    ["gun_builder"] = framework.require("Libraries", "GunBuilder"),
    ["network"] = framework.require("Libraries", "Network"),
    ["item_data"] = framework.require("Configs", "ItemData"),
    ["bullets"] = framework.require("Libraries", "Bullets"),
    ["players_require"] = framework.require("Classes", "Players")
}
 
-- CENSORED
 
local function copy_table(tbl) -- lua.org
    local type = typeof(tbl)
    local copy = {}
 
    if (type == "table") then
        for key, value in next, tbl, nil do
            copy[copy_table(key)] = copy_table(value)
        end
 
        setmetatable(copy, copy_table(getmetatable(tbl)))
    else
        copy = tbl
    end
 
    return copy
end
 
cheat.guns.data = (function()
    local copy = {}
 
    for key, value in next, framework.require("Configs", "ItemData") do
        if (value["Type"] == "Firearm") then
            copy[key] = value
        end
    end
 
    return copy
end)()
 
for key, value in next, cheat.guns.data do
    if (value["Type"] ~= "Firearm") then
        cheat.guns.data[key] = nil
    end
end
 
cheat.guns.restore = copy_table(cheat.guns.data)
 
local function mod_guns(property, multiplier, parent)
    for gun_name, gun in next, cheat.guns.data do
        if (typeof(multiplier) == "table") then
            if (parent and gun[parent]) then
                setreadonly(gun[parent], false)
                setreadonly(gun[parent][property], false)
 
                gun[parent][property] = (not multiplier["data"] and cheat.guns.restore[gun_name][parent][property]) or multiplier["data"]
 
                setreadonly(gun[parent], true)
                setreadonly(gun[parent][property], true)
            elseif (gun[property]) then
                setreadonly(gun, false)
                setreadonly(gun[property], false)
 
                gun[property] = (not multiplier["data"] and cheat.guns.restore[gun_name][property]) or multiplier["data"]
 
                setreadonly(gun, true)
                setreadonly(gun[property], true)
            end
 
            continue
        end
 
        if (parent and gun[parent]) then
            setreadonly(gun[parent], false)
 
            gun[parent][property] = (multiplier ~= -1 and cheat.guns.restore[gun_name][parent][property] * multiplier) or cheat.guns.restore[gun_name][parent][property]
 
            setreadonly(gun[parent], true)
        elseif (gun[property]) then
            setreadonly(gun, false)
 
            gun[property] = (multiplier ~= -1 and cheat.guns.restore[gun_name][property] * multiplier) or cheat.guns.restore[gun_name][property]
 
            setreadonly(gun, true)
        end
    end
end
 
local local_player = game:GetService("Players").LocalPlayer
local current_camera = game:GetService("Workspace").CurrentCamera
 
local random_title_list = {
    "🐛",
    "🐞",
    "🔥",
    "🔫",
    "🔪",
    "🔨",
    "🔧",
    "🔩",
    "🔗",
    "🔖",
    "😱",
    "😈",
    "😎",
    "😍",
    "😘",
    "😗",
    "😙",
}
 
local random_title = random_title_list[math.random(1, #random_title_list)]
 
local window = {
    ["main"] = library:new_window(random_title.. " ars.red ".. random_title),
    ["tabs"] = {},
    ["sections"] = {},
    ["indicators"] = {},
}
 
window["tabs"]["aimbot"] = window.main:new_tab("Aimbot")
window["tabs"]["visuals"] = window.main:new_tab("Visuals")
window["tabs"]["misc"] = window.main:new_tab("Miscellaneous")
window["tabs"]["settings"] = window.main:new_tab("Settings")
 
library:apply_settings(window["tabs"]["settings"])
 
window["sections"]["aimbot_main"] = window.tabs.aimbot:new_group("Main", false)
 
window.sections["aimbot_main"]:new_checkbox("aimbot_enabled", {
    text = "Enabled",
    default = false,
})
 
window["sections"]["aimbot_hitboxes"] = window.tabs.aimbot:new_group("Hitboxes", true)
 
window.sections["aimbot_hitboxes"]:new_list("aimbot_hitboxes", {
    text =  "Hitbox Selection",
    values = {
        "Head",
        "Torso",
        "Arms",
        "Legs",
    },
    multi = true,
    default = {
        "Head",
    }
})
 
window["sections"]["aimbot_mouse"] = window.tabs.aimbot:new_group("Mouse", true)
 
window.sections["aimbot_mouse"]:new_checkbox("aimbot_mouse_enabled", {
    text =  "Mouse Aimbot",
    default = false
}):add_keybind("aimbot_mouse_enabled_hold", {
    mode = "Hold",
    default = "MouseButton2"
})
 
window.sections["aimbot_mouse"]:new_slider("aimbot_mouse_fov", {
    text = "Mouse FOV",
    min = 0,
    max = 180,
    decimals = 1,
    suffix = "°",
    default = 0
})
 
window.sections["aimbot_mouse"]:new_slider("aimbot_mouse_smoothing", {
    text = "Mouse Smoothing",
    min = 0.0,
    max = 1.0,
    decimals = 2,
    default = 0.1,
    suffix = "s"
})
 
window.sections["aimbot_mouse"]:new_slider("aimbot_mouse_jitter", {
    text = "Mouse Jitter",
    min = 0,
    max = 0.2,
    decimals = 2,
    default = 0,
    suffix = "s"
})
 
window["sections"]["aimbot_silent"] = window.tabs.aimbot:new_group("Silent", true)
 
window.sections["aimbot_silent"]:new_checkbox("aimbot_silent_enabled", {
    text = "Silent Aimbot",
    default = false
}):add_keybind("aimbot_silent_enabled_hold", {
    mode = "Hold",
    default = "MouseButton2"
})
 
window.sections["aimbot_silent"]:new_checkbox("aimbot_silent_magic_bullets", {
    text = "Silent Magic Bullets",
    default = false
}):add_keybind("aimbot_silent_magic_bullets_hold", {
    mode = "Hold",
    default = Enum.KeyCode.E
})
 
window.sections["aimbot_silent"]:new_slider("aimbot_silent_fov", {
    text = "Silent FOV",
    min = 0,
    max = 180,
    decimals = 1,
    suffix = "°",
    default = 0
})
 
window.sections["aimbot_silent"]:new_slider("aimbot_silent_magic_bullet_depth", {
    text = "Magic Bullet Depth",
    min = 0,
    max = 7,
    decimals = 0,
    suffix = " studs",
    default = 5
})
 
window.sections["aimbot_silent"]:new_slider("aimbot_silent_hitchance", {
    text = "Silent Hitchance",
    min = 0,
    max = 100,
    decimals = 1,
    suffix = "%",
    default = 100
})
 
window.sections["aimbot_silent"]:new_slider("aimbot_silent_accuracy", {
    text = "Silent Accuracy",
    min = 0,
    max = 100,
    decimals = 1,
    suffix = "%",
    default = 100
})
 
window["sections"]["aimbot_distance"] = window.tabs.aimbot:new_group("Distance", false)
 
window.sections["aimbot_distance"]:new_slider("aimbot_player_max_distance", {
    text = "Player Distance",
    min = 0,
    max = 2500,
    decimals = 1,
    default = 2000
})
 
window["sections"]["visuals_main"] = window.tabs.visuals:new_group("Main", false)
 
window.sections["visuals_main"]:new_checkbox("visuals_enabled", {
    text = "Enabled",
    default = false
}):add_keybind("visuals_enabled_toggle", {
    mode = "Toggle",
    default = nil
})
 
window["sections"]["visuals_distance"] = window.tabs.visuals:new_group("Distance", false)
 
window.sections["visuals_distance"]:new_slider("visuals_player_max_distance", {
    text = "Player Distance",
    min = 0,
    max = 10000,
    decimals = 0,
    default = 2000,
    suffix = " studs"
})
 
window.sections["visuals_distance"]:new_slider("visuals_boss_max_distance", {
    text = "Boss Distance",
    min = 0,
    max = 10000,
    decimals = 0,
    default = 2000,
    suffix = " studs"
})
 
window.sections["visuals_distance"]:new_slider("visuals_event_max_distance", {
    text = "Event Distance",
    min = 0,
    max = 10000,
    decimals = 0,
    default = 2000,
    suffix = " studs"
})
 
window["sections"]["visuals_preference"] = window.tabs.visuals:new_group("Preference", false)
 
window.sections["visuals_preference"]:new_list("visuals_preferred_measurement", {
    text = "Preferred Measurement",
    values = {
        "Roblox",
        "Imperial",
        "Metric",
    },
    default = "Roblox"
})
 
window.sections["visuals_preference"]:new_list("visuals_preferred_boxes", {
    text = "Preferred Boxes",
    values = {
        "Static",
        "Dynamic"
    },
    default = "Dynamic",
})
 
window["sections"]["visuals_players"] = window.tabs.visuals:new_group("Players", true)
 
window.sections["visuals_players"]:new_checkbox("visuals_boxes", {
    text = "Boxes",
    default = false
}):add_colorpicker("visuals_boxes_color", {
    text = "Box Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_skeletons", {
    text = "Skeletons",
    default = false
}):add_colorpicker("visuals_skeletons_color", {
    text = "Skeletons Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_health_bars", {
    text = "Health Bars",
    default = false
}):add_colorpicker("visuals_health_bars_color", {
    text = "Health Bar Color",
    default = {
        color = Color3.fromRGB(0, 255, 0),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_health_bars_boost", {
    text = "Health Bars Boost",
}):add_colorpicker("visuals_health_bars_boost_color", {
    text = "Health Bar Color",
    default = {
        color = Color3.fromRGB(0, 175, 0),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_health_bar_text", {
    text = "Health Bar Text",
    default = false
}):add_colorpicker("visuals_health_bar_text_color", {
    text = "Health Bar Text Color",
    default = {
        color = Color3.fromRGB(0, 0, 0),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_names", {
    text = "Names",
    default = false
}):add_colorpicker("visuals_names_color", {
    text = "Names Color",
    default = {
        color = Color3.fromRGB(0, 0, 0),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_display_names", {
    text = "Display Names",
    default = false
})
 
window.sections["visuals_players"]:new_checkbox("visuals_active_weapon", {
    text = "Active Weapon",
    default = false
}):add_colorpicker("visuals_active_weapon_color", {
    text = "Active Weapon Color",
    default = {
        color = Color3.fromRGB(0, 0, 0),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_distance", {
    text = "Distance",
    default = false
}):add_colorpicker("visuals_distance_color", {
    text = "Distance Color",
    default = {
        color = Color3.fromRGB(0, 0, 0),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_checkbox("visuals_oof_arrows", {
    text = "Out Of View Arrows",
    default = false
}):add_colorpicker("visuals_oof_arrows_color", {
    text = "Out Of View Arrows Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_slider("visuals_oof_arrows_radius", {
    text = "Arrows Radius",
    min = 100,
    max = 400,
    decimals = 0,
    default = 100,
    suffix = "px"
})
 
window.sections["visuals_players"]:new_checkbox("visuals_view_tracer", {
    text = "View Tracer",
    default = false
}):add_colorpicker("visuals_view_tracer_color", {
    text = "View Tracer Color",
    default = {
        color = Color3.fromRGB(79, 220, 255),
        transparency = 0
    }
})
 
window.sections["visuals_players"]:new_slider("visuals_view_tracer_length", {
    text = "Tracer Length",
    min = 0,
    max = 100,
    decimals = 1,
    default = 10,
    suffix = " studs"
})
 
window["sections"]["visuals_chams"] = window.tabs.visuals:new_group("Chams", true)
 
window.sections["visuals_chams"]:new_checkbox("visuals_visible_chams", {
    text = "Visible Chams",
    default = false
}):add_colorpicker("visuals_visible_chams_color", {
    text = "Visible Chams Color",
    default = {
        color = Color3.fromRGB(255, 0, 0),
        transparency = 0
    }
})
 
window.sections["visuals_chams"]:new_checkbox("visuals_occluded_chams", {
    text = "Occluded Chams",
    default = false
}):add_colorpicker("visuals_occluded_chams_color", {
    text = "Occluded Chams Color",
    default = {
        color = Color3.fromRGB(79, 220, 255),
        transparency = 0
    }
})
 
window.sections["visuals_chams"]:new_checkbox("visuals_outline_chams", {
    text = "Outline Chams",
    default = false
}):add_colorpicker("visuals_outline_chams_color", {
    text = "Outline Chams Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window["sections"]["visuals_bosses"] = window.tabs.visuals:new_group("Bosses", true)
 
window.sections["visuals_bosses"]:new_checkbox("visuals_boss_boxes", {
    text = "Boxes",
    default = false
}):add_colorpicker("visuals_boss_boxes_color", {
    text = "Box Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window.sections["visuals_bosses"]:new_checkbox("visuals_boss_names", {
    text = "Names",
    default = false
}):add_colorpicker("visuals_boss_names_color", {
    text = "Names Color",
    default = {
        color = Color3.fromRGB(0, 0, 0),
        transparency = 0
    }
})
 
window["sections"]["visuals_events"] = window.tabs.visuals:new_group("Events", true)
 
window.sections["visuals_events"]:new_checkbox("visuals_event_names", {
    text = "Names",
    default = false
}):add_colorpicker("visuals_event_names_color", {
    text = "Event Color",
    default = {
        color = Color3.fromRGB(0, 0, 0),
        transparency = 0
    }
})
 
window["sections"]["visuals_bullets"] = window.tabs.visuals:new_group("Bullets", false)
 
window.sections["visuals_bullets"]:new_checkbox("visuals_bullet_tracers", {
    text = "Bullet Tracers",
    default = false
}):add_colorpicker("visuals_bullet_tracers_color", {
    text = "Tracer Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window.sections["visuals_bullets"]:new_checkbox("visuals_bullet_tracers_face_camera", {
    text = "Tracers Face Camera",
    default = false
})
 
window.sections["visuals_bullets"]:new_list("visuals_bullet_tracers_texture", {
    text = "Tracers Type",
    values = {
        "Lightning",
        "Smoke"
    },
    default = "Lightning"
})
 
window.sections["visuals_bullets"]:new_slider("visuals_bullet_tracers_thickness", {
    text = "Tracer Thickness",
    min = 0,
    max = 1,
    decimals = 1,
    default = 0.2,
    suffix = " studs"
})
 
window["sections"]["visuals_local"] = window.tabs.visuals:new_group("Local", false)
 
window.sections["visuals_local"]:new_checkbox("visuals_mouse_fov", {
    text = "Mouse FOV",
    default = false
}):add_colorpicker("visuals_mouse_fov_color", {
    text = "Mouse FOV Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    } 
})
 
window.sections["visuals_local"]:new_checkbox("visuals_silent_fov", {
    text = "Silent FOV",
    default = false
}):add_colorpicker("visuals_silent_fov_color", {
    text = "Silent FOV Color",
    default = {
        color = Color3.fromRGB(79, 220, 255),
        transparency = 0
    }
})
 
window.sections["visuals_local"]:new_checkbox("visuals_crosshair", {
    text = "Crosshair",
    default = false
}):add_colorpicker("visuals_crosshair_color", {
    text = "Crosshair Color",
    default = {
        color = Color3.fromRGB(255, 255, 255),
        transparency = 0
    }
})
 
window.sections["visuals_local"]:new_checkbox("visuals_crosshair_rotate", {
    text = "Crosshair Rotate",
    default = false
})
 
window.sections["visuals_local"]:new_slider("visuals_crosshair_width", {
    text = "Crosshair Width",
    min = 0,
    max = 10,
    decimals = 0,
    default = 3,
    suffix = "px"
})
 
window["sections"]["visuals_lighting"] = window.tabs.visuals:new_group("Lighting", true)
 
window.sections["visuals_lighting"]:new_checkbox("misc_full_bright", {
    text = "Full Bright",
    default = false
})
 
window["sections"]["misc_main"] = window.tabs.misc:new_group("Main", false)
 
window.sections["misc_main"]:new_checkbox("misc_enabled", {
    text = "Enabled",
    default = false
})
 
window["sections"]["misc_movement"] = window.tabs.misc:new_group("Movement", true)
 
window.sections["misc_movement"]:new_checkbox("misc_fly", {
    text = "Fly",
    default = false
}):add_keybind("misc_fly_toggle", {
    mode = "Toggle",
    default = Enum.KeyCode.G
})
 
window.sections["misc_movement"]:new_slider("misc_fly_speed", {
    text = "Fly Speed",
    min = 0,
    max = 1000,
    decimals = 1,
    default = 10,
    suffix = " stud/s"
})
 
window.sections["misc_movement"]:new_checkbox("misc_speed", {
    text = "Speed",
    default = false
}):add_keybind("misc_speed_toggle", {
    mode = "Toggle",
    default = Enum.KeyCode.H
})
 
window.sections["misc_movement"]:new_slider("misc_speed_velocity", {
    text = "Speed Velocity",
    min = 0,
    max = 1000,
    decimals = 1,
    default = 10,
    suffix = " stud/s"
})
 
window.sections["misc_movement"]:new_checkbox("misc_jitter_fix", {
    text = "Jitter Fix",
    default = false,
    unsafe = true
})
 
window["sections"]["misc_spoof"] = window.tabs.misc:new_group("Spoof Status", true)
 
window.sections["misc_spoof"]:new_checkbox("misc_spoof_status", {
    text = "Spoof Status",
    default = false
})
 
window.sections["misc_spoof"]:new_checkbox("misc_spoof_falling", {
    text = "Spoof Falling",
    default = false
})
 
window["sections"]["misc_zombies"] = window.tabs.misc:new_group("Zombies", true)
 
window.sections["misc_zombies"]:new_checkbox("misc_zombie_freezer", {
    text = "Zombie Freezer",
    default = false
})
 
window.sections["misc_zombies"]:new_checkbox("misc_zombie_remover", {
    text = "Zombie Remover",
    default = false
})
 
window.sections["misc_zombies"]:new_list("misc_zombie_remover_mode", {
    text = "Zombie Remover Mode",
    values = {
        "Delete",
        "Teleport"
    },
    default = "Delete"
})
 
window.sections["misc_zombies"]:new_checkbox("misc_zombie_circle", {
    text = "Zombie Circle",
    default = false
})
 
window.sections["misc_zombies"]:new_slider("misc_zombie_circle_radius", {
    text = "Zombie Radius",
    min = 7,
    max = 100,
    decimals = 1,
    default = 10,
    suffix = " studs"
})
 
window.sections["misc_zombies"]:new_slider("misc_zombie_circle_speed", {
    text = "Zombie Speed",
    min = 1,
    max = 10000,
    decimals = 1,
    default = 500,
    suffix = " rpm"
})
 
window["sections"]["misc_bosses"] = window.tabs.misc:new_group("Bosses", true)
 
window.sections["misc_bosses"]:new_checkbox("misc_boss_freezer", {
    text = "Boss Freezer",
    default = false
})
 
window["sections"]["misc_animations"] = window.tabs.misc:new_group("Animations", false)
 
window.sections["misc_animations"]:new_list("misc_animation_category", {
    text = "Animation Category",
    values = (function()
        local values = {}
 
        for _, category in next, game:GetService("ReplicatedStorage").Assets.Animations:GetChildren() do
            values[#values + 1] = category.Name
        end
 
        return values
    end)(),
    default = "Idle",
    callback = function(value)
        if (not value or value == "") then
            return
        end
 
        options["misc_animation"]:set_values((function()
            local values = {}
 
            for _, category in next, game:GetService("ReplicatedStorage").Assets.Animations[value]:GetChildren() do
                values[#values + 1] = category.Name
            end
 
            return values
        end)())
 
        options["misc_animation"]:set_value("")
    end
})
 
window.sections["misc_animations"]:new_list("misc_animation", {
    text = "Animation",
    values = {},
    default = ""
})
 
window.sections["misc_animations"]:new_slider("misc_animation_duration", {
    text = "Animation Duration",
    min = 0,
    max = 300,
    decimals = 1,
    default = 60,
    suffix = "s"
})
 
window.sections["misc_animations"]:new_button({
    text = "Play Animation",
    callback = function()
        task.spawn(function()
            local animation_category = flags["misc_animation_category"]
            local animation_name = flags["misc_animation"]
            local duration = flags["misc_animation_duration"]
 
            if (not animation_category or animation_category == "") then
                return
            end
 
            if (not animation_name or animation_name == "") then
                return
            end
 
            local animation = game:GetService("ReplicatedStorage").Assets.Animations[animation_category][animation_name]
 
            if (not game:GetService("Players").LocalPlayer.Character) then
                return
            end
 
            local animator = game:GetService("Players").LocalPlayer.Character.Humanoid.Animator
 
            if (not animation) then
                return
            end
 
            if (not animator) then
                return
            end
 
            local loaded_animation = animator:LoadAnimation(animation)
 
            modules["players_require"]:get().Character.Animator:PlayAnimationReplicated(animation_category.. ".".. animation_name)
 
            task.wait(duration > 0 and duration or loaded_animation.Length)
 
            if (not modules["players_require"]:get().Character) then
                return
            end
 
            modules["players_require"]:get().Character.Animator:StopAnimationReplicated(animation_category.. ".".. animation_name, true)
        end)
    end
}):add_keybind("misc_animation_bind", {
    mode = "Toggle",
    default = Enum.KeyCode.LeftAlt,
    callback = function()
        task.spawn(function()
            local animation_category = flags["misc_animation_category"]
            local animation_name = flags["misc_animation"]
            local duration = flags["misc_animation_duration"]
 
            if (not animation_category or animation_category == "") then
                return
            end
 
            if (not animation_name or animation_name == "") then
                return
            end
 
            local animation = game:GetService("ReplicatedStorage").Assets.Animations[animation_category][animation_name]
 
            if (not game:GetService("Players").LocalPlayer.Character) then
                return
            end
 
            local animator = game:GetService("Players").LocalPlayer.Character.Humanoid.Animator
 
            if (not animation) then
                return
            end
 
            if (not animator) then
                return
            end
 
            local loaded_animation = animator:LoadAnimation(animation)
 
            modules["players_require"]:get().Character.Animator:PlayAnimationReplicated(animation_category.. ".".. animation_name)
 
            task.wait(duration > 0 and duration or loaded_animation.Length)
 
            if (not modules["players_require"]:get().Character) then
                return
            end
 
            modules["players_require"]:get().Character.Animator:StopAnimationReplicated(animation_category.. ".".. animation_name, true)
        end)
    end
})
 
window["sections"]["misc_gun_mods"] = window.tabs.misc:new_group("Gun Mods", false)
 
window.sections["misc_gun_mods"]:new_checkbox("misc_enabled_weapon_mods", {
    text = "Enabled",
    default = false
})
 
window.sections["misc_gun_mods"]:new_checkbox("misc_spread_mod_enabled", {
    text = "No Spread",
    default = false
})
 
window.sections["misc_gun_mods"]:new_checkbox("misc_firemode_all", {
    text = "All Firemodes",
    default = false,
    callback = function(value)
        if (flags["misc_enabled"] and flags["misc_enabled_weapon_mods"]) then
            if (value) then
                mod_guns("FireModes", { data = {"Semiautomatic", "Automatic", "Burst"} }, nil)
            else
                mod_guns("FireModes", {}, nil)
            end
        end
    end
})
 
window.sections["misc_gun_mods"]:new_checkbox("misc_recoil_mod_enabled", {
    text = "Recoil Modifier",
    default = false,
    callback = function(value)
        if (flags["misc_enabled"] and flags["misc_enabled_weapon_mods"] and value) then
            local recoil = flags["misc_weapon_recoil"]
 
            mod_guns("KickUpBounce", recoil, "RecoilData")
            mod_guns("KickUpForce", recoil, "RecoilData")
            mod_guns("KickUpSpeed", recoil, "RecoilData")
            mod_guns("KickUpGunInfluence", recoil, "RecoilData")
            mod_guns("KickUpCameraInfluence", recoil, "RecoilData")
            mod_guns("RaiseInfluence", recoil, "RecoilData")
            mod_guns("RaiseBounce", recoil, "RecoilData")
            mod_guns("RaiseSpeed", recoil, "RecoilData")
            mod_guns("RaiseForce", recoil, "RecoilData")
            mod_guns("ShiftGunInfluence", recoil, "RecoilData")
            mod_guns("ShiftBounce", recoil, "RecoilData")
            mod_guns("ShiftCameraInfluence", recoil, "RecoilData")
            mod_guns("ShiftForce", recoil, "RecoilData")
        else
            mod_guns("KickUpBounce", -1, "RecoilData")
            mod_guns("KickUpForce", -1, "RecoilData")
            mod_guns("KickUpSpeed", -1, "RecoilData")
            mod_guns("KickUpGunInfluence", -1, "RecoilData")
            mod_guns("KickUpCameraInfluence", -1, "RecoilData")
            mod_guns("RaiseInfluence", -1, "RecoilData")
            mod_guns("RaiseBounce", -1, "RecoilData")
            mod_guns("RaiseSpeed", -1, "RecoilData")
            mod_guns("RaiseForce", -1, "RecoilData")
            mod_guns("ShiftGunInfluence", -1, "RecoilData")
            mod_guns("ShiftBounce", -1, "RecoilData")
            mod_guns("ShiftCameraInfluence", -1, "RecoilData")
            mod_guns("ShiftForce", -1, "RecoilData")
        end
    end
})
 
window.sections["misc_gun_mods"]:new_slider("misc_weapon_recoil", {
    text = "Multiplier",
    min = 0,
    max = 1,
    decimals = 2,
    default = 1,
    suffix = "x",
    callback = function(value)
        if (flags["misc_enabled"] and flags["misc_enabled_weapon_mods"] and flags["misc_recoil_mod_enabled"]) then
            mod_guns("KickUpBounce", value, "RecoilData")
            mod_guns("KickUpForce", value, "RecoilData")
            mod_guns("KickUpSpeed", value , "RecoilData")
            mod_guns("KickUpGunInfluence", value, "RecoilData")
            mod_guns("KickUpCameraInfluence", value, "RecoilData")
            mod_guns("RaiseInfluence", value, "RecoilData")
            mod_guns("RaiseBounce", value, "RecoilData")
            mod_guns("RaiseSpeed", value , "RecoilData")
            mod_guns("RaiseForce", value, "RecoilData")
            mod_guns("ShiftGunInfluence", value, "RecoilData")
            mod_guns("ShiftBounce", value, "RecoilData")
            mod_guns("ShiftCameraInfluence", value, "RecoilData")
            mod_guns("ShiftForce", value, "RecoilData")
        end
    end
})
 
-- window.sections["misc_gun_mods"]:new_slider({
--     Text = "Weapon Fire Rate",
--     flag = "misc_weapon_fire_rate",
--     Min = 1,
--     Max = 10,
--     Rounding = .1,
--     Default = 1,
--     suffix = "x",
--     callback = function()
--         if (Toggles["misc_enabled"] and Toggles["misc_enabled_weapon_mods"] and Toggles["misc_recoil_mod_enabled"]) then
--             mod_guns("FireRate", Toggles["misc_weapon_fire_rate"], "FireConfig")
--         end
--     end
-- })
 
-- window.sections["misc_gun_mods"]:new_checkbox({
--     Text = "Fire Burst Modifier",
--     flag = "misc_fire_burst_mod_enabled",
--     callback = function()
--         if (Toggles["misc_enabled"] and Toggles["misc_enabled_weapon_mods"] and Toggles["misc_fire_burst_mod_enabled"]) then
--             mod_guns("BurstCount", Toggles["misc_weapon_burst_count"], "FireConfig")
--         else
--             mod_guns("BurstCount", -1, "FireConfig")
--         end
--     end
-- })
 
-- window.sections["misc_gun_mods"]:new_slider({
--     Text = "Weapon Burt Count",
--     flag = "misc_weapon_burst_count",
--     Min = 3,
--     Max = 10,
--     Rounding = 1,
--     Default = 3,
--     suffix = "x",
--     callback = function()
--         if (Toggles["misc_enabled"] and Toggles["misc_enabled_weapon_mods"] and Toggles["misc_fire_burst_mod_enabled"]) then
--             mod_guns("BurstCount", Toggles["misc_weapon_burst_count"], "FireConfig")
--         end
--     end
-- })
 
window["sections"]["misc_teleports"] = window.tabs.misc:new_group("Teleports", false)
 
window.sections["misc_teleports"]:new_list("misc_corpses", {
    text = "Corpses",
    values = (function()
        local filtered_corpses = {}
 
        for _, corpse in next, game:GetService("Workspace").Corpses:GetChildren() do
            if (corpse.Name ~= "Zombie") then
                table.insert(filtered_corpses, corpse.Name)
            end
        end
 
        return filtered_corpses
    end)(),
    default = "",
    callback = function(value)
        if (not value) then return end
 
        if (flags["misc_enabled"]) then
            local corpse = game:GetService("Workspace").Corpses:FindFirstChild(value)
 
            if (corpse) then
                local character = local_player.Character
 
                if (character) then
                    local humanoid = character:FindFirstChild("HumanoidRootPart")
                    local corpse_humanoid = corpse:FindFirstChild("HumanoidRootPart")
 
                    if (humanoid and corpse_humanoid) then
                        cheat.teleport_bypass = true
 
                        repeat task.wait() until cheat.teleport_bypass_ran
 
                        -- CENSORED
 
                        cheat.teleport_bypass = false
                    end
                end
            end
        end
    end,
    ignore = true
})
 
window.sections["misc_teleports"]:new_list("misc_players", {
    text = "Players",
    values = (function()
        local filtered_people = {}
 
        for _, person in next, game:GetService("Players"):GetPlayers() do
            if (person ~= local_player) then
                table.insert(filtered_people, person.Name)
            end
        end
 
        return filtered_people
    end)(),
    default = "",
    callback = function(value)
        if (not value) then return end
 
        if (flags["misc_enabled"]) then
            local player = game:GetService("Players"):FindFirstChild(value)
 
            if (player) then
                local character = local_player.Character
 
                if (character and player.Character) then
                    local humanoid = character:FindFirstChild("HumanoidRootPart")
                    local player_humanoid = player.Character:FindFirstChild("HumanoidRootPart")
 
                    if (humanoid and player_humanoid) then
                        cheat.teleport_bypass = true
 
                        repeat task.wait() until cheat.teleport_bypass_ran
 
                        -- CENSORED
 
                        cheat.teleport_bypass = false
                    end
                end
            end
        end
    end,
    ignore = true
})
 
window.sections["misc_teleports"]:new_list("misc_places", {
    text = "Places",
    values = (function()
        local filtered_locations = {}
 
        for _, location in next, game:GetService("Workspace").Locations:GetChildren() do
            table.insert(filtered_locations, location.Name)
        end
 
        return filtered_locations
    end)(),
    default = "",
    callback = function(value)
        if (not value) then return end
 
        if (flags["misc_enabled"]) then
            local location = game:GetService("Workspace").Locations:FindFirstChild(value)
 
            if (location) then
                local character = local_player.Character
 
                if (character) then
                    local humanoid = character:FindFirstChild("HumanoidRootPart")
 
                    if (humanoid) then
                        cheat.teleport_bypass = true
 
                        repeat task.wait() until cheat.teleport_bypass_ran
 
                        -- CENSORED
 
                        cheat.teleport_bypass = false
                    end
                end
            end
        end
    end,
    ignore = true
})
 
function cheat:safe_call(func)
    pcall(func, function()
       return false
    end)
 
    return true
end
 
local connections = {}
 
local function corpse_remove()
    if (not getgenv().library or getgenv().library ~= old_library) then
        connections["corpse_remove"]:Disconnect()
 
        return
    end
 
    getgenv().options["misc_corpses"]:set_values((function()
        local filtered_corpses = {}
 
        for _, corpse in next, game:GetService("Workspace").Corpses:GetChildren() do
            if (corpse.Name ~= "Zombie") then
                table.insert(filtered_corpses, corpse.Name)
            end
        end
 
        return filtered_corpses
    end)())
end
 
connections["corpse_remove"] = game:GetService("Workspace").Corpses.ChildRemoved:Connect(function() cheat:safe_call(corpse_remove) end)
 
local function player_removing()
    if (not getgenv().library or getgenv().library ~= old_library) then
        connections["player_removing"]:Disconnect()
 
        return
    end
 
    getgenv().options["misc_players"]:set_values((function()
        local filtered_people = {}
 
        for _, person in next, game:GetService("Players"):GetPlayers() do
            if (person ~= local_player) then
                table.insert(filtered_people, person.Name)
            end
        end
 
        return filtered_people
    end)())
end
 
connections["player_removing"] = game:GetService("Players").PlayerRemoving:Connect(function() cheat:safe_call(player_removing) end)
 
local function corpse_added()
    if (not getgenv().library or getgenv().library ~= old_library) then
        connections["corpse_added"]:Disconnect()
 
        return
    end
 
    getgenv().options["misc_corpses"]:set_values((function()
        local filtered_corpses = {}
 
        for _, corpse in next, game:GetService("Workspace").Corpses:GetChildren() do
            if (corpse.Name ~= "Zombie") then
                table.insert(filtered_corpses, corpse.Name)
            end
        end
 
        return filtered_corpses
    end)())
end
 
connections["corpse_added"] = game:GetService("Workspace").Corpses.ChildAdded:Connect(function() cheat:safe_call(corpse_added) end)
 
local function player_added()
    if (not getgenv().library or getgenv().library ~= old_library) then
        connections["player_added"]:Disconnect()
 
        return
    end
 
    getgenv().options["misc_players"]:set_values((function()
        local filtered_people = {}
 
        for _, person in next, game:GetService("Players"):GetPlayers() do
            if (person ~= local_player) then
                table.insert(filtered_people, person.Name)
            end
        end
 
        return filtered_people
    end)())
end
 
connections["player_added"] = game:GetService("Players").PlayerAdded:Connect(function() cheat:safe_call(player_added) end)
 
function cheat:detour(name, loc, func)
    local old_function = nil
 
    -- HACK: Saves usless local variable
    if (cheat:safe_call(function()
        old_function = loc[name]
 
        loc[name] = newcclosure(function(...)
            if (not getgenv().library or getgenv().library ~= old_library) then
                loc[name] = old_function
 
                return old_function(...)
            end
 
            return func(old_function, ...)
        end)
    end)) then
        -- library:Notify("Detoured " .. name, 1)
    else
        error("Failed to detour " .. name)
    end
end
 
function cheat:render_stepped(priority, func, unload)
    game:GetService("RunService"):BindToRenderStep(tostring(func), priority, function()
        if (not getgenv().library or getgenv().library ~= old_library) then
            game:GetService("RunService"):UnbindFromRenderStep(tostring(func))
 
            if (unload) then
                unload()
            end
 
            return
        end
 
       func()
    end)
end
 
function cheat:heart_beat(func, unload)
    local connection
 
    connection = game:GetService("RunService").Heartbeat:Connect(function(delta)
        if (not getgenv().library or getgenv().library ~= old_library) then
            connection:Disconnect()
 
            if (unload) then
                unload()
            end
 
            return
        end
 
        func(delta)
    end)
end
 
local function calculate_box(player)
    -- Fixes the red dot causing boxes to be much bigger than they should be
    if (player.Character:FindFirstChild("Equipped")) then
        local equipped = player.Character.Equipped:GetDescendants()
 
        for _, part in next, equipped do
            if (string.find(part.Name, "Laser")) then
                part.Position = player.Character:FindFirstChild("Head").Position
            end
        end
    end
 
    if (flags["visuals_preferred_boxes"] == "Dynamic") then
        local position = player.Character:GetBoundingBox()
        local size = player.Character:GetExtentsSize()
 
        local maxs = (position * CFrame.new(size / 2)).Position
        local mins = (position * CFrame.new(size / -2)).Position
 
        local points = {
            Vector3.new(mins.X, mins.Y, mins.Z),
            Vector3.new(mins.X, maxs.Y, mins.Z),
            Vector3.new(maxs.X, maxs.Y, mins.Z),
            Vector3.new(maxs.X, mins.Y, mins.Z),
            Vector3.new(maxs.X, maxs.Y, maxs.Z),
            Vector3.new(mins.X, maxs.Y, maxs.Z),
            Vector3.new(mins.X, mins.Y, maxs.Z),
            Vector3.new(maxs.X, mins.Y, maxs.Z)
        };
 
        local visible = true
 
        for idx, point in next, points do
            points[idx], visible = current_camera:WorldToViewportPoint(point)
        end
 
        if (not visible) then
            return
        end
 
        local left = math.huge
        local right = 0
        local top = math.huge
        local bottom = 0
 
        for _, point in next, points do
            if (point.X < left) then
                left = point.X
            end
 
            if (point.X > right) then
                right = point.X
            end
 
            if (point.Y < top) then
                top = point.Y
            end
 
            if (point.Y > bottom) then
                bottom = point.Y
            end
        end
 
        return {
            ["X"] = math.floor(left),
            ["Y"] = math.floor(top),
            ["W"] = math.floor(right - left),
            ["H"] = math.floor(bottom - top)
        }
    else
        local camera_cframe = current_camera.CFrame
        local player_parts = player.Character
 
        if (not player_parts) then return end
 
        local torso_cframe = player_parts.HumanoidRootPart.CFrame
        local matrix_top = (torso_cframe.Position + Vector3.new(0, 0.3, 0)) + (torso_cframe.UpVector * 1.5) + camera_cframe.UpVector
        local matrix_bottom = (torso_cframe.Position + Vector3.new(0, 0.4, 0)) - (torso_cframe.UpVector * 3)
 
        local top, top_is_visible = current_camera:WorldToViewportPoint(matrix_top)
        local bottom, bottom_is_visible = current_camera:WorldToViewportPoint(matrix_bottom)
 
        if (not top_is_visible and not bottom_is_visible) then return end
 
        local width = math.floor(math.abs(top.X - bottom.X))
        local height = math.floor(math.max(math.abs(bottom.Y - top.Y), width * 0.6))
        local box_size = Vector2.new(math.floor(math.max(height / 1.7, width * 1.8)), height)
        local box_position = Vector2.new(math.floor(top.X * 0.5 + bottom.X * 0.5 - box_size.X * 0.5), math.floor(math.min(top.Y, bottom.Y)))
 
        return {
            ["X"] = box_position.X,
            ["Y"] = box_position.Y,
            ["W"] = box_size.X,
            ["H"] = box_size.Y
        }
    end
end
 
local squad_list = {}
 
cheat:render_stepped(0, function(delta)
    current_camera = game:GetService("Workspace").CurrentCamera
 
    squad_list = {}
 
    for _, template in next, local_player.PlayerGui["Interface Main"].PlayerList.MainList.SquadList.ScrollingFrame:GetChildren() do
        if (template.Name == "SquadTemplate") then
            local player_name = template.NameButton.NameLabelBin.NameLabel.text
 
            squad_list[player_name] = true
        end
    end
end)
 
cheat:render_stepped(1, function(delta)
    for _, player in next, game:GetService("Players"):GetPlayers() do
        local skeleton_order = {
            ["LeftFoot"] = "LeftLowerLeg",
            ["LeftLowerLeg"] = "LeftUpperLeg",
            ["LeftUpperLeg"] = "LowerTorso",
 
            ["RightFoot"] = "RightLowerLeg",
            ["RightLowerLeg"] = "RightUpperLeg",
            ["RightUpperLeg"] = "LowerTorso",
 
            ["LeftHand"] = "LeftLowerArm",
            ["LeftLowerArm"] = "LeftUpperArm",
            ["LeftUpperArm"] = "UpperTorso",
 
            ["RightHand"] = "RightLowerArm",
            ["RightLowerArm"] = "RightUpperArm",
            ["RightUpperArm"] = "UpperTorso",
 
            ["LowerTorso"] = "UpperTorso",
            ["UpperTorso"] = "Head"
        }
 
        if (player == local_player) then
            continue
        end
 
        if (not player.Character) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not local_player.Character) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (squad_list[player.Name]) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        local character = player.Character
        local humanoid = character:FindFirstChildOfClass("Humanoid")
        local stats = character:FindFirstChild("Stats")
 
        if (not humanoid or not stats) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (humanoid.Health <= 0) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not character:FindFirstChild("HumanoidRootPart") or not local_player.Character:FindFirstChild("HumanoidRootPart")) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if ((character.HumanoidRootPart.Position - local_player.Character.HumanoidRootPart.Position).Magnitude > flags["visuals_player_max_distance"]) then
            if (cheat.visuals.info[player.Name]) then
                for _, object in next, cheat.visuals.info[player.Name] do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        local box = calculate_box(player)
        local info = cheat.visuals.info[player.Name]
 
        if (not flags["visuals_enabled"] and not flags["visuals_enabled_toggle"].state) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not info) then
            cheat.visuals.info[player.Name] = {}
 
            cheat.visuals.info[player.Name]["box_outside"] = cheat.draw("Square", {
                Color = Color3.new(0, 0, 0),
                Thickness = 1,
                Transparency = math.clamp(-(flags["visuals_boxes_color"].transparency) + 1 - 0.5, 0, 1),
                Filled = false
            })
 
            cheat.visuals.info[player.Name]["box"] = cheat.draw("Square", {
                Color = flags["visuals_boxes_color"].color,
                Thickness = 1,
                Transparency = -(flags["visuals_boxes_color"].transparency) + 1,
                Filled = false
            })
 
            cheat.visuals.info[player.Name]["box_inside"] = cheat.draw("Square", {
                Color = Color3.new(0, 0, 0),
                Thickness = 1,
                Transparency = math.clamp(-(flags["visuals_boxes_color"].transparency) + 1 - 0.5, 0, 1),
                Filled = false
            })
 
            cheat.visuals.info[player.Name]["health_bar_outside"] = cheat.draw("Square", {
                Color = Color3.new(0, 0, 0),
                Thickness = 1,
                Transparency = math.clamp(-(flags["visuals_health_bars_color"].transparency) + 1 - 0.5, 0, 1),
                Filled = true
            })
 
            cheat.visuals.info[player.Name]["health_bar"] = cheat.draw("Square", {
                Color = flags["visuals_health_bars_color"].color,
                Thickness = 1,
                Transparency = -(flags["visuals_health_bars_color"].transparency) + 1,
                Filled = true
            })
 
            cheat.visuals.info[player.Name]["health_bar_boost"] = cheat.draw("Square", {
                Color = flags["visuals_health_bars_boost_color"].color,
                Thickness = 1,
                Transparency = math.clamp(-(flags["visuals_health_bars_boost_color"].transparency) + 1 - 0.5, 0, 1),
                Filled = true
            })
 
            cheat.visuals.info[player.Name]["health_bar_text"] = cheat.draw("Text", {
                Color = Color3.new(1, 1, 1),
                OutlineColor = flags["visuals_health_bar_text_color"].color,
                Center = false,
                Outline = true,
                Size = 13,
                Transparency = -(flags["visuals_health_bar_text_color"].transparency) + 1,
                Font = 2
            })
 
            cheat.visuals.info[player.Name]["name"] = cheat.draw("Text", {
                Color = Color3.new(1, 1, 1),
                OutlineColor = flags["visuals_names_color"].color,
                Center = true,
                Outline = true,
                Size = 13,
                Transparency = math.clamp(-(flags["visuals_names_color"].transparency) + 1 - 0.5, 0, 1),
                Font = 2
            })
 
            cheat.visuals.info[player.Name]["active_weapon"] = cheat.draw("Text", {
                Color = Color3.new(1, 1, 1),
                OutlineColor = flags["visuals_active_weapon_color"].color,
                Center = true,
                Outline = true,
                Size = 13,
                Transparency = -(flags["visuals_active_weapon_color"].transparency) + 1,
                Font = 2
            })
 
            cheat.visuals.info[player.Name]["view_tracer"] = cheat.draw("Line", {
                Color = flags["visuals_view_tracer_color"].color,
                Transparency = -(flags["visuals_view_tracer_color"].transparency) + 1,
                Visible = false
            })
 
            cheat.visuals.info[player.Name]["distance"] = cheat.draw("Text", {
                Color = Color3.new(1, 1, 1),
                OutlineColor = flags["visuals_distance_color"].color,
                Center = true,
                Outline = true,
                Size = 13,
                Transparency = -(flags["visuals_distance_color"].transparency) + 1,
                Font = 2
            })
 
            cheat.visuals.info[player.Name]["oof_arrow"] = cheat.draw("Triangle", {
                Color = flags["visuals_oof_arrows_color"].color,
                Thickness = 1,
                Transparency = -(flags["visuals_oof_arrows_color"].transparency) + 1,
                Filled = true
            })
 
            cheat.visuals.info[player.Name]["oof_arrow_outside"] = cheat.draw("Triangle", {
                Color = Color3.new(0, 0, 0),
                Thickness = 1,
                Transparency = -(flags["visuals_oof_arrows_color"].transparency) + 1,
                Filled = false,
            })
 
            for required, _ in next, skeleton_order do
                cheat.visuals.info[player.Name]["skeleton_".. required] = cheat.draw("Line", {
                    Color = flags["visuals_skeletons_color"].color,
                    Transparency = -(flags["visuals_skeletons_color"].transparency) + 1,
 
                    Visible = false
                })
            end
 
            info = cheat.visuals.info[player.Name]
        end
 
        if (box) then
            if (flags["visuals_boxes"]) then
                info["box_outside"].Position = Vector2.new(box.X - 1, box.Y - 1)
                info["box_outside"].Size = Vector2.new(box.W + 2, box.H + 2)
                info["box_outside"].Transparency = math.clamp(1 - 0.5, 0, 1)
                info["box_outside"].Visible = true
 
                info["box"].Position = Vector2.new(box.X, box.Y)
                info["box"].Size = Vector2.new(box.W, box.H)
                info["box"].Transparency = 1
                info["box"].Color = flags["visuals_boxes_color"].color
                info["box"].Visible = true
 
                info["box_inside"].Position = Vector2.new(box.X + 1, box.Y + 1)
                info["box_inside"].Size = Vector2.new(box.W - 2, box.H - 2)
                info["box_inside"].Transparency = math.clamp(1 - 0.5, 0, 1)
                info["box_inside"].Visible = true
            else
                if (info["box"]) then
                    info["box"].Visible = false
                end
 
                if (info["box_inside"]) then
                    info["box_inside"].Visible = false
                end
 
                if (info["box_outside"]) then
                    info["box_outside"].Visible = false
                end
            end
 
            if (flags["visuals_health_bars"]) then
                local health_fraction = math.floor(stats.Health.Base.Value) / 100
 
                local health_size = math.floor(box.H * health_fraction)
                local health_position = math.floor((box.Y + box.H) - health_size)
 
                local hue, saturation, value = flags["visuals_health_bars_color"].color:ToHSV()
                local health_color = math.abs(hue - ((120 / 360) * (-(health_fraction) + 1))) -- fix negative underflow of hue
 
                info["health_bar_outside"].Position = Vector2.new(box.X - 6, box.Y - 1)
                info["health_bar_outside"].Size = Vector2.new(4, box.H + 2)
                info["health_bar_outside"].Transparency = math.clamp(-(flags["visuals_health_bars_color"].transparency) + 1 - 0.5, 0, 1)
                info["health_bar_outside"].Visible = true
 
                info["health_bar"].Position = Vector2.new(box.X - 5, health_position)
                info["health_bar"].Size = Vector2.new(2, health_size)
                info["health_bar"].Transparency = -(flags["visuals_health_bars_color"].transparency) + 1
                info["health_bar"].Color = Color3.fromHSV(health_color, saturation, value)
                info["health_bar"].Visible = true
 
                if (stats.Health.Base.Value <= 90) then
                    if (flags["visuals_health_bar_text"]) then
                        info["health_bar_text"].Position = Vector2.new(box.X - 7 - info["health_bar_text"].TextBounds.X, health_position - info["health_bar_text"].TextBounds.Y / 2)
                        info["health_bar_text"].Color = Color3.fromHSV(health_color, saturation, value)
                        info["health_bar_text"].OutlineColor = flags["visuals_health_bar_text_color"].color
                        info["health_bar_text"].Transparency = -(flags["visuals_health_bar_text_color"].transparency) + 1
                        info["health_bar_text"].Text = tostring(math.ceil(stats.Health.Base.Value))
                        info["health_bar_text"].Visible = true
                    else
                        info["health_bar_text"].Visible = false
                    end
                else
                    info["health_bar_text"].Visible = false
                end
            else
                if (info["health_bar_outside"]) then
                    info["health_bar_outside"].Visible = false
                end
 
                if (info["health_bar"]) then
                    info["health_bar"].Visible = false
                end
 
                if (info["health_bar_text"]) then
                    info["health_bar_text"].Visible = false
                end
            end
 
            if (flags["visuals_health_bars_boost"] and flags["visuals_health_bars"]) then
                local health_fraction = math.floor(stats.Health.Bonus.Value) / 50
 
                local health_size = math.floor(box.H * health_fraction)
                local health_position = math.floor((box.Y + box.H) - health_size)
 
                info["health_bar_boost"].Position = Vector2.new(box.X - 5, health_position)
                info["health_bar_boost"].Size = Vector2.new(2, health_size)
                info["health_bar_boost"].Transparency = -(flags["visuals_health_bars_boost_color"].transparency) + 1
                info["health_bar_boost"].Color = flags["visuals_health_bars_boost_color"].color
                info["health_bar_boost"].Visible = true
 
                if (stats.Health.Bonus.Value > 1) then
                    if (flags["visuals_health_bar_text"]) then
                        info["health_bar_text"].Position = Vector2.new(box.X - 7 - info["health_bar_text"].TextBounds.X, health_position - info["health_bar_text"].TextBounds.Y / 2)
                        info["health_bar_text"].Color = Color3.new(255, 255, 255)
                        info["health_bar_text"].OutlineColor = flags["visuals_health_bar_text_color"].color
                        info["health_bar_text"].Transparency = -(flags["visuals_health_bar_text_color"].transparency) + 1
                        info["health_bar_text"].Text = tostring(math.ceil(stats.Health.Base.Value + stats.Health.Bonus.Value))
                        info["health_bar_text"].Visible = true
                    else
                        info["health_bar_text"].Visible = false
                    end
                else
                    if (stats.Health.Base.Value > 90) then
                        info["health_bar_text"].Visible = false
                    end
                end
            else
                if (info["health_bar_boost"]) then
                    info["health_bar_boost"].Visible = false
                end
            end
 
            if (flags["visuals_names"]) then
                info["name"].Position = Vector2.new(box.X + (box.W / 2), box.Y - 5 - info["name"].TextBounds.Y)
                info["name"].OutlineColor = flags["visuals_names_color"].color
                info["name"].Transparency = -(flags["visuals_names_color"].transparency) + 1
                info["name"].Text = (flags["visuals_display_names"] and player.DisplayName) or player.Name
                info["name"].Visible = true
            else
                if (info["name"]) then
                    info["name"].Visible = false
                end
            end
 
            local bottom_offset = 0
 
            if (flags["visuals_active_weapon"]) then
                local weapon = player.Character.Animator.EquippedItem.ItemName.Value ~= "" and player.Character.Animator.EquippedItem.ItemName.Value or "Hands"
 
                info["active_weapon"].Position = Vector2.new(box.X + (box.W / 2), box.Y + box.H + 3 + bottom_offset)
                info["active_weapon"].OutlineColor = flags["visuals_active_weapon_color"].color
                info["active_weapon"].Transparency = -(flags["visuals_active_weapon_color"].transparency) + 1
                info["active_weapon"].Text = weapon
                info["active_weapon"].Visible = true
 
                bottom_offset += info["active_weapon"].TextBounds.Y + 3
            else
                if (info["active_weapon"]) then
                    info["active_weapon"].Visible = false
                end
            end
 
            if (flags["visuals_view_tracer"]) then
                local camera_direction = player.Character.Head.CFrame.lookVector * flags["visuals_view_tracer_length"]
 
                local parameters = RaycastParams.new()
 
                parameters.FilterDescendantsInstances = {current_camera, local_player.Character}
                parameters.FilterType = Enum.RaycastFilterType.Blacklist
 
                local result = game:GetService("Workspace"):Raycast(player.Character.Head.Position, camera_direction, parameters)
 
                if (result) then
                    local head_position, visible = current_camera:WorldToViewportPoint(player.Character.Head.Position)
                    local hit_position, visible_hit = current_camera:WorldToViewportPoint(result.Position)
 
                    if (not visible or not visible_hit) then
                        info["view_tracer"].Visible = false
                    else
                        info["view_tracer"].From = Vector2.new(head_position.X, head_position.Y)
                        info["view_tracer"].To = Vector2.new(hit_position.X, hit_position.Y)
 
                        info["view_tracer"].Color = flags["visuals_view_tracer_color"].color
                        info["view_tracer"].Transparency = -(flags["visuals_view_tracer_color"].transparency) + 1
                        info["view_tracer"].Visible = true
                    end
                else
                    local head_position, visible = current_camera:WorldToViewportPoint(player.Character.Head.Position)
                    local hit_position, visible_hit = current_camera:WorldToViewportPoint(player.Character.Head.Position + camera_direction)
 
                    if (not visible or not visible_hit) then
                        info["view_tracer"].Visible = false
                    else
                        info["view_tracer"].From = Vector2.new(head_position.X, head_position.Y)
                        info["view_tracer"].To = Vector2.new(hit_position.X, hit_position.Y)
 
                        info["view_tracer"].Color = flags["visuals_view_tracer_color"].color
                        info["view_tracer"].Transparency = -(flags["visuals_view_tracer_color"].transparency) + 1
                        info["view_tracer"].Visible = true
                    end
                end
            else
            if (info["view_tracer"]) then
                    info["view_tracer"].Visible = false
                end
            end
 
            if (flags["visuals_distance"]) then
                local localization_division = {
                    ["Roblox"] = 1,
                    ["Imperial"] = 3.265, -- Really rough estimate
                    ["Metric"] = 3.333 -- Rough estimate
                }
 
                local localization_suffix = {
                    ["Roblox"] = "s",
                    ["Imperial"] = "y",
                    ["Metric"] = "m"
                }
 
                local distance = math.floor((player.Character.HumanoidRootPart.Position - local_player.Character.HumanoidRootPart.Position).Magnitude / localization_division[flags["visuals_preferred_measurement"]])
 
                info["distance"].Position = Vector2.new(box.X + (box.W / 2), box.Y + box.H + 3 + bottom_offset)
                info["distance"].OutlineColor = flags["visuals_distance_color"].color
                info["distance"].Transparency = -(flags["visuals_distance_color"].transparency) + 1
                info["distance"].Text = "["..tostring(distance).. localization_suffix[flags["visuals_preferred_measurement"]].."]"
                info["distance"].Visible = true
 
                bottom_offset += info["distance"].TextBounds.Y + 3
            else
                if (info["distance"]) then
                    info["distance"].Visible = false
                end
            end
 
            if (flags["visuals_skeletons"]) then
                for _, part in next, character:GetChildren() do
                    local parent_part = skeleton_order[part.Name]
 
                    if (not parent_part) then continue end
 
                    local part_position, on_screen_start = current_camera:WorldToViewportPoint(part.Position)
                    local parent_part_position, on_screen_end = current_camera:WorldToViewportPoint(character:FindFirstChild(parent_part).Position)
 
                    info["skeleton_".. part.Name].From = Vector2.new(part_position.X, part_position.Y)
                    info["skeleton_".. part.Name].To = Vector2.new(parent_part_position.X, parent_part_position.Y)
 
                    info["skeleton_".. part.Name].Color = flags["visuals_skeletons_color"].color
                    info["skeleton_".. part.Name].Transparency = -(flags["visuals_skeletons_color"].transparency) + 1
 
                    info["skeleton_".. part.Name].Visible = true
                end
            else
                for required, _ in next, skeleton_order do
                    if (info["skeleton_".. required]) then
                        info["skeleton_".. required].Visible = false
                    end
                end
            end
 
            if (info["oof_arrow"]) then
                info["oof_arrow"].Visible = false
            end
 
            if (info["oof_arrow_outside"]) then
                info["oof_arrow_outside"].Visible = false
            end
        else
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            if (flags["visuals_oof_arrows"]) then
                local fix_ratio = 450 / flags["visuals_oof_arrows_radius"]
 
                local relative = current_camera.CFrame:PointToObjectSpace(player.Character.HumanoidRootPart.Position)
                local middle = current_camera.ViewportSize / 2
 
                local degree = math.deg(math.atan2(-relative.Y, relative.X)) * math.pi / 180
 
                local end_pos = middle + (Vector2.new(math.cos(degree), math.sin(degree))) * flags["visuals_oof_arrows_radius"]
                local end_pos_a = middle + (Vector2.new(math.cos(degree + math.rad(2 * fix_ratio)), math.sin(degree + math.rad(2 * fix_ratio)))) * flags["visuals_oof_arrows_radius"]
                local end_pos_c = middle + (Vector2.new(math.cos(degree - math.rad(2 * fix_ratio)), math.sin(degree - math.rad(2 * fix_ratio)))) * flags["visuals_oof_arrows_radius"]
 
                local difference = middle - end_pos
 
                info["oof_arrow"].PointA = end_pos_a
                info["oof_arrow"].PointB = end_pos + (-difference.Unit * 15)
                info["oof_arrow"].PointC = end_pos_c
 
                info["oof_arrow"].Visible = true
                info["oof_arrow"].Color = flags["visuals_oof_arrows_color"].color
                info["oof_arrow"].Transparency = -(flags["visuals_oof_arrows_color"].transparency) + 1
 
                info["oof_arrow_outside"].PointA = end_pos_a
                info["oof_arrow_outside"].PointB = end_pos + (-difference.Unit * 16)
                info["oof_arrow_outside"].PointC = end_pos_c
 
                info["oof_arrow_outside"].Visible = true
                info["oof_arrow_outside"].Color = Color3.new(0, 0, 0)
                info["oof_arrow_outside"].Transparency = -(flags["visuals_oof_arrows_color"].transparency) + 1
            end
        end
    end
 
    for player, _ in next, cheat.visuals.info do
        if (not game:GetService("Players"):FindFirstChild(player)) then
            for _, object in next, cheat.visuals.info[player] do
                object:Remove()
            end
 
            cheat.visuals.info[player] = nil
        end
    end
end)
 
cheat:render_stepped(1, function(delta)
    for _, zombie in next, game:GetService("Workspace").Zombies.Mobs:GetChildren() do
        local info = cheat.visuals.zombies[zombie.Name]
 
        if (not zombie:FindFirstChild("HumanoidRootPart")) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not local_player.Character) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if ((zombie.HumanoidRootPart.Position - local_player.Character.HumanoidRootPart.Position).Magnitude > flags["visuals_boss_max_distance"]) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        -- HACK: What the fuck
        local box = calculate_box({["Character"] = zombie})
 
        if ((not flags["visuals_enabled"] and not flags["visuals_enabled_toggle"].state) or not box) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not zombie:FindFirstChild("Equipment")) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (#zombie.Equipment:GetChildren() == 0) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        local found_gun = false
 
        for _, child in next, zombie.Equipment:GetChildren() do
            if (child.Name:find("Firearm")) then
                found_gun = true
                break
            end
        end
 
        if (not found_gun) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not info) then
            cheat.visuals.zombies[zombie.Name] = {}
 
            cheat.visuals.zombies[zombie.Name]["box_outside"] = cheat.draw("Square", {
                Color = Color3.new(0, 0, 0),
                Thickness = 1,
                Transparency = math.clamp(1 - 0.5, 0, 1),
                Filled = false
            })
 
            cheat.visuals.zombies[zombie.Name]["box"] = cheat.draw("Square", {
                Color = flags["visuals_boss_boxes_color"].color,
                Thickness = 1,
                Transparency = 1,
                Filled = false
            })
 
            cheat.visuals.zombies[zombie.Name]["box_inside"] = cheat.draw("Square", {
                Color = Color3.new(0, 0, 0),
                Thickness = 1,
                Transparency = math.clamp(-(flags["visuals_boss_boxes_color"].transparency) + 1 - 0.5, 0, 1),
                Filled = false
            })
 
            cheat.visuals.zombies[zombie.Name]["name"] = cheat.draw("Text", {
                Color = Color3.new(1, 1, 1),
                OutlineColor = flags["visuals_boss_names_color"].color,
                Center = true,
                Outline = true,
                Size = 13,
                Transparency = -(flags["visuals_boss_names_color"].transparency) + 1,
                Font = 2
            })
 
            info = cheat.visuals.zombies[zombie.Name]
        end
 
        if (flags["visuals_boss_boxes"]) then
            info["box_outside"].Position = Vector2.new(box.X - 1, box.Y - 1)
            info["box_outside"].Size = Vector2.new(box.W + 2, box.H + 2)
            info["box_outside"].Transparency = math.clamp(-(flags["visuals_boss_boxes_color"].transparency) + 1 - 0.5, 0, 1)
            info["box_outside"].Visible = true
 
            info["box"].Position = Vector2.new(box.X, box.Y)
            info["box"].Size = Vector2.new(box.W, box.H)
            info["box"].Transparency = -(flags["visuals_boss_boxes_color"].transparency) + 1
            info["box"].Color = flags["visuals_boss_boxes_color"].color
            info["box"].Visible = true
 
            info["box_inside"].Position = Vector2.new(box.X + 1, box.Y + 1)
            info["box_inside"].Size = Vector2.new(box.W - 2, box.H - 2)
            info["box_inside"].Transparency = math.clamp(-(flags["visuals_boss_boxes_color"].transparency) + 1 - 0.5, 0, 1)
            info["box_inside"].Visible = true
        else
            if (info["box"]) then
                info["box"].Visible = false
            end
 
            if (info["box_inside"]) then
                info["box_inside"].Visible = false
            end
 
            if (info["box_outside"]) then
                info["box_outside"].Visible = false
            end
        end
 
        if (flags["visuals_boss_names"]) then
            info["name"].Position = Vector2.new(box.X + (box.W / 2), box.Y - 5 - info["name"].TextBounds.Y)
            info["name"].OutlineColor = flags["visuals_boss_names_color"].color
            info["name"].Transparency = -(flags["visuals_boss_names_color"].transparency) + 1
            info["name"].Text = zombie.Name
            info["name"].Visible = true
        else
            if (info["name"]) then
                info["name"].Visible = false
            end
        end
    end
 
    for zombie, _ in next, cheat.visuals.zombies do
        if (not game:GetService("Workspace").Zombies.Mobs:FindFirstChild(zombie)) then
            for _, object in next, cheat.visuals.zombies[zombie] do
                object:Remove()
            end
 
            cheat.visuals.zombies[zombie] = nil
        end
    end
end)
 
cheat:render_stepped(1, function(delta)
    for _, event in next, game:GetService("Workspace").Map.Shared.Randoms:GetChildren() do
        local info = cheat.visuals.events[event.Name]
 
        if (not event:IsA("CFrameValue")) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not local_player.Character) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if ((event.Value.Position - local_player.Character.HumanoidRootPart.Position).Magnitude > flags["visuals_event_max_distance"]) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if ((not flags["visuals_enabled"] and not flags["visuals_enabled_toggle"].state)) then
            if (info) then
                for _, object in next, info do
                    object.Visible = false
                end
            end
 
            continue
        end
 
        if (not info) then
            cheat.visuals.events[event.Name] = {}
 
            cheat.visuals.events[event.Name]["name"] = cheat.draw("Text", {
                Color = Color3.new(1, 1, 1),
                OutlineColor = flags["visuals_event_names_color"].color,
                Center = true,
                Outline = true,
                Size = 13,
                Transparency = -(flags["visuals_event_names_color"].transparency) + 1,
                Font = 2
            })
 
            info = cheat.visuals.events[event.Name]
        end
 
        local event_w2s, on_screen = current_camera:WorldToViewportPoint(event.Value.Position)
 
        if (flags["visuals_event_names"] and on_screen) then
            info["name"].Position = Vector2.new(event_w2s.X, event_w2s.Y - 5 - info["name"].TextBounds.Y)
            info["name"].OutlineColor = flags["visuals_event_names_color"].color
            info["name"].Transparency = -(flags["visuals_event_names_color"].transparency) + 1
            info["name"].Text = event.Name:gsub("%u", function(c, ...) return " " .. c end):sub(2, -3)
            info["name"].Visible = true
        else
            if (info["name"]) then
                info["name"].Visible = false
            end
        end
    end
 
    for event, _ in next, cheat.visuals.events do
        if (not game:GetService("Workspace").Map.Shared.Randoms:FindFirstChild(event)) then
            for _, object in next, cheat.visuals.events[event] do
                object:Remove()
            end
 
            cheat.visuals.events[event] = nil
        end
    end
end)
 
cheat:render_stepped(2, function(delta)
    local screen_size = current_camera.ViewportSize
    local info = cheat.visuals["self"]
 
    if (not info) then
        cheat.visuals["self"] = {
            ["mouse_fov"] = cheat.draw("Circle", {
                Color = flags["visuals_mouse_fov_color"].color,
                Thickness = 1,
                Transparency = -(flags["visuals_mouse_fov_color"].transparency) + 1,
                Filled = false,
                NumSides = 50,
            }),
 
            ["silent_fov"] = cheat.draw("Circle", {
                Color = flags["visuals_silent_fov_color"].color,
                Thickness = 1,
                Transparency = -(flags["visuals_silent_fov_color"].transparency) + 1,
                Filled = false,
                NumSides = 50,
            }),
 
            ["crosshair_outline"] = {
                ["path_1"] = cheat.draw("Line", {
                    Color = Color3.new(0, 0, 0),
                    Thickness = 3,
                    Transparency = math.clamp(-(flags["visuals_crosshair_color"].transparency) + 1 - 0.5, 0, 1),
                    ZIndex = 1,
                }),
 
                ["path_2"] = cheat.draw("Line", {
                    Color = Color3.new(0, 0, 0),
                    Thickness = 3,
                    Transparency = math.clamp(-(flags["visuals_crosshair_color"].transparency) + 1 - 0.5, 0, 1),
                    ZIndex = 1,
                })
            },
 
            ["crosshair"] = {
                ["path_1"] = cheat.draw("Line", {
                    Color = flags["visuals_crosshair_color"].color,
                    Thickness = 1,
                    Transparency = -(flags["visuals_crosshair_color"].transparency) + 1,
                    ZIndex = 2,
                }),
 
                ["path_2"] = cheat.draw("Line", {
                    Color = flags["visuals_crosshair_color"].color,
                    Thickness = 1,
                    Transparency = -(flags["visuals_crosshair_color"].transparency) + 1,
                    ZIndex = 2,
                })
            },
        }
 
        info = cheat.visuals["self"]
    end
 
    if (not flags["visuals_enabled"]) then
        if (info["mouse_fov"]) then
            info["mouse_fov"].Visible = false
        end
 
        if (info["silent_fov"]) then
            info["silent_fov"].Visible = false
        end
 
        if (info["crosshair"]) then
            info["crosshair"]["path_1"].Visible = false
            info["crosshair"]["path_2"].Visible = false
 
            info["crosshair_outline"]["path_1"].Visible = false
            info["crosshair_outline"]["path_2"].Visible = false
        end
 
        return
    end
 
    if (flags["visuals_mouse_fov"]) then
        info["mouse_fov"].Visible = true
        info["mouse_fov"].Position = screen_size / 2
        --current_camera.FieldOfView
        info["mouse_fov"].Radius = (math.tan(math.rad(flags["aimbot_mouse_fov"])) / math.tan(math.rad(70)) * screen_size.X) * (70 / current_camera.FieldOfView)
        info["mouse_fov"].Color = flags["visuals_mouse_fov_color"].color
        info["mouse_fov"].Transparency = -(flags["visuals_mouse_fov_color"].transparency) + 1
    else
        if (info["mouse_fov"]) then
            info["mouse_fov"].Visible = false
        end
    end
 
    if (flags["visuals_crosshair"]) then
        local function solve_path_1(t)
            return Vector2.new(screen_size.X / 2, screen_size.Y / 2) + Vector2.new(math.sin(t) * flags["visuals_crosshair_width"], math.cos(t) * flags["visuals_crosshair_width"])
        end
 
        local function solve_path_2(t)
            return Vector2.new(screen_size.X / 2, screen_size.Y / 2) + Vector2.new(-math.sin(t) * flags["visuals_crosshair_width"], -math.cos(t) * flags["visuals_crosshair_width"])
        end
 
        local function solve_path_3(t)
            return Vector2.new(screen_size.X / 2, screen_size.Y / 2) + Vector2.new(math.sin(t + math.rad(90)) * flags["visuals_crosshair_width"], math.cos(t + math.rad(90)) * flags["visuals_crosshair_width"])
        end
 
        local function solve_path_4(t)
            return Vector2.new(screen_size.X / 2, screen_size.Y / 2) + Vector2.new(-math.sin(t + math.rad(90)) * flags["visuals_crosshair_width"], -math.cos(t + math.rad(90)) * flags["visuals_crosshair_width"])
        end
 
        local current_rotation = not flags["visuals_crosshair_rotate"] and 0 or tick() * 1000 / 1000
 
        info["crosshair"]["path_1"].Visible = true
        info["crosshair"]["path_1"].From = solve_path_1(current_rotation)
        info["crosshair"]["path_1"].To = solve_path_2(current_rotation)
        info["crosshair"]["path_1"].Color = flags["visuals_crosshair_color"].color
        info["crosshair"]["path_1"].Transparency = -(flags["visuals_crosshair_color"].transparency) + 1
 
        info["crosshair"]["path_2"].Visible = true
        info["crosshair"]["path_2"].From = solve_path_3(current_rotation)
        info["crosshair"]["path_2"].To = solve_path_4(current_rotation)
        info["crosshair"]["path_2"].Color = flags["visuals_crosshair_color"].color
        info["crosshair"]["path_2"].Transparency = -(flags["visuals_crosshair_color"].transparency) + 1
 
        info["crosshair_outline"]["path_1"].Visible = true
        info["crosshair_outline"]["path_1"].From = solve_path_1(current_rotation)
        info["crosshair_outline"]["path_1"].To = solve_path_2(current_rotation)
        info["crosshair_outline"]["path_1"].Color = Color3.new(0, 0, 0)
        info["crosshair_outline"]["path_1"].Transparency = math.clamp(-(flags["visuals_crosshair_color"].transparency) + 1 - 0.5, 0, 1)
 
        info["crosshair_outline"]["path_2"].Visible = true
        info["crosshair_outline"]["path_2"].From = solve_path_3(current_rotation)
        info["crosshair_outline"]["path_2"].To = solve_path_4(current_rotation)
        info["crosshair_outline"]["path_2"].Color = Color3.new(0, 0, 0)
        info["crosshair_outline"]["path_2"].Transparency = math.clamp(-(flags["visuals_crosshair_color"].transparency) + 1 - 0.5, 0, 1)
    else
        if (info["crosshair"]) then
            info["crosshair"]["path_1"].Visible = false
            info["crosshair"]["path_2"].Visible = false
 
            info["crosshair_outline"]["path_1"].Visible = false
            info["crosshair_outline"]["path_2"].Visible = false
        end
    end
 
    if (flags["visuals_silent_fov"]) then
        info["silent_fov"].Visible = true
        info["silent_fov"].Position = screen_size / 2
        info["silent_fov"].Radius = (math.tan(math.rad(flags["aimbot_silent_fov"])) / math.tan(math.rad(70)) * screen_size.X) * (70 / current_camera.FieldOfView)
        info["silent_fov"].Color = flags["visuals_silent_fov_color"].color
        info["silent_fov"].Transparency = -(flags["visuals_silent_fov_color"].transparency) + 1
    else
        if (info["silent_fov"]) then
            info["silent_fov"].Visible = false
        end
    end
end)
 
cheat:heart_beat(function(delta)
    for _, player in next, game:GetService("Players"):GetPlayers() do
        local info = cheat.visuals.chams[player.Name]
 
        if (player == local_player) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
        if (not player.Character) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
        local character = player.Character
 
        if (not local_player.Character) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
 
        if (squad_list[player.Name]) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
        if (not character:FindFirstChild("HumanoidRootPart") or not local_player.Character:FindFirstChild("HumanoidRootPart")) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
        if (not flags["visuals_enabled"]) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
        if ((character.HumanoidRootPart.Position - local_player.Character.HumanoidRootPart.Position).Magnitude > flags["visuals_player_max_distance"]) then
            if (info) then
                for _, object in next, info do
                    object:Destroy()
                end
 
                cheat.visuals.chams[player.Name] = nil
            end
 
            continue
        end
 
        if (not info) then
            cheat.visuals.chams[player.Name] = {}
 
            cheat.visuals.chams[player.Name]["highlight"] = Instance.new("Highlight", character)
            cheat.visuals.chams[player.Name]["highlight"].Name = "🐛"
            cheat.visuals.chams[player.Name]["highlight"].FillTransparency = 0.55 -- Perfect ratio between transparency and color
            cheat.visuals.chams[player.Name]["highlight"].Adornee = character
            cheat.visuals.chams[player.Name]["highlight"].Enabled = false
 
            info = cheat.visuals.chams[player.Name]
        end
 
        local camera_direction = (character.HumanoidRootPart.Position - current_camera.CFrame.Position)
 
        local parameters = RaycastParams.new()
 
        parameters.FilterDescendantsInstances = {current_camera, local_player.Character}
        parameters.FilterType = Enum.RaycastFilterType.Blacklist
 
        local result = game:GetService("Workspace"):Raycast(current_camera.CFrame.Position, camera_direction, parameters)
 
        if (flags["visuals_visible_chams"] and result and result.Instance and result.Instance:IsDescendantOf(character)) then
            for _, object in next, info do
                if (object:IsA("Highlight")) then
                    object.Enabled = true
 
                    object.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
                    object.FillColor = flags["visuals_visible_chams_color"].color
                    object.FillTransparency = flags["visuals_visible_chams_color"].transparency
                    object.OutlineColor = flags["visuals_outline_chams_color"].color
                    object.OutlineTransparency = (flags["visuals_outline_chams"] and flags["visuals_outline_chams_color"].transparency) or 1
                end
            end
 
            continue
        end
 
        if (flags["visuals_occluded_chams"]) then
            for _, object in next, info do
                if (object:IsA("Highlight")) then
                    object.Enabled = true
 
                    object.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
                    object.FillColor = flags["visuals_occluded_chams_color"].color
                    object.FillTransparency = flags["visuals_occluded_chams_color"].transparency
                    object.OutlineColor = flags["visuals_outline_chams_color"].color
                    object.OutlineTransparency = (flags["visuals_outline_chams"] and flags["visuals_outline_chams_color"].transparency) or 1
                end
            end
 
            continue
        end
 
        for _, object in next, info do
            if (object:IsA("Highlight")) then
                object.Enabled = false
            end
        end
    end
 
    for player, _ in next, cheat.visuals.chams do
        if (not game:GetService("Players"):FindFirstChild(player)) then
            for _, object in next, cheat.visuals.chams[player] do
                object:Destroy()
            end
 
            cheat.visuals.chams[player] = nil
        end
    end
end)
 
cheat:heart_beat(function(delta)
    local texture_map = {
        ["Lightning"] = "rbxassetid://446111271",
        ["Smoke"] = "rbxassetid://3517446796"
    }
 
    for timestamp, tracer in next, cheat.visuals.tracers do
        if (not tracer.object) then
            if (not game:GetService("Workspace"):FindFirstChild("Beams")) then
                local beams = Instance.new("Folder", game:GetService("Workspace"))
                beams.Name = "Beams"
            end
 
            tracer.object = Instance.new("Part", game:GetService("Workspace")["Beams"])
            tracer.object.Name = "🐛"
            tracer.object.Anchored = true
            tracer.object.Size = Vector3.new(0.1, 0.1, (tracer["end"] - tracer["start"]).Magnitude)
            tracer.object.CFrame = CFrame.lookAt(tracer["start"], tracer["end"]) + (tracer["end"] - tracer["start"]) / 2
            tracer.object.Transparency = 1
            tracer.object.CanCollide = false
 
            local attachment_1 = Instance.new("Attachment", tracer.object)
            attachment_1.Name = "🐛_1"
            attachment_1.Position = Vector3.new(0, 0, -tracer.object.Size.Z / 2)
 
            local attachment_2 = Instance.new("Attachment", tracer.object)
            attachment_2.Name = "🐛_2"
            attachment_2.Position = Vector3.new(0, 0, tracer.object.Size.Z / 2)
 
            local beam = Instance.new("Beam", tracer.object)
            beam.Name = "🐛"
            beam.Attachment0 = attachment_1
            beam.Attachment1 = attachment_2
            beam.FaceCamera = flags["visuals_bullet_tracers_face_camera"]
            beam.Brightness = 1
            beam.LightEmission = 1
            beam.LightInfluence = 0
            beam.Texture = texture_map[flags["visuals_bullet_tracers_texture"]]
            beam.TextureLength = 1
            beam.TextureMode = Enum.TextureMode.Stretch
            beam.TextureSpeed = 0.7
            beam.Transparency = NumberSequence.new({
                NumberSequenceKeypoint.new(0, 1),
                NumberSequenceKeypoint.new(0.1, 0),
                NumberSequenceKeypoint.new(0.9, 0),
                NumberSequenceKeypoint.new(1, 1)
            })
            beam.Width0 = flags["visuals_bullet_tracers_thickness"] / 10
            beam.Width1 = flags["visuals_bullet_tracers_thickness"] / 10
 
            beam.Color = ColorSequence.new(flags["visuals_bullet_tracers_color"].color)
            beam.Brightness = 1
        end
 
        if (os.clock() - timestamp > 3) then
            tracer.object:Destroy()
 
            cheat.visuals.tracers[timestamp] = nil
 
            continue
        end
 
        if (not flags["visuals_bullet_tracers"] or not flags["visuals_enabled"]) then
            tracer.object:Destroy()
 
            cheat.visuals.tracers[timestamp] = nil
 
            continue
        end
 
        tracer.object:FindFirstChild("🐛").Width0 = flags["visuals_bullet_tracers_thickness"]
        tracer.object:FindFirstChild("🐛").Width1 = flags["visuals_bullet_tracers_thickness"]
 
        tracer.object:FindFirstChild("🐛").Color = ColorSequence.new(flags["visuals_bullet_tracers_color"].color)
        tracer.object:FindFirstChild("🐛").Brightness = (-(flags["visuals_bullet_tracers_color"].transparency) + 1) * 2
        tracer.object:FindFirstChild("🐛").Texture = texture_map[flags["visuals_bullet_tracers_texture"]]
 
    end
end)
 
cheat:heart_beat(function(delta)
    local function find_target()
        local closest_fov = math.huge
        local closest_player = nil
 
        for _, player in next, game:GetService("Players"):GetPlayers() do
            if (player == local_player) then continue end
 
            if (not player.Character) then continue end
            if (not local_player.Character) then continue end
            if (not player.Character:FindFirstChild("HumanoidRootPart")) then continue end
 
            if (flags["aimbot_player_max_distance"] < (player.Character.HumanoidRootPart.Position - local_player.Character.HumanoidRootPart.Position).Magnitude) then
                continue
            end
 
            local fov = (math.deg(math.acos(current_camera.CFrame.LookVector:Dot((player.Character.HumanoidRootPart.Position - current_camera.CFrame.Position).Unit))))
 
            if (fov < closest_fov) then
                closest_fov = fov
                closest_player = player
            end
        end
 
        return closest_player, closest_fov
    end
 
    local function find_hitbox(player, max_fov)
        local fixed_names = {
            ["LeftFoot"] = "Legs",
            ["LeftLowerLeg"] = "Legs",
            ["LeftUpperLeg"] = "Legs",
 
            ["RightFoot"] = "Legs",
            ["RightLowerLeg"] = "Legs",
            ["RightUpperLeg"] = "Legs",
 
            ["LeftHand"] = "Arms",
            ["LeftLowerArm"] = "Arms",
            ["LeftUpperArm"] = "Arms",
 
            ["RightHand"] = "Arms",
            ["RightLowerArm"] = "Arms",
            ["RightUpperArm"] = "Arms",
 
            ["LowerTorso"] = "Torso",
            ["UpperTorso"] = "Torso",
 
            ["Head"] = "Head"
        }
 
        local closest_fov = max_fov
        local closest_hitbox = nil
 
        for _, hitbox in next, player.Character:GetChildren() do
            if (fixed_names[hitbox.Name] and table.find(flags["aimbot_hitboxes"], fixed_names[hitbox.Name])) then
                local fov = math.deg(math.acos(current_camera.CFrame.LookVector:Dot((hitbox.Position - current_camera.CFrame.Position).Unit)))
 
                if (fov < closest_fov) then
                    closest_fov = fov
                    closest_hitbox = hitbox
                end
            end
        end
 
        return closest_hitbox
    end
 
    if (not flags["aimbot_enabled"]) then return end
    if (not local_player.Character) then return end
 
    local player_children = local_player.Character.Equipped:GetChildren()
 
    if (#player_children < 1) then return end
 
    local closest_player, closest_fov = find_target()
    local gun_info = modules.item_data[player_children[1].Name:gsub("Mod%d+", "")]
 
    if (not gun_info) then
        error("[Aimbot] Gun not found: " .. player_children[1])
        cheat.aimbot.silent_angle = nil
 
        return
    end
 
    if (not player_children[1]:FindFirstChild("Muzzle")) then
        cheat.aimbot.silent_angle = nil
 
        return
    end
 
    if (not closest_player) then
        cheat.aimbot.silent_angle = nil
 
        return
    end
 
    if (squad_list[closest_player.Name]) then
        cheat.aimbot.silent_angle = nil
 
        return
    end
 
    local screen_center = current_camera.ViewportSize / 2
 
    if (not cheat.aimbot.info[closest_player.Name]) then
        cheat.aimbot.info[closest_player.Name] = {
           last_position = closest_player.Character.HumanoidRootPart.Position
        }
 
        cheat.aimbot.silent_angle = nil
 
        return
    end
 
    local player_origin = closest_player.Character.HumanoidRootPart.Position
 
    if ((flags["aimbot_mouse_enabled"] or flags["aimbot_mouse_enabled_hold"].state) and closest_fov < flags["aimbot_mouse_fov"]) then
        if (cheat.aimbot.last_target == closest_player.Name and cheat.aimbot.progress < 1) then
            cheat.aimbot.progress += delta / (flags["aimbot_mouse_smoothing"] + math.random(0, flags["aimbot_mouse_jitter"] * 100) / 100)
        else
            cheat.aimbot.progress = 0
            cheat.aimbot.last_target = closest_player.Name
        end
 
        local origin = player_children[1].Muzzle.Position
        local part = find_hitbox(closest_player, flags["aimbot_mouse_fov"])
 
        if (part) then
            local time_to_hit = physics.time_to_hit(part.Position, gun_info.FireConfig.MuzzleVelocity, origin, -(game:GetService("Workspace").Gravity / 2))
            local velocity = (player_origin - cheat.aimbot.info[closest_player.Name].last_position) * (1 / delta)
            local target = part.Position + (velocity * time_to_hit)
 
            local delta_time_to_hit = physics.time_to_hit(target, gun_info.FireConfig.MuzzleVelocity, origin, -(game:GetService("Workspace").Gravity / 2))
            local delta_velocity = (player_origin - cheat.aimbot.info[closest_player.Name].last_position) * (1 / delta_time_to_hit)
            local delta_target = part.Position + (delta_velocity * delta_time_to_hit)
 
            local curve = physics.trajectory(origin, Vector3.new(), Vector3.new(0, -(game:GetService("Workspace").Gravity / 2), 0), delta_target, Vector3.new(), Vector3.new(), gun_info.FireConfig.MuzzleVelocity)
 
            if (curve) then
                local predicited_position = origin + curve
                local w2s = current_camera:WorldToViewportPoint(predicited_position)
 
                mousemoverel(((w2s.X - screen_center.X) / 2) * cheat.bezier(0, 1.1, 1, 1, cheat.aimbot.progress), ((w2s.Y - screen_center.Y) / 2) * cheat.bezier(0, 1.1, 1, 1, cheat.aimbot.progress))
            end
        end
    else
        cheat.aimbot.progress = 0
    end
 
    if ((flags["aimbot_silent_enabled"] or flags["aimbot_silent_enabled_hold"].state) and closest_fov < flags["aimbot_silent_fov"]) then
        if (flags["aimbot_silent_hitchance"] < math.random(0, 100)) then
            cheat.aimbot.silent_angle = nil
 
            return
        end
 
        local origin = player_children[1].Muzzle.Position
 
        local part = find_hitbox(closest_player, flags["aimbot_silent_fov"])
 
        if (flags["aimbot_silent_magic_bullets"] or flags["aimbot_silent_magic_bullets_hold"].state) then
            origin += player_children[1].Muzzle.CFrame.LookVector * math.clamp((player_children[1].Muzzle.Position - closest_player.Character.HumanoidRootPart.Position).Magnitude, 0, flags["aimbot_silent_magic_bullet_depth"])
 
            cheat.aimbot.silent_origin = origin
        else
            cheat.aimbot.silent_origin = nil
        end
 
        if (part) then
            local time_to_hit = physics.time_to_hit(part.Position, gun_info.FireConfig.MuzzleVelocity, origin, -(game:GetService("Workspace").Gravity / 2))
            local velocity = (player_origin - cheat.aimbot.info[closest_player.Name].last_position) * (1 / delta)
            local target = part.Position + (velocity * time_to_hit)
 
            local delta_time_to_hit = physics.time_to_hit(target, gun_info.FireConfig.MuzzleVelocity, origin, -(game:GetService("Workspace").Gravity / 2))
            local delta_velocity = (player_origin - cheat.aimbot.info[closest_player.Name].last_position) * (1 / delta_time_to_hit)
            local delta_target = part.Position + (delta_velocity * delta_time_to_hit)
 
            local curve = physics.trajectory(origin, Vector3.new(), Vector3.new(0, -(game:GetService("Workspace").Gravity / 2), 0), delta_target, Vector3.new(), Vector3.new(), gun_info.FireConfig.MuzzleVelocity)
 
            if (curve) then
                local current_spread = (math.random(0, -(flags["aimbot_silent_accuracy"]) + 100) / 100) * 5
 
                local predicited_position = origin + curve + Vector3.new(current_spread, current_spread, current_spread)
 
                cheat.aimbot.silent_angle = (predicited_position - origin).Unit
            else
                cheat.aimbot.silent_angle = nil
                cheat.aimbot.silent_origin = nil
            end
        else
            cheat.aimbot.silent_angle = nil
            cheat.aimbot.silent_origin = nil
        end
    else
        cheat.aimbot.silent_angle = nil
        cheat.aimbot.silent_origin = nil
    end
 
    cheat.aimbot.info[closest_player.Name].last_position = player_origin
end)
 
cheat:heart_beat(function(delta)
    setsimulationradius(math.huge)
 
    if (not flags["misc_enabled"]) then
        return
    end
 
    if (not local_player.Character) then
        return
    end
 
    if (not local_player.Character:FindFirstChild("HumanoidRootPart")) then
        return
    end
 
    local owned_zombies = {}
    local owned_bosses = {}
 
    for _, zombie in next, game:GetService("Workspace").Zombies.Mobs:GetChildren() do
        if (zombie.PrimaryPart and isnetworkowner(zombie.PrimaryPart)) then
            if (zombie:FindFirstChild("Equipment")) then
                local found_gun = false
 
                for _, child in next, zombie.Equipment:GetChildren() do
                    if (child.Name:find("Firearm")) then
                        found_gun = true
                        break
                    end
                end
 
                if (found_gun) then
                    owned_bosses[#owned_bosses + 1] = zombie
 
                    continue
                end
            end
 
            owned_zombies[#owned_zombies + 1] = zombie
        end
    end
 
    if (flags["misc_zombie_circle"]) then
        for i = 360 / #owned_zombies, 360, 360 / #owned_zombies do
            local current_rotation = math.rad((i + tick() * flags["misc_zombie_circle_speed"]) % 360)
 
            local x = local_player.Character.HumanoidRootPart.Position.X + math.cos(current_rotation) * flags["misc_zombie_circle_radius"]
            local z = local_player.Character.HumanoidRootPart.Position.Z + math.sin(current_rotation) * flags["misc_zombie_circle_radius"]
 
            local location = math.ceil(#owned_zombies * (i / 360))
 
            local zombie = owned_zombies[location]
 
            if (not zombie) then
                break
            end
 
            zombie.PrimaryPart.CFrame = CFrame.new(x, local_player.Character.HumanoidRootPart.Position.Y, z) * CFrame.Angles(0, 0, 0)
        end
    end
 
    for _, zombie in next, owned_zombies do
        if (flags["misc_zombie_remover"]) then
            if (flags["misc_zombie_remover_mode"] == "Delete") then
                zombie.PrimaryPart.CFrame = CFrame.new(0, -1000, 0)
            else
                local did_teleport = false
 
                repeat
                    local random_player = game:GetService("Players"):GetPlayers()[math.random(1, #game:GetService("Players"):GetPlayers())]
 
                    if (random_player ~= local_player and random_player.Character and random_player.Character:FindFirstChild("HumanoidRootPart") and not squad_list[random_player.Name]) then
                        zombie.PrimaryPart.CFrame = random_player.Character.HumanoidRootPart.CFrame
                        did_teleport = true
                    end
                until did_teleport
            end
        end
 
        zombie.HumanoidRootPart.Anchored = flags["misc_zombie_freezer"]
    end
 
    for _, boss in next, owned_bosses do
        boss.HumanoidRootPart.Anchored = flags["misc_boss_freezer"]
    end
end)
 
cheat:heart_beat(function(delta)
    if (not flags["misc_enabled"]) then
        return
    end
 
    if (not local_player.Character) then
        cheat.bypass = false
 
        return
    end
 
    if (not local_player.Character:FindFirstChild("HumanoidRootPart")) then
        cheat.bypass = false
 
        return
    end
 
    if (cheat.teleport_bypass) then
        local_player.Character.HumanoidRootPart.Velocity = Vector3.zero
    end
 
    if (flags["misc_fly"] or flags["misc_fly_toggle"].state) then
        cheat.bypass = true
 
        if (not cheat.bypass_ran) then
            return
        end
 
        local_player.Character.HumanoidRootPart.Velocity = Vector3.zero
 
        local is_key_down = game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.W) or game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.A) or game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.S) or game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.D)
 
        if (is_key_down) then
            local_player.Character.HumanoidRootPart.CFrame += Vector3.new(local_player.Character.Humanoid.MoveDirection.X * flags["misc_fly_speed"] * delta, current_camera.CFrame.LookVector.Y * (flags["misc_fly_speed"] / 2) * delta, local_player.Character.Humanoid.MoveDirection.Z * flags["misc_fly_speed"] * delta)
        end
    elseif (flags["misc_speed"] or flags["misc_speed_toggle"].state) then
        cheat.bypass = true
 
        if (not cheat.bypass_ran) then
            return
        end
 
        local_player.Character.HumanoidRootPart.Velocity *= Vector3.new(0, 1, 0)
 
        local is_key_down = game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.W) or game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.A) or game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.S) or game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.D)
 
        if (is_key_down) then
            local_player.Character.HumanoidRootPart.CFrame += Vector3.new(local_player.Character.Humanoid.MoveDirection.X * flags["misc_speed_velocity"] * delta, 0, local_player.Character.Humanoid.MoveDirection.Z * flags["misc_speed_velocity"] * delta)
        end
    else
        cheat.bypass = false
    end
end)
 
cheat:heart_beat(function(delta)
    if (not flags["visuals_enabled"]) then
        return
    end
 
    if (flags["misc_full_bright"]) then
        game:GetService("Lighting").ClockTime = 12
    end
end)
 
local rewrite_functions = {}
 
local function find_functions()
    -- 20 bajillion times faster than looping through all of gc.
    table.foreach(getupvalues(modules["bullets"]["Fire"]), function(_, func)
        if (typeof(func) ~= "function") then return end
 
        local info = getinfo(func).name
 
        if (info == "getSpredAngle") then
            rewrite_functions["get_spread_angle"] = func
        end
 
        if (info == "getSpreadVector") then
            rewrite_functions["get_spread_vector"] = func
        end
 
        if (info == "castLocalBullet") then
            rewrite_functions["cast_local_bullet"] = func
        end
 
        if (info == "getFireImpulse") then
            rewrite_functions["get_fire_impulse"] = func
        end
 
        if (info == "playShootSound") then
            rewrite_functions["play_shoot_sound"] = func
        end
 
        if (info == "impactEffects") then
            rewrite_functions["impact_effects"] = func
        end
 
        if (info == "drawTracerPath") then
            rewrite_functions["draw_tracer_path"] = func
        end
    end)
end
 
repeat
    find_functions()
    task.wait()
until rewrite_functions["get_spread_angle"] and rewrite_functions["get_spread_vector"] and rewrite_functions["cast_local_bullet"] and rewrite_functions["get_fire_impulse"] and rewrite_functions["play_shoot_sound"] and rewrite_functions["impact_effects"] and rewrite_functions["draw_tracer_path"]
 
getgenv().distance = 1
 
-- CENSORED 
 
cheat:detour("Send", modules["network"], function(original, self, event_name, ...)
    local arguments = {...}
 
    if (event_name == "Bullet Fired") then
        for _, bullet in next, (typeof(arguments[5]) == "table" and arguments[5]) or arguments[4] do
            cheat.visuals.tracers[os.clock()] = {
                ["start"] = arguments[2],
                ["end"] = bullet["Position"]
            }
        end
    end
 
    if (event_name == "Set Character State") then
        if (flags["misc_enabled"]) then
            if (arguments[1] == "Falling" and flags["misc_spoof_falling"]) then
                arguments[1] = "Sitting"
            end
 
            if ((arguments[1] == "Walking" or "Running" or "SprintSwimming") and flags["misc_spoof_status"]) then
                arguments[1] = "Sitting"
            end
 
            if (cheat.bypass or cheat.teleport_bypass) then
                arguments[1] = "Climbing"
            end
        end
    end
 
    local original_return = original(self, event_name, unpack(arguments))
 
    if (not flags["misc_jitter_fix"]) then
        if (event_name == "Set Character State" and cheat.bypass and arguments[1] == "Climbing") then
            cheat.bypass_ran = true
        elseif (arguments[1] ~= "Climbing") then
            cheat.bypass_ran = false
        end
    else
        cheat.bypass_ran = cheat.bypass
    end
 
    if (event_name == "Set Character State" and cheat.teleport_bypass and arguments[1] == "Climbing") then
        cheat.teleport_bypass_ran = true
    elseif (arguments[1] ~= "Climbing") then
        cheat.teleport_bypass_ran = false
    else
        cheat.teleport_bypass_ran = cheat.teleport_bypass
    end
 
    return original_return
end)

Pasted: Feb 28, 2023, 1:29:14 am
Views: 86