M
Description
Много разных функций и всего остальнова
GAME🔥NEW! Hypershot (Gunfight)
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
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 ]]
-- ============================================================
-- EXTENDED PACK v4 — MEGA EDITION (MONOLITHIC)
-- English UI, Single Menu Key, Language Tab
-- ============================================================
local SoundService = game:GetService("SoundService")
local TeleportService = game:GetService("TeleportService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local VirtualUser = game:GetService("VirtualUser")
local VirtualInputManager = game:GetService("VirtualInputManager")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local Camera = workspace.CurrentCamera
local DrawingAvailable = pcall(function() return Drawing.new("Line") end)
local gethui = gethui or function() return CoreGui end
local CONFIG_DIR = "ExtendedPack"
local DEFAULT_SETTINGS = DEFAULT_SETTINGS or {}
local Settings = Settings or {}
-- ------------------------------------------------------------
-- MODULE 1: FULL SETTINGS
-- ------------------------------------------------------------
local FULL_DEFAULTS = {
guiKey="RightShift", guiVisible=true, theme="Midnight", language="English", guiRounded=true,
notificationsEnabled=true, notificationsPosition="TopRight", notificationsDuration=3, notificationsSound=true,
soundsEnabled=true, hitSoundEnabled=true, killSoundEnabled=true, hitSoundId="rbxassetid://131886985", killSoundId="rbxassetid://131886394", hitSoundVolume=0.4, killSoundVolume=0.6, hitmarkerSoundId="rbxassetid://160432334", buttonSoundId="rbxassetid://1786821492",
aimEnabled=false, aimFOV=100, aimFOVShow=true, aimFOVColor=Color3.fromRGB(255,255,255), aimSmoothness=0.2, aimSmoothType="Linear", aimPrediction=false, aimBulletSpeed=1500, aimPriority="FOV", aimTeamCheck=true, aimWallCheck=false, aimPart="Head",
silentAimEnabled=false, triggerbotEnabled=false, triggerbotDelay=0.05, triggerbotWallCheck=true,
autoFireEnabled=false, autoFireFovOnly=true, autoReloadEnabled=false,
killAuraEnabled=false, killAuraRange=20, killAuraRate=0.1, killAuraTeamCheck=true, killAuraWallCheck=true,
espEnabled=true, espShowPlayers=true, espMaxDistance=500, cornerEnabled=true, cornerSize=10, cornerThickness=2, cornerColor=Color3.fromRGB(0,200,255), cornerRainbow=false, fullBoxEnabled=false, healthBarEnabled=true, skeletonEnabled=false, skeletonColor=Color3.fromRGB(255,255,255), nameTagEnabled=true, displayNameTag=true, displayHealthTag=true, displayDistanceTag=true, displayWeaponTag=false, topTracerEnabled=false, bottomTracerEnabled=false, centerTracerEnabled=false, mouseTracerEnabled=false, arrowEnabled=false, radarEnabled=false, radarSize=150, radarPosition="BottomLeft", radarColor=Color3.fromRGB(0,255,0), useTeamColorBox=false, teamColorIndicator=false,
chamsEnabled=false, chamsWallhack=true, chamsFillColor=Color3.fromRGB(255,0,0), chamsOutlineColor=Color3.fromRGB(255,255,255), chamsTransparency=0.4, chamsRainbow=false,
crosshairEnabled=true, crosshairColor=Color3.fromRGB(255,255,255), crosshairSize=5, crosshairGap=3, crosshairDynamic=true, crosshairRainbow=false,
hitmarkersEnabled=true, hitmarkerSound=true, damageNumbersEnabled=false,
worldEspEnabled=false, worldEspItems={"Gun","Ammo","Armor","Weapon","Item","Loot"}, worldEspMaxDist=200, worldEspColor=Color3.fromRGB(255,255,0),
noRecoilEnabled=false, noRecoilPercent=100, noSwayEnabled=false, infiniteAmmo=false, rapidFireEnabled=false, fireRateMultiplier=1, hitboxExpander=false, hitboxSize=5,
speedHackEnabled=false, speedHackValue=20, jumpPowerEnabled=false, jumpPowerValue=50, flyEnabled=false, flySpeed=100, noclipEnabled=false, bunnyHopEnabled=false, infiniteJumpEnabled=false, blinkEnabled=false, blinkDistance=10, dashEnabled=false, dashDistance=20, dashCooldown=1, longJumpEnabled=false, freecamEnabled=false, freecamSpeed=1, freecamSens=0.2,
godModeEnabled=false, invisibilityEnabled=false, antiVoidEnabled=false, autoFarmEnabled=false, autoCollectEnabled=false,
fullbrightEnabled=false, noFogEnabled=false, lowGravityWorld=false, xrayMode=false,
chatSpyEnabled=false, antiAfkEnabled=false, watermarkEnabled=true, fpsDisplayEnabled=false, pingDisplayEnabled=false,
currentProfile="Default", autoSaveEnabled=true, autoSaveInterval=60,
}
for k, v in pairs(FULL_DEFAULTS) do if DEFAULT_SETTINGS[k] == nil then DEFAULT_SETTINGS[k] = v end; if Settings[k] == nil then Settings[k] = v end end
-- ------------------------------------------------------------
-- MODULE 2: LOCALIZATION SYSTEM
-- ------------------------------------------------------------
local LANG_RU = {
["EXTENDED PACK v4 MEGA"] = "РАСШИРЕННЫЙ ПАКЕТ v4 МЕГА", ["scriptLoaded"] = "Extended Pack v4 загружен!", ["menuToggleHint"] = "Клавиша меню:", ["languageUpdated"] = "Язык обновлён",
["Aimbot"] = "Аимбот", ["Visuals"] = "Визуал", ["Weapon"] = "Оружие", ["Movement"] = "Движение", ["Player"] = "Игрок", ["World"] = "Мир", ["Utility"] = "Утилиты", ["Configs"] = "Конфиги", ["Language"] = "Язык",
["AIMBOT CORE"] = "ОСНОВА АИМБОТА", ["Enable Aimbot"] = "Включить аимбот", ["Team Check"] = "Проверка команды", ["Wall Check"] = "Проверка стен", ["Show FOV Circle"] = "Показывать FOV круг", ["FOV Color"] = "Цвет FOV", ["FOV Radius"] = "Радиус FOV", ["Smoothness"] = "Плавность", ["Smooth Type"] = "Тип плавности", ["Aim Part"] = "Часть тела", ["Target Priority"] = "Приоритет цели",
["PREDICTION"] = "ПРЕДСКАЗАНИЕ", ["Velocity Prediction"] = "Предсказание движения", ["Bullet Speed"] = "Скорость пули",
["TRIGGERBOT"] = "ТРИГГЕРБОТ", ["Enable Triggerbot"] = "Включить триггербот", ["Delay"] = "Задержка",
["ESP CORE"] = "ОСНОВА ESP", ["Enable ESP"] = "Включить ESP", ["Show Players"] = "Показывать игроков", ["Max Distance"] = "Максимальная дистанция",
["BOX"] = "БОКС", ["Enable Corners"] = "Углы", ["Enable Full Box"] = "Полный бокс", ["Corner Color"] = "Цвет углов", ["Corner Size"] = "Размер углов", ["Corner Thick"] = "Толщина углов", ["Rainbow Mode"] = "Радужный режим",
["HEALTH"] = "ЗДОРОВЬЕ", ["Health Bar"] = "Полоска здоровья", ["Bar Width"] = "Ширина полоски",
["SKELETON"] = "СКЕЛЕТ", ["Enable Skeleton"] = "Включить скелет", ["Color"] = "Цвет", ["Rainbow"] = "Радуга",
["CHAMS"] = "ЧАМСЫ", ["Enable Chams"] = "Включить чамсы", ["Always On Top"] = "Всегда поверх", ["Fill Color"] = "Цвет заливки", ["Outline Color"] = "Цвет обводки", ["Fill Transparency"] = "Прозрачность заливки",
["TAGS"] = "ТЕГИ", ["Name Tag"] = "Имя", ["Display Name"] = "Отображаемое имя", ["Distance Tag"] = "Дистанция", ["Weapon Tag"] = "Оружие", ["Name Color"] = "Цвет имени", ["Text Size"] = "Размер текста",
["TRACERS"] = "ТРАССЕРЫ", ["Top Tracer"] = "Верхний трассер", ["Bottom Tracer"] = "Нижний трассер", ["Center Tracer"] = "Центральный трассер", ["Mouse Tracer"] = "Трассер от мыши", ["Tracer Color"] = "Цвет трассера",
["CROSSHAIR"] = "ПРИЦЕЛ", ["Enable Crosshair"] = "Включить прицел", ["Dynamic"] = "Динамический", ["Dot"] = "Точка", ["Size"] = "Размер", ["Gap"] = "Зазор", ["Thickness"] = "Толщина",
["HITMARKERS"] = "ХИТМАРКЕРЫ", ["Enable"] = "Включить", ["Sound"] = "Звук", ["Style"] = "Стиль", ["Kill Color"] = "Цвет убийства",
["RADAR"] = "РАДАР", ["Enable Radar"] = "Включить радар", ["Position"] = "Позиция",
["WEAPON MODS"] = "МОДЫ ОРУЖИЯ", ["No Recoil"] = "Без отдачи", ["Recoil %"] = "Отдача %", ["No Sway"] = "Без раскачивания", ["Infinite Ammo"] = "Бесконечные патроны", ["Rapid Fire"] = "Быстрый огонь", ["Auto Fire"] = "Авто-огонь", ["Auto Reload"] = "Авто-перезарядка", ["Hitbox Expander"] = "Расширение хитбокса", ["Hitbox Size"] = "Размер хитбокса",
["MOVEMENT"] = "ДВИЖЕНИЕ", ["Speed Hack"] = "Скорость", ["Walk Speed"] = "Скорость ходьбы", ["Jump Power"] = "Сила прыжка", ["Infinite Jump"] = "Бесконечный прыжок", ["Bunny Hop"] = "Бани-хоп",
["FLY & NOCLIP"] = "ПОЛЁТ И НОКЛИП", ["Fly"] = "Полёт", ["Fly Speed"] = "Скорость полёта", ["Noclip"] = "Ноклип",
["SPECIAL"] = "СПЕЦИАЛЬНОЕ", ["Blink"] = "Блинк", ["Blink Distance"] = "Дистанция блинка", ["Dash"] = "Рывок", ["Dash Distance"] = "Дистанция рывка", ["Long Jump"] = "Длинный прыжок", ["Teleport to Cursor"] = "Телепорт к курсору",
["CAMERA"] = "КАМЕРА", ["Freecam"] = "Свободная камера", ["Freecam Speed"] = "Скорость камеры", ["Freecam Sens"] = "Чувствительность камеры",
["PLAYER MODS"] = "МОДЫ ИГРОКА", ["God Mode"] = "Бессмертие", ["Invisibility"] = "Невидимость", ["Anti-Void"] = "Анти-войд",
["AUTO"] = "АВТО", ["Auto Farm"] = "Авто-фарм", ["Auto Collect"] = "Авто-сбор",
["KILL AURA"] = "КИЛЛ АУРА", ["Enable Kill Aura"] = "Включить килл ауру", ["Range"] = "Радиус", ["Rate"] = "Частота",
["LIGHTING"] = "ОСВЕЩЕНИЕ", ["Fullbright"] = "Полная яркость", ["Brightness"] = "Яркость", ["No Fog"] = "Без тумана",
["WORLD"] = "МИР", ["Low Gravity"] = "Низкая гравитация", ["X-Ray Mode"] = "X-Ray режим",
["WORLD ESP"] = "ESP МИРА", ["Enable World ESP"] = "Включить ESP мира",
["GENERAL"] = "ОБЩЕЕ", ["Anti-AFK"] = "Анти-АФК", ["Chat Spy"] = "Чат-шпион", ["Watermark"] = "Водяной знак",
["NOTIFICATIONS"] = "УВЕДОМЛЕНИЯ", ["Duration"] = "Длительность",
["SOUNDS"] = "ЗВУКИ", ["Master Sounds"] = "Все звуки", ["Hit Sound"] = "Звук попадания", ["Kill Sound"] = "Звук убийства", ["Hit Volume"] = "Громкость попадания", ["Kill Volume"] = "Громкость убийства",
["GUI"] = "МЕНЮ", ["Theme"] = "Тема", ["Apply Theme"] = "Применить тему", ["Rounded Corners"] = "Скруглённые углы", ["GUI Toggle Key"] = "Клавиша открытия меню",
["SERVER"] = "СЕРВЕР", ["Rejoin Server"] = "Перезайти на сервер", ["Server Hop"] = "Сменить сервер",
["CONFIG MANAGEMENT"] = "УПРАВЛЕНИЕ КОНФИГАМИ", ["Save Config"] = "Сохранить конфиг", ["Load Config"] = "Загрузить конфиг", ["Reset to Defaults"] = "Сбросить по умолчанию", ["Auto-Save"] = "Автосохранение",
["PROFILES"] = "ПРОФИЛИ", ["STATISTICS"] = "СТАТИСТИКА",
["LANGUAGE"] = "ЯЗЫК", ["English"] = "English", ["Russian"] = "Русский", ["Current language"] = "Текущий язык",
["languageInfo"] = "Язык меняется мгновенно. Недостающие переводы остаются на английском.",
}
local function L(key) return (Settings.language == "Russian" and LANG_RU[key]) or key end
-- ------------------------------------------------------------
-- MODULE 3: UTILITIES
-- ------------------------------------------------------------
local Util = {}
function Util:Round(n, d) local m=10^(d or 0); return math.floor(n*m+0.5)/m end
function Util:Clamp(v, min, max) return math.max(min, math.min(max, v)) end
function Util:Lerp(a,b,t) return a+(b-a)*t end
function Util:LerpColor(c1,c2,t) return Color3.new(Util:Lerp(c1.R,c2.R,t),Util:Lerp(c1.G,c2.G,t),Util:Lerp(c1.B,c2.B,t)) end
function Util:Rainbow(s) return Color3.fromHSV((tick()*(s or 1)%5)/5,1,1) end
function Util:FormatTime(s) return string.format("%02d:%02d:%02d",math.floor(s/3600),math.floor((s%3600)/60),math.floor(s%60)) end
function Util:IsVisible(part) if not part then return false end; local rp=RaycastParams.new(); rp.FilterType=Enum.RaycastFilterType.Exclude; rp.FilterDescendantsInstances={LocalPlayer.Character,Camera}; local r=workspace:Raycast(Camera.CFrame.Position,(part.Position-Camera.CFrame.Position).Unit*1000,rp); return r and r.Instance and (r.Instance==part or r.Instance:IsDescendantOf(part.Parent)) end
function Util:TeamColorFor(p) return p and p.Team and p.Team.TeamColor.Color or Color3.fromRGB(200,200,200) end
function Util:IsEnemy(p) if not Settings.aimTeamCheck then return true end; return (not LocalPlayer.Team) or (p and p.Team~=LocalPlayer.Team) end
function Util:GetPlayerFromPart(part) if not part then return nil end; local m=part:FindFirstAncestorOfClass("Model"); return m and Players:GetPlayerFromCharacter(m) or nil end
function Util:GetPlayerWeapon(p) if not p or not p.Character then return "None" end; local t=p.Character:FindFirstChildOfClass("Tool"); return t and t.Name or "None" end
-- ------------------------------------------------------------
-- MODULE 4: CONFIG SYSTEM
-- ------------------------------------------------------------
local ConfigSystem = {}
function ConfigSystem:Save(name)
if not writefile or not isfolder then return end
if not isfolder(CONFIG_DIR) then makefolder(CONFIG_DIR) end
local data={} for k,v in pairs(Settings) do if type(v)=="Color3" then data[k]={__c=1,r=v.R,g=v.G,b=v.B} else data[k]=v end end
pcall(writefile, CONFIG_DIR.."/"..name..".json", HttpService:JSONEncode(data))
end
function ConfigSystem:Load(name)
if not readfile or not isfile or not isfile(CONFIG_DIR.."/"..name..".json") then return end
local ok,data=pcall(HttpService.JSONDecode, HttpService, readfile(CONFIG_DIR.."/"..name..".json"))
if ok then for k,v in pairs(data) do if type(v)=="table" and v.__c then Settings[k]=Color3.new(v.r,v.g,v.b) else Settings[k]=v end end end
end
task.spawn(function() while true do task.wait(Settings.autoSaveInterval or 60); if Settings.autoSaveEnabled then ConfigSystem:Save(Settings.currentProfile) end end end)
-- ------------------------------------------------------------
-- MODULE 5: THEME SYSTEM
-- ------------------------------------------------------------
local Themes = {
Midnight={bg=Color3.fromRGB(20,20,30),bg2=Color3.fromRGB(30,30,45),bg3=Color3.fromRGB(45,45,65),accent=Color3.fromRGB(138,43,226),text=Color3.fromRGB(255,255,255),stroke=Color3.fromRGB(60,60,80),success=Color3.fromRGB(80,200,120),warning=Color3.fromRGB(255,180,0),error=Color3.fromRGB(255,80,80)},
Ocean={bg=Color3.fromRGB(15,25,40),bg2=Color3.fromRGB(25,40,60),bg3=Color3.fromRGB(40,60,90),accent=Color3.fromRGB(0,150,255),text=Color3.fromRGB(230,240,255),stroke=Color3.fromRGB(60,90,130),success=Color3.fromRGB(80,200,120),warning=Color3.fromRGB(255,180,0),error=Color3.fromRGB(255,80,80)},
Matrix={bg=Color3.fromRGB(0,0,0),bg2=Color3.fromRGB(5,15,5),bg3=Color3.fromRGB(10,30,10),accent=Color3.fromRGB(0,255,0),text=Color3.fromRGB(200,255,200),stroke=Color3.fromRGB(0,100,0),success=Color3.fromRGB(0,255,0),warning=Color3.fromRGB(255,255,0),error=Color3.fromRGB(255,0,0)},
}
local function getTheme() return Themes[Settings.theme] or Themes.Midnight end
local T = getTheme()
-- ------------------------------------------------------------
-- MODULE 6: NOTIFICATION SYSTEM
-- ------------------------------------------------------------
local NotifySystem = {container=nil}
function NotifySystem:Init()
if self.container then return end
local g=Instance.new("ScreenGui"); g.Name="EP4_N"; g.ResetOnSpawn=false; g.IgnoreGuiInset=true; g.Parent=gethui()
local f=Instance.new("Frame"); f.Size=UDim2.fromOffset(300,600); f.BackgroundTransparency=1; f.AnchorPoint=Vector2.new(Settings.notificationsPosition:find("Right") and 1 or 0, Settings.notificationsPosition:find("Bottom") and 1 or 0); f.Position=UDim2.fromScale(f.AnchorPoint.X, f.AnchorPoint.Y); f.Parent=g
local l=Instance.new("UIListLayout"); l.Padding=UDim.new(0,5); l.VerticalAlignment=f.AnchorPoint.Y==1 and Enum.VerticalAlignment.Bottom or Enum.VerticalAlignment.Top; l.Parent=f
self.container=f
end
local function notify(msg, type, dur)
if not Settings.notificationsEnabled then return end; NotifySystem:Init(); type=type or "info"; dur=dur or 3
local n=Instance.new("Frame"); n.Size=UDim2.new(1,0,0,40); n.BackgroundColor3=T.bg2; n.BorderSizePixel=0; n.Parent=NotifySystem.container
Instance.new("UICorner",n).CornerRadius=UDim.new(0,6)
local s=Instance.new("UIStroke",n); s.Color=(type=="success" and T.success) or (type=="error" and T.error) or T.accent; s.Thickness=1
local t=Instance.new("TextLabel",n); t.Size=UDim2.new(1,-10,1,0); t.Position=UDim2.fromOffset(10,0); t.BackgroundTransparency=1; t.Text=msg; t.TextColor3=T.text; t.TextSize=12; t.Font=Enum.Font.Gotham; t.TextXAlignment=Enum.TextXAlignment.Left; t.TextWrapped=true
task.delay(dur, function() TweenService:Create(n,TweenInfo.new(0.3),{BackgroundTransparency=1,Size=UDim2.new(1,0,0,0)}):Play(); task.delay(0.3,function() n:Destroy() end) end)
end
-- ------------------------------------------------------------
-- MODULE 7: SOUNDS & HITMARKERS & STATS
-- ------------------------------------------------------------
local AudioSystem = {hmLines={}}
function AudioSystem:Play(id, vol) if Settings.soundsEnabled and id then pcall(function() local s=Instance.new("Sound"); s.SoundId=id; s.Volume=vol or 0.5; s.Parent=SoundService; s:Play(); task.delay(3,function() s:Destroy() end) end) end end
function AudioSystem:Hitmarker(kill)
if not DrawingAvailable or not Settings.hitmarkersEnabled then return end; if Settings.hitmarkerSound then self:Play(Settings.hitmarkerSoundId,0.5) end
local c=Camera.ViewportSize/2; local sz=10; local col=kill and Color3.fromRGB(255,0,0) or Color3.fromRGB(255,255,255)
for _,o in ipairs({{Vector2.new(-sz,-sz),Vector2.new(sz,sz)},{Vector2.new(sz,-sz),Vector2.new(-sz,sz)}}) do local l=Drawing.new("Line"); l.From=c+o[1]; l.To=c+o[2]; l.Color=col; l.Thickness=2; l.Visible=true; table.insert(self.hmLines,{obj=l,alpha=1}) end
end
task.spawn(function() while true do task.wait(0.02); for i=#AudioSystem.hmLines,1,-1 do local h=AudioSystem.hmLines[i]; h.alpha-=0.05; if h.alpha<=0 then h.obj:Remove(); table.remove(AudioSystem.hmLines,i) else h.obj.Transparency=1-h.alpha end end end end)
local DamageNumbers = {nums={}}
function DamageNumbers:Show(dmg, char)
if not DrawingAvailable or not Settings.damageNumbersEnabled or not char then return end
local head=char:FindFirstChild("Head"); if not head then return end
local pos,vis=Camera:WorldToViewportPoint(head.Position+Vector3.new(0,2,0)); if not vis then return end
local t=Drawing.new("Text"); t.Text="-"..tostring(Util:Round(dmg,0)); t.Size=14; t.Color=Color3.fromRGB(255,255,0); t.Center=true; t.Outline=true; t.Position=Vector2.new(pos.X,pos.Y); t.Visible=true
table.insert(self.nums,{obj=t,start=tick(),pos=Vector2.new(pos.X,pos.Y)})
end
task.spawn(function() while true do task.wait(0.02); local now=tick(); for i=#DamageNumbers.nums,1,-1 do local d=DamageNumbers.nums[i]; local el=now-d.start; if el>=1.5 then d.obj:Remove(); table.remove(DamageNumbers.nums,i) else d.obj.Position=d.pos-Vector2.new(0,el*30); d.obj.Transparency=el/1.5 end end end end)
local Stats = {kills=0,deaths=0,start=os.time()}
local soundTracker = {}
local function trackSoundPlayer(plr)
if plr==LocalPlayer or soundTracker[plr] then return end; soundTracker[plr]=true
local function hook(char)
local hum=char:WaitForChild("Humanoid",5); if not hum then return end; local prev=hum.Health
hum.HealthChanged:Connect(function(newH)
if newH<prev and newH>0 and plr~=LocalPlayer then AudioSystem:Play(Settings.hitSoundId,Settings.hitSoundVolume); AudioSystem:Hitmarker(false); DamageNumbers:Show(prev-newH,char)
elseif newH<=0 and prev>0 and plr~=LocalPlayer then AudioSystem:Play(Settings.killSoundId,Settings.killSoundVolume); AudioSystem:Hitmarker(true); Stats.kills+=1 end
prev=newH
end)
end
if plr.Character then hook(plr.Character) end; plr.CharacterAdded:Connect(hook)
end
for _,p in ipairs(Players:GetPlayers()) do trackSoundPlayer(p) end; Players.PlayerAdded:Connect(trackSoundPlayer)
-- ------------------------------------------------------------
-- MODULE 8: CHAMS
-- ------------------------------------------------------------
task.spawn(function()
while true do task.wait(0.5)
for _,plr in ipairs(Players:GetPlayers()) do
if plr~=LocalPlayer and plr.Character then
local h=plr.Character:FindFirstChild("EP4_Chams")
if not h then h=Instance.new("Highlight"); h.Name="EP4_Chams"; h.Parent=plr.Character end
h.Enabled=Settings.chamsEnabled and (not Settings.aimTeamCheck or Util:IsEnemy(plr))
if h.Enabled then h.FillColor=Settings.chamsRainbow and Util:Rainbow() or Settings.chamsFillColor; h.OutlineColor=Settings.chamsOutlineColor; h.FillTransparency=Settings.chamsTransparency; h.DepthMode=Settings.chamsWallhack and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded end
end
end
end
end)
-- ------------------------------------------------------------
-- MODULE 9: WEAPON MODS
-- ------------------------------------------------------------
task.spawn(function()
while true do task.wait(0.05); local char=LocalPlayer.Character; if not char then continue end; local tool=char:FindFirstChildOfClass("Tool"); if not tool then continue end
for _,obj in ipairs(tool:GetDescendants()) do if obj:IsA("NumberValue") or obj:IsA("IntValue") then local n=obj.Name:lower(); if Settings.noRecoilEnabled and (n:find("recoil") or n:find("kick")) then obj.Value*=(1-Settings.noRecoilPercent/100) end; if Settings.infiniteAmmo and (n:find("ammo") or n:find("clip")) then obj.Value=999 end end end
if Settings.hitboxExpander then local head=char:FindFirstChild("Head"); if head then head.Size=Vector3.new(Settings.hitboxSize,Settings.hitboxSize,Settings.hitboxSize); head.Transparency=0.7; head.CanCollide=false end end
end
end)
-- ------------------------------------------------------------
-- MODULE 10: MOVEMENT & FREECAM (GUI CONTROLLED ONLY)
-- ------------------------------------------------------------
local Movement = {flyBV=nil,flyBG=nil,flyActive=false,blinkCD=0,dashCD=0}
local Freecam = {active=false,pos=Vector3.new(),rot=Vector2.new(),origType=nil,origSubj=nil}
function Movement:StartFly()
local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not hrp then return end
self.flyActive=true; if self.flyBV then self.flyBV:Destroy() end; if self.flyBG then self.flyBG:Destroy() end
self.flyBV=Instance.new("BodyVelocity"); self.flyBV.MaxForce=Vector3.new(math.huge,math.huge,math.huge); self.flyBV.Velocity=Vector3.new(); self.flyBV.Parent=hrp
self.flyBG=Instance.new("BodyGyro"); self.flyBG.MaxTorque=Vector3.new(math.huge,math.huge,math.huge); self.flyBG.P=10000; self.flyBG.Parent=hrp
end
function Movement:StopFly() self.flyActive=false; if self.flyBV then self.flyBV:Destroy(); self.flyBV=nil end; if self.flyBG then self.flyBG:Destroy(); self.flyBG=nil end end
function Movement:Blink() if tick()<self.blinkCD then return end; local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not hrp then return end; local ray=workspace:Raycast(hrp.Position,Camera.CFrame.LookVector*Settings.blinkDistance); hrp.CFrame=CFrame.new(ray and (ray.Position-Camera.CFrame.LookVector*2) or (hrp.Position+Camera.CFrame.LookVector*Settings.blinkDistance)); self.blinkCD=tick()+0.3 end
function Movement:Dash() if tick()<self.dashCD then return end; local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); local hum=LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid"); if not hrp or not hum then return end; local dir=hum.MoveDirection.Magnitude>0.1 and hum.MoveDirection or Camera.CFrame.LookVector; local bf=Instance.new("BodyVelocity"); bf.MaxForce=Vector3.new(math.huge,math.huge,math.huge); bf.Velocity=dir*Settings.dashDistance*10; bf.Parent=hrp; task.delay(0.1,function() bf:Destroy() end); self.dashCD=tick()+Settings.dashCooldown end
function Freecam:Toggle()
if self.active then self.active=false; Camera.CameraType=self.origType; Camera.CameraSubject=self.origSubj
else self.active=true; self.origType=Camera.CameraType; self.origSubj=Camera.CameraSubject; Camera.CameraType=Enum.CameraType.Scriptable; self.pos=Camera.CFrame.Position; self.rot=Vector2.new() end
end
-- Main State Watcher (Replaces all keybinds)
task.spawn(function()
local lastFly,lastFreecam,lastBlink,lastDash = false,false,false,false
while true do task.wait(0.1)
-- Fly Toggle
if Settings.flyEnabled~=lastFly then if Settings.flyEnabled then Movement:StartFly() else Movement:StopFly() end; lastFly=Settings.flyEnabled end
-- Freecam Toggle
if Settings.freecamEnabled~=lastFreecam then if Settings.freecamEnabled~=Freecam.active then Freecam:Toggle() end; lastFreecam=Settings.freecamEnabled end
-- Blink/Dash triggers
if Settings.blinkEnabled and not lastBlink then Movement:Blink() end; lastBlink=Settings.blinkEnabled
if Settings.dashEnabled and not lastDash then Movement:Dash() end; lastDash=Settings.dashEnabled
-- Continuous Mods
local char=LocalPlayer.Character; local hum=char and char:FindFirstChildOfClass("Humanoid"); local hrp=char and char:FindFirstChild("HumanoidRootPart")
if hum then
if Settings.speedHackEnabled then hum.WalkSpeed=Settings.speedHackValue else hum.WalkSpeed=16 end
if Settings.jumpPowerEnabled then hum.JumpPower=Settings.jumpPowerValue; hum.UseJumpPower=true else hum.JumpPower=50 end
if Settings.infiniteJumpEnabled and UserInputService:IsKeyDown(Enum.KeyCode.Space) then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
if Settings.bunnyHopEnabled and UserInputService:IsKeyDown(Enum.KeyCode.Space) then hum.Jump=true end
if Settings.godModeEnabled then hum.MaxHealth=math.huge; hum.Health=math.huge end
end
if char and Settings.noclipEnabled then for _,p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide=false end end end
if Settings.invisibilityEnabled and char then for _,p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") and p.Name~="HumanoidRootPart" then p.Transparency=1 end end end
if Settings.antiVoidEnabled and hrp and hrp.Position.Y < -50 then hrp.CFrame+=Vector3.new(0,100,0) end
end
end)
RunService.RenderStepped:Connect(function(dt)
-- Fly Movement Logic
if Movement.flyActive and Movement.flyBV and Movement.flyBG then
local move=Vector3.new()
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move+=Vector3.new(0,0,-1) end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move+=Vector3.new(0,0,1) end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move+=Vector3.new(-1,0,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move+=Vector3.new(1,0,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.E) or UserInputService:IsKeyDown(Enum.KeyCode.Space) then move+=Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.Q) then move+=Vector3.new(0,-1,0) end
if move.Magnitude>0 then move=move.Unit end
local cf=Camera.CFrame; local mw=cf:VectorToWorldSpace(move); mw=Vector3.new(mw.X,move.Y,mw.Z)
Movement.flyBV.Velocity=mw*Settings.flySpeed
Movement.flyBG.CFrame=CFrame.new(Movement.flyBV.Parent.Position, Movement.flyBV.Parent.Position+Vector3.new(cf.LookVector.X,0,cf.LookVector.Z))
end
-- Freecam Logic
if Freecam.active then
local move=Vector3.new()
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move+=Vector3.new(0,0,-1) end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move+=Vector3.new(0,0,1) end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move+=Vector3.new(-1,0,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move+=Vector3.new(1,0,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.E) then move+=Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.Q) then move+=Vector3.new(0,-1,0) end
local cf=CFrame.new(Freecam.pos)*CFrame.Angles(0,math.rad(Freecam.rot.X),0)*CFrame.Angles(math.rad(Freecam.rot.Y),0,0)
Freecam.pos+=cf:VectorToWorldSpace(move)*Settings.freecamSpeed*dt*60
local delta=UserInputService:GetMouseDelta(); Freecam.rot+=Vector2.new(-delta.X*Settings.freecamSens,-delta.Y*Settings.freecamSens); Freecam.rot=Vector2.new(Freecam.rot.X,Util:Clamp(Freecam.rot.Y,-89,89))
Camera.CFrame=CFrame.new(Freecam.pos)*CFrame.Angles(0,math.rad(Freecam.rot.X),0)*CFrame.Angles(math.rad(Freecam.rot.Y),0,0)
end
end)
-- ------------------------------------------------------------
-- MODULE 11: COMBAT (TRIGGERBOT, KILL AURA, AUTO FIRE)
-- ------------------------------------------------------------
local function pressMouse1() pcall(function() VirtualUser:CaptureController(); VirtualUser:ClickButton1(Vector2.new()) end) end
local function pressKey(kc) pcall(function() VirtualInputManager:SendKeyEvent(true,kc,false,false); task.wait(0.05); VirtualInputManager:SendKeyEvent(false,kc,false,false) end) end
task.spawn(function()
local rp=RaycastParams.new(); rp.FilterType=Enum.RaycastFilterType.Exclude
while true do task.wait(Settings.triggerbotDelay or 0.05); if not Settings.triggerbotEnabled or Freecam.active then continue end
local char=LocalPlayer.Character; if char then rp.FilterDescendantsInstances={char,Camera} end
local res=workspace:Raycast(Camera.CFrame.Position,Camera.CFrame.LookVector*1000,rp)
if res and res.Instance then local plr=Util:GetPlayerFromPart(res.Instance); if plr and plr~=LocalPlayer and Util:IsEnemy(plr) and (not Settings.triggerbotWallCheck or Util:IsVisible(res.Instance)) then local hum=plr.Character:FindFirstChildOfClass("Humanoid"); if hum and hum.Health>0 then pressMouse1() end end end
end
end)
task.spawn(function()
while true do task.wait(Settings.killAuraRate or 0.1); if not Settings.killAuraEnabled then continue end
local myHrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if not myHrp then continue end
local closest,dist=nil,Settings.killAuraRange
for _,plr in ipairs(Players:GetPlayers()) do if plr~=LocalPlayer and (not Settings.killAuraTeamCheck or Util:IsEnemy(plr)) then local hrp=plr.Character and plr.Character:FindFirstChild("HumanoidRootPart"); local hum=plr.Character and plr.Character:FindFirstChildOfClass("Humanoid"); if hrp and hum and hum.Health>0 then local d=(hrp.Position-myHrp.Position).Magnitude; if d<dist and (not Settings.killAuraWallCheck or Util:IsVisible(hrp)) then closest=plr; dist=d end end end end
if closest then myHrp.CFrame=CFrame.new(myHrp.Position,closest.Character.HumanoidRootPart.Position); pressMouse1() end
end
end)
task.spawn(function() while true do task.wait(0.05); if not (Settings.autoFireEnabled and Settings.aimEnabled) then continue end; local ok,tgt=pcall(getAimTarget,Camera.CFrame.Position); if ok and tgt then local d=(tgt.screenPos-UserInputService:GetMouseLocation()).Magnitude; if (not Settings.autoFireFovOnly) or d<=Settings.aimFOV then pressMouse1() end end end end)
task.spawn(function() while true do task.wait(0.3); if not Settings.autoReloadEnabled then continue end; local tool=LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool"); if tool then local ok,ammo=pcall(readAmmo,tool); if ok and ammo==0 then pressKey(Enum.KeyCode.R) end end end end)
-- ------------------------------------------------------------
-- MODULE 12: WORLD & TELEPORT
-- ------------------------------------------------------------
task.spawn(function() while true do task.wait(0.5); if Settings.fullbrightEnabled then Lighting.Brightness=2; Lighting.ClockTime=14; Lighting.FogEnd=100000; Lighting.GlobalShadows=false else Lighting.Brightness=1; Lighting.FogEnd=1000; Lighting.GlobalShadows=true end; if Settings.noFogEnabled then Lighting.FogEnd=1000000 end; if Settings.lowGravityWorld then workspace.Gravity=10 else workspace.Gravity=196.2 end end end)
task.spawn(function() while true do task.wait(1); if not Settings.worldEspEnabled then continue end; for _,obj in ipairs(workspace:GetDescendants()) do if obj:IsA("Tool") or (obj:IsA("BasePart") and obj.Parent==workspace) then for _,name in ipairs(Settings.worldEspItems) do if obj.Name:lower():find(name:lower()) then local h=obj:FindFirstChild("EP4_WESP"); if not h then h=Instance.new("Highlight"); h.Name="EP4_WESP"; h.FillColor=Settings.worldEspColor; h.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop; h.Parent=obj end break end end end end end end)
LocalPlayer.Idled:Connect(function() if Settings.antiAfkEnabled then VirtualUser:CaptureController(); VirtualUser:ClickButton2(Vector2.new()) end end)
local function serverHop() local ok,body=pcall(game.HttpGet,game,"https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?limit=100"); if not ok then return end; local ok2,data=pcall(HttpService.JSONDecode,HttpService,body); if ok2 and data.data then for _,srv in ipairs(data.data) do if srv.id~=game.JobId and srv.playing<srv.maxPlayers then TeleportService:TeleportToPlaceInstance(game.PlaceId,srv.id,LocalPlayer); return end end end end
-- ------------------------------------------------------------
-- MODULE 13: ADVANCED ESP
-- ------------------------------------------------------------
local ESP = {gui=nil,state={},arrows={}}
function ESP:Init() if self.gui then return end; local g=Instance.new("ScreenGui"); g.Name="EP4_ESP"; g.ResetOnSpawn=false; g.IgnoreGuiInset=true; g.Parent=gethui(); self.gui=g; if DrawingAvailable then self.fov=Drawing.new("Circle"); self.fov.NumSides=100; self.fov.Filled=false end end
function ESP:Get(plr)
if self.state[plr] then return self.state[plr] end
local t={corners={},sk={}}
for i=1,8 do local f=Instance.new("Frame"); f.BackgroundTransparency=0; f.BorderSizePixel=0; f.Visible=false; f.ZIndex=3; f.Parent=self.gui; t.corners[i]=f end
t.box=Instance.new("Frame"); t.box.BackgroundTransparency=0.8; t.box.BorderSizePixel=0; t.box.Visible=false; t.box.ZIndex=2; t.box.Parent=self.gui; Instance.new("UIStroke",t.box).Thickness=1
t.hBg=Instance.new("Frame"); t.hBg.BackgroundColor3=Color3.new(0,0,0); t.hBg.BorderSizePixel=0; t.hBg.Visible=false; t.hBg.ZIndex=4; t.hBg.Parent=self.gui
t.hFill=Instance.new("Frame"); t.hFill.BorderSizePixel=0; t.hFill.Visible=false; t.hFill.ZIndex=5; t.hFill.Parent=self.gui
t.name=Instance.new("TextLabel"); t.name.BackgroundTransparency=1; t.name.Visible=false; t.name.Font=Enum.Font.GothamBold; t.name.TextSize=13; t.name.TextStrokeTransparency=0; t.name.TextStrokeColor3=Color3.new(0,0,0); t.name.ZIndex=4; t.name.Parent=self.gui
t.weapon=t.name:Clone(); t.weapon.Parent=self.gui
t.tracers={top=Instance.new("Frame"),bottom=Instance.new("Frame"),center=Instance.new("Frame"),mouse=Instance.new("Frame")}
for _,tr in pairs(t.tracers) do tr.AnchorPoint=Vector2.new(0.5,0); tr.Size=UDim2.fromOffset(1.5,1); tr.BorderSizePixel=0; tr.Visible=false; tr.ZIndex=2; tr.Parent=self.gui end
if DrawingAvailable then for i=1,14 do local l=Drawing.new("Line"); l.Thickness=1.5; l.Visible=false; t.sk[i]=l end end
self.state[plr]=t; return t
end
function ESP:Hide(t) for _,f in ipairs(t.corners) do f.Visible=false end; t.box.Visible=false; t.hBg.Visible=false; t.hFill.Visible=false; t.name.Visible=false; t.weapon.Visible=false; for _,tr in pairs(t.tracers) do tr.Visible=false end; if DrawingAvailable then for _,l in ipairs(t.sk) do l.Visible=false end; if self.fov then self.fov.Visible=false end end end
Players.PlayerRemoving:Connect(function(plr) local t=ESP.state[plr]; if t then ESP:Hide(t); for _,f in ipairs(t.corners) do f:Destroy() end; t.box:Destroy(); t.hBg:Destroy(); t.hFill:Destroy(); t.name:Destroy(); t.weapon:Destroy(); for _,tr in pairs(t.tracers) do tr:Destroy() end; if DrawingAvailable then for _,l in ipairs(t.sk) do l:Remove() end end; ESP.state[plr]=nil end end)
task.spawn(function()
ESP:Init()
while true do task.wait()
local active=Settings.espEnabled and Settings.espShowPlayers and not Freecam.active
local sc=Camera.ViewportSize/2
if DrawingAvailable and self.fov then if Settings.aimFOVShow and Settings.aimEnabled then self.fov.Position=UserInputService:GetMouseLocation(); self.fov.Radius=Settings.aimFOV; self.fov.Color=Settings.aimFOVColor; self.fov.Visible=true else self.fov.Visible=false end end
for _,plr in ipairs(Players:GetPlayers()) do
if plr==LocalPlayer then continue end
local char=plr.Character; local hum=char and char:FindFirstChildOfClass("Humanoid"); local hrp=char and char:FindFirstChild("HumanoidRootPart"); local head=char and char:FindFirstChild("Head")
local draw=char and hum and hum.Health>0 and hrp; local dist=draw and (hrp.Position-Camera.CFrame.Position).Magnitude or math.huge
if draw and dist>Settings.espMaxDistance then draw=false end
local t=self.state[plr] or ESP:Get(plr)
if not draw or not active then ESP:Hide(t); continue end
local top=(head and head.Position+Vector3.new(0,0.6,0)) or (hrp.Position+Vector3.new(0,3,0)); local bot=hrp.Position-Vector3.new(0,3,0)
local ts,to=Camera:WorldToViewportPoint(top); local bs,bo=Camera:WorldToViewportPoint(bot)
if not (to and bo) then ESP:Hide(t); continue end
local h=math.abs(bs.Y-ts.Y); local w=h*0.55; local x=ts.X-w/2; local y=ts.Y
local col=Settings.cornerRainbow and Util:Rainbow() or (Settings.useTeamColorBox and Util:TeamColorFor(plr) or Settings.cornerColor)
if Settings.cornerEnabled then
local c=t.corners; local th=Settings.cornerThickness; local sz=Settings.cornerSize
c[1].Position=UDim2.fromOffset(x,y); c[1].Size=UDim2.fromOffset(sz,th); c[1].BackgroundColor3=col; c[1].Visible=true
c[2].Position=UDim2.fromOffset(x,y); c[2].Size=UDim2.fromOffset(th,sz); c[2].BackgroundColor3=col; c[2].Visible=true
c[3].Position=UDim2.fromOffset(x+w-sz,y); c[3].Size=UDim2.fromOffset(sz,th); c[3].BackgroundColor3=col; c[3].Visible=true
c[4].Position=UDim2.fromOffset(x+w-th,y); c[4].Size=UDim2.fromOffset(th,sz); c[4].BackgroundColor3=col; c[4].Visible=true
c[5].Position=UDim2.fromOffset(x,y+h-th); c[5].Size=UDim2.fromOffset(sz,th); c[5].BackgroundColor3=col; c[5].Visible=true
c[6].Position=UDim2.fromOffset(x,y+h-sz); c[6].Size=UDim2.fromOffset(th,sz); c[6].BackgroundColor3=col; c[6].Visible=true
c[7].Position=UDim2.fromOffset(x+w-sz,y+h-th); c[7].Size=UDim2.fromOffset(sz,th); c[7].BackgroundColor3=col; c[7].Visible=true
c[8].Position=UDim2.fromOffset(x+w-th,y+h-sz); c[8].Size=UDim2.fromOffset(th,sz); c[8].BackgroundColor3=col; c[8].Visible=true
else for _,f in ipairs(t.corners) do f.Visible=false end end
if Settings.fullBoxEnabled then t.box.Position=UDim2.fromOffset(x,y); t.box.Size=UDim2.fromOffset(w,h); t.box.BackgroundColor3=col; t.box.UIStroke.Color=col; t.box.Visible=true else t.box.Visible=false end
if Settings.healthBarEnabled then local hp=Util:Clamp(hum.Health/hum.MaxHealth,0,1); local bh=h*hp; local bx=x-5; t.hBg.Position=UDim2.fromOffset(bx,y); t.hBg.Size=UDim2.fromOffset(3,h); t.hBg.Visible=true; t.hFill.Position=UDim2.fromOffset(bx+1,y+(h-bh)); t.hFill.Size=UDim2.fromOffset(1,bh); t.hFill.BackgroundColor3=Util:LerpColor(Color3.fromRGB(255,0,0),Color3.fromRGB(0,255,0),hp); t.hFill.Visible=true else t.hBg.Visible=false; t.hFill.Visible=false end
if Settings.nameTagEnabled and head then local hp,on=Camera:WorldToViewportPoint(head.Position+Vector3.new(0,1.5,0)); if on then local parts={}; if Settings.displayNameTag then table.insert(parts,plr.DisplayName or plr.Name) end; if Settings.displayHealthTag then table.insert(parts,string.format("[%d]",hum.Health)) end; if Settings.displayDistanceTag then table.insert(parts,string.format("[%dm]",dist)) end; t.name.Text=table.concat(parts," "); t.name.TextColor3=Settings.useTeamColorBox and Util:TeamColorFor(plr) or Color3.fromRGB(255,255,255); t.name.Position=UDim2.fromOffset(hp.X,hp.Y); t.name.Visible=true else t.name.Visible=false end else t.name.Visible=false end
if Settings.displayWeaponTag and head then local hp,on=Camera:WorldToViewportPoint(head.Position+Vector3.new(0,0.8,0)); if on then t.weapon.Text="["..Util:GetPlayerWeapon(plr).."]"; t.weapon.Position=UDim2.fromOffset(hp.X,hp.Y); t.weapon.Visible=true else t.weapon.Visible=false end else t.weapon.Visible=false end
local rs,ro=Camera:WorldToViewportPoint(hrp.Position)
if ro then
local function drawT(tr,ox,oy,col) local dx,dy=rs.X-ox,rs.Y-oy; local len=math.sqrt(dx*dx+dy*dy); local ang=math.deg(math.atan2(dy,dx))-90; tr.Position=UDim2.fromOffset(ox,oy); tr.Size=UDim2.fromOffset(1.5,len); tr.Rotation=ang; tr.BackgroundColor3=col; tr.Visible=true end
if Settings.topTracerEnabled then drawT(t.tracers.top,sc.X,0,Settings.cornerColor) else t.tracers.top.Visible=false end
if Settings.bottomTracerEnabled then drawT(t.tracers.bottom,sc.X,Camera.ViewportSize.Y,Settings.cornerColor) else t.tracers.bottom.Visible=false end
if Settings.centerTracerEnabled then drawT(t.tracers.center,sc.X,sc.Y,Settings.cornerColor) else t.tracers.center.Visible=false end
if Settings.mouseTracerEnabled then local mp=UserInputService:GetMouseLocation(); drawT(t.tracers.mouse,mp.X,mp.Y,Settings.cornerColor) else t.tracers.mouse.Visible=false end
end
if DrawingAvailable and Settings.skeletonEnabled then
local names={"Head","UpperTorso","LowerTorso","LeftUpperArm","LeftLowerArm","LeftHand","RightUpperArm","RightLowerArm","RightHand","LeftUpperLeg","LeftLowerLeg","LeftFoot","RightUpperLeg","RightLowerLeg","RightFoot"}
local parts={}; for _,n in ipairs(names) do parts[n]=char:FindFirstChild(n) end; if not parts.UpperTorso then parts.UpperTorso=hrp end
local conns={{"Head","UpperTorso"},{"UpperTorso","LowerTorso"},{"UpperTorso","LeftUpperArm"},{"LeftUpperArm","LeftLowerArm"},{"LeftLowerArm","LeftHand"},{"UpperTorso","RightUpperArm"},{"RightUpperArm","RightLowerArm"},{"RightLowerArm","RightHand"},{"LowerTorso","LeftUpperLeg"},{"LeftUpperLeg","LeftLowerLeg"},{"LeftLowerLeg","LeftFoot"},{"LowerTorso","RightUpperLeg"},{"RightUpperLeg","RightLowerLeg"},{"RightLowerLeg","RightFoot"}}
for i,c in ipairs(conns) do local p1,p2=parts[c[1]],parts[c[2]]; local l=t.sk[i]; if p1 and p2 then local v1,o1=Camera:WorldToViewportPoint(p1.Position); local v2,o2=Camera:WorldToViewportPoint(p2.Position); if o1 and o2 then l.From=Vector2.new(v1.X,v1.Y); l.To=Vector2.new(v2.X,v2.Y); l.Color=Settings.skeletonColor; l.Visible=true else l.Visible=false end else l.Visible=false end end
end
end
end
end)
-- ------------------------------------------------------------
-- MODULE 14: CROSSHAIR
-- ------------------------------------------------------------
task.spawn(function()
local lines={}
while true do task.wait()
if not DrawingAvailable then continue end
if #lines==0 then for i=1,4 do local l=Drawing.new("Line"); l.Thickness=2; l.Visible=false; table.insert(lines,l) end end
if not Settings.crosshairEnabled or Freecam.active then for _,l in ipairs(lines) do l.Visible=false end; continue end
local c=Camera.ViewportSize/2; local gap=Settings.crosshairGap; local sz=Settings.crosshairSize; local col=Settings.crosshairRainbow and Util:Rainbow() or Settings.crosshairColor
if Settings.crosshairDynamic then local hrp=LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart"); if hrp then gap+=(hrp.AssemblyLinearVelocity*Vector3.new(1,0,1)).Magnitude*0.3 end end
local offs={{Vector2.new(-gap,0),Vector2.new(-gap-sz,0)},{Vector2.new(gap,0),Vector2.new(gap+sz,0)},{Vector2.new(0,-gap),Vector2.new(0,-gap-sz)},{Vector2.new(0,gap),Vector2.new(0,gap+sz)}}
for i=1,4 do lines[i].From=c+offs[i][1]; lines[i].To=c+offs[i][2]; lines[i].Color=col; lines[i].Visible=true end
end
end)
-- ------------------------------------------------------------
-- MODULE 15: WATERMARK
-- ------------------------------------------------------------
local WM = {frame=nil,text=nil}
task.spawn(function()
local g=Instance.new("ScreenGui"); g.Name="EP4_WM"; g.ResetOnSpawn=false; g.IgnoreGuiInset=true; g.Parent=gethui()
local f=Instance.new("Frame"); f.Size=UDim2.fromOffset(200,25); f.BackgroundColor3=T.bg; f.BackgroundTransparency=0.1; f.BorderSizePixel=0; f.Position=UDim2.fromOffset(10,10); f.Parent=g
Instance.new("UIStroke",f).Color=T.accent; Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local t=Instance.new("TextLabel"); t.Size=UDim2.new(1,0,1,0); t.BackgroundTransparency=1; t.TextColor3=T.accent; t.Font=Enum.Font.GothamBold; t.TextSize=12; t.Parent=f
WM.frame=f; WM.text=t
while true do task.wait(0.5); if not Settings.watermarkEnabled then f.Visible=false; continue end; f.Visible=true; local e={}; if Settings.fpsDisplayEnabled then table.insert(e,Util:Round(1/RunService.RenderStepped:Wait(),0).." FPS") end; if Settings.pingDisplayEnabled then table.insert(e,math.floor(LocalPlayer:GetNetworkPing()*1000).." ms") end; t.Text=L("EXTENDED PACK v4 MEGA")..(#e>0 and (" | "..table.concat(e," | ")) or "") end
end)
-- ------------------------------------------------------------
-- MODULE 16: MAIN GUI SYSTEM
-- ------------------------------------------------------------
local MainGUI = {window=nil,tabs={},sidebar=nil,content=nil,titleText=nil,tabIcons={Aimbot="🎯",Visuals="👁",Weapon="🔫",Movement="🏃",Player="👤",World="🌍",Utility="⚙",Configs="💾",Language="🌐"}}
function MainGUI:Create()
local sg=Instance.new("ScreenGui"); sg.Name="EP4_GUI"; sg.ResetOnSpawn=false; sg.IgnoreGuiInset=true; sg.Parent=gethui()
local w=Instance.new("Frame"); w.Size=UDim2.fromOffset(900,550); w.Position=UDim2.new(0.5,-450,0.5,-275); w.BackgroundColor3=T.bg; w.BorderSizePixel=0; w.Visible=Settings.guiVisible; w.Parent=sg
Instance.new("UIStroke",w).Color=T.accent; if Settings.guiRounded then Instance.new("UICorner",w).CornerRadius=UDim.new(0,8) end
local tb=Instance.new("Frame"); tb.Size=UDim2.new(1,0,0,35); tb.BackgroundColor3=T.bg2; tb.BorderSizePixel=0; tb.Parent=w
if Settings.guiRounded then Instance.new("UICorner",tb).CornerRadius=UDim.new(0,8) end
local title=Instance.new("TextLabel"); title.Size=UDim2.new(1,-100,1,0); title.Position=UDim2.fromOffset(10,0); title.BackgroundTransparency=1; title.Text=L("EXTENDED PACK v4 MEGA").." | "..LocalPlayer.DisplayName; title.TextColor3=T.text; title.TextSize=14; title.Font=Enum.Font.GothamBold; title.TextXAlignment=Enum.TextXAlignment.Left; title.Parent=tb
self.titleText=title
local cb=Instance.new("TextButton"); cb.Size=UDim2.fromOffset(30,30); cb.Position=UDim2.new(1,-35,0,2); cb.BackgroundColor3=T.error; cb.BackgroundTransparency=0.3; cb.BorderSizePixel=0; cb.Text="X"; cb.TextColor3=T.text; cb.Font=Enum.Font.GothamBold; cb.Parent=tb; Instance.new("UICorner",cb).CornerRadius=UDim.new(0,4)
cb.MouseButton1Click:Connect(function() w.Visible=false; Settings.guiVisible=false end)
local sb=Instance.new("Frame"); sb.Size=UDim2.new(0,150,1,-35); sb.Position=UDim2.fromOffset(0,35); sb.BackgroundColor3=T.bg2; sb.BackgroundTransparency=0.3; sb.BorderSizePixel=0; sb.Parent=w
local sl=Instance.new("UIListLayout",sb); sl.Padding=UDim.new(0,2); local sp=Instance.new("UIPadding",sb); sp.PaddingTop=UDim.new(0,10); sp.PaddingLeft=UDim.new(0,5)
local ct=Instance.new("Frame"); ct.Size=UDim2.new(1,-150,1,-35); ct.Position=UDim2.fromOffset(150,35); ct.BackgroundColor3=T.bg; ct.BackgroundTransparency=0.05; ct.BorderSizePixel=0; ct.Parent=w
local drag=false; local ds,sp2
tb.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=true; ds=i.Position; sp2=w.Position end end)
UserInputService.InputChanged:Connect(function(i) if drag and i.UserInputType==Enum.UserInputType.MouseMovement then local d=i.Position-ds; w.Position=UDim2.new(sp2.X.Scale,sp2.X.Offset+d.X,sp2.Y.Scale,sp2.Y.Offset+d.Y) end end)
UserInputService.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end)
self.window=w; self.sidebar=sb; self.content=ct; self:BuildTabs()
end
function MainGUI:BuildTabs()
local order={"Aimbot","Visuals","Weapon","Movement","Player","World","Utility","Configs","Language"}
for _,name in ipairs(order) do
local btn=Instance.new("TextButton"); btn.Size=UDim2.new(1,0,0,35); btn.BackgroundColor3=T.bg3; btn.BackgroundTransparency=0.5; btn.BorderSizePixel=0; btn.Text=self.tabIcons[name].." "..L(name); btn.TextColor3=T.text; btn.TextSize=12; btn.Font=Enum.Font.GothamBold; btn.Parent=self.sidebar
if Settings.guiRounded then Instance.new("UICorner",btn).CornerRadius=UDim.new(0,6) end
local c=Instance.new("ScrollingFrame"); c.Size=UDim2.new(1,-20,1,-20); c.Position=UDim2.fromOffset(10,10); c.BackgroundTransparency=1; c.ScrollBarThickness=4; c.AutomaticCanvasSize=Enum.AutomaticSize.Y; c.Visible=false; c.Parent=self.content
Instance.new("UIListLayout",c).Padding=UDim.new(0,5); local cp=Instance.new("UIPadding",c); cp.PaddingTop=UDim.new(0,5)
btn.MouseButton1Click:Connect(function() for n,d in pairs(self.tabs) do d[1].Visible=false; d[2].BackgroundTransparency=0.5; d[2].BackgroundColor3=T.bg3 end; c.Visible=true; btn.BackgroundTransparency=0; btn.BackgroundColor3=T.accent end)
self.tabs[name]={c,btn}
end
self.tabs["Aimbot"][2]:MouseButton1Click:Connect(function() end) -- Select first tab
self.tabs["Aimbot"][1].Visible=true; self.tabs["Aimbot"][2].BackgroundTransparency=0; self.tabs["Aimbot"][2].BackgroundColor3=T.accent
end
function MainGUI:Rebuild() for _,d in pairs(self.tabs) do for _,ch in ipairs(d[1]:GetChildren()) do if not ch:IsA("UIListLayout") and not ch:IsA("UIPadding") then ch:Destroy() end end end; self:BuildContent(); for n,d in pairs(self.tabs) do d[2].Text=self.tabIcons[n].." "..L(n) end; self.titleText.Text=L("EXTENDED PACK v4 MEGA").." | "..LocalPlayer.DisplayName end
function MainGUI:Sect(p,t) local f=Instance.new("Frame"); f.Size=UDim2.new(1,0,0,30); f.BackgroundTransparency=1; f.Parent=p; local tx=Instance.new("TextLabel"); tx.Size=UDim2.new(1,0,1,0); tx.BackgroundTransparency=1; tx.Text=t; tx.TextColor3=T.accent; tx.TextSize=13; tx.Font=Enum.Font.GothamBold; tx.TextXAlignment=Enum.TextXAlignment.Left; tx.Parent=f; local ln=Instance.new("Frame"); ln.Size=UDim2.new(1,0,0,1); ln.Position=UDim2.new(0,0,1,-2); ln.BackgroundColor3=T.accent; ln.BorderSizePixel=0; ln.Parent=f end
function MainGUI:Tog(p,l,k)
local f=Instance.new("Frame"); f.Size=UDim2.new(1,0,0,30); f.BackgroundColor3=T.bg2; f.BackgroundTransparency=0.3; f.BorderSizePixel=0; f.Parent=p
Instance.new("UIStroke",f).Color=T.stroke; Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local tx=Instance.new("TextLabel"); tx.Size=UDim2.new(1,-70,1,0); tx.Position=UDim2.fromOffset(10,0); tx.BackgroundTransparency=1; tx.Text=l; tx.TextColor3=T.text; tx.TextSize=12; tx.Font=Enum.Font.Gotham; tx.TextXAlignment=Enum.TextXAlignment.Left; tx.Parent=f
local b=Instance.new("TextButton"); b.Size=UDim2.fromOffset(50,22); b.Position=UDim2.new(1,-60,0.5,-11); b.BackgroundColor3=Settings[k] and T.success or T.bg3; b.BorderSizePixel=0; b.Text=Settings[k] and "ON" or "OFF"; b.TextColor3=T.text; b.TextSize=10; b.Font=Enum.Font.GothamBold; b.Parent=f; Instance.new("UICorner",b).CornerRadius=UDim.new(0,4)
b.MouseButton1Click:Connect(function() Settings[k]=not Settings[k]; b.Text=Settings[k] and "ON" or "OFF"; b.BackgroundColor3=Settings[k] and T.success or T.bg3 end)
end
function MainGUI:Sld(p,l,k,min,max,suf,dec)
suf=suf or ""; dec=dec or 0
local f=Instance.new("Frame"); f.Size=UDim2.new(1,0,0,45); f.BackgroundColor3=T.bg2; f.BackgroundTransparency=0.3; f.BorderSizePixel=0; f.Parent=p
Instance.new("UIStroke",f).Color=T.stroke; Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local tx=Instance.new("TextLabel"); tx.Size=UDim2.new(1,-20,0,20); tx.Position=UDim2.fromOffset(10,2); tx.BackgroundTransparency=1; tx.Text=l..": "..(Settings[k] or min)..suf; tx.TextColor3=T.text; tx.TextSize=11; tx.Font=Enum.Font.Gotham; tx.TextXAlignment=Enum.TextXAlignment.Left; tx.Parent=f
local sbg=Instance.new("Frame"); sbg.Size=UDim2.new(1,-20,0,8); sbg.Position=UDim2.new(0,10,1,-15); sbg.BackgroundColor3=T.bg3; sbg.BorderSizePixel=0; sbg.Parent=f; Instance.new("UICorner",sbg).CornerRadius=UDim.new(1,0)
local fill=Instance.new("Frame"); fill.BackgroundColor3=T.accent; fill.BorderSizePixel=0; fill.Parent=sbg; Instance.new("UICorner",fill).CornerRadius=UDim.new(1,0)
local knob=Instance.new("Frame"); knob.Size=UDim2.fromOffset(14,14); knob.BackgroundColor3=T.accent; knob.BorderSizePixel=0; knob.Parent=sbg; Instance.new("UICorner",knob).CornerRadius=UDim.new(1,0)
local function upd(v) local pct=(v-min)/(max-min); fill.Size=UDim2.new(pct,0,1,0); knob.Position=UDim2.new(pct,-7,0.5,-7) end; upd(Settings[k] or min)
local drag=false; sbg.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=true end end)
UserInputService.InputChanged:Connect(function(i) if drag and i.UserInputType==Enum.UserInputType.MouseMovement then local rel=Util:Clamp((i.Position.X-sbg.AbsolutePosition.X)/sbg.AbsoluteSize.X,0,1); local v=min+(max-min)*rel; if dec>0 then v=Util:Round(v,dec) else v=math.floor(v) end; Settings[k]=v; tx.Text=l..": "..v..suf; upd(v) end end)
UserInputService.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then drag=false end end)
end
function MainGUI:Btn(p,l,col,cb) local b=Instance.new("TextButton"); b.Size=UDim2.new(1,0,0,30); b.BackgroundColor3=col or T.bg3; b.BorderSizePixel=0; b.Text=l; b.TextColor3=T.text; b.TextSize=12; b.Font=Enum.Font.GothamBold; b.Parent=p; Instance.new("UICorner",b).CornerRadius=UDim.new(0,6); Instance.new("UIStroke",b).Color=T.accent; b.MouseButton1Click:Connect(cb) end
function MainGUI:Drop(p,l,k,opts)
local f=Instance.new("Frame"); f.Size=UDim2.new(1,0,0,30); f.BackgroundColor3=T.bg2; f.BackgroundTransparency=0.3; f.BorderSizePixel=0; f.Parent=p
Instance.new("UIStroke",f).Color=T.stroke; Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local tx=Instance.new("TextLabel"); tx.Size=UDim2.new(1,-100,1,0); tx.Position=UDim2.fromOffset(10,0); tx.BackgroundTransparency=1; tx.Text=l; tx.TextColor3=T.text; tx.TextSize=12; tx.Font=Enum.Font.Gotham; tx.TextXAlignment=Enum.TextXAlignment.Left; tx.Parent=f
local b=Instance.new("TextButton"); b.Size=UDim2.fromOffset(80,22); b.Position=UDim2.new(1,-90,0.5,-11); b.BackgroundColor3=T.bg3; b.BorderSizePixel=0; b.Text=Settings[k]; b.TextColor3=T.text; b.TextSize=10; b.Font=Enum.Font.GothamBold; b.Parent=f; Instance.new("UICorner",b).CornerRadius=UDim.new(0,4)
b.MouseButton1Click:Connect(function() local idx=table.find(opts,Settings[k]) or 1; Settings[k]=opts[(idx%#opts)+1]; b.Text=Settings[k] end)
end
function MainGUI:Col(p,l,k)
local f=Instance.new("Frame"); f.Size=UDim2.new(1,0,0,30); f.BackgroundColor3=T.bg2; f.BackgroundTransparency=0.3; f.BorderSizePixel=0; f.Parent=p
Instance.new("UIStroke",f).Color=T.stroke; Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local tx=Instance.new("TextLabel"); tx.Size=UDim2.new(1,-80,1,0); tx.Position=UDim2.fromOffset(10,0); tx.BackgroundTransparency=1; tx.Text=l; tx.TextColor3=T.text; tx.TextSize=12; tx.Font=Enum.Font.Gotham; tx.TextXAlignment=Enum.TextXAlignment.Left; tx.Parent=f
local pv=Instance.new("Frame"); pv.Size=UDim2.fromOffset(60,20); pv.Position=UDim2.new(1,-70,0.5,-10); pv.BackgroundColor3=Settings[k]; pv.BorderSizePixel=0; pv.Parent=f; Instance.new("UICorner",pv).CornerRadius=UDim.new(0,4)
pv.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.MouseButton1 then local cols={Color3.fromRGB(255,0,0),Color3.fromRGB(0,255,0),Color3.fromRGB(0,0,255),Color3.fromRGB(255,255,0),Color3.fromRGB(255,0,255),Color3.fromRGB(0,255,255),Color3.fromRGB(255,255,255)}; local idx=1; for ic,c in ipairs(cols) do if c==Settings[k] then idx=ic; break end end; Settings[k]=cols[(idx%#cols)+1]; pv.BackgroundColor3=Settings[k] end end)
end
function MainGUI:Key(p,l,k)
local f=Instance.new("Frame"); f.Size=UDim2.new(1,0,0,30); f.BackgroundColor3=T.bg2; f.BackgroundTransparency=0.3; f.BorderSizePixel=0; f.Parent=p
Instance.new("UIStroke",f).Color=T.stroke; Instance.new("UICorner",f).CornerRadius=UDim.new(0,6)
local tx=Instance.new("TextLabel"); tx.Size=UDim2.new(1,-80,1,0); tx.Position=UDim2.fromOffset(10,0); tx.BackgroundTransparency=1; tx.Text=l; tx.TextColor3=T.text; tx.TextSize=12; tx.Font=Enum.Font.Gotham; tx.TextXAlignment=Enum.TextXAlignment.Left; tx.Parent=f
local b=Instance.new("TextButton"); b.Size=UDim2.fromOffset(60,22); b.Position=UDim2.new(1,-70,0.5,-11); b.BackgroundColor3=T.bg3; b.BorderSizePixel=0; b.Text=Settings[k]; b.TextColor3=T.text; b.TextSize=10; b.Font=Enum.Font.GothamBold; b.Parent=f; Instance.new("UICorner",b).CornerRadius=UDim.new(0,4)
b.MouseButton1Click:Connect(function() b.Text="..."; b.BackgroundColor3=T.accent; local conn; conn=UserInputService.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.Keyboard then Settings[k]=i.KeyCode.Name; b.Text=Settings[k]; b.BackgroundColor3=T.bg3; conn:Disconnect() end end) end)
end
function MainGUI:BuildContent()
local a=self.tabs.Aimbot[1]; self:Sect(a,L("AIMBOT CORE")); self:Tog(a,L("Enable Aimbot"),"aimEnabled"); self:Tog(a,L("Team Check"),"aimTeamCheck"); self:Tog(a,L("Wall Check"),"aimWallCheck"); self:Tog(a,L("Show FOV Circle"),"aimFOVShow"); self:Col(a,L("FOV Color"),"aimFOVColor"); self:Sld(a,L("FOV Radius"),"aimFOV",10,500," px"); self:Sld(a,L("Smoothness"),"aimSmoothness",0,1,"",2); self:Drop(a,L("Smooth Type"),"aimSmoothType",{"Linear","Quad","Cubic","Expo"}); self:Drop(a,L("Aim Part"),"aimPart",{"Head","HumanoidRootPart","UpperTorso","Random"}); self:Drop(a,L("Target Priority"),"aimPriority",{"FOV","Distance","Health"}); self:Sect(a,L("TRIGGERBOT")); self:Tog(a,L("Enable Triggerbot"),"triggerbotEnabled"); self:Tog(a,L("Wall Check"),"triggerbotWallCheck"); self:Sld(a,L("Delay"),"triggerbotDelay",0,0.5," s",2); self:Sect(a,L("PREDICTION")); self:Tog(a,L("Velocity Prediction"),"aimPrediction"); self:Sld(a,L("Bullet Speed"),"aimBulletSpeed",100,5000," m/s");
local v=self.tabs.Visuals[1]; self:Sect(v,L("ESP CORE")); self:Tog(v,L("Enable ESP"),"espEnabled"); self:Tog(v,L("Show Players"),"espShowPlayers"); self:Sld(v,L("Max Distance"),"espMaxDistance",100,2000," m"); self:Sect(v,L("BOX")); self:Tog(v,L("Enable Corners"),"cornerEnabled"); self:Tog(v,L("Enable Full Box"),"fullBoxEnabled"); self:Col(v,L("Corner Color"),"cornerColor"); self:Sld(v,L("Corner Size"),"cornerSize",4,40," px"); self:Sld(v,L("Corner Thick"),"cornerThickness",1,6," px"); self:Tog(v,L("Rainbow Mode"),"cornerRainbow"); self:Tog(v,L("Team Color"),"useTeamColorBox"); self:Sect(v,L("HEALTH")); self:Tog(v,L("Health Bar"),"healthBarEnabled"); self:Sld(v,L("Bar Width"),"healthBarWidth",1,10," px"); self:Sect(v,L("SKELETON")); self:Tog(v,L("Enable Skeleton"),"skeletonEnabled"); self:Col(v,L("Color"),"skeletonColor"); self:Sect(v,L("CHAMS")); self:Tog(v,L("Enable Chams"),"chamsEnabled"); self:Tog(v,L("Always On Top"),"chamsWallhack"); self:Tog(v,L("Rainbow"),"chamsRainbow"); self:Col(v,L("Fill Color"),"chamsFillColor"); self:Col(v,L("Outline Color"),"chamsOutlineColor"); self:Sld(v,L("Fill Transparency"),"chamsTransparency",0,1,"",2); self:Sect(v,L("TAGS")); self:Tog(v,L("Name Tag"),"nameTagEnabled"); self:Tog(v,L("Display Name"),"displayNameTag"); self:Tog(v,L("Distance Tag"),"displayDistanceTag"); self:Tog(v,L("Weapon Tag"),"displayWeaponTag"); self:Sect(v,L("TRACERS")); self:Tog(v,L("Top Tracer"),"topTracerEnabled"); self:Tog(v,L("Bottom Tracer"),"bottomTracerEnabled"); self:Tog(v,L("Center Tracer"),"centerTracerEnabled"); self:Tog(v,L("Mouse Tracer"),"mouseTracerEnabled"); self:Col(v,L("Tracer Color"),"topTracerColor"); self:Sect(v,L("CROSSHAIR")); self:Tog(v,L("Enable Crosshair"),"crosshairEnabled"); self:Tog(v,L("Dynamic"),"crosshairDynamic"); self:Tog(v,L("Rainbow"),"crosshairRainbow"); self:Col(v,L("Color"),"crosshairColor"); self:Sld(v,L("Size"),"crosshairSize",2,20," px"); self:Sld(v,L("Gap"),"crosshairGap",1,20," px"); self:Sect(v,L("HITMARKERS")); self:Tog(v,L("Enable"),"hitmarkersEnabled"); self:Tog(v,L("Sound"),"hitmarkerSound"); self:Tog(v,L("Damage Numbers"),"damageNumbersEnabled"); self:Sect(v,L("RADAR")); self:Tog(v,L("Enable Radar"),"radarEnabled"); self:Drop(v,L("Position"),"radarPosition",{"TopLeft","TopRight","BottomLeft","BottomRight"}); self:Sld(v,L("Size"),"radarSize",100,300," px"); self:Col(v,L("Color"),"radarColor");
local w=self.tabs.Weapon[1]; self:Sect(w,L("WEAPON MODS")); self:Tog(w,L("No Recoil"),"noRecoilEnabled"); self:Sld(w,L("Recoil %"),"noRecoilPercent",0,100,"%"); self:Tog(w,L("No Sway"),"noSwayEnabled"); self:Tog(w,L("Infinite Ammo"),"infiniteAmmo"); self:Tog(w,L("Rapid Fire"),"rapidFireEnabled"); self:Sld(w,L("Fire Rate Mult"),"fireRateMultiplier",0.5,5,"x",1); self:Tog(w,L("Auto Fire"),"autoFireEnabled"); self:Tog(w,L("Auto Reload"),"autoReloadEnabled"); self:Tog(w,L("Hitbox Expander"),"hitboxExpander"); self:Sld(w,L("Hitbox Size"),"hitboxSize",1,20," studs");
local m=self.tabs.Movement[1]; self:Sect(m,L("MOVEMENT")); self:Tog(m,L("Speed Hack"),"speedHackEnabled"); self:Sld(m,L("Walk Speed"),"speedHackValue",10,200,""); self:Tog(m,L("Jump Power"),"jumpPowerEnabled"); self:Sld(m,L("Jump Power"),"jumpPowerValue",10,200,""); self:Tog(m,L("Infinite Jump"),"infiniteJumpEnabled"); self:Tog(m,L("Bunny Hop"),"bunnyHopEnabled"); self:Sect(m,L("FLY & NOCLIP")); self:Tog(m,L("Fly"),"flyEnabled"); self:Sld(m,L("Fly Speed"),"flySpeed",10,500,""); self:Tog(m,L("Noclip"),"noclipEnabled"); self:Sect(m,L("SPECIAL")); self:Tog(m,L("Blink"),"blinkEnabled"); self:Sld(m,L("Blink Distance"),"blinkDistance",5,50," studs"); self:Tog(m,L("Dash"),"dashEnabled"); self:Sld(m,L("Dash Distance"),"dashDistance",5,50," studs"); self:Sld(m,L("Dash Cooldown"),"dashCooldown",0.5,5," s",1); self:Sect(m,L("CAMERA")); self:Tog(m,L("Freecam"),"freecamEnabled"); self:Sld(m,L("Freecam Speed"),"freecamSpeed",0.1,5,"",1); self:Sld(m,L("Freecam Sens"),"freecamSens",0.1,1,"",2);
local p=self.tabs.Player[1]; self:Sect(p,L("PLAYER MODS")); self:Tog(p,L("God Mode"),"godModeEnabled"); self:Tog(p,L("Invisibility"),"invisibilityEnabled"); self:Tog(p,L("Anti-Void"),"antiVoidEnabled"); self:Sect(p,L("AUTO")); self:Tog(p,L("Auto Farm"),"autoFarmEnabled"); self:Tog(p,L("Auto Collect"),"autoCollectEnabled"); self:Sect(p,L("KILL AURA")); self:Tog(p,L("Enable Kill Aura"),"killAuraEnabled"); self:Tog(p,L("Team Check"),"killAuraTeamCheck"); self:Sld(p,L("Range"),"killAuraRange",5,100," studs"); self:Sld(p,L("Rate"),"killAuraRate",0.05,1," s",2);
local wo=self.tabs.World[1]; self:Sect(wo,L("LIGHTING")); self:Tog(wo,L("Fullbright"),"fullbrightEnabled"); self:Tog(wo,L("No Fog"),"noFogEnabled"); self:Sect(wo,L("WORLD")); self:Tog(wo,L("Low Gravity"),"lowGravityWorld"); self:Tog(wo,L("X-Ray Mode"),"xrayMode"); self:Sect(wo,L("WORLD ESP")); self:Tog(wo,L("Enable World ESP"),"worldEspEnabled"); self:Sld(wo,L("Max Distance"),"worldEspMaxDist",50,500," m"); self:Col(wo,L("Color"),"worldEspColor");
local u=self.tabs.Utility[1]; self:Sect(u,L("GENERAL")); self:Tog(u,L("Anti-AFK"),"antiAfkEnabled"); self:Tog(u,L("Chat Spy"),"chatSpyEnabled"); self:Tog(u,L("Watermark"),"watermarkEnabled"); self:Tog(u,L("FPS Display"),"fpsDisplayEnabled"); self:Tog(u,L("Ping Display"),"pingDisplayEnabled"); self:Sect(u,L("NOTIFICATIONS")); self:Tog(u,L("Enable"),"notificationsEnabled"); self:Tog(u,L("Sound"),"notificationsSound"); self:Sld(u,L("Duration"),"notificationsDuration",1,10," s",1); self:Sect(u,L("SOUNDS")); self:Tog(u,L("Master Sounds"),"soundsEnabled"); self:Tog(u,L("Hit Sound"),"hitSoundEnabled"); self:Tog(u,L("Kill Sound"),"killSoundEnabled"); self:Sld(u,L("Hit Volume"),"hitSoundVolume",0,1,"",2); self:Sld(u,L("Kill Volume"),"killSoundVolume",0,1,"",2); self:Sect(u,L("GUI")); self:Drop(u,L("Theme"),"theme",{"Midnight","Ocean","Matrix"}); self:Btn(u,L("Apply Theme"),T.accent,function() T=getTheme(); self:Rebuild() end); self:Tog(u,L("Rounded Corners"),"guiRounded"); self:Key(u,L("GUI Toggle Key"),"guiKey"); self:Sect(u,L("SERVER")); self:Btn(u,L("Rejoin Server"),T.bg3,function() TeleportService:Teleport(game.PlaceId,LocalPlayer) end); self:Btn(u,L("Server Hop"),T.bg3,serverHop);
local c=self.tabs.Configs[1]; self:Sect(c,L("CONFIG MANAGEMENT")); self:Btn(c,L("Save Config"),T.success,function() ConfigSystem:Save(Settings.currentProfile); notify("Saved!","success") end); self:Btn(c,L("Load Config"),T.accent,function() ConfigSystem:Load(Settings.currentProfile); self:Rebuild(); notify("Loaded!","success") end); self:Btn(c,L("Reset to Defaults"),T.warning,function() for k,v in pairs(FULL_DEFAULTS) do Settings[k]=v end; self:Rebuild(); notify("Reset!","info") end); self:Tog(c,L("Auto-Save"),"autoSaveEnabled"); self:Sld(c,L("Auto-Save Interval"),"autoSaveInterval",10,300," s"); self:Sect(c,L("STATISTICS")); local sf=Instance.new("TextLabel"); sf.Size=UDim2.new(1,0,0,60); sf.BackgroundTransparency=1; sf.TextColor3=T.text; sf.TextSize=12; sf.Font=Enum.Font.Gotham; sf.TextXAlignment=Enum.TextXAlignment.Left; sf.TextYAlignment=Enum.TextYAlignment.Top; sf.TextWrapped=true; sf.Parent=c; task.spawn(function() while sf.Parent do task.wait(1); sf.Text=string.format("Session: %s\nKills: %d",Util:FormatTime(os.time()-Stats.start),Stats.kills) end end);
local lg=self.tabs.Language[1]; self:Sect(lg,L("LANGUAGE")); self:Btn(lg,L("English"),T.bg3,function() Settings.language="English"; self:Rebuild(); notify(L("languageUpdated"),"success") end); self:Btn(lg,L("Russian"),T.bg3,function() Settings.language="Russian"; self:Rebuild(); notify(L("languageUpdated"),"success") end); self:Sect(lg,L("GENERAL")); local cl=Instance.new("TextLabel"); cl.Size=UDim2.new(1,0,0,30); cl.BackgroundTransparency=1; cl.TextColor3=T.text; cl.TextSize=12; cl.Font=Enum.Font.GothamBold; cl.TextXAlignment=Enum.TextXAlignment.Left; cl.Parent=lg; task.spawn(function() while cl.Parent do task.wait(1); cl.Text=L("Current language")..": "..Settings.language end end); local il=Instance.new("TextLabel"); il.Size=UDim2.new(1,0,0,50); il.BackgroundTransparency=1; il.Text=L("languageInfo"); il.TextColor3=T.text; il.TextSize=11; il.Font=Enum.Font.Gotham; il.TextWrapped=true; il.TextXAlignment=Enum.TextXAlignment.Left; il.Parent=lg
end
-- ------------------------------------------------------------
-- MODULE 17: GLOBAL INPUT (ONLY MENU TOGGLE)
-- ------------------------------------------------------------
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
local ok, kc = pcall(function() return Enum.KeyCode[Settings.guiKey or "RightShift"] end)
if ok and input.KeyCode == kc then
Settings.guiVisible = not Settings.guiVisible
if MainGUI.window then MainGUI.window.Visible = Settings.guiVisible end
end
end)
-- ------------------------------------------------------------
-- INITIALIZATION
-- ------------------------------------------------------------
task.spawn(function()
ConfigSystem:Load(Settings.currentProfile)
MainGUI:Create()
MainGUI:BuildContent()
notify(L("scriptLoaded"), "success", 3)
notify(L("menuToggleHint").." "..(Settings.guiKey or "RightShift"), "info", 5)
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place