-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- ============================================================ -- 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 newH0 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()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 d0 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)