Description
sup happy halloween Made another script with the help of a jailbroken deepseek this time bc im too poor for grok. so basicly the anti cheat got upgraded alot for FS2 so silent aim no longer works so i decided meh why not make one for FS2 only to come to the discovery that silent aim is patched had to remake some thigns so yeah. It took me some more time but its works for a full and easier to decode version of this script go to this link- https://gist.github.com/ronocheat-prog/91c2dd470ab76f3c698bacaac3944c11 So happy halloween! and scripts should always be free and open source! or just be 3 steps ahead see you next time!
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players=game:GetService("Players")
local RunService=game:GetService("RunService")
local UserInputService=game:GetService("UserInputService")
local TweenService=game:GetService("TweenService")
local Stats=game:GetService("Stats")
local ReplicatedStorage=game:GetService("ReplicatedStorage")
local HttpService=game:GetService("HttpService")
local LocalPlayer=Players.LocalPlayer
local Camera=workspace.CurrentCamera
local PlayerGui=LocalPlayer:WaitForChild("PlayerGui")
local Themes={Default={Name="Default",BG_URL="",Panel=Color3.fromRGB(245,240,230),PanelTrans=0.55,AccentSoft=Color3.fromRGB(235,225,210),Cream=Color3.fromRGB(45,40,35),TextDim=Color3.fromRGB(90,80,70),ToggleOn=Color3.fromRGB(120,100,200),ToggleOff=Color3.fromRGB(230,220,205),Stroke=Color3.fromRGB(120,100,200),Gold=Color3.fromRGB(120,100,200)},BlackWhite={Name="Black and Dark White AGA",BG_URL="https://imagetourl.cloud/12arbvntdqct.jpg",Panel=Color3.fromRGB(38,36,40),PanelTrans=0.85,AccentSoft=Color3.fromRGB(72,70,78),Cream=Color3.fromRGB(220,218,222),TextDim=Color3.fromRGB(150,148,152),ToggleOn=Color3.fromRGB(180,178,182),ToggleOff=Color3.fromRGB(90,88,94),Stroke=Color3.fromRGB(150,148,152),Gold=Color3.fromRGB(230,228,232)},GoldWhite={Name="Gold and White SFW",BG_URL="https://imagetourl.cloud/zmigi20n9c7z.png",Panel=Color3.fromRGB(255,248,220),PanelTrans=0.85,AccentSoft=Color3.fromRGB(230,205,140),Cream=Color3.fromRGB(60,45,10),TextDim=Color3.fromRGB(140,115,60),ToggleOn=Color3.fromRGB(212,175,55),ToggleOff=Color3.fromRGB(240,225,170),Stroke=Color3.fromRGB(212,175,55),Gold=Color3.fromRGB(255,215,0)},YellowPink={Name="Yellow and Pink SFW",BG_URL="https://imagetourl.cloud/t3w18ko4fdct.jpg",Panel=Color3.fromRGB(250,243,210),PanelTrans=0.85,AccentSoft=Color3.fromRGB(245,200,120),Cream=Color3.fromRGB(60,30,45),TextDim=Color3.fromRGB(140,85,100),ToggleOn=Color3.fromRGB(200,45,115),ToggleOff=Color3.fromRGB(255,225,180),Stroke=Color3.fromRGB(200,45,115),Gold=Color3.fromRGB(240,190,40)},BrightYellow={Name="Bright White and Yellow SFW",BG_URL="https://imagetourl.cloud/752yaaowd70p.jpg",Panel=Color3.fromRGB(255,255,250),PanelTrans=0.85,AccentSoft=Color3.fromRGB(250,245,200),Cream=Color3.fromRGB(55,50,20),TextDim=Color3.fromRGB(130,120,70),ToggleOn=Color3.fromRGB(240,210,60),ToggleOff=Color3.fromRGB(255,250,220),Stroke=Color3.fromRGB(240,210,60),Gold=Color3.fromRGB(255,220,30)},DarkPurpleMagenta={Name="Dark Purple and Magenta SFW",BG_URL="https://imagetourl.cloud/c1x7da855k42.jpg",Panel=Color3.fromRGB(42,28,60),PanelTrans=0.85,AccentSoft=Color3.fromRGB(105,60,130),Cream=Color3.fromRGB(235,220,245),TextDim=Color3.fromRGB(175,145,195),ToggleOn=Color3.fromRGB(220,70,180),ToggleOff=Color3.fromRGB(90,55,120),Stroke=Color3.fromRGB(220,70,180),Gold=Color3.fromRGB(240,130,230)},WhitePinkish={Name="White and Pinkish SFW",BG_URL="https://imagetourl.cloud/5i8vvq20wcws.jpg",Panel=Color3.fromRGB(255,250,252),PanelTrans=0.85,AccentSoft=Color3.fromRGB(255,210,225),Cream=Color3.fromRGB(65,35,45),TextDim=Color3.fromRGB(160,110,125),ToggleOn=Color3.fromRGB(245,130,175),ToggleOff=Color3.fromRGB(255,230,240),Stroke=Color3.fromRGB(245,130,175),Gold=Color3.fromRGB(255,170,200)}}
local ThemeOrder={"Default","BlackWhite","GoldWhite","YellowPink","BrightYellow","DarkPurpleMagenta","WhitePinkish"}
local THEME={}
for k,v in pairs(Themes.Default) do THEME[k]=v end
local currentThemeKey="Default"
local isMobile=false
local isLite=false
local aimbotEnabled=false
local aimKey=Enum.KeyCode.Q
local toggleKey=Enum.KeyCode.K
local espKey=Enum.KeyCode.L
local wallKey=Enum.KeyCode.J
local aimTarget="Closest"
local noRecoil=false
local noSpread=false
local guiVisible=true
local toastsEnabled=true
local tooltipsEnabled=true
local debugEnabled=false
local aimSmooth=1
local wallCheck=false
local espEnabled=false
local hotkeyNotifsEnabled=true
local espShowHP=true
local espShowType=true
local espShowArmor=true
local espShowLevel=true
local espShowDistance=true
local threatAlertOn=false
local threatRange=30
local saveSettingsOn=true
local sessionStartTime=tick()
local sessionKills=0
local killTracked={}
local currentGameMode="Easy"
local currentWave=0
local currentWaveLevel=1
local ZOMBIE_TYPES={"LongArms","Crawler","Boomer","Toxic","Armored","Helmet","Wraith","Frost Wraith","Drench Wraith","Berserker","Hunter","Destroyer","Annihilator","Sponger","Guardian","Radioactive","Flamer","Swamp Giant","Boss"}
local ARMOR_TABLE={armored={0.50,0.67,0.75,0.90},guardian={0.25,0.35,0.50,0.65},destroyer={0.00,0.50,0.75,0.90},assassin={0.00,0.50,0.65,0.75}}
local MODE_TO_LEVEL={easy=1,normal=1,hard=2,nightmare=3,impossible=4,career=1,mutation=1}
local function resolveGameMode()
for _,name in ipairs({"Difficulty","Mode","GameMode","CurrentDifficulty","CurrentMode"}) do
local p=LocalPlayer:GetAttribute(name)
if type(p)=="string" and p~="" then return p end
local rs=ReplicatedStorage:GetAttribute(name)
if type(rs)=="string" and rs~="" then return rs end
end
local function checkText(text)
if type(text)~="string" then return nil end
local low=string.lower(text)
if low:find("mutation") then return "Mutation" end
if low:find("career") then return "Career" end
if low:find("impossible") then return "Impossible" end
if low:find("nightmare") then return "Nightmare" end
if low:find("hard") then return "Hard" end
if low:find("normal") then return "Normal" end
if low:find("easy") then return "Easy" end
return nil
end
for _,parent in ipairs({ReplicatedStorage,workspace,LocalPlayer}) do
for _,v in ipairs(parent:GetDescendants()) do
if v:IsA("StringValue") then
local n=string.lower(v.Name)
if n:find("diff") or n:find("mode") then
local res=checkText(v.Value)
if res then return res end
end
end
end
end
for _,v in ipairs(PlayerGui:GetDescendants()) do
if v:IsA("TextLabel") then
local res=checkText(v.Text)
if res then return res end
end
end
return nil
end
local function resolveWave()
for _,name in ipairs({"Wave","CurrentWave","WaveNumber","Day","CurrentDay"}) do
local p=LocalPlayer:GetAttribute(name)
if type(p)=="number" then return p end
local rs=ReplicatedStorage:GetAttribute(name)
if type(rs)=="number" then return rs end
end
for _,parent in ipairs({ReplicatedStorage,workspace,LocalPlayer}) do
for _,v in ipairs(parent:GetDescendants()) do
if v:IsA("NumberValue") or v:IsA("IntValue") then
local n=string.lower(v.Name)
if n:find("wave") or n:find("day") then return v.Value end
end
end
end
return nil
end
local function getArmorReduction(zombieType,level)
if not zombieType or not level then return 0 end
local key=string.lower(zombieType)
for k,reductions in pairs(ARMOR_TABLE) do
if string.find(key,k,1,true) then return reductions[math.clamp(level,1,4)] or 0 end
end
return 0
end
local SETTINGS_FILE="albedoware_settings.json"
local function settingsSupported()
return type(writefile)=="function" and type(readfile)=="function" and type(isfile)=="function"
end
local function snapshotSettings()
return {currentThemeKey=currentThemeKey,aimKey=aimKey.Name,toggleKey=toggleKey.Name,espKey=espKey.Name,wallKey=wallKey.Name,aimTarget=aimTarget,aimSmooth=aimSmooth,wallCheck=wallCheck,noRecoil=noRecoil,noSpread=noSpread,espShowHP=espShowHP,espShowType=espShowType,espShowArmor=espShowArmor,espShowLevel=espShowLevel,espShowDistance=espShowDistance,threatAlertOn=threatAlertOn,threatRange=threatRange,saveSettingsOn=saveSettingsOn,currentGameMode=currentGameMode}
end
local function applySettings(data)
if type(data)~="table" then return end
local function keyEnum(name,default)
if type(name)=="string" then
local ok,kc=pcall(function() return Enum.KeyCode[name] end)
if ok and kc then return kc end
end
return default
end
if data.currentThemeKey and Themes[data.currentThemeKey] then currentThemeKey=data.currentThemeKey end
if data.aimKey then aimKey=keyEnum(data.aimKey,aimKey) end
if data.toggleKey then toggleKey=keyEnum(data.toggleKey,toggleKey) end
if data.espKey then espKey=keyEnum(data.espKey,espKey) end
if data.wallKey then wallKey=keyEnum(data.wallKey,wallKey) end
if data.aimTarget=="Closest" or data.aimTarget=="Farthest" or data.aimTarget=="Crosshair" then aimTarget=data.aimTarget end
if type(data.aimSmooth)=="number" then aimSmooth=math.clamp(data.aimSmooth,1,100) end
if type(data.wallCheck)=="boolean" then wallCheck=data.wallCheck end
if type(data.noRecoil)=="boolean" then noRecoil=data.noRecoil end
if type(data.noSpread)=="boolean" then noSpread=data.noSpread end
if type(data.espShowHP)=="boolean" then espShowHP=data.espShowHP end
if type(data.espShowType)=="boolean" then espShowType=data.espShowType end
if type(data.espShowArmor)=="boolean" then espShowArmor=data.espShowArmor end
if type(data.espShowLevel)=="boolean" then espShowLevel=data.espShowLevel end
if type(data.espShowDistance)=="boolean" then espShowDistance=data.espShowDistance end
if type(data.threatAlertOn)=="boolean" then threatAlertOn=data.threatAlertOn end
if type(data.threatRange)=="number" then threatRange=math.clamp(data.threatRange,5,100) end
if type(data.saveSettingsOn)=="boolean" then saveSettingsOn=data.saveSettingsOn end
if type(data.currentGameMode)=="string" then currentGameMode=data.currentGameMode end
end
local function saveSettings()
if not saveSettingsOn then return false,"off" end
if not settingsSupported() then return false,"no file io" end
local ok,encoded=pcall(function() return HttpService:JSONEncode(snapshotSettings()) end)
if not ok or not encoded then return false,"encode failed" end
if not pcall(writefile,SETTINGS_FILE,encoded) then return false,"write failed" end
return true,"saved"
end
local function loadSettingsFile()
if not settingsSupported() then return false,"no file io" end
if not isfile(SETTINGS_FILE) then return false,"no file" end
local raw=pcall(readfile,SETTINGS_FILE)
if type(raw)~="string" then return false,"read failed" end
local ok,data=pcall(function() return HttpService:JSONDecode(raw) end)
if not ok or type(data)~="table" then return false,"decode failed" end
applySettings(data)
return true,"loaded"
end
local function wipeSettingsFile()
if not settingsSupported() then return end
if isfile(SETTINGS_FILE) then pcall(delfile,SETTINGS_FILE) end
end
local function detectExecutor()
if identifyexecutor then
local ok,a,b=pcall(identifyexecutor)
if ok and a then return tostring(a)..(b and (" "..tostring(b)) or "") end
end
if getexecutorname then
local ok,a=pcall(getexecutorname)
if ok and a then return tostring(a) end
end
if syn and syn.version then return "Synapse "..tostring(syn.version) end
if KRNL_LOADED and KRNL_VERSION then return "Krnl "..tostring(KRNL_VERSION) end
if Fluxus then return "Fluxus" end
return "Unknown"
end
local EXECUTOR_NAME=detectExecutor()
local function httpGet(url)
local req=(syn and syn.request) or (http and http.request) or http_request or request
if not req then return nil end
local ok,res=pcall(req,{Url=url,Method="GET"})
if not ok or not res or not res.Body then return nil end
return res.Body
end
local function looksLikeImage(data)
if not data or #data<100 then return false end
local h=data:sub(1,4)
return h=="\137PNG" or h:sub(1,3)=="\255\216\255" or h:sub(1,3)=="GIF" or h=="RIFF"
end
local backgroundCache={}
local function hashUrl(url)
local hash=tostring(url):gsub("%W","")
return "abw_"..hash:sub(-24)..".png"
end
local function loadBackground(url)
if isLite or not url or url=="" then return "" end
if backgroundCache[url] then return backgroundCache[url] end
if not writefile or not getcustomasset then backgroundCache[url]=url return url end
local fileName=hashUrl(url)
if isfile and isfile(fileName) then
local ok,asset=pcall(getcustomasset,fileName)
if ok and asset and asset~="" then backgroundCache[url]=asset return asset end
end
local body=httpGet(url)
if body and looksLikeImage(body) then
if pcall(writefile,fileName,body) then
local ok,asset=pcall(getcustomasset,fileName)
if ok and asset and asset~="" then backgroundCache[url]=asset return asset end
end
end
backgroundCache[url]=url
return url
end
local function preloadBackgrounds()
if isLite then return end
for _,data in pairs(Themes) do
if data.BG_URL and data.BG_URL~="" then task.spawn(function() pcall(loadBackground,data.BG_URL) end) end
end
end
local function readableText(bgColor)
local lum=0.299*bgColor.R+0.587*bgColor.G+0.114*bgColor.B
return lum>0.55 and Color3.fromRGB(0,0,0) or Color3.fromRGB(255,255,255)
end
local function applyTheme(data,frame,bgImage)
if not data then return end
for k,v in pairs(data) do THEME[k]=v end
local fadeInfo=TweenInfo.new(0.15,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
if frame then
TweenService:Create(frame,fadeInfo,{BackgroundColor3=THEME.Panel,BackgroundTransparency=THEME.PanelTrans}):Play()
for _,d in ipairs(frame:GetDescendants()) do
local tag=d:GetAttribute("ThemeTag")
if tag and tag~="None" and THEME[tag] then
if d:IsA("Frame") or d:IsA("TextButton") or d:IsA("ScrollingFrame") then
local props={BackgroundColor3=THEME[tag]}
if d:IsA("TextButton") then props.TextColor3=readableText(THEME[tag]) end
TweenService:Create(d,fadeInfo,props):Play()
elseif d:IsA("TextLabel") or d:IsA("TextBox") then
TweenService:Create(d,fadeInfo,{TextColor3=THEME[tag]}):Play()
elseif d:IsA("UIStroke") then
TweenService:Create(d,fadeInfo,{Color=THEME[tag]}):Play()
end
end
end
end
if bgImage and not isLite then
if data.BG_URL=="" then
local fade=TweenService:Create(bgImage,fadeInfo,{ImageTransparency=1})
fade:Play()
fade.Completed:Connect(function() bgImage.Visible=false bgImage.Image="" end)
else
task.spawn(function()
local asset=loadBackground(data.BG_URL)
local url=(asset and asset~="") and asset or data.BG_URL
if not bgImage.Parent then return end
if bgImage.Visible and bgImage.Image~="" then
local fade=TweenService:Create(bgImage,fadeInfo,{ImageTransparency=1})
fade:Play()
fade.Completed:Connect(function()
bgImage.Image=url
bgImage.Visible=true
TweenService:Create(bgImage,fadeInfo,{ImageTransparency=0}):Play()
end)
else
bgImage.Image=url
bgImage.Visible=true
bgImage.ImageTransparency=1
TweenService:Create(bgImage,fadeInfo,{ImageTransparency=0}):Play()
end
end)
end
end
end
local hotkeyGui,hotkeyFrame,hotkeyLabel
local hotkeyToken=0
local activeToastGui
local function destroyHotkeyGui()
if hotkeyGui then pcall(function() hotkeyGui:Destroy() end) hotkeyGui,hotkeyFrame,hotkeyLabel=nil,nil,nil end
end
local function ensureHotkeyGui()
if isMobile then return end
if hotkeyGui and hotkeyGui.Parent then return end
hotkeyGui=Instance.new("ScreenGui")
hotkeyGui.Name="AWNotif"
hotkeyGui.ResetOnSpawn=false
hotkeyGui.DisplayOrder=900
hotkeyGui.IgnoreGuiInset=true
hotkeyGui.Parent=PlayerGui
hotkeyFrame=Instance.new("Frame")
hotkeyFrame.Size=UDim2.fromOffset(260,34)
hotkeyFrame.Position=UDim2.new(0.5,-130,1,-110)
hotkeyFrame.BackgroundColor3=THEME.Panel
hotkeyFrame.BackgroundTransparency=0.1
hotkeyFrame.BorderSizePixel=0
hotkeyFrame.Visible=false
hotkeyFrame.Parent=hotkeyGui
Instance.new("UICorner",hotkeyFrame).CornerRadius=UDim.new(0,8)
local s=Instance.new("UIStroke",hotkeyFrame)
s.Color=THEME.Stroke
s.Thickness=1.5
local accent=Instance.new("Frame")
accent.Name="Accent"
accent.Size=UDim2.new(0,5,1,0)
accent.BackgroundColor3=THEME.ToggleOn
accent.BorderSizePixel=0
accent.Parent=hotkeyFrame
Instance.new("UICorner",accent).CornerRadius=UDim.new(0,8)
hotkeyLabel=Instance.new("TextLabel")
hotkeyLabel.Size=UDim2.new(1,-20,1,0)
hotkeyLabel.Position=UDim2.fromOffset(14,0)
hotkeyLabel.BackgroundTransparency=1
hotkeyLabel.Text=""
hotkeyLabel.Font=Enum.Font.GothamBold
hotkeyLabel.TextSize=13
hotkeyLabel.TextColor3=THEME.Cream
hotkeyLabel.TextXAlignment=Enum.TextXAlignment.Left
hotkeyLabel.Parent=hotkeyFrame
end
local function showHotkeyNotif(action,isOn)
if isMobile or not hotkeyNotifsEnabled then return end
ensureHotkeyGui()
if not hotkeyFrame then return end
hotkeyToken=hotkeyToken+1
local myToken=hotkeyToken
hotkeyFrame.Visible=false
hotkeyLabel.Text="Albedoware: "..action.." "..(isOn and "On" or "Off")
hotkeyLabel.TextColor3=THEME.Cream
hotkeyFrame.BackgroundColor3=THEME.Panel
local accent=hotkeyFrame:FindFirstChild("Accent")
if accent then accent.BackgroundColor3=isOn and THEME.ToggleOn or THEME.TextDim end
hotkeyFrame.Visible=true
hotkeyFrame.Position=UDim2.new(0.5,-130,1,-80)
hotkeyFrame.BackgroundTransparency=1
hotkeyLabel.TextTransparency=1
TweenService:Create(hotkeyFrame,TweenInfo.new(0.2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-130,1,-110),BackgroundTransparency=0.1}):Play()
TweenService:Create(hotkeyLabel,TweenInfo.new(0.2),{TextTransparency=0}):Play()
task.delay(2,function()
if myToken~=hotkeyToken then return end
local t=TweenService:Create(hotkeyFrame,TweenInfo.new(0.25,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Position=UDim2.new(0.5,-130,1,-80),BackgroundTransparency=1})
TweenService:Create(hotkeyLabel,TweenInfo.new(0.25),{TextTransparency=1}):Play()
t:Play()
t.Completed:Wait()
if myToken==hotkeyToken then hotkeyFrame.Visible=false end
end)
end
local activeTooltip
local function showTooltip(text)
if isMobile or not tooltipsEnabled then return end
if activeTooltip then activeTooltip:Destroy() end
local gui=Instance.new("ScreenGui")
gui.Name="AWTip"
gui.ResetOnSpawn=false
gui.DisplayOrder=999
gui.Parent=PlayerGui
local f=Instance.new("Frame")
f.Size=UDim2.fromOffset(200,30)
f.AutomaticSize=Enum.AutomaticSize.Y
f.BackgroundColor3=THEME.Panel
f.BackgroundTransparency=0.05
f.Parent=gui
Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local s=Instance.new("UIStroke",f)
s.Color=THEME.Stroke
s.Thickness=1
local pad=Instance.new("UIPadding",f)
pad.PaddingTop=UDim.new(0,6)
pad.PaddingBottom=UDim.new(0,6)
pad.PaddingLeft=UDim.new(0,8)
pad.PaddingRight=UDim.new(0,8)
local l=Instance.new("TextLabel")
l.Size=UDim2.new(1,0,0,0)
l.AutomaticSize=Enum.AutomaticSize.Y
l.BackgroundTransparency=1
l.Text=text
l.Font=Enum.Font.Gotham
l.TextSize=12
l.TextColor3=THEME.Cream
l.TextWrapped=true
l.TextXAlignment=Enum.TextXAlignment.Left
l.TextYAlignment=Enum.TextYAlignment.Top
l.Parent=f
activeTooltip=gui
end
local function hideTooltip()
if activeTooltip then activeTooltip:Destroy() activeTooltip=nil end
end
UserInputService.InputChanged:Connect(function(input)
if input.UserInputType==Enum.UserInputType.MouseMovement and activeTooltip and activeTooltip.Parent then
local mouse=UserInputService:GetMouseLocation()
activeTooltip:FindFirstChildOfClass("Frame").Position=UDim2.fromOffset(mouse.X+15,mouse.Y+15)
end
end)
local function playToast(text,isOn)
if isMobile then return end
if isLite or not toastsEnabled or guiVisible then return end
if activeToastGui then pcall(function() activeToastGui:Destroy() end) activeToastGui=nil end
local gui=Instance.new("ScreenGui")
gui.Name="AWToast"
gui.ResetOnSpawn=false
gui.DisplayOrder=500
gui.Parent=PlayerGui
activeToastGui=gui
local panel=Instance.new("Frame")
panel.Size=UDim2.fromOffset(220,40)
panel.Position=UDim2.new(0.5,-110,1,20)
panel.BackgroundColor3=THEME.Panel
panel.BackgroundTransparency=0.1
panel.Parent=gui
Instance.new("UICorner",panel).CornerRadius=UDim.new(0,8)
local s=Instance.new("UIStroke",panel)
s.Color=THEME.Stroke
s.Thickness=2
local indicator=Instance.new("Frame")
indicator.Size=UDim2.new(0,6,1,0)
indicator.BackgroundColor3=isOn and THEME.ToggleOn or THEME.TextDim
indicator.Parent=panel
Instance.new("UICorner",indicator).CornerRadius=UDim.new(0,8)
local lbl=Instance.new("TextLabel")
lbl.Size=UDim2.new(1,-20,1,0)
lbl.Position=UDim2.fromOffset(15,0)
lbl.BackgroundTransparency=1
lbl.Text=text
lbl.Font=Enum.Font.GothamBold
lbl.TextSize=14
lbl.TextColor3=THEME.Cream
lbl.TextXAlignment=Enum.TextXAlignment.Left
lbl.Parent=panel
panel.BackgroundTransparency=1
indicator.BackgroundTransparency=1
lbl.TextTransparency=1
TweenService:Create(panel,TweenInfo.new(0.3,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-110,0.85,0),BackgroundTransparency=0.1}):Play()
TweenService:Create(indicator,TweenInfo.new(0.3),{BackgroundTransparency=0}):Play()
TweenService:Create(lbl,TweenInfo.new(0.3),{TextTransparency=0}):Play()
task.delay(2,function()
local t=TweenService:Create(panel,TweenInfo.new(0.3,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Position=UDim2.new(0.5,-110,1.2,0),BackgroundTransparency=1})
TweenService:Create(indicator,TweenInfo.new(0.3),{BackgroundTransparency=1}):Play()
TweenService:Create(lbl,TweenInfo.new(0.3),{TextTransparency=1}):Play()
t:Play()
t.Completed:Wait()
if activeToastGui==gui then activeToastGui=nil end
gui:Destroy()
end)
end
local function showLoading(onDone)
local g=Instance.new("ScreenGui")
g.Name="AWLoading"
g.ResetOnSpawn=false
g.DisplayOrder=400
g.Parent=PlayerGui
local bar=Instance.new("Frame")
bar.Size=UDim2.fromOffset(360,50)
bar.Position=UDim2.new(0.5,-180,0.5,-25)
bar.BackgroundColor3=THEME.Panel
bar.BackgroundTransparency=0.08
bar.BorderSizePixel=0
bar.Parent=g
Instance.new("UICorner",bar).CornerRadius=UDim.new(0,10)
local s=Instance.new("UIStroke",bar)
s.Color=THEME.Stroke
s.Thickness=2
local l=Instance.new("TextLabel")
l.Size=UDim2.fromScale(1,1)
l.BackgroundTransparency=1
l.Text="Albedoware is loading please sit down and wait."
l.Font=Enum.Font.Gotham
l.TextSize=14
l.TextColor3=THEME.Cream
l.Parent=bar
task.delay(1.5,function() if g then g:Destroy() end if onDone then onDone() end end)
end
local function showDeviceSelect(onChosen)
local g=Instance.new("ScreenGui")
g.Name="AWDevice"
g.ResetOnSpawn=false
g.DisplayOrder=300
g.Parent=PlayerGui
local card=Instance.new("Frame")
card.Size=UDim2.fromOffset(300,180)
card.Position=UDim2.new(0.5,-150,0.5,-90)
card.BackgroundColor3=THEME.Panel
card.BackgroundTransparency=0.05
card.BorderSizePixel=0
card.Parent=g
Instance.new("UICorner",card).CornerRadius=UDim.new(0,12)
local s=Instance.new("UIStroke",card)
s.Color=THEME.Stroke
s.Thickness=2
local t=Instance.new("TextLabel")
t.Size=UDim2.new(1,0,0,44)
t.BackgroundTransparency=1
t.Text="What device are you on?"
t.Font=Enum.Font.GothamBold
t.TextSize=17
t.TextColor3=THEME.Cream
t.Parent=card
local pc=Instance.new("TextButton")
pc.Size=UDim2.fromOffset(220,36)
pc.Position=UDim2.new(0.5,-110,0,56)
pc.BackgroundColor3=THEME.ToggleOn
pc.Text="PC"
pc.Font=Enum.Font.GothamBold
pc.TextSize=15
pc.TextColor3=readableText(THEME.ToggleOn)
pc.Parent=card
Instance.new("UICorner",pc).CornerRadius=UDim.new(0,8)
local mob=Instance.new("TextButton")
mob.Size=UDim2.fromOffset(220,36)
mob.Position=UDim2.new(0.5,-110,0,102)
mob.BackgroundColor3=THEME.AccentSoft
mob.Text="Mobile"
mob.Font=Enum.Font.GothamBold
mob.TextSize=15
mob.TextColor3=readableText(THEME.AccentSoft)
mob.Parent=card
Instance.new("UICorner",mob).CornerRadius=UDim.new(0,8)
local function message()
for _,c in ipairs(card:GetChildren()) do
if c:IsA("TextButton") or c:IsA("TextLabel") then c:Destroy() end
end
card.Size=UDim2.fromOffset(240,100)
card.BackgroundColor3=THEME.Panel
card.BackgroundTransparency=THEME.PanelTrans
local mt=Instance.new("TextLabel")
mt.Size=UDim2.new(1,-20,0,50)
mt.Position=UDim2.fromOffset(10,10)
mt.BackgroundTransparency=1
mt.Text="Opensource scripts OT"
mt.Font=Enum.Font.GothamBold
mt.TextSize=18
mt.TextColor3=THEME.Cream
mt.TextWrapped=true
mt.Parent=card
local sub=Instance.new("TextLabel")
sub.Size=UDim2.new(1,-20,0,24)
sub.Position=UDim2.fromOffset(10,64)
sub.BackgroundTransparency=1
sub.Text="Nothing is Impossible, Never give up!"
sub.Font=Enum.Font.Gotham
sub.TextSize=12
sub.TextColor3=THEME.TextDim
sub.Parent=card
card.Position=UDim2.new(0.5,-120,-0.5,0)
TweenService:Create(card,TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-120,0.5,-50)}):Play()
task.delay(3,function()
local out=TweenService:Create(card,TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Position=UDim2.new(0.5,-120,1.5,0)})
out:Play()
out.Completed:Wait()
if g then g:Destroy() end
onChosen()
end)
end
local function mobileMode()
for _,c in ipairs(card:GetChildren()) do
if c:IsA("TextButton") or c:IsA("TextLabel") then c:Destroy() end
end
card.Size=UDim2.fromOffset(300,180)
local t2=Instance.new("TextLabel")
t2.Size=UDim2.new(1,0,0,40)
t2.BackgroundTransparency=1
t2.Text="Choose mobile mode"
t2.Font=Enum.Font.GothamBold
t2.TextSize=16
t2.TextColor3=THEME.Cream
t2.Parent=card
local lite=Instance.new("TextButton")
lite.Size=UDim2.fromOffset(220,36)
lite.Position=UDim2.new(0.5,-110,0,52)
lite.BackgroundColor3=THEME.ToggleOn
lite.Text="Lite (no background)"
lite.Font=Enum.Font.GothamBold
lite.TextSize=14
lite.TextColor3=readableText(THEME.ToggleOn)
lite.Parent=card
Instance.new("UICorner",lite).CornerRadius=UDim.new(0,8)
local hq=Instance.new("TextButton")
hq.Size=UDim2.fromOffset(220,36)
hq.Position=UDim2.new(0.5,-110,0,98)
hq.BackgroundColor3=THEME.AccentSoft
hq.Text="HQ (full)"
hq.Font=Enum.Font.GothamBold
hq.TextSize=14
hq.TextColor3=readableText(THEME.AccentSoft)
hq.Parent=card
Instance.new("UICorner",hq).CornerRadius=UDim.new(0,8)
lite.MouseButton1Click:Connect(function() isMobile=true isLite=true message() end)
hq.MouseButton1Click:Connect(function() isMobile=true isLite=false message() end)
end
pc.MouseButton1Click:Connect(function() isMobile=false isLite=false message() end)
mob.MouseButton1Click:Connect(mobileMode)
end
local function showSplash(onDone)
local g=Instance.new("ScreenGui")
g.Name="AWSplash"
g.ResetOnSpawn=false
g.DisplayOrder=250
g.Parent=PlayerGui
local card=Instance.new("Frame")
card.Size=UDim2.fromOffset(400,260)
card.Position=UDim2.new(0.5,-200,0.5,-130)
card.BackgroundColor3=THEME.Panel
card.BackgroundTransparency=0.05
card.BorderSizePixel=0
card.Parent=g
Instance.new("UICorner",card).CornerRadius=UDim.new(0,12)
local s=Instance.new("UIStroke",card)
s.Color=THEME.Stroke
s.Thickness=2
local logo=Instance.new("TextLabel")
logo.Size=UDim2.new(1,0,0,38)
logo.Position=UDim2.fromOffset(0,14)
logo.BackgroundTransparency=1
logo.Text="A L B E D O W A R E"
logo.Font=Enum.Font.GothamBold
logo.TextSize=18
logo.TextColor3=THEME.Cream
logo.Parent=card
local tag=Instance.new("TextLabel")
tag.Size=UDim2.new(1,0,0,20)
tag.Position=UDim2.fromOffset(0,48)
tag.BackgroundTransparency=1
tag.Text="Scripts Opensource OT"
tag.Font=Enum.Font.Gotham
tag.TextSize=12
tag.TextColor3=THEME.TextDim
tag.Parent=card
local mot=Instance.new("TextLabel")
mot.Size=UDim2.new(1,0,0,20)
mot.Position=UDim2.fromOffset(0,66)
mot.BackgroundTransparency=1
mot.Text="Nothing is Impossible, Never give up!"
mot.Font=Enum.Font.GothamBold
mot.TextSize=12
mot.TextColor3=THEME.TextDim
mot.Parent=card
local msg=Instance.new("TextLabel")
msg.Size=UDim2.new(1,-28,0,120)
msg.Position=UDim2.fromOffset(14,90)
msg.BackgroundTransparency=1
msg.Text="Hello Albedoware user, thank you for choosing my script. This script is completely free and open source. Please be careful when using this in public servers. I am not liable for any bans or terminations. To change the theme, go to Extras. Enjoy!"
msg.Font=Enum.Font.Gotham
msg.TextSize=13
msg.TextColor3=THEME.Cream
msg.TextWrapped=true
msg.TextXAlignment=Enum.TextXAlignment.Left
msg.TextYAlignment=Enum.TextYAlignment.Top
msg.Parent=card
local close=Instance.new("TextButton")
close.Size=UDim2.fromOffset(100,30)
close.Position=UDim2.new(0.5,-50,1,-42)
close.BackgroundColor3=THEME.ToggleOn
close.Text="Continue"
close.Font=Enum.Font.GothamBold
close.TextSize=14
close.TextColor3=readableText(THEME.ToggleOn)
close.Parent=card
Instance.new("UICorner",close).CornerRadius=UDim.new(0,6)
close.MouseButton1Click:Connect(function()
TweenService:Create(card,TweenInfo.new(0.2),{BackgroundTransparency=1}):Play()
task.delay(0.18,function() g:Destroy() onDone() end)
end)
end
local function buildMain()
local destroyed=false
local connections={}
local function track(conn) if conn then table.insert(connections,conn) end return conn end
local function disconnectAll()
for _,c in ipairs(connections) do pcall(function() c:Disconnect() end) end
connections={}
end
local ScreenGui=Instance.new("ScreenGui")
ScreenGui.Name="AlbedowareFS2"
ScreenGui.ResetOnSpawn=false
ScreenGui.Parent=PlayerGui
local espHighlights={}
local infoBillboards={}
local espHighlightPartCount={}
local baseW=isMobile and 260 or 320
local baseH=isMobile and 380 or 420
local wideW=baseW+(isMobile and 60 or 120)
local sizeStage=isMobile and 3 or 1
local function currentSize()
if not isMobile then return (sizeStage==2) and wideW or baseW,baseH end
if sizeStage==1 then return baseW,baseH
elseif sizeStage==2 then return wideW,baseH
else return math.min(baseW*2.2,640),math.max(260,baseH*0.6) end
end
local Frame=Instance.new("Frame")
local startW,startH=currentSize()
Frame.Size=UDim2.fromOffset(startW,startH)
Frame.Position=UDim2.new(0.5,-startW/2,-0.5,0)
Frame.BackgroundColor3=THEME.Panel
Frame.BackgroundTransparency=THEME.PanelTrans
Frame.BorderSizePixel=0
Frame.Parent=ScreenGui
Frame:SetAttribute("ThemeTag","Panel")
Instance.new("UICorner",Frame).CornerRadius=UDim.new(0,12)
local stroke=Instance.new("UIStroke",Frame)
stroke.Color=THEME.Stroke
stroke.Thickness=2.2
stroke:SetAttribute("ThemeTag","Stroke")
if isLite then stroke.Enabled=false end
TweenService:Create(Frame,TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-startW/2,0.5,-startH/2)}):Play()
local bgImage
if not isLite then
bgImage=Instance.new("ImageLabel")
bgImage.Size=UDim2.fromScale(1,1)
bgImage.BackgroundTransparency=1
bgImage.Image=""
bgImage.ScaleType=Enum.ScaleType.Crop
bgImage.ImageTransparency=1
bgImage.Visible=false
bgImage.ZIndex=0
bgImage.Parent=Frame
Instance.new("UICorner",bgImage).CornerRadius=UDim.new(0,12)
end
local title=Instance.new("TextLabel")
title.Size=UDim2.new(1,-70,0,24)
title.Position=UDim2.fromOffset(8,2)
title.BackgroundTransparency=1
title.Text="Albedoware FS2"
title.Font=Enum.Font.GothamBold
title.TextSize=isMobile and 15 or 18
title.TextColor3=THEME.Cream
title.TextXAlignment=Enum.TextXAlignment.Left
title.ZIndex=2
title.Parent=Frame
title:SetAttribute("ThemeTag","Cream")
local subtitle=Instance.new("TextLabel")
subtitle.Size=UDim2.new(1,-70,0,14)
subtitle.Position=UDim2.fromOffset(8,24)
subtitle.BackgroundTransparency=1
subtitle.Text="We will always find a way for justice to be served!"
subtitle.Font=Enum.Font.GothamBold
subtitle.TextSize=10
subtitle.TextColor3=THEME.Cream
subtitle.TextXAlignment=Enum.TextXAlignment.Left
subtitle.ZIndex=2
subtitle.Parent=Frame
subtitle:SetAttribute("ThemeTag","Cream")
if not isMobile and not isLite then
local spin=Instance.new("ImageLabel")
spin.Size=UDim2.fromOffset(54,54)
spin.Position=UDim2.new(1,-150,0,10)
spin.BackgroundTransparency=1
spin.Image="https://imagetourl.cloud/xwi9cpa2d8vn.png"
spin.ScaleType=Enum.ScaleType.Fit
spin.Parent=ScreenGui
track(RunService.RenderStepped:Connect(function(dt)
if destroyed then return end
if guiVisible and spin and spin.Parent then spin.Rotation=(spin.Rotation+(dt*36))%360 end
end))
end
local closeBtn=Instance.new("TextButton")
closeBtn.Size=UDim2.fromOffset(26,26)
closeBtn.Position=UDim2.new(1,-32,0,5)
closeBtn.BackgroundColor3=THEME.AccentSoft
closeBtn.Text="X"
closeBtn.Font=Enum.Font.GothamBold
closeBtn.TextSize=13
closeBtn.TextColor3=readableText(THEME.AccentSoft)
closeBtn.ZIndex=3
closeBtn.Parent=Frame
closeBtn:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",closeBtn).CornerRadius=UDim.new(0,6)
local sizeBtn=Instance.new("TextButton")
sizeBtn.Size=UDim2.fromOffset(26,26)
sizeBtn.Position=UDim2.new(1,-62,0,5)
sizeBtn.BackgroundColor3=THEME.AccentSoft
sizeBtn.Text="↔"
sizeBtn.Font=Enum.Font.GothamBold
sizeBtn.TextSize=13
sizeBtn.TextColor3=readableText(THEME.AccentSoft)
sizeBtn.ZIndex=3
sizeBtn.Parent=Frame
sizeBtn:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",sizeBtn).CornerRadius=UDim.new(0,6)
track(sizeBtn.MouseButton1Click:Connect(function()
if destroyed then return end
if not isMobile then sizeStage=(sizeStage==1) and 2 or 1
else sizeStage=sizeStage+1 if sizeStage>3 then sizeStage=1 end end
local w,h=currentSize()
TweenService:Create(Frame,TweenInfo.new(0.25,Enum.EasingStyle.Quad),{Size=UDim2.fromOffset(w,h),Position=UDim2.new(0.5,-w/2,0.5,-h/2)}):Play()
end))
local tabBar=Instance.new("Frame")
tabBar.Size=UDim2.new(1,-16,0,28)
tabBar.Position=UDim2.fromOffset(8,40)
tabBar.BackgroundTransparency=1
tabBar.ZIndex=2
tabBar.Parent=Frame
local pages={}
local tabCount=(not isMobile) and 5 or 4
local function makeTab(name,order)
local btn=Instance.new("TextButton")
btn.Size=UDim2.new(1/tabCount,-3,1,0)
btn.Position=UDim2.new((order-1)/tabCount,0,0,0)
btn.BackgroundColor3=THEME.AccentSoft
btn.Text=name
btn.Font=Enum.Font.Gotham
btn.TextSize=isMobile and 11 or 10
btn.TextColor3=readableText(THEME.AccentSoft)
btn.ZIndex=3
btn.Parent=tabBar
btn:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",btn).CornerRadius=UDim.new(0,6)
local page=Instance.new("ScrollingFrame")
page.Size=UDim2.new(1,-16,1,-84)
page.Position=UDim2.fromOffset(8,74)
page.BackgroundTransparency=1
page.BorderSizePixel=0
page.ScrollBarThickness=isMobile and 3 or 4
page.CanvasSize=UDim2.new(0,0,0,0)
page.AutomaticCanvasSize=Enum.AutomaticSize.Y
page.ScrollingDirection=Enum.ScrollingDirection.Y
page.Visible=order==1
page.ZIndex=2
page.Parent=Frame
pages[name]=page
track(btn.MouseButton1Click:Connect(function()
if destroyed then return end
for n,p in pairs(pages) do p.Visible=n==name end
if pages["Extra"] then pages["Extra"].ScrollingEnabled=true end
for _,b in pairs(tabBar:GetChildren()) do
if b:IsA("TextButton") then
local color=b==btn and THEME.ToggleOn or THEME.AccentSoft
b.BackgroundColor3=color
b.TextColor3=readableText(color)
end
end
end))
return page
end
local aimPage=makeTab("Aimbot",1)
local modsPage=makeTab("Mods",2)
local espPage=makeTab("ESP",3)
local hotkeysPage
if not isMobile then hotkeysPage=makeTab("Hotkeys",4) end
local extraPage=makeTab("Extra",isMobile and 4 or 5)
local function makeSection(parent,name)
local sec=Instance.new("Frame")
sec.Size=UDim2.new(1,0,0,0)
sec.AutomaticSize=Enum.AutomaticSize.Y
sec.BackgroundColor3=THEME.Panel
sec.BackgroundTransparency=0.5
sec.BorderSizePixel=0
sec.Parent=parent
sec:SetAttribute("ThemeTag","Panel")
Instance.new("UICorner",sec).CornerRadius=UDim.new(0,8)
if not isLite then
local s=Instance.new("UIStroke",sec)
s.Color=THEME.Stroke
s.Thickness=1
s.Transparency=0.4
s:SetAttribute("ThemeTag","Stroke")
end
local t=Instance.new("TextLabel")
t.Size=UDim2.new(1,-12,0,20)
t.Position=UDim2.fromOffset(6,4)
t.BackgroundTransparency=1
t.Text=name
t.Font=Enum.Font.GothamBold
t.TextSize=14
t.TextColor3=THEME.Cream
t.TextXAlignment=Enum.TextXAlignment.Left
t.Parent=sec
t:SetAttribute("ThemeTag","Cream")
local layout=Instance.new("UIListLayout",sec)
layout.Padding=UDim.new(0,6)
layout.SortOrder=Enum.SortOrder.LayoutOrder
local pad=Instance.new("UIPadding",sec)
pad.PaddingTop=UDim.new(0,26)
pad.PaddingBottom=UDim.new(0,8)
pad.PaddingLeft=UDim.new(0,8)
pad.PaddingRight=UDim.new(0,8)
return sec
end
local function setupTooltip(obj,text)
if isMobile then
local parent=obj.Parent
if not parent then return end
local desc=Instance.new("TextLabel")
desc.Size=UDim2.new(1,0,0,0)
desc.AutomaticSize=Enum.AutomaticSize.Y
desc.BackgroundTransparency=1
desc.Text=text
desc.Font=Enum.Font.Gotham
desc.TextSize=11
desc.TextColor3=THEME.TextDim
desc.TextWrapped=true
desc.TextXAlignment=Enum.TextXAlignment.Left
desc.ZIndex=obj.ZIndex
desc.Parent=parent
desc:SetAttribute("ThemeTag","TextDim")
return
end
track(obj.MouseEnter:Connect(function() showTooltip(text) end))
track(obj.MouseLeave:Connect(function() hideTooltip() end))
end
local extraLayout=Instance.new("UIListLayout",extraPage)
extraLayout.Padding=UDim.new(0,8)
extraLayout.SortOrder=Enum.SortOrder.LayoutOrder
local aimSec=makeSection(aimPage,"Aimbot")
local aimToggle=Instance.new("TextButton")
aimToggle.Size=UDim2.new(1,0,0,36)
aimToggle.BackgroundColor3=THEME.ToggleOff
aimToggle.Text="Aimbot: Off"
aimToggle.Font=Enum.Font.Gotham
aimToggle.TextSize=15
aimToggle.TextColor3=readableText(THEME.ToggleOff)
aimToggle.Parent=aimSec
aimToggle:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",aimToggle).CornerRadius=UDim.new(0,6)
setupTooltip(aimToggle,"Locks onto the zombie's head automatically while enabled.")
local function setAimbot(state)
aimbotEnabled=state
aimToggle.Text="Aimbot: "..(state and "On" or "Off")
local color=state and THEME.ToggleOn or THEME.ToggleOff
aimToggle.BackgroundColor3=color
aimToggle.TextColor3=readableText(color)
aimToggle:SetAttribute("ThemeTag",state and "ToggleOn" or "ToggleOff")
end
track(aimToggle.MouseButton1Click:Connect(function() if destroyed then return end setAimbot(not aimbotEnabled) end))
local wallBtn=Instance.new("TextButton")
wallBtn.Size=UDim2.new(1,0,0,36)
wallBtn.BackgroundColor3=THEME.ToggleOff
wallBtn.Text="Wall Check: Off"
wallBtn.Font=Enum.Font.Gotham
wallBtn.TextSize=15
wallBtn.TextColor3=readableText(THEME.ToggleOff)
wallBtn.Parent=aimSec
wallBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",wallBtn).CornerRadius=UDim.new(0,6)
setupTooltip(wallBtn,"Only targets zombies visible for 0.25s. Hotkey: "..wallKey.Name)
track(wallBtn.MouseButton1Click:Connect(function()
if destroyed then return end
wallCheck=not wallCheck
wallBtn.Text="Wall Check: "..(wallCheck and "On" or "Off")
local color=wallCheck and THEME.ToggleOn or THEME.ToggleOff
wallBtn.BackgroundColor3=color
wallBtn.TextColor3=readableText(color)
wallBtn:SetAttribute("ThemeTag",wallCheck and "ToggleOn" or "ToggleOff")
end))
local targetRow=Instance.new("Frame")
targetRow.Size=UDim2.new(1,0,0,40)
targetRow.BackgroundColor3=THEME.Panel
targetRow.BackgroundTransparency=0.5
targetRow.BorderSizePixel=0
targetRow.ClipsDescendants=true
targetRow.Parent=aimSec
targetRow:SetAttribute("ThemeTag","Panel")
Instance.new("UICorner",targetRow).CornerRadius=UDim.new(0,6)
local targetHeader=Instance.new("TextButton")
targetHeader.Size=UDim2.new(1,0,0,40)
targetHeader.BackgroundTransparency=1
targetHeader.Text=""
targetHeader.Parent=targetRow
local targetLabel=Instance.new("TextLabel")
targetLabel.Size=UDim2.new(1,-30,0,20)
targetLabel.Position=UDim2.fromOffset(8,4)
targetLabel.BackgroundTransparency=1
targetLabel.Text="Target Priority: "..aimTarget
targetLabel.Font=Enum.Font.Gotham
targetLabel.TextSize=14
targetLabel.TextColor3=THEME.Cream
targetLabel.TextXAlignment=Enum.TextXAlignment.Left
targetLabel.Parent=targetHeader
targetLabel:SetAttribute("ThemeTag","Cream")
local targetArrow=Instance.new("TextLabel")
targetArrow.Size=UDim2.fromOffset(20,20)
targetArrow.Position=UDim2.new(1,-24,0,10)
targetArrow.BackgroundTransparency=1
targetArrow.Text="▼"
targetArrow.Font=Enum.Font.GothamBold
targetArrow.TextSize=12
targetArrow.TextColor3=THEME.Cream
targetArrow.Parent=targetHeader
targetArrow:SetAttribute("ThemeTag","Cream")
local targetScroll=Instance.new("ScrollingFrame")
targetScroll.Size=UDim2.new(1,-16,0,0)
targetScroll.Position=UDim2.fromOffset(8,42)
targetScroll.BackgroundColor3=THEME.AccentSoft
targetScroll.BackgroundTransparency=0.4
targetScroll.BorderSizePixel=0
targetScroll.ScrollBarThickness=2
targetScroll.CanvasSize=UDim2.new(0,0,0,94)
targetScroll.Visible=false
targetScroll.Parent=targetRow
targetScroll:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",targetScroll).CornerRadius=UDim.new(0,5)
local targetLayout=Instance.new("UIListLayout",targetScroll)
targetLayout.Padding=UDim.new(0,2)
local targetExpanded=false
local function setTargetExpanded(state)
targetExpanded=state
targetScroll.Visible=state
targetArrow.Text=state and "▲" or "▼"
TweenService:Create(targetRow,TweenInfo.new(0.18,Enum.EasingStyle.Quad),{Size=UDim2.new(1,0,0,state and 140 or 40)}):Play()
TweenService:Create(targetScroll,TweenInfo.new(0.18),{Size=UDim2.new(1,-16,0,state and 90 or 0)}):Play()
end
track(targetHeader.MouseButton1Click:Connect(function() if destroyed then return end setTargetExpanded(not targetExpanded) end))
for _,opt in ipairs({"Closest","Farthest","Crosshair"}) do
local b=Instance.new("TextButton")
b.Size=UDim2.new(1,-4,0,28)
b.BackgroundColor3=opt==aimTarget and THEME.ToggleOn or THEME.ToggleOff
b.Text=opt
b.Font=Enum.Font.Gotham
b.TextSize=14
b.TextColor3=readableText(b.BackgroundColor3)
b.Parent=targetScroll
b:SetAttribute("ThemeTag",opt==aimTarget and "ToggleOn" or "ToggleOff")
Instance.new("UICorner",b).CornerRadius=UDim.new(0,4)
track(b.MouseButton1Click:Connect(function()
if destroyed then return end
aimTarget=opt
targetLabel.Text="Target Priority: "..aimTarget
for _,c in ipairs(targetScroll:GetChildren()) do
if c:IsA("TextButton") then
c.BackgroundColor3=THEME.ToggleOff
c.TextColor3=readableText(THEME.ToggleOff)
c:SetAttribute("ThemeTag","ToggleOff")
end
end
b.BackgroundColor3=THEME.ToggleOn
b.TextColor3=readableText(THEME.ToggleOn)
b:SetAttribute("ThemeTag","ToggleOn")
setTargetExpanded(false)
end))
end
local smoothLabel=Instance.new("TextLabel")
smoothLabel.Size=UDim2.new(1,0,0,18)
smoothLabel.BackgroundTransparency=1
smoothLabel.Text="Smoothness: "..aimSmooth
smoothLabel.Font=Enum.Font.Gotham
smoothLabel.TextSize=14
smoothLabel.TextColor3=THEME.Cream
smoothLabel.TextXAlignment=Enum.TextXAlignment.Left
smoothLabel.Parent=aimSec
smoothLabel:SetAttribute("ThemeTag","Cream")
local sliderBg=Instance.new("Frame")
sliderBg.Size=UDim2.new(1,0,0,20)
sliderBg.BackgroundColor3=THEME.AccentSoft
sliderBg.BorderSizePixel=0
sliderBg.Parent=aimSec
sliderBg:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",sliderBg).CornerRadius=UDim.new(0,10)
local sliderFill=Instance.new("Frame")
sliderFill.Size=UDim2.new((aimSmooth-1)/99,0,1,0)
sliderFill.BackgroundColor3=THEME.ToggleOn
sliderFill.BorderSizePixel=0
sliderFill.Parent=sliderBg
sliderFill:SetAttribute("ThemeTag","ToggleOn")
Instance.new("UICorner",sliderFill).CornerRadius=UDim.new(0,10)
local sliderKnob=Instance.new("Frame")
sliderKnob.Size=UDim2.fromOffset(16,16)
sliderKnob.Position=UDim2.new((aimSmooth-1)/99,-8,0.5,-8)
sliderKnob.BackgroundColor3=THEME.Cream
sliderKnob.BorderSizePixel=0
sliderKnob.Parent=sliderBg
sliderKnob:SetAttribute("ThemeTag","Cream")
Instance.new("UICorner",sliderKnob).CornerRadius=UDim.new(1,0)
local function setSmooth(n)
aimSmooth=math.clamp(math.floor(n),1,100)
smoothLabel.Text="Smoothness: "..aimSmooth
local p=(aimSmooth-1)/99
sliderFill.Size=UDim2.new(p,0,1,0)
sliderKnob.Position=UDim2.new(p,-8,0.5,-8)
end
local draggingSlider=false
local function sliderFromInput(input)
local rel=(input.Position.X-sliderBg.AbsolutePosition.X)/math.max(1,sliderBg.AbsoluteSize.X)
rel=math.clamp(rel,0,1)
setSmooth(1+rel*99)
end
track(sliderBg.InputBegan:Connect(function(input)
if destroyed then return end
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
draggingSlider=true
sliderFromInput(input)
end
end))
track(UserInputService.InputChanged:Connect(function(input)
if destroyed then return end
if draggingSlider and (input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch) then
sliderFromInput(input)
end
end))
track(UserInputService.InputEnded:Connect(function(input)
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
draggingSlider=false
end
end))
local modsSec=makeSection(modsPage,"Gun Mods")
local recoilBtn=Instance.new("TextButton")
recoilBtn.Size=UDim2.new(1,0,0,36)
recoilBtn.BackgroundColor3=THEME.ToggleOff
recoilBtn.Text="No Recoil"
recoilBtn.Font=Enum.Font.Gotham
recoilBtn.TextSize=15
recoilBtn.TextColor3=readableText(THEME.ToggleOff)
recoilBtn.Parent=modsSec
recoilBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",recoilBtn).CornerRadius=UDim.new(0,6)
setupTooltip(recoilBtn,"Removes all recoil.")
track(recoilBtn.MouseButton1Click:Connect(function()
if destroyed or noRecoil then return end
noRecoil=true
recoilBtn.Text="No Recoil: Applied"
recoilBtn.BackgroundColor3=THEME.ToggleOn
recoilBtn.TextColor3=readableText(THEME.ToggleOn)
recoilBtn:SetAttribute("ThemeTag","ToggleOn")
end))
local spreadBtn=Instance.new("TextButton")
spreadBtn.Size=UDim2.new(1,0,0,36)
spreadBtn.BackgroundColor3=THEME.ToggleOff
spreadBtn.Text="No Spread"
spreadBtn.Font=Enum.Font.Gotham
spreadBtn.TextSize=15
spreadBtn.TextColor3=readableText(THEME.ToggleOff)
spreadBtn.Parent=modsSec
spreadBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",spreadBtn).CornerRadius=UDim.new(0,6)
setupTooltip(spreadBtn,"Removes all weapon spread.")
track(spreadBtn.MouseButton1Click:Connect(function()
if destroyed or noSpread then return end
noSpread=true
spreadBtn.Text="No Spread: Applied"
spreadBtn.BackgroundColor3=THEME.ToggleOn
spreadBtn.TextColor3=readableText(THEME.ToggleOn)
spreadBtn:SetAttribute("ThemeTag","ToggleOn")
end))
local triggerBtn=Instance.new("TextButton")
triggerBtn.Size=UDim2.new(1,0,0,36)
triggerBtn.BackgroundColor3=THEME.ToggleOff
triggerBtn.Text="Triggerbot: Coming Soon"
triggerBtn.Font=Enum.Font.Gotham
triggerBtn.TextSize=15
triggerBtn.TextColor3=THEME.TextDim
triggerBtn.AutoButtonColor=false
triggerBtn.Parent=modsSec
triggerBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",triggerBtn).CornerRadius=UDim.new(0,6)
local triggerHeadBtn=Instance.new("TextButton")
triggerHeadBtn.Size=UDim2.new(1,0,0,30)
triggerHeadBtn.BackgroundColor3=THEME.ToggleOff
triggerHeadBtn.Text="Shoot Head: Off"
triggerHeadBtn.Font=Enum.Font.Gotham
triggerHeadBtn.TextSize=13
triggerHeadBtn.TextColor3=THEME.TextDim
triggerHeadBtn.AutoButtonColor=false
triggerHeadBtn.Parent=modsSec
triggerHeadBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",triggerHeadBtn).CornerRadius=UDim.new(0,6)
local triggerTorsoBtn=Instance.new("TextButton")
triggerTorsoBtn.Size=UDim2.new(1,0,0,30)
triggerTorsoBtn.BackgroundColor3=THEME.ToggleOff
triggerTorsoBtn.Text="Shoot Torso: Off"
triggerTorsoBtn.Font=Enum.Font.Gotham
triggerTorsoBtn.TextSize=13
triggerTorsoBtn.TextColor3=THEME.TextDim
triggerTorsoBtn.AutoButtonColor=false
triggerTorsoBtn.Parent=modsSec
triggerTorsoBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",triggerTorsoBtn).CornerRadius=UDim.new(0,6)
local meleeBtn=Instance.new("TextButton")
meleeBtn.Size=UDim2.new(1,0,0,36)
meleeBtn.BackgroundColor3=THEME.ToggleOff
meleeBtn.Text="Melee Aura: Coming Soon"
meleeBtn.Font=Enum.Font.Gotham
meleeBtn.TextSize=15
meleeBtn.TextColor3=THEME.TextDim
meleeBtn.AutoButtonColor=false
meleeBtn.Parent=modsSec
meleeBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",meleeBtn).CornerRadius=UDim.new(0,6)
local bubbleBtn=Instance.new("TextButton")
bubbleBtn.Size=UDim2.new(1,0,0,36)
bubbleBtn.BackgroundColor3=THEME.ToggleOff
bubbleBtn.Text="Aura Bubble: Coming Soon"
bubbleBtn.Font=Enum.Font.Gotham
bubbleBtn.TextSize=15
bubbleBtn.TextColor3=THEME.TextDim
bubbleBtn.AutoButtonColor=false
bubbleBtn.Parent=modsSec
bubbleBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",bubbleBtn).CornerRadius=UDim.new(0,6)
local espSec=makeSection(espPage,"Visuals")
local espToggle=Instance.new("TextButton")
espToggle.Size=UDim2.new(1,0,0,36)
espToggle.BackgroundColor3=THEME.ToggleOff
espToggle.Text="ESP: Off"
espToggle.Font=Enum.Font.Gotham
espToggle.TextSize=15
espToggle.TextColor3=readableText(THEME.ToggleOff)
espToggle.Parent=espSec
espToggle:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",espToggle).CornerRadius=UDim.new(0,6)
setupTooltip(espToggle,"Highlights zombies in the theme's color.")
track(espToggle.MouseButton1Click:Connect(function()
if destroyed then return end
espEnabled=not espEnabled
espToggle.Text="ESP: "..(espEnabled and "On" or "Off")
local color=espEnabled and THEME.ToggleOn or THEME.ToggleOff
espToggle.BackgroundColor3=color
espToggle.TextColor3=readableText(color)
espToggle:SetAttribute("ThemeTag",espEnabled and "ToggleOn" or "ToggleOff")
end))
local function makeInfoToggle(parent,label,getState,setState)
local btn=Instance.new("TextButton")
btn.Size=UDim2.new(1,0,0,30)
btn.BackgroundColor3=getState() and THEME.ToggleOn or THEME.ToggleOff
btn.Text=label..": "..(getState() and "On" or "Off")
btn.Font=Enum.Font.Gotham
btn.TextSize=13
btn.TextColor3=readableText(btn.BackgroundColor3)
btn.Parent=parent
btn:SetAttribute("ThemeTag",getState() and "ToggleOn" or "ToggleOff")
Instance.new("UICorner",btn).CornerRadius=UDim.new(0,6)
track(btn.MouseButton1Click:Connect(function()
if destroyed then return end
setState(not getState())
btn.Text=label..": "..(getState() and "On" or "Off")
local c=getState() and THEME.ToggleOn or THEME.ToggleOff
btn.BackgroundColor3=c
btn.TextColor3=readableText(c)
btn:SetAttribute("ThemeTag",getState() and "ToggleOn" or "ToggleOff")
end))
return btn
end
makeInfoToggle(espSec,"Show HP",function() return espShowHP end,function(v) espShowHP=v end)
makeInfoToggle(espSec,"Show Type",function() return espShowType end,function(v) espShowType=v end)
makeInfoToggle(espSec,"Show Armor",function() return espShowArmor end,function(v) espShowArmor=v end)
makeInfoToggle(espSec,"Show Level",function() return espShowLevel end,function(v) espShowLevel=v end)
makeInfoToggle(espSec,"Show Distance",function() return espShowDistance end,function(v) espShowDistance=v end)
if not isMobile then
local hotkeySec=makeSection(hotkeysPage,"Keybinds")
local function makeKeybind(parent,label,stateKey,defaultText)
local btn=Instance.new("TextButton")
btn.Size=UDim2.new(1,0,0,36)
btn.BackgroundColor3=THEME.AccentSoft
btn.Text=label..": "..defaultText
btn.Font=Enum.Font.Gotham
btn.TextSize=14
btn.TextColor3=readableText(THEME.AccentSoft)
btn.Parent=parent
btn:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",btn).CornerRadius=UDim.new(0,6)
setupTooltip(btn,"Click to rebind the "..label.." key.")
local listening=false
track(btn.MouseButton1Click:Connect(function()
if destroyed then return end
listening=true
btn.Text="Press a key..."
end))
track(UserInputService.InputBegan:Connect(function(input,gpe)
if gpe or destroyed then return end
if listening and input.UserInputType==Enum.UserInputType.Keyboard then
if stateKey=="aimKey" then aimKey=input.KeyCode
elseif stateKey=="toggleKey" then toggleKey=input.KeyCode
elseif stateKey=="espKey" then espKey=input.KeyCode
elseif stateKey=="wallKey" then wallKey=input.KeyCode end
btn.Text=label..": "..input.KeyCode.Name
listening=false
saveSettings()
end
end))
end
makeKeybind(hotkeySec,"Aimbot Toggle","aimKey",aimKey.Name)
makeKeybind(hotkeySec,"GUI Toggle","toggleKey",toggleKey.Name)
makeKeybind(hotkeySec,"ESP Toggle","espKey",espKey.Name)
makeKeybind(hotkeySec,"Wall Check","wallKey",wallKey.Name)
end
local extraSec=makeSection(extraPage,"Theme")
local themeRow=Instance.new("Frame")
themeRow.Size=UDim2.new(1,0,0,36)
themeRow.BackgroundColor3=THEME.Panel
themeRow.BackgroundTransparency=0.5
themeRow.BorderSizePixel=0
themeRow.ClipsDescendants=true
themeRow.Parent=extraSec
themeRow:SetAttribute("ThemeTag","Panel")
Instance.new("UICorner",themeRow).CornerRadius=UDim.new(0,6)
local themeBtn=Instance.new("TextButton")
themeBtn.Size=UDim2.new(1,0,0,36)
themeBtn.BackgroundTransparency=1
themeBtn.Text=""
themeBtn.Parent=themeRow
local themeLbl=Instance.new("TextLabel")
themeLbl.Size=UDim2.new(1,-20,1,0)
themeLbl.Position=UDim2.fromOffset(8,0)
themeLbl.BackgroundTransparency=1
themeLbl.Text="Theme: "..THEME.Name
themeLbl.Font=Enum.Font.Gotham
themeLbl.TextSize=14
themeLbl.TextColor3=THEME.Cream
themeLbl.TextXAlignment=Enum.TextXAlignment.Left
themeLbl.Parent=themeBtn
themeLbl:SetAttribute("ThemeTag","Cream")
local themeArrow=Instance.new("TextLabel")
themeArrow.Size=UDim2.fromOffset(20,20)
themeArrow.Position=UDim2.new(1,-24,0,8)
themeArrow.BackgroundTransparency=1
themeArrow.Text="▼"
themeArrow.Font=Enum.Font.GothamBold
themeArrow.TextSize=12
themeArrow.TextColor3=THEME.Cream
themeArrow.Parent=themeBtn
themeArrow:SetAttribute("ThemeTag","Cream")
local themeButtons={}
local function syncThemeHighlight()
for k,b in pairs(themeButtons) do
if k==currentThemeKey then
b.BackgroundColor3=THEME.ToggleOn
b.TextColor3=readableText(THEME.ToggleOn)
else
b.BackgroundColor3=THEME.ToggleOff
b.TextColor3=readableText(THEME.ToggleOff)
end
b:SetAttribute("ThemeTag","None")
end
end
local function reThemeScreenGui()
local fadeInfo=TweenInfo.new(0.15,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
for _,child in ipairs(ScreenGui:GetChildren()) do
if child~=Frame then
local tag=child:GetAttribute("ThemeTag")
if tag and tag~="None" and THEME[tag] then
if child:IsA("Frame") or child:IsA("TextButton") or child:IsA("ScrollingFrame") then
local props={BackgroundColor3=THEME[tag]}
if child:IsA("TextButton") then props.TextColor3=readableText(THEME[tag]) end
TweenService:Create(child,fadeInfo,props):Play()
elseif child:IsA("TextLabel") or child:IsA("TextBox") then
TweenService:Create(child,fadeInfo,{TextColor3=THEME[tag]}):Play()
end
end
for _,d in ipairs(child:GetDescendants()) do
local dtag=d:GetAttribute("ThemeTag")
if dtag and dtag~="None" and THEME[dtag] then
if d:IsA("Frame") or d:IsA("TextButton") then
local p={BackgroundColor3=THEME[dtag]}
if d:IsA("TextButton") then p.TextColor3=readableText(THEME[dtag]) end
TweenService:Create(d,fadeInfo,p):Play()
elseif d:IsA("TextLabel") or d:IsA("TextBox") then
TweenService:Create(d,fadeInfo,{TextColor3=THEME[dtag]}):Play()
elseif d:IsA("UIStroke") then
TweenService:Create(d,fadeInfo,{Color=THEME[dtag]}):Play()
end
end
end
end
end
end
local function pickTheme(key)
local data=Themes[key]
if not data then return end
currentThemeKey=key
themeLbl.Text="Theme: "..data.Name
applyTheme(data,Frame,bgImage)
reThemeScreenGui()
syncThemeHighlight()
destroyHotkeyGui()
saveSettings()
end
if not isMobile then
local themeScroll=Instance.new("Frame")
themeScroll.Size=UDim2.new(1,-16,0,0)
themeScroll.Position=UDim2.fromOffset(8,36)
themeScroll.BackgroundColor3=THEME.AccentSoft
themeScroll.BackgroundTransparency=0.4
themeScroll.BorderSizePixel=0
themeScroll.ClipsDescendants=true
themeScroll.Visible=false
themeScroll.Parent=themeRow
themeScroll:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",themeScroll).CornerRadius=UDim.new(0,5)
local themeContent=Instance.new("Frame")
themeContent.Size=UDim2.new(1,0,0,0)
themeContent.AutomaticSize=Enum.AutomaticSize.Y
themeContent.BackgroundTransparency=1
themeContent.Position=UDim2.new(0,0,0,0)
themeContent.Parent=themeScroll
local themeLayout=Instance.new("UIListLayout",themeContent)
themeLayout.Padding=UDim.new(0,2)
local themePad=Instance.new("UIPadding",themeContent)
themePad.PaddingTop=UDim.new(0,4)
themePad.PaddingBottom=UDim.new(0,4)
local themeExpanded=false
local THEME_ROW_OPEN=220
local THEME_ROW_CLOSED=36
local function setThemeExpanded(state)
themeExpanded=state
themeScroll.Visible=state
themeArrow.Text=state and "▲" or "▼"
TweenService:Create(themeRow,TweenInfo.new(0.18,Enum.EasingStyle.Quad),{Size=UDim2.new(1,0,0,state and THEME_ROW_OPEN or THEME_ROW_CLOSED)}):Play()
TweenService:Create(themeScroll,TweenInfo.new(0.18),{Size=UDim2.new(1,-16,0,state and (THEME_ROW_OPEN-42) or 0)}):Play()
if not state then themeContent.Position=UDim2.new(0,0,0,0) end
extraPage.ScrollingEnabled=not state
end
track(themeBtn.MouseButton1Click:Connect(function() if destroyed then return end setThemeExpanded(not themeExpanded) end))
setupTooltip(themeBtn,"Change the GUI theme.")
local themeHovering=false
track(themeScroll.MouseEnter:Connect(function() themeHovering=true end))
track(themeScroll.MouseLeave:Connect(function() themeHovering=false end))
local function clampThemeContent()
local maxY=math.max(0,themeContent.AbsoluteSize.Y-themeScroll.AbsoluteSize.Y)
local y=themeContent.Position.Y.Offset
if y>0 then y=0 end
if y<-maxY then y=-maxY end
themeContent.Position=UDim2.new(0,0,0,y)
end
track(UserInputService.InputChanged:Connect(function(input)
if destroyed then return end
if not themeExpanded then return end
if input.UserInputType==Enum.UserInputType.MouseWheel and themeHovering then
themeContent.Position=UDim2.new(0,0,0,themeContent.Position.Y.Offset+input.Position.Z*30)
clampThemeContent()
end
end))
for _,key in ipairs(ThemeOrder) do
local data=Themes[key]
if data then
local btn=Instance.new("TextButton")
btn.Size=UDim2.new(1,-4,0,28)
btn.BackgroundColor3=THEME.ToggleOff
btn.Text=data.Name
btn.Font=Enum.Font.Gotham
btn.TextSize=14
btn.TextColor3=readableText(THEME.ToggleOff)
btn.Parent=themeContent
btn:SetAttribute("ThemeTag","None")
Instance.new("UICorner",btn).CornerRadius=UDim.new(0,4)
themeButtons[key]=btn
local capturedKey=key
track(btn.MouseButton1Click:Connect(function()
if destroyed then return end
pickTheme(capturedKey)
setThemeExpanded(false)
end))
end
end
syncThemeHighlight()
else
themeArrow.Text="▼"
local pickerGui
local function closePicker() if pickerGui then pickerGui:Destroy() pickerGui=nil end end
local function openPicker()
if pickerGui or destroyed then return end
pickerGui=Instance.new("TextButton")
pickerGui.Name="AWThemePicker"
pickerGui.Size=UDim2.fromScale(1,1)
pickerGui.BackgroundColor3=Color3.new(0,0,0)
pickerGui.BackgroundTransparency=0.5
pickerGui.Text=""
pickerGui.AutoButtonColor=false
pickerGui.ZIndex=500
pickerGui.Parent=ScreenGui
pickerGui.MouseButton1Click:Connect(closePicker)
local panelW=math.min(baseW-30,280)
local panel=Instance.new("Frame")
panel.Size=UDim2.fromOffset(panelW,0)
panel.AutomaticSize=Enum.AutomaticSize.Y
panel.Position=UDim2.new(0.5,-panelW/2,0.5,0)
panel.AnchorPoint=Vector2.new(0,0.5)
panel.BackgroundColor3=THEME.Panel
panel.BackgroundTransparency=THEME.PanelTrans
panel.BorderSizePixel=0
panel.ZIndex=501
panel.Parent=pickerGui
Instance.new("UICorner",panel).CornerRadius=UDim.new(0,10)
local ps=Instance.new("UIStroke",panel)
ps.Color=THEME.Stroke
ps.Thickness=2
local pad=Instance.new("UIPadding",panel)
pad.PaddingTop=UDim.new(0,10)
pad.PaddingBottom=UDim.new(0,10)
pad.PaddingLeft=UDim.new(0,10)
pad.PaddingRight=UDim.new(0,10)
local layout=Instance.new("UIListLayout",panel)
layout.Padding=UDim.new(0,6)
layout.SortOrder=Enum.SortOrder.LayoutOrder
local header=Instance.new("TextLabel")
header.Size=UDim2.new(1,0,0,24)
header.BackgroundTransparency=1
header.Text="Select Theme"
header.Font=Enum.Font.GothamBold
header.TextSize=15
header.TextColor3=THEME.Cream
header.ZIndex=502
header.Parent=panel
for _,key in ipairs(ThemeOrder) do
local data=Themes[key]
if data then
local btn=Instance.new("TextButton")
btn.Size=UDim2.new(1,0,0,34)
btn.BackgroundColor3=(key==currentThemeKey) and THEME.ToggleOn or THEME.ToggleOff
btn.Text=data.Name
btn.Font=Enum.Font.Gotham
btn.TextSize=14
btn.TextColor3=readableText(btn.BackgroundColor3)
btn.ZIndex=502
btn.Parent=panel
Instance.new("UICorner",btn).CornerRadius=UDim.new(0,6)
local capturedKey=key
btn.MouseButton1Click:Connect(function()
pickTheme(capturedKey)
closePicker()
end)
end
end
local cancel=Instance.new("TextButton")
cancel.Size=UDim2.new(1,0,0,30)
cancel.BackgroundColor3=THEME.AccentSoft
cancel.Text="Cancel"
cancel.Font=Enum.Font.GothamBold
cancel.TextSize=13
cancel.TextColor3=readableText(THEME.AccentSoft)
cancel.ZIndex=502
cancel.Parent=panel
Instance.new("UICorner",cancel).CornerRadius=UDim.new(0,6)
cancel.MouseButton1Click:Connect(closePicker)
end
track(themeBtn.MouseButton1Click:Connect(openPicker))
end
local threatSec=makeSection(extraPage,"Threat Alert")
local threatToggle=Instance.new("TextButton")
threatToggle.Size=UDim2.new(1,0,0,36)
threatToggle.BackgroundColor3=threatAlertOn and THEME.ToggleOn or THEME.ToggleOff
threatToggle.Text="Threat Alert: "..(threatAlertOn and "On" or "Off")
threatToggle.Font=Enum.Font.Gotham
threatToggle.TextSize=14
threatToggle.TextColor3=readableText(threatToggle.BackgroundColor3)
threatToggle.Parent=threatSec
threatToggle:SetAttribute("ThemeTag",threatAlertOn and "ToggleOn" or "ToggleOff")
Instance.new("UICorner",threatToggle).CornerRadius=UDim.new(0,6)
setupTooltip(threatToggle,"Show a live popup when a zombie enters range.")
track(threatToggle.MouseButton1Click:Connect(function()
if destroyed then return end
threatAlertOn=not threatAlertOn
threatToggle.Text="Threat Alert: "..(threatAlertOn and "On" or "Off")
local c=threatAlertOn and THEME.ToggleOn or THEME.ToggleOff
threatToggle.BackgroundColor3=c
threatToggle.TextColor3=readableText(c)
threatToggle:SetAttribute("ThemeTag",threatAlertOn and "ToggleOn" or "ToggleOff")
saveSettings()
end))
local threatRangeLbl=Instance.new("TextLabel")
threatRangeLbl.Size=UDim2.new(1,0,0,18)
threatRangeLbl.BackgroundTransparency=1
threatRangeLbl.Text="Alert Range: "..threatRange.." studs"
threatRangeLbl.Font=Enum.Font.Gotham
threatRangeLbl.TextSize=13
threatRangeLbl.TextColor3=THEME.Cream
threatRangeLbl.TextXAlignment=Enum.TextXAlignment.Left
threatRangeLbl.Parent=threatSec
threatRangeLbl:SetAttribute("ThemeTag","Cream")
local threatSliderBg=Instance.new("Frame")
threatSliderBg.Size=UDim2.new(1,0,0,20)
threatSliderBg.BackgroundColor3=THEME.AccentSoft
threatSliderBg.BorderSizePixel=0
threatSliderBg.Parent=threatSec
threatSliderBg:SetAttribute("ThemeTag","AccentSoft")
Instance.new("UICorner",threatSliderBg).CornerRadius=UDim.new(0,10)
local threatSliderFill=Instance.new("Frame")
threatSliderFill.Size=UDim2.new((threatRange-5)/95,0,1,0)
threatSliderFill.BackgroundColor3=THEME.ToggleOn
threatSliderFill.BorderSizePixel=0
threatSliderFill.Parent=threatSliderBg
threatSliderFill:SetAttribute("ThemeTag","ToggleOn")
Instance.new("UICorner",threatSliderFill).CornerRadius=UDim.new(0,10)
local threatSliderKnob=Instance.new("Frame")
threatSliderKnob.Size=UDim2.fromOffset(16,16)
threatSliderKnob.Position=UDim2.new((threatRange-5)/95,-8,0.5,-8)
threatSliderKnob.BackgroundColor3=THEME.Cream
threatSliderKnob.BorderSizePixel=0
threatSliderKnob.Parent=threatSliderBg
threatSliderKnob:SetAttribute("ThemeTag","Cream")
Instance.new("UICorner",threatSliderKnob).CornerRadius=UDim.new(1,0)
local function setThreatRange(n)
threatRange=math.clamp(math.floor(n),5,100)
threatRangeLbl.Text="Alert Range: "..threatRange.." studs"
local p=(threatRange-5)/95
threatSliderFill.Size=UDim2.new(p,0,1,0)
threatSliderKnob.Position=UDim2.new(p,-8,0.5,-8)
end
local threatSliderDragging=false
local function threatSliderFromInput(input)
local rel=(input.Position.X-threatSliderBg.AbsolutePosition.X)/math.max(1,threatSliderBg.AbsoluteSize.X)
rel=math.clamp(rel,0,1)
setThreatRange(5+rel*95)
end
track(threatSliderBg.InputBegan:Connect(function(input)
if destroyed then return end
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
threatSliderDragging=true
threatSliderFromInput(input)
end
end))
track(UserInputService.InputChanged:Connect(function(input)
if destroyed then return end
if threatSliderDragging and (input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch) then
threatSliderFromInput(input)
end
end))
track(UserInputService.InputEnded:Connect(function(input)
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
if threatSliderDragging then threatSliderDragging=false saveSettings() end
end
end))
local saveSec=makeSection(extraPage,"Save Settings")
local saveToggle=Instance.new("TextButton")
saveToggle.Size=UDim2.new(1,0,0,36)
saveToggle.BackgroundColor3=saveSettingsOn and THEME.ToggleOn or THEME.ToggleOff
saveToggle.Text="Save Settings: "..(saveSettingsOn and "On" or "Off")
saveToggle.Font=Enum.Font.GothamBold
saveToggle.TextSize=14
saveToggle.TextColor3=readableText(saveToggle.BackgroundColor3)
saveToggle.Parent=saveSec
saveToggle:SetAttribute("ThemeTag",saveSettingsOn and "ToggleOn" or "ToggleOff")
Instance.new("UICorner",saveToggle).CornerRadius=UDim.new(0,6)
setupTooltip(saveToggle,"On = settings save automatically. Off = settings file is wiped.")
track(saveToggle.MouseButton1Click:Connect(function()
if destroyed then return end
saveSettingsOn=not saveSettingsOn
saveToggle.Text="Save Settings: "..(saveSettingsOn and "On" or "Off")
local c=saveSettingsOn and THEME.ToggleOn or THEME.ToggleOff
saveToggle.BackgroundColor3=c
saveToggle.TextColor3=readableText(c)
saveToggle:SetAttribute("ThemeTag",saveSettingsOn and "ToggleOn" or "ToggleOff")
if saveSettingsOn then saveSettings() else wipeSettingsFile() end
end))
local settingsSec=makeSection(extraPage,"Settings")
if not isMobile then
local tooltipRow=Instance.new("TextButton")
tooltipRow.Size=UDim2.new(1,0,0,36)
tooltipRow.BackgroundColor3=THEME.ToggleOn
tooltipRow.Text="Tooltips: On"
tooltipRow.Font=Enum.Font.Gotham
tooltipRow.TextSize=14
tooltipRow.TextColor3=readableText(THEME.ToggleOn)
tooltipRow.Parent=settingsSec
tooltipRow:SetAttribute("ThemeTag","ToggleOn")
Instance.new("UICorner",tooltipRow).CornerRadius=UDim.new(0,6)
track(tooltipRow.MouseButton1Click:Connect(function()
if destroyed then return end
tooltipsEnabled=not tooltipsEnabled
tooltipRow.Text="Tooltips: "..(tooltipsEnabled and "On" or "Off")
local c=tooltipsEnabled and THEME.ToggleOn or THEME.ToggleOff
tooltipRow.BackgroundColor3=c
tooltipRow.TextColor3=readableText(c)
tooltipRow:SetAttribute("ThemeTag",tooltipsEnabled and "ToggleOn" or "ToggleOff")
if not tooltipsEnabled then hideTooltip() end
end))
local notifRow=Instance.new("TextButton")
notifRow.Size=UDim2.new(1,0,0,36)
notifRow.BackgroundColor3=THEME.ToggleOn
notifRow.Text="Hotkey Notifs: On"
notifRow.Font=Enum.Font.Gotham
notifRow.TextSize=14
notifRow.TextColor3=readableText(THEME.ToggleOn)
notifRow.Parent=settingsSec
notifRow:SetAttribute("ThemeTag","ToggleOn")
Instance.new("UICorner",notifRow).CornerRadius=UDim.new(0,6)
track(notifRow.MouseButton1Click:Connect(function()
if destroyed then return end
hotkeyNotifsEnabled=not hotkeyNotifsEnabled
notifRow.Text="Hotkey Notifs: "..(hotkeyNotifsEnabled and "On" or "Off")
local c=hotkeyNotifsEnabled and THEME.ToggleOn or THEME.ToggleOff
notifRow.BackgroundColor3=c
notifRow.TextColor3=readableText(c)
notifRow:SetAttribute("ThemeTag",hotkeyNotifsEnabled and "ToggleOn" or "ToggleOff")
if not hotkeyNotifsEnabled and hotkeyFrame then hotkeyFrame.Visible=false end
end))
local debugRow=Instance.new("TextButton")
debugRow.Size=UDim2.new(1,0,0,36)
debugRow.BackgroundColor3=THEME.ToggleOff
debugRow.Text="Debug Overlay: Off"
debugRow.Font=Enum.Font.Gotham
debugRow.TextSize=14
debugRow.TextColor3=readableText(THEME.ToggleOff)
debugRow.Parent=settingsSec
debugRow:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",debugRow).CornerRadius=UDim.new(0,6)
track(debugRow.MouseButton1Click:Connect(function()
if destroyed then return end
debugEnabled=not debugEnabled
debugRow.Text="Debug Overlay: "..(debugEnabled and "On" or "Off")
local c=debugEnabled and THEME.ToggleOn or THEME.ToggleOff
debugRow.BackgroundColor3=c
debugRow.TextColor3=readableText(c)
debugRow:SetAttribute("ThemeTag",debugEnabled and "ToggleOn" or "ToggleOff")
end))
end
local destroyBtn=Instance.new("TextButton")
destroyBtn.Size=UDim2.new(1,0,0,36)
destroyBtn.BackgroundColor3=Color3.fromRGB(180,70,70)
destroyBtn.Text="DESTROY"
destroyBtn.Font=Enum.Font.GothamBold
destroyBtn.TextSize=15
destroyBtn.TextColor3=Color3.new(1,1,1)
destroyBtn.Parent=extraSec
destroyBtn:SetAttribute("ThemeTag","ToggleOff")
Instance.new("UICorner",destroyBtn).CornerRadius=UDim.new(0,6)
local threatGui=nil
local threatPanel=nil
local threatLabel=nil
local threatTracked={}
local lastThreatShow=0
local function directionLabel(worldPos)
local camPos=Camera.CFrame.Position
local toZ=(worldPos-camPos)
local look=Camera.CFrame.LookVector
local flatTo=Vector3.new(toZ.X,0,toZ.Z)
local flatLook=Vector3.new(look.X,0,look.Z)
if flatTo.Magnitude<0.1 or flatLook.Magnitude<0.1 then return "nearby" end
local dot=flatLook.Unit:Dot(flatTo.Unit)
if dot>0.6 then return "in front" end
if dot<-0.6 then return "behind" end
local cross=flatLook.Unit:Cross(flatTo.Unit).Y
if cross>0 then return "left" else return "right" end
end
local function showThreatPopup(zType,dist,direction,count)
if threatGui then pcall(function() threatGui:Destroy() end) threatGui=nil end
threatGui=Instance.new("ScreenGui")
threatGui.Name="AWThreat"
threatGui.ResetOnSpawn=false
threatGui.DisplayOrder=700
threatGui.IgnoreGuiInset=true
threatGui.Parent=PlayerGui
threatPanel=Instance.new("Frame")
threatPanel.Size=UDim2.fromOffset(300,44)
threatPanel.Position=UDim2.new(0.5,-150,1,-140)
threatPanel.BackgroundColor3=THEME.Panel
threatPanel.BackgroundTransparency=1
threatPanel.BorderSizePixel=0
threatPanel.Parent=threatGui
Instance.new("UICorner",threatPanel).CornerRadius=UDim.new(0,8)
local st=Instance.new("UIStroke",threatPanel)
st.Color=Color3.fromRGB(220,60,60)
st.Thickness=2
local accent=Instance.new("Frame")
accent.Size=UDim2.new(0,6,1,0)
accent.BackgroundColor3=Color3.fromRGB(220,60,60)
accent.BorderSizePixel=0
accent.Parent=threatPanel
Instance.new("UICorner",accent).CornerRadius=UDim.new(0,8)
threatLabel=Instance.new("TextLabel")
threatLabel.Size=UDim2.new(1,-20,1,0)
threatLabel.Position=UDim2.fromOffset(14,0)
threatLabel.BackgroundTransparency=1
threatLabel.Text="⚠ "..zType.." • "..math.floor(dist).." studs • "..direction.." • "..count.." zombies"
threatLabel.Font=Enum.Font.GothamBold
threatLabel.TextSize=13
threatLabel.TextColor3=THEME.Cream
threatLabel.TextXAlignment=Enum.TextXAlignment.Left
threatLabel.TextTransparency=1
threatLabel.Parent=threatPanel
TweenService:Create(threatPanel,TweenInfo.new(0.2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-150,1,-180),BackgroundTransparency=0.08}):Play()
TweenService:Create(threatLabel,TweenInfo.new(0.2),{TextTransparency=0}):Play()
end
local function hideThreatPopup()
if not threatGui then return end
local panel=threatPanel
local lbl=threatLabel
threatPanel=nil
threatLabel=nil
if panel then
pcall(function()
local out=TweenService:Create(panel,TweenInfo.new(0.3,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Position=UDim2.new(0.5,-150,1,-140),BackgroundTransparency=1})
out:Play()
end)
end
if lbl then pcall(function() TweenService:Create(lbl,TweenInfo.new(0.3),{TextTransparency=1}):Play() end) end
task.delay(0.35,function()
if threatGui then pcall(function() threatGui:Destroy() end) threatGui=nil end
end)
end
local debugOverlay
if not isLite and not isMobile then
debugOverlay=Instance.new("Frame")
debugOverlay.Size=UDim2.fromOffset(220,90)
debugOverlay.Position=UDim2.new(0,8,0.5,-45)
debugOverlay.BackgroundColor3=THEME.Panel
debugOverlay.BackgroundTransparency=0.35
debugOverlay.BorderSizePixel=0
debugOverlay.Parent=ScreenGui
Instance.new("UICorner",debugOverlay).CornerRadius=UDim.new(0,6)
local ds=Instance.new("UIStroke",debugOverlay)
ds.Color=THEME.Stroke
ds.Thickness=1
ds:SetAttribute("ThemeTag","Stroke")
debugOverlay:SetAttribute("ThemeTag","Panel")
local lbl=Instance.new("TextLabel")
lbl.Size=UDim2.new(1,-10,1,-10)
lbl.Position=UDim2.fromOffset(5,5)
lbl.BackgroundTransparency=1
lbl.Text="Loading..."
lbl.TextColor3=THEME.Cream
lbl.Font=Enum.Font.Code
lbl.TextSize=12
lbl.TextXAlignment=Enum.TextXAlignment.Left
lbl.TextYAlignment=Enum.TextYAlignment.Top
lbl.Parent=debugOverlay
lbl:SetAttribute("ThemeTag","Cream")
end
local awCircle=nil
local awCircleConnections={}
local function destroyAwCircle()
for _,c in ipairs(awCircleConnections) do pcall(function() c:Disconnect() end) end
awCircleConnections={}
if awCircle then pcall(function() awCircle:Destroy() end) awCircle=nil end
end
local function openGuiFromBubble()
if destroyed then return end
guiVisible=true
Frame.Visible=true
if awCircle then awCircle.Visible=false end
local w,h=currentSize()
Frame.Position=UDim2.new(0.5,-w/2,-0.5,0)
TweenService:Create(Frame,TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-w/2,0.5,-h/2)}):Play()
end
local function centerGui()
local w,h=currentSize()
Frame.Position=UDim2.new(0.5,-w/2,-0.5,0)
TweenService:Create(Frame,TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{Position=UDim2.new(0.5,-w/2,0.5,-h/2)}):Play()
end
local function hideGui()
local w,h=currentSize()
TweenService:Create(Frame,TweenInfo.new(0.4,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Position=UDim2.new(0.5,-w/2,-0.5,0)}):Play()
Frame.Visible=false
end
local function spawnAwCircle()
if awCircle and awCircle.Parent then awCircle.Visible=true return end
awCircle=Instance.new("TextButton")
awCircle.Name="AWBubble"
awCircle.Size=UDim2.fromOffset(60,60)
awCircle.Position=UDim2.new(0.5,-30,1,-200)
awCircle.BackgroundColor3=THEME.ToggleOn
awCircle.Text="AW"
awCircle.Font=Enum.Font.GothamBold
awCircle.TextSize=18
awCircle.TextColor3=readableText(THEME.ToggleOn)
awCircle.AutoButtonColor=false
awCircle.Active=true
awCircle.Selectable=true
awCircle.ZIndex=200
awCircle.Parent=ScreenGui
awCircle:SetAttribute("ThemeTag","ToggleOn")
Instance.new("UICorner",awCircle).CornerRadius=UDim.new(1,0)
local s=Instance.new("UIStroke",awCircle)
s.Color=THEME.Stroke
s.Thickness=2
s:SetAttribute("ThemeTag","Stroke")
awCircleConnections={}
local conn=awCircle.Activated:Connect(function()
if destroyed then return end
openGuiFromBubble()
end)
table.insert(awCircleConnections,conn)
track(conn)
end
local function toggleGui()
if destroyed then return end
guiVisible=not guiVisible
if not isMobile then
if not guiVisible then hideGui() else Frame.Visible=true centerGui() end
else
if not guiVisible then
hideGui()
spawnAwCircle()
else
if awCircle then awCircle.Visible=false end
Frame.Visible=true
centerGui()
end
end
end
local function destroyAll()
if destroyed then return end
if saveSettingsOn then pcall(function() saveSettings() end) end
destroyed=true
aimbotEnabled=false
espEnabled=false
wallCheck=false
noRecoil=false
noSpread=false
disconnectAll()
if pages["Extra"] then pages["Extra"].ScrollingEnabled=true end
for _,hl in pairs(espHighlights) do pcall(function() hl:Destroy() end) end
for _,bb in pairs(infoBillboards) do pcall(function() bb:Destroy() end) end
espHighlights={}
infoBillboards={}
espHighlightPartCount={}
destroyAwCircle()
destroyHotkeyGui()
hideTooltip()
if threatGui then pcall(function() threatGui:Destroy() end) threatGui=nil end
for _,g in ipairs(PlayerGui:GetChildren()) do
if g.Name=="AWToast" or g.Name=="AWTip" or g.Name=="AWNotif" or g.Name=="AWThemePicker" or g.Name=="AWThreat" then
pcall(function() g:Destroy() end)
end
end
local t=TweenService:Create(Frame,TweenInfo.new(0.25,Enum.EasingStyle.Quad,Enum.EasingDirection.In),{Size=UDim2.fromOffset(baseW*0.85,baseH*0.85),BackgroundTransparency=1})
TweenService:Create(stroke,TweenInfo.new(0.25),{Transparency=1}):Play()
t:Play()
task.delay(0.25,function()
if ScreenGui then pcall(function() ScreenGui:Destroy() end) end
end)
end
local destroyConfirmToken=0
local destroyOriginalText="DESTROY"
track(destroyBtn.MouseButton1Click:Connect(function()
if destroyed then return end
destroyConfirmToken=destroyConfirmToken+1
local myToken=destroyConfirmToken
if destroyBtn.Text==destroyOriginalText then
destroyBtn.Text="Click again to confirm (3)"
destroyBtn.BackgroundColor3=Color3.fromRGB(220,90,90)
task.spawn(function()
for i=2,0,-1 do
task.wait(1)
if myToken~=destroyConfirmToken or destroyed then return end
if destroyBtn.Text~=destroyOriginalText then
destroyBtn.Text="Click again to confirm ("..i..")"
end
end
if myToken==destroyConfirmToken and not destroyed then
destroyBtn.Text=destroyOriginalText
destroyBtn.BackgroundColor3=Color3.fromRGB(180,70,70)
end
end)
else
destroyAll()
end
end))
track(closeBtn.MouseButton1Click:Connect(toggleGui))
local visibleTimers={}
local sharedRayParams=RaycastParams.new()
sharedRayParams.FilterType=Enum.RaycastFilterType.Exclude
sharedRayParams.FilterDescendantsInstances={LocalPlayer.Character}
local function isVisible(part)
if not wallCheck then return true end
if not part or not part.Parent then return false end
sharedRayParams.FilterDescendantsInstances={LocalPlayer.Character}
local origin=Camera.CFrame.Position
local dir=part.Position-origin
local result=workspace:Raycast(origin,dir,sharedRayParams)
if not result or result.Instance:IsDescendantOf(part.Parent) then
if not visibleTimers[part] then visibleTimers[part]=tick() end
if tick()-visibleTimers[part]>=0.25 then return true end
else
visibleTimers[part]=nil
end
return false
end
local function getTargetPart(model)
return model:FindFirstChild("Head")
or model:FindFirstChild("UpperTorso")
or model:FindFirstChild("Torso")
or model:FindFirstChild("HumanoidRootPart")
end
local function getZombieType(model)
local attr=model:GetAttribute("ZombieType") or model:GetAttribute("Type") or model:GetAttribute("Class")
if attr then return tostring(attr) end
local sv=model:FindFirstChild("ZombieType") or model:FindFirstChild("Type") or model:FindFirstChild("Class")
if sv and (sv:IsA("StringValue") or sv:IsA("ObjectValue")) then return tostring(sv.Value) end
local mName=string.lower(model.Name)
for _,z in ipairs(ZOMBIE_TYPES) do
if string.find(mName,string.lower(z),1,true) then return z end
end
return model.Name
end
local STICKY_WINDOW=0.06
local SWAP_THRESHOLD=8
local stickyTarget=nil
local stickyExpires=0
local function isValidAimTarget(part)
if not part or not part.Parent then return false end
local model=part.Parent
local hum=model:FindFirstChild("Zombie") or model:FindFirstChildOfClass("Humanoid")
if not hum or (hum.Health or 0)<=0 then return false end
return true
end
local function closestZombie()
local camPos=Camera.CFrame.Position
local zombies=workspace:FindFirstChild("Zombies")
if not zombies then return nil end
local bestDist
if aimTarget=="Closest" then bestDist=math.huge else bestDist=-math.huge end
local bestPart=nil
local lookDir=Camera.CFrame.LookVector
for _,v in pairs(zombies:GetChildren()) do
if v and v.Parent then
local part=getTargetPart(v)
local hum=v:FindFirstChild("Zombie") or v:FindFirstChildOfClass("Humanoid")
if part and hum and (hum.Health or 0)>0 then
if isVisible(part) then
local d=(part.Position-camPos).Magnitude
if aimTarget=="Closest" then
if d<bestDist then bestDist=d bestPart=part end
elseif aimTarget=="Farthest" then
if d>bestDist then bestDist=d bestPart=part end
else
local toZombie=(part.Position-camPos).Unit
local dot=lookDir:Dot(toZombie)
if dot>bestDist then bestDist=dot bestPart=part end
end
end
end
end
end
if not bestPart then stickyTarget=nil return nil end
local now=tick()
if stickyTarget and stickyTarget~=bestPart and isValidAimTarget(stickyTarget) and now<stickyExpires then
local currentDist=(stickyTarget.Position-camPos).Magnitude
local bestDistNow=(bestPart.Position-camPos).Magnitude
local improvement
if aimTarget=="Closest" then improvement=currentDist-bestDistNow
elseif aimTarget=="Farthest" then improvement=bestDistNow-currentDist
else improvement=SWAP_THRESHOLD+1 end
if improvement<SWAP_THRESHOLD then return stickyTarget end
end
stickyTarget=bestPart
stickyExpires=now+STICKY_WINDOW
return bestPart
end
local zombieFolderCache=nil
local function resolveZombieFolder()
if zombieFolderCache and zombieFolderCache.Parent then return zombieFolderCache end
zombieFolderCache=workspace:FindFirstChild("Zombies")
return zombieFolderCache
end
local function buildInfoString(model,hum)
local parts={}
local zType=getZombieType(model)
local level=currentWaveLevel or 1
local reduction=getArmorReduction(zType,level)
if espShowType then table.insert(parts,zType) end
if espShowLevel then table.insert(parts,"L"..tostring(level)) end
if espShowHP then table.insert(parts,math.floor(hum.Health or 0).." HP") end
if espShowArmor and reduction>0 then table.insert(parts,math.floor(reduction*100+0.5).."% armor") end
if espShowDistance then
local char=LocalPlayer.Character
local hrp=char and (char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Head"))
local root=model:FindFirstChild("HumanoidRootPart") or model:FindFirstChild("Head")
if hrp and root then table.insert(parts,math.floor((root.Position-hrp.Position).Magnitude).."m") end
end
return table.concat(parts," • ")
end
local function updateESP()
local zombies=resolveZombieFolder()
if not zombies then return end
local seen={}
for _,model in pairs(zombies:GetChildren()) do
if model and model.Parent then
local hum=model:FindFirstChild("Zombie") or model:FindFirstChildOfClass("Humanoid")
local root=model:FindFirstChild("HumanoidRootPart") or model:FindFirstChild("Head")
if hum and (hum.Health or 0)>0 and root and not Players:GetPlayerFromCharacter(model) then
seen[model]=true
if espEnabled then
local hl=espHighlights[model]
local partCount=0
for _,c in ipairs(model:GetChildren()) do
if c:IsA("BasePart") then partCount=partCount+1 end
end
if not hl or not hl.Parent then
if hl then hl:Destroy() end
hl=Instance.new("Highlight")
hl.FillColor=THEME.Gold
hl.OutlineColor=THEME.Gold
hl.FillTransparency=0.6
hl.OutlineTransparency=0
hl.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop
hl.Parent=model
espHighlights[model]=hl
espHighlightPartCount[model]=partCount
else
local lastCount=espHighlightPartCount[model] or 0
if partCount~=lastCount then
hl:Destroy()
local newHl=Instance.new("Highlight")
newHl.FillColor=THEME.Gold
newHl.OutlineColor=THEME.Gold
newHl.FillTransparency=0.6
newHl.OutlineTransparency=0
newHl.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop
newHl.Parent=model
espHighlights[model]=newHl
espHighlightPartCount[model]=partCount
end
end
elseif espHighlights[model] then
pcall(function() espHighlights[model]:Destroy() end)
espHighlights[model]=nil
espHighlightPartCount[model]=nil
end
local infoActive=espShowHP or espShowType or espShowArmor or espShowLevel or espShowDistance
if infoActive then
local bb=infoBillboards[model]
if not bb or not bb.Parent then
if bb then bb:Destroy() end
bb=Instance.new("BillboardGui")
bb.Size=UDim2.fromOffset(220,40)
bb.StudsOffset=Vector3.new(0,3.2,0)
bb.AlwaysOnTop=true
bb.Parent=root
local lbl=Instance.new("TextLabel")
lbl.Size=UDim2.fromScale(1,1)
lbl.BackgroundTransparency=1
lbl.TextColor3=Color3.new(1,1,1)
lbl.TextStrokeTransparency=0.4
lbl.Font=Enum.Font.Gotham
lbl.TextSize=14
lbl.Parent=bb
infoBillboards[model]=bb
end
local lbl=bb:FindFirstChildOfClass("TextLabel")
if lbl then lbl.Text=buildInfoString(model,hum) end
elseif infoBillboards[model] then
pcall(function() infoBillboards[model]:Destroy() end)
infoBillboards[model]=nil
end
end
end
end
for model,hl in pairs(espHighlights) do
if not seen[model] or not model.Parent then
pcall(function() hl:Destroy() end)
espHighlights[model]=nil
espHighlightPartCount[model]=nil
end
end
for model,bb in pairs(infoBillboards) do
if not seen[model] or not model.Parent then
pcall(function() bb:Destroy() end)
infoBillboards[model]=nil
end
end
end
track(UserInputService.InputBegan:Connect(function(input,gpe)
if gpe or destroyed then return end
if input.KeyCode==aimKey then
setAimbot(not aimbotEnabled)
showHotkeyNotif("Aimbot",aimbotEnabled)
end
if input.KeyCode==toggleKey then
toggleGui()
showHotkeyNotif("GUI",guiVisible)
end
if input.KeyCode==espKey then
espEnabled=not espEnabled
espToggle.Text="ESP: "..(espEnabled and "On" or "Off")
local color=espEnabled and THEME.ToggleOn or THEME.ToggleOff
espToggle.BackgroundColor3=color
espToggle.TextColor3=readableText(color)
espToggle:SetAttribute("ThemeTag",espEnabled and "ToggleOn" or "ToggleOff")
showHotkeyNotif("ESP",espEnabled)
end
if input.KeyCode==wallKey then
wallCheck=not wallCheck
wallBtn.Text="Wall Check: "..(wallCheck and "On" or "Off")
local color=wallCheck and THEME.ToggleOn or THEME.ToggleOff
wallBtn.BackgroundColor3=color
wallBtn.TextColor3=readableText(color)
wallBtn:SetAttribute("ThemeTag",wallCheck and "ToggleOn" or "ToggleOff")
showHotkeyNotif("Wall Check",wallCheck)
end
end))
task.spawn(function()
while not destroyed and ScreenGui.Parent do
local m=resolveGameMode()
if m and m~="" then
currentGameMode=m
currentWaveLevel=MODE_TO_LEVEL[string.lower(m)] or 1
end
local w=resolveWave()
if w and w~=currentWave then
currentWave=w
end
task.wait(0.5)
end
end)
task.spawn(function()
while not destroyed and ScreenGui.Parent do
local zombies=workspace:FindFirstChild("Zombies")
if zombies then
for _,m in pairs(zombies:GetChildren()) do
if m and m.Parent and not killTracked[m] then
killTracked[m]=true
local hum=m:FindFirstChild("Zombie") or m:FindFirstChildOfClass("Humanoid")
if hum then
track(hum.Died:Connect(function()
sessionKills=sessionKills+1
end))
end
end
end
end
task.wait(1)
end
end)
task.spawn(function()
while not destroyed and ScreenGui.Parent do
if threatAlertOn then
local char=LocalPlayer.Character
local hrp=char and (char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Head"))
if hrp then
local zombies=workspace:FindFirstChild("Zombies")
if zombies then
local now=tick()
local closestInRange=nil
local closestInRangeDist=math.huge
local closestInRangeType=nil
local closestInRangePos=nil
local inRangeCount=0
for _,m in pairs(zombies:GetChildren()) do
if m and m.Parent then
local hum=m:FindFirstChild("Zombie") or m:FindFirstChildOfClass("Humanoid")
local root=m:FindFirstChild("HumanoidRootPart") or m:FindFirstChild("Head")
if hum and (hum.Health or 0)>0 and root then
local dist=(root.Position-hrp.Position).Magnitude
if dist<=threatRange then
inRangeCount=inRangeCount+1
threatTracked[m]=true
if dist<closestInRangeDist then
closestInRangeDist=dist
closestInRange= m
closestInRangeType=getZombieType(m)
closestInRangePos=root.Position
end
else
threatTracked[m]=nil
end
else
threatTracked[m]=nil
end
end
end
if closestInRange then
local labelText="⚠ "..closestInRangeType.." • "..math.floor(closestInRangeDist).." studs • "..directionLabel(closestInRangePos).." • "..inRangeCount.." zombies"
if not threatGui then
if now-lastThreatShow>=0.3 then
lastThreatShow=now
showThreatPopup(closestInRangeType,closestInRangeDist,directionLabel(closestInRangePos),inRangeCount)
end
else
if threatLabel then
threatLabel.Text=labelText
end
end
else
if threatGui then
hideThreatPopup()
end
end
end
end
else
threatTracked={}
if threatGui then hideThreatPopup() end
end
task.wait(0.2)
end
if threatGui then pcall(function() threatGui:Destroy() end) threatGui=nil end
end)
local frameCount=0
local currentFPS=0
local espAccum=0
local espInterval=isLite and 0.15 or 0
track(RunService.RenderStepped:Connect(function(dt)
if destroyed then return end
if aimbotEnabled then
local target=closestZombie()
if target then
local camPos=Camera.CFrame.Position
local targetCF=CFrame.new(camPos,target.Position)
if aimSmooth<=1 then
Camera.CFrame=targetCF
else
local strength=1-math.clamp((aimSmooth-1)/99,0,1)
local alpha=1-(1-strength)^(dt*60)
alpha=math.clamp(alpha,0.02,1)
Camera.CFrame=Camera.CFrame:Lerp(targetCF,alpha)
end
end
end
if espEnabled or (espShowHP or espShowType or espShowArmor or espShowLevel or espShowDistance) then
if isLite then
espAccum=espAccum+dt
if espAccum>=espInterval then espAccum=0 pcall(updateESP) end
else
pcall(updateESP)
end
elseif next(espHighlights) or next(infoBillboards) then
for _,hl in pairs(espHighlights) do pcall(function() hl:Destroy() end) end
for _,bb in pairs(infoBillboards) do pcall(function() bb:Destroy() end) end
espHighlights={}
infoBillboards={}
espHighlightPartCount={}
end
frameCount=frameCount+1
if frameCount>=15 then
currentFPS=math.floor(1/dt+0.5)
frameCount=0
if debugOverlay and debugEnabled then
local mem=math.floor(Stats:GetTotalMemoryUsageMb())
debugOverlay.Visible=true
debugOverlay:FindFirstChildOfClass("TextLabel").Text=string.format("Albedoware 1.1v\nExecutor: %s\nPlayers: %d/%d\nFPS: %d\nMem: %d MB",EXECUTOR_NAME,#Players:GetPlayers(),Players.MaxPlayers,currentFPS,mem)
elseif debugOverlay then
debugOverlay.Visible=false
end
end
end))
task.spawn(function()
while not destroyed and ScreenGui.Parent do
if noRecoil or noSpread then
pcall(function()
local char=LocalPlayer.Character
local tool=char and char:FindFirstChildOfClass("Tool")
if tool then
local function zero(val)
if not (val:IsA("NumberValue") or val:IsA("IntValue")) then return end
local n=string.lower(val.Name)
if noRecoil and (n:find("recoil") or n:find("camrecoil") or n:find("kick")) then val.Value=0 end
if noSpread and (n:find("spread") or n:find("inaccuracy") or n:find("accuracy")) then val.Value=0 end
end
local cv=tool:FindFirstChild("CurrentValues")
if cv then for _,val in pairs(cv:GetChildren()) do zero(val) end end
for _,val in pairs(tool:GetDescendants()) do zero(val) end
end
end)
end
task.wait(isLite and 0.12 or (isMobile and 0.08 or 0.05))
end
end)
local dragging=false
local dragStart,startPos
track(title.InputBegan:Connect(function(input)
if destroyed then return end
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
dragging=true
dragStart=input.Position
startPos=Frame.Position
end
end))
track(UserInputService.InputChanged:Connect(function(input)
if destroyed or not dragging then return end
if input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch then
local delta=input.Position-dragStart
Frame.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+delta.X,startPos.Y.Scale,startPos.Y.Offset+delta.Y)
end
end))
track(UserInputService.InputEnded:Connect(function(input)
if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then
dragging=false
end
end))
end
showLoading(function()
showDeviceSelect(function()
loadSettingsFile()
local th=Themes[currentThemeKey]
if th then for k,v in pairs(th) do THEME[k]=v end end
showSplash(buildMain)
end)
end)
task.delay(2,preloadBackgrounds)
print("Albedoware FS2 loaded")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.


Your community, in one place