local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LP = Players.LocalPlayer local HttpService = game:GetService("HttpService") _G.Config = { Aimbot = false, AimbotUseVisibleCheck = true, Smoothness = 0.5, Fov = 150, ShowFov = true, Esp = false, EspBoxes = true, EspNames = true, EspTeamMode = "Enemies", UseTeamCheck = true, UseVisCheck = true, EnemyColor = Color3.fromRGB(150, 200, 60), TeammateColor = Color3.fromRGB(60, 150, 200), HighlightColor = Color3.fromRGB(255, 0, 0), EspHealthBar = true, EspDistance = true, EspTracers = true, EspHeadDot = true, MiscBhop = false, MiscSpeed = false, SpeedAmount = 30, MiscNoclip = false, MiscAntiAim = false, MiscThirdPerson = false, MiscHideWeapon = false, MiscUnderMapKill = false, UnderMapDepth = 50, UnderMapTeleportDelay = 0.5, MenuKey = Enum.KeyCode.Insert, AutoFire = false, TriggerBot = false, TriggerBotDelay = 0.1, SilentAim = false, HitChance = 100, AimPart = "Head", RecoilControl = false, NoSpread = false, InstantRespawn = false, AutoStomp = false, InfiniteJump = false, FlyHack = false, FlySpeed = 50, WallBang = false, KillAll = false, AutoFarm = false, TeleportToEnemy = false, ConfigName = "default" } local Configs = {} local currentConfigName = "default" local UI_Elements = {} local function deepCopy(original) local copy = {} for key, value in pairs(original) do if type(value) == "table" then copy[key] = deepCopy(value) else copy[key] = value end end return copy end local function SaveConfig(name) local configToSave = {} for key, value in pairs(_G.Config) do if key ~= "ConfigName" then configToSave[key] = value end end Configs[name] = deepCopy(configToSave) if writefile then local success, err = pcall(function() local json = HttpService:JSONEncode(configToSave) writefile("karma_config_" .. name .. ".json", json) end) if success then return true else warn("Ошибка сохранения конфига:", err) return false end end return true end local function LoadConfig(name) local configData = nil if Configs[name] then configData = Configs[name] elseif readfile then local success, data = pcall(function() return readfile("karma_config_" .. name .. ".json") end) if success and data then local success2, decoded = pcall(function() return HttpService:JSONDecode(data) end) if success2 then configData = decoded Configs[name] = deepCopy(decoded) end end end if not configData then warn("Конфиг не найден:", name) return false end for key, value in pairs(configData) do if _G.Config[key] ~= nil then _G.Config[key] = value end end _G.Config.ConfigName = name currentConfigName = name for config_key, elements in pairs(UI_Elements) do for _, element in ipairs(elements) do if element.Type == "Toggle" then element.Box.BackgroundColor3 = _G.Config[config_key] and Color3.fromRGB(150, 200, 60) or Color3.fromRGB(40, 40, 40) element.Label.TextColor3 = _G.Config[config_key] and Color3.new(1,1,1) or Color3.fromRGB(180, 180, 180) elseif element.Type == "Slider" then element.Label.Text = element.Name .. ": " .. _G.Config[config_key] if element.Max and element.Max > 0 then element.Fill.Size = UDim2.new((_G.Config[config_key]/element.Max), 0, 1, 0) end elseif element.Type == "TeamMode" then element.Btn.Text = "Mode: " .. _G.Config[config_key] end end end return true end local function DeleteConfig(name) if Configs[name] then Configs[name] = nil end if delfile then pcall(function() delfile("karma_config_" .. name .. ".json") end) end if currentConfigName == name then currentConfigName = "default" _G.Config.ConfigName = "default" end end local function ListConfigs() local configList = {} if listfiles then local success, files = pcall(function() return listfiles("") end) if success then for _, file in ipairs(files) do if string.find(file, "karma_config_") then local configName = string.gsub(file, "karma_config_", "") configName = string.gsub(configName, ".json", "") table.insert(configList, configName) end end end end for name, _ in pairs(Configs) do if not table.find(configList, name) then table.insert(configList, name) end end return configList end local function ResetToDefault() local defaultConfig = { Aimbot = false, AimbotUseVisibleCheck = true, Smoothness = 0.5, Fov = 150, ShowFov = true, Esp = false, EspBoxes = true, EspNames = true, EspTeamMode = "Enemies", UseTeamCheck = true, UseVisCheck = true, EnemyColor = Color3.fromRGB(150, 200, 60), TeammateColor = Color3.fromRGB(60, 150, 200), HighlightColor = Color3.fromRGB(255, 0, 0), EspHealthBar = true, EspDistance = true, EspTracers = true, EspHeadDot = true, MiscBhop = false, MiscSpeed = false, SpeedAmount = 30, MiscNoclip = false, MiscAntiAim = false, MiscThirdPerson = false, MiscHideWeapon = false, MiscUnderMapKill = false, UnderMapDepth = 50, UnderMapTeleportDelay = 0.5, MenuKey = Enum.KeyCode.Insert, AutoFire = false, TriggerBot = false, TriggerBotDelay = 0.1, SilentAim = false, HitChance = 100, AimPart = "Head", RecoilControl = false, NoSpread = false, InstantRespawn = false, AutoStomp = false, InfiniteJump = false, FlyHack = false, FlySpeed = 50, WallBang = false, KillAll = false, AutoFarm = false, TeleportToEnemy = false } for key, value in pairs(defaultConfig) do _G.Config[key] = value end _G.Config.ConfigName = "default" currentConfigName = "default" for config_key, elements in pairs(UI_Elements) do for _, element in ipairs(elements) do if element.Type == "Toggle" then element.Box.BackgroundColor3 = _G.Config[config_key] and Color3.fromRGB(150, 200, 60) or Color3.fromRGB(40, 40, 40) element.Label.TextColor3 = _G.Config[config_key] and Color3.new(1,1,1) or Color3.fromRGB(180, 180, 180) elseif element.Type == "Slider" then element.Label.Text = element.Name .. ": " .. _G.Config[config_key] if element.Max and element.Max > 0 then element.Fill.Size = UDim2.new((_G.Config[config_key]/element.Max), 0, 1, 0) end elseif element.Type == "TeamMode" then element.Btn.Text = "Mode: " .. _G.Config[config_key] end end end end local function isEnemy(p) if p == LP or not LP.Character or not p.Character then return false end if not _G.Config.UseTeamCheck then return true end local LPTeamFolder = LP.Character.Parent local PlayerTeamFolder = p.Character.Parent local inSameTeam = (LPTeamFolder == PlayerTeamFolder) if _G.Config.EspTeamMode == "Enemies" then return not inSameTeam elseif _G.Config.EspTeamMode == "Teammates" then return inSameTeam elseif _G.Config.EspTeamMode == "All" then return true end return false end local function isVisibleForAimbot(targetChar) if not _G.Config.AimbotUseVisibleCheck then return true end if not targetChar or not LP.Character then return false end local origin = LP.Character:FindFirstChild("Head") if not origin then origin = LP.Character:FindFirstChild("HumanoidRootPart") end if not origin then return false end local targetHead = targetChar:FindFirstChild("Head") if not targetHead then return false end local originPos = origin.Position local targetPos = targetHead.Position local direction = (targetPos - originPos) local distance = direction.Magnitude if distance == 0 then return true end local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {LP.Character, targetChar} rayParams.FilterType = Enum.RaycastFilterType.Exclude rayParams.IgnoreWater = true local result = workspace:Raycast(originPos, direction, rayParams) return result == nil or result.Distance >= distance - 1 end local ScreenGui = Instance.new("ScreenGui", game:GetService("CoreGui")) local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.Name = "SkeetMenu" MainFrame.Size = UDim2.new(0, 520, 0, 420) MainFrame.Position = UDim2.new(0.5, -260, 0.5, -210) MainFrame.BackgroundColor3 = Color3.fromRGB(17, 17, 17) MainFrame.BorderColor3 = Color3.fromRGB(45, 45, 45) MainFrame.BorderSizePixel = 1 local Outline = Instance.new("Frame", MainFrame) Outline.Size = UDim2.new(1, 4, 1, 4) Outline.Position = UDim2.new(0, -2, 0, -2) Outline.BackgroundColor3 = Color3.fromRGB(0, 0, 0) Outline.ZIndex = 0 local AccentBar = Instance.new("Frame", MainFrame) AccentBar.Size = UDim2.new(1, 0, 0, 2) AccentBar.BackgroundColor3 = Color3.fromRGB(150, 200, 60) AccentBar.BorderSizePixel = 0 AccentBar.ZIndex = 2 local Sidebar = Instance.new("Frame", MainFrame) Sidebar.Size = UDim2.new(0, 110, 1, -2) Sidebar.Position = UDim2.new(0, 0, 0, 2) Sidebar.BackgroundColor3 = Color3.fromRGB(22, 22, 22) Sidebar.BorderSizePixel = 0 local SidebarLayout = Instance.new("UIListLayout", Sidebar) SidebarLayout.Padding = UDim.new(0, 5) SidebarLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center SidebarLayout.SortOrder = Enum.SortOrder.LayoutOrder SidebarLayout.VerticalAlignment = Enum.VerticalAlignment.Top local TopSpacer = Instance.new("Frame", Sidebar) TopSpacer.Size = UDim2.new(1, 0, 0, 10) TopSpacer.BackgroundTransparency = 1 TopSpacer.LayoutOrder = 0 local TabContainer = Instance.new("Frame", MainFrame) TabContainer.Size = UDim2.new(1, -125, 1, -45) TabContainer.Position = UDim2.new(0, 120, 0, 35) TabContainer.BackgroundTransparency = 1 local Tabs = { Aimbot = Instance.new("ScrollingFrame", TabContainer), Visuals = Instance.new("ScrollingFrame", TabContainer), Misc = Instance.new("ScrollingFrame", TabContainer), Combat = Instance.new("ScrollingFrame", TabContainer), Movement = Instance.new("ScrollingFrame", TabContainer), Config = Instance.new("ScrollingFrame", TabContainer) } for _, frame in pairs(Tabs) do frame.Size = UDim2.new(1, 0, 1, 0) frame.BackgroundTransparency = 1 frame.Visible = false frame.ScrollBarThickness = 0 local layout = Instance.new("UIListLayout", frame) layout.Padding = UDim.new(0, 12) layout.SortOrder = Enum.SortOrder.LayoutOrder end Tabs.Aimbot.Visible = true local Title = Instance.new("TextLabel", MainFrame) Title.Text = "gamesense" Title.Size = UDim2.new(0, 100, 0, 25) Title.Position = UDim2.new(0, 10, 0, 4) Title.BackgroundTransparency = 1 Title.TextColor3 = Color3.new(1, 1, 1) Title.Font = Enum.Font.Code Title.TextSize = 14 Title.TextXAlignment = Enum.TextXAlignment.Left local function CreateTabBtn(name) local Btn = Instance.new("TextButton", Sidebar) Btn.Name = name .. "TabButton" Btn.Size = UDim2.new(1, -20, 0, 40) Btn.BackgroundTransparency = 1 Btn.Text = name:lower() Btn.Font = Enum.Font.Code Btn.TextSize = 14 Btn.TextColor3 = (name == "Aimbot" and Color3.new(1,1,1) or Color3.fromRGB(150, 150, 150)) Btn.MouseButton1Click:Connect(function() for tName, tFrame in pairs(Tabs) do tFrame.Visible = (tName == name) end for _, b in pairs(Sidebar:GetChildren()) do if b:IsA("TextButton") then b.TextColor3 = Color3.fromRGB(150, 150, 150) end end Btn.TextColor3 = Color3.new(1,1,1) end) end local function CreateToggle(parent, name, config_key, callback) local TglBtn = Instance.new("TextButton", parent) TglBtn.Size = UDim2.new(1, 0, 0, 20) TglBtn.BackgroundTransparency = 1 TglBtn.Text = "" local Box = Instance.new("Frame", TglBtn) Box.Size = UDim2.new(0, 10, 0, 10) Box.Position = UDim2.new(0, 5, 0.5, -5) Box.BackgroundColor3 = _G.Config[config_key] and Color3.fromRGB(150, 200, 60) or Color3.fromRGB(40, 40, 40) Box.BorderSizePixel = 1 local Label = Instance.new("TextLabel", TglBtn) Label.Size = UDim2.new(1, -25, 1, 0) Label.Position = UDim2.new(0, 25, 0, 0) Label.Text = name Label.TextColor3 = _G.Config[config_key] and Color3.new(1,1,1) or Color3.fromRGB(180, 180, 180) Label.Font = Enum.Font.Code Label.TextSize = 13 Label.TextXAlignment = Enum.TextXAlignment.Left Label.BackgroundTransparency = 1 if not UI_Elements[config_key] then UI_Elements[config_key] = {} end table.insert(UI_Elements[config_key], { Type = "Toggle", Box = Box, Label = Label }) TglBtn.MouseButton1Click:Connect(function() _G.Config[config_key] = not _G.Config[config_key] Box.BackgroundColor3 = _G.Config[config_key] and Color3.fromRGB(150, 200, 60) or Color3.fromRGB(40, 40, 40) Label.TextColor3 = _G.Config[config_key] and Color3.new(1,1,1) or Color3.fromRGB(180, 180, 180) if callback then callback(_G.Config[config_key]) end end) return TglBtn end local function CreateSlider(parent, name, min, max, config_key, callback) local SldFrame = Instance.new("Frame", parent) SldFrame.Size = UDim2.new(1, -10, 0, 35) SldFrame.BackgroundTransparency = 1 local Label = Instance.new("TextLabel", SldFrame) Label.Text = name .. ": " .. _G.Config[config_key] Label.Size = UDim2.new(1, 0, 0, 15) Label.TextColor3 = Color3.fromRGB(200, 200, 200) Label.Font = Enum.Font.Code Label.TextSize = 12 Label.TextXAlignment = Enum.TextXAlignment.Left Label.BackgroundTransparency = 1 local Bar = Instance.new("Frame", SldFrame) Bar.Size = UDim2.new(1, 0, 0, 5) Bar.Position = UDim2.new(0, 0, 0, 22) Bar.BackgroundColor3 = Color3.fromRGB(35, 35, 35) Bar.BorderSizePixel = 1 local Fill = Instance.new("Frame", Bar) Fill.Size = UDim2.new((_G.Config[config_key]/max), 0, 1, 0) Fill.BackgroundColor3 = Color3.fromRGB(150, 200, 60) Fill.BorderSizePixel = 0 if not UI_Elements[config_key] then UI_Elements[config_key] = {} end table.insert(UI_Elements[config_key], { Type = "Slider", Name = name, Label = Label, Fill = Fill, Max = max, Min = min }) local function UpdateSlider(input) local per = math.clamp((input.Position.X - Bar.AbsolutePosition.X) / Bar.AbsoluteSize.X, 0, 1) local val = math.floor(min + (max - min) * per) Fill.Size = UDim2.new(per, 0, 1, 0) Label.Text = name .. ": " .. val _G.Config[config_key] = val if callback then callback(val) end end local draggingBar = false Bar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then draggingBar = true; UpdateSlider(i); end end) UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then draggingBar = false end end) UIS.InputChanged:Connect(function(i) if draggingBar and i.UserInputType == Enum.UserInputType.MouseMovement then UpdateSlider(i) end end) return SldFrame end local function CreateTeamModeBtn(parent) local Btn = Instance.new("TextButton", parent) Btn.Size = UDim2.new(1, 0, 0, 20) Btn.BackgroundTransparency = 1 Btn.Font = Enum.Font.Code Btn.TextSize = 13 Btn.TextXAlignment = Enum.TextXAlignment.Left local modes = {"Enemies", "Teammates", "All"} local currentModeIndex = 1 for i, mode in ipairs(modes) do if mode == _G.Config.EspTeamMode then currentModeIndex = i break end end local function UpdateText() Btn.Text = "Mode: " .. modes[currentModeIndex] _G.Config.EspTeamMode = modes[currentModeIndex] end UpdateText() if not UI_Elements["EspTeamMode"] then UI_Elements["EspTeamMode"] = {} end table.insert(UI_Elements["EspTeamMode"], { Type = "TeamMode", Btn = Btn }) Btn.MouseButton1Click:Connect(function() currentModeIndex = currentModeIndex % #modes + 1 UpdateText() end) return Btn end local function CreateButton(parent, name, callback) local Btn = Instance.new("TextButton", parent) Btn.Size = UDim2.new(1, -10, 0, 25) Btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) Btn.BorderSizePixel = 1 Btn.BorderColor3 = Color3.fromRGB(80, 80, 80) Btn.Text = name Btn.Font = Enum.Font.Code Btn.TextSize = 12 Btn.TextColor3 = Color3.fromRGB(200, 200, 200) Btn.MouseEnter:Connect(function() Btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) end) Btn.MouseLeave:Connect(function() Btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end) Btn.MouseButton1Click:Connect(callback) return Btn end CreateTabBtn("Aimbot") CreateTabBtn("Visuals") CreateTabBtn("Combat") CreateTabBtn("Movement") CreateTabBtn("Misc") CreateTabBtn("Config") CreateToggle(Tabs.Aimbot, "Enabled", "Aimbot") CreateToggle(Tabs.Aimbot, "Visible Check", "AimbotUseVisibleCheck") CreateToggle(Tabs.Aimbot, "Silent Aim", "SilentAim") CreateToggle(Tabs.Aimbot, "No Recoil", "RecoilControl") CreateToggle(Tabs.Aimbot, "No Spread", "NoSpread") CreateSlider(Tabs.Aimbot, "FOV Radius", 10, 600, "Fov") CreateSlider(Tabs.Aimbot, "Smoothing", 1, 50, "Smoothness", function(v) _G.Config.Smoothness = v/10 end) CreateSlider(Tabs.Aimbot, "Hit Chance %", 0, 100, "HitChance") CreateTeamModeBtn(Tabs.Visuals) CreateToggle(Tabs.Visuals, "Enable ESP", "Esp") CreateToggle(Tabs.Visuals, "Use Team Check", "UseTeamCheck") CreateToggle(Tabs.Visuals, "Use Visible Check", "UseVisCheck") CreateToggle(Tabs.Visuals, "Draw Boxes", "EspBoxes") CreateToggle(Tabs.Visuals, "Draw Names", "EspNames") CreateToggle(Tabs.Visuals, "Health Bar", "EspHealthBar") CreateToggle(Tabs.Visuals, "Distance Text", "EspDistance") CreateToggle(Tabs.Visuals, "Tracers", "EspTracers") CreateToggle(Tabs.Visuals, "Head Dot", "EspHeadDot") CreateToggle(Tabs.Visuals, "Show FOV Circle", "ShowFov") CreateToggle(Tabs.Combat, "Auto Fire", "AutoFire") CreateToggle(Tabs.Combat, "Trigger Bot", "TriggerBot") CreateSlider(Tabs.Combat, "Trigger Delay", 1, 100, "TriggerBotDelay", function(v) _G.Config.TriggerBotDelay = v/100 end) CreateToggle(Tabs.Combat, "Wall Bang", "WallBang") CreateToggle(Tabs.Combat, "Auto Stomp", "AutoStomp") CreateToggle(Tabs.Combat, "Kill All", "KillAll") CreateToggle(Tabs.Combat, "Auto Farm", "AutoFarm") CreateToggle(Tabs.Movement, "Bhop", "MiscBhop") CreateToggle(Tabs.Movement, "Speed Hack", "MiscSpeed") CreateSlider(Tabs.Movement, "Speed Amount", 16, 150, "SpeedAmount") CreateToggle(Tabs.Movement, "NoClip", "MiscNoclip") CreateToggle(Tabs.Movement, "Infinite Jump", "InfiniteJump") CreateToggle(Tabs.Movement, "Fly Hack", "FlyHack") CreateSlider(Tabs.Movement, "Fly Speed", 10, 200, "FlySpeed") CreateToggle(Tabs.Misc, "Third Person", "MiscThirdPerson") CreateToggle(Tabs.Misc, "Hide Weapons", "MiscHideWeapon") CreateToggle(Tabs.Misc, "Under Map Kill", "MiscUnderMapKill") CreateSlider(Tabs.Misc, "Under Map Depth", 10, 200, "UnderMapDepth") CreateSlider(Tabs.Misc, "Teleport Delay", 1, 100, "UnderMapTeleportDelay", function(v) _G.Config.UnderMapTeleportDelay = v/100 end) CreateToggle(Tabs.Misc, "Anti Aim", "MiscAntiAim") CreateToggle(Tabs.Misc, "Instant Respawn", "InstantRespawn") local currentConfigInput = nil local configListContainer = nil local function RefreshConfigList() if configListContainer then configListContainer:ClearAllChildren() local configs = ListConfigs() local ConfigTitle = Instance.new("TextLabel", configListContainer) ConfigTitle.Size = UDim2.new(1, -10, 0, 20) ConfigTitle.Text = "Saved Configs:" ConfigTitle.TextColor3 = Color3.fromRGB(200, 200, 200) ConfigTitle.Font = Enum.Font.Code ConfigTitle.TextSize = 13 ConfigTitle.TextXAlignment = Enum.TextXAlignment.Left ConfigTitle.BackgroundTransparency = 1 for _, configName in ipairs(configs) do local ItemFrame = Instance.new("Frame", configListContainer) ItemFrame.Size = UDim2.new(1, -10, 0, 35) ItemFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) ItemFrame.BorderSizePixel = 1 ItemFrame.BorderColor3 = Color3.fromRGB(60, 60, 60) local NameLabel = Instance.new("TextLabel", ItemFrame) NameLabel.Size = UDim2.new(0.5, -5, 1, 0) NameLabel.Text = configName NameLabel.TextColor3 = Color3.fromRGB(200, 200, 200) NameLabel.Font = Enum.Font.Code NameLabel.TextSize = 12 NameLabel.TextXAlignment = Enum.TextXAlignment.Left NameLabel.BackgroundTransparency = 1 NameLabel.Position = UDim2.new(0, 5, 0, 0) local LoadBtn = Instance.new("TextButton", ItemFrame) LoadBtn.Size = UDim2.new(0.2, -5, 0.7, 0) LoadBtn.Position = UDim2.new(0.5, 5, 0.15, 0) LoadBtn.Text = "LOAD" LoadBtn.Font = Enum.Font.Code LoadBtn.TextSize = 11 LoadBtn.TextColor3 = Color3.fromRGB(200, 200, 200) LoadBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) LoadBtn.BorderSizePixel = 1 LoadBtn.MouseButton1Click:Connect(function() LoadConfig(configName) end) local SaveBtn = Instance.new("TextButton", ItemFrame) SaveBtn.Size = UDim2.new(0.2, -5, 0.7, 0) SaveBtn.Position = UDim2.new(0.7, 5, 0.15, 0) SaveBtn.Text = "SAVE" SaveBtn.Font = Enum.Font.Code SaveBtn.TextSize = 11 SaveBtn.TextColor3 = Color3.fromRGB(200, 200, 200) SaveBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) SaveBtn.BorderSizePixel = 1 SaveBtn.MouseButton1Click:Connect(function() SaveConfig(configName) end) local DeleteBtn = Instance.new("TextButton", ItemFrame) DeleteBtn.Size = UDim2.new(0.1, -5, 0.7, 0) DeleteBtn.Position = UDim2.new(0.9, 5, 0.15, 0) DeleteBtn.Text = "X" DeleteBtn.Font = Enum.Font.Code DeleteBtn.TextSize = 11 DeleteBtn.TextColor3 = Color3.fromRGB(255, 100, 100) DeleteBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) DeleteBtn.BorderSizePixel = 1 DeleteBtn.MouseButton1Click:Connect(function() DeleteConfig(configName) RefreshConfigList() end) end if #configs == 0 then local EmptyLabel = Instance.new("TextLabel", configListContainer) EmptyLabel.Size = UDim2.new(1, -10, 0, 20) EmptyLabel.Text = "No saved configs" EmptyLabel.TextColor3 = Color3.fromRGB(150, 150, 150) EmptyLabel.Font = Enum.Font.Code EmptyLabel.TextSize = 12 EmptyLabel.TextXAlignment = Enum.TextXAlignment.Left EmptyLabel.BackgroundTransparency = 1 end end end CreateButton(Tabs.Config, "Save Current Config", function() if currentConfigInput and currentConfigInput.Text and currentConfigInput.Text ~= "" then local configName = currentConfigInput.Text if SaveConfig(configName) then RefreshConfigList() currentConfigInput.Text = "" end end end) CreateButton(Tabs.Config, "Reset to Default", function() ResetToDefault() RefreshConfigList() end) CreateButton(Tabs.Config, "Export Config to Clipboard", function() if setclipboard then local configStr = HttpService:JSONEncode(_G.Config) setclipboard(configStr) end end) CreateButton(Tabs.Config, "Import Config from Clipboard", function() if getclipboard then local success, clipboard = pcall(getclipboard) if success and clipboard then local success2, configData = pcall(function() return HttpService:JSONDecode(clipboard) end) if success2 and configData then for key, value in pairs(configData) do if _G.Config[key] ~= nil then _G.Config[key] = value end end for config_key, elements in pairs(UI_Elements) do for _, element in ipairs(elements) do if element.Type == "Toggle" then element.Box.BackgroundColor3 = _G.Config[config_key] and Color3.fromRGB(150, 200, 60) or Color3.fromRGB(40, 40, 40) element.Label.TextColor3 = _G.Config[config_key] and Color3.new(1,1,1) or Color3.fromRGB(180, 180, 180) elseif element.Type == "Slider" then element.Label.Text = element.Name .. ": " .. _G.Config[config_key] if element.Max and element.Max > 0 then element.Fill.Size = UDim2.new((_G.Config[config_key]/element.Max), 0, 1, 0) end elseif element.Type == "TeamMode" then element.Btn.Text = "Mode: " .. _G.Config[config_key] end end end RefreshConfigList() end end end end) local ConfigInputFrame = Instance.new("Frame", Tabs.Config) ConfigInputFrame.Size = UDim2.new(1, -10, 0, 35) ConfigInputFrame.BackgroundTransparency = 1 local ConfigInputLabel = Instance.new("TextLabel", ConfigInputFrame) ConfigInputLabel.Size = UDim2.new(0.3, 0, 1, 0) ConfigInputLabel.Text = "Config Name:" ConfigInputLabel.TextColor3 = Color3.fromRGB(200, 200, 200) ConfigInputLabel.Font = Enum.Font.Code ConfigInputLabel.TextSize = 12 ConfigInputLabel.TextXAlignment = Enum.TextXAlignment.Left ConfigInputLabel.BackgroundTransparency = 1 currentConfigInput = Instance.new("TextBox", ConfigInputFrame) currentConfigInput.Size = UDim2.new(0.7, 0, 1, 0) currentConfigInput.Position = UDim2.new(0.3, 0, 0, 0) currentConfigInput.Text = "" currentConfigInput.PlaceholderText = "Enter config name..." currentConfigInput.Font = Enum.Font.Code currentConfigInput.TextSize = 12 currentConfigInput.TextColor3 = Color3.new(1, 1, 1) currentConfigInput.BackgroundColor3 = Color3.fromRGB(30, 30, 30) currentConfigInput.BorderSizePixel = 1 currentConfigInput.BorderColor3 = Color3.fromRGB(80, 80, 80) configListContainer = Instance.new("Frame", Tabs.Config) configListContainer.Size = UDim2.new(1, -10, 0, 200) configListContainer.Position = UDim2.new(0, 5, 0, 120) configListContainer.BackgroundTransparency = 1 local configListLayout = Instance.new("UIListLayout", configListContainer) configListLayout.Padding = UDim.new(0, 5) configListLayout.SortOrder = Enum.SortOrder.LayoutOrder RefreshConfigList() local FovCircle = Drawing.new("Circle") FovCircle.Color = Color3.fromRGB(150, 200, 60) FovCircle.Thickness = 1 FovCircle.NumSides = 100 FovCircle.Transparency = 0.7 FovCircle.Filled = false local ESP_Table = {} local targetUnderCrosshair = nil local underMapActive = false local currentTarget = nil local lastTeleportTime = 0 local lastBhopTime = 0 local bhopCooldown = 0.3 local flyBodyPosition = nil local flyBodyGyro = nil local function updateFlyHack() if not _G.Config.FlyHack or not LP.Character then if flyBodyPosition then flyBodyPosition:Destroy() flyBodyGyro:Destroy() flyBodyPosition = nil flyBodyGyro = nil end return end local character = LP.Character local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end if not flyBodyPosition then flyBodyPosition = Instance.new("BodyPosition") flyBodyPosition.MaxForce = Vector3.new(math.huge, math.huge, math.huge) flyBodyPosition.Parent = humanoidRootPart flyBodyGyro = Instance.new("BodyGyro") flyBodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) flyBodyGyro.P = 10000 flyBodyGyro.D = 1000 flyBodyGyro.Parent = humanoidRootPart end local camera = workspace.CurrentCamera local moveDirection = Vector3.new(0, 0, 0) if UIS:IsKeyDown(Enum.KeyCode.W) then moveDirection = moveDirection + camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then moveDirection = moveDirection - camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then moveDirection = moveDirection - camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then moveDirection = moveDirection + camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then moveDirection = moveDirection + Vector3.new(0, 1, 0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then moveDirection = moveDirection - Vector3.new(0, 1, 0) end if moveDirection.Magnitude > 0 then moveDirection = moveDirection.Unit * _G.Config.FlySpeed flyBodyPosition.Position = humanoidRootPart.Position + moveDirection else flyBodyPosition.Position = humanoidRootPart.Position end flyBodyGyro.CFrame = camera.CFrame end local function updateUnderMapKill() if not _G.Config.MiscUnderMapKill or not LP.Character then underMapActive = false currentTarget = nil return end local character = LP.Character local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChild("Humanoid") if not humanoidRootPart or not humanoid then underMapActive = false currentTarget = nil return end local enemies = {} for _, player in pairs(Players:GetPlayers()) do if isEnemy(player) and player.Character and player.Character:FindFirstChild("Humanoid") then local enemyHumanoid = player.Character.Humanoid if enemyHumanoid.Health > 0 and player.Character:FindFirstChild("HumanoidRootPart") then table.insert(enemies, player) end end end if #enemies == 0 then underMapActive = false currentTarget = nil return end if not currentTarget or not currentTarget.Character or not currentTarget.Character:FindFirstChild("Humanoid") or currentTarget.Character.Humanoid.Health <= 0 then local closestEnemy = nil local closestDistance = math.huge for _, enemy in pairs(enemies) do local enemyRoot = enemy.Character.HumanoidRootPart local distance = (humanoidRootPart.Position - enemyRoot.Position).Magnitude if distance < closestDistance then closestDistance = distance closestEnemy = enemy end end currentTarget = closestEnemy end if not currentTarget or not currentTarget.Character then currentTarget = nil return end local targetRoot = currentTarget.Character:FindFirstChild("HumanoidRootPart") local targetHumanoid = currentTarget.Character:FindFirstChild("Humanoid") if not targetRoot or not targetHumanoid then currentTarget = nil return end if targetHumanoid.Health <= 0 then currentTarget = nil return end local underMapPosition = targetRoot.Position - Vector3.new(0, _G.Config.UnderMapDepth, 0) local currentTime = tick() if currentTime - lastTeleportTime > _G.Config.UnderMapTeleportDelay then humanoidRootPart.CFrame = CFrame.new(underMapPosition) lastTeleportTime = currentTime end if mousemoverel then local targetHead = currentTarget.Character:FindFirstChild("Head") if targetHead then local targetPos, onScreen = Camera:WorldToViewportPoint(targetHead.Position) if onScreen then local mousePos = UIS:GetMouseLocation() mousemoverel((targetPos.X - mousePos.X) * 0.2, (targetPos.Y - mousePos.Y) * 0.2) if _G.Config.AutoFire and mouse1click and math.random(1, 2) == 1 then mouse1click() end end end end humanoidRootPart.Velocity = Vector3.new(0, 0, 0) humanoidRootPart.RotVelocity = Vector3.new(0, 0, 0) humanoid.PlatformStand = true humanoid.AutoRotate = false humanoidRootPart.CFrame = CFrame.new(humanoidRootPart.Position) * CFrame.Angles(0, 0, 0) for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false part.Velocity = Vector3.new(0, 0, 0) end end underMapActive = true end local function updateWeaponVisibility() if not LP.Character then return end if _G.Config.MiscHideWeapon then for _, child in pairs(LP.Character:GetChildren()) do if child:IsA("Tool") or child:IsA("HopperBin") then child.Parent = LP.Backpack end end end end local function updateThirdPerson() if _G.Config.MiscThirdPerson then Camera.CameraType = Enum.CameraType.Custom local character = LP.Character if character and character:FindFirstChild("HumanoidRootPart") then local rootPart = character.HumanoidRootPart Camera.CFrame = CFrame.new(rootPart.Position + rootPart.CFrame.LookVector * -10 + Vector3.new(0, 3, 0), rootPart.Position) end else Camera.CameraType = Enum.CameraType.Custom end end local function triggerBot() if not _G.Config.TriggerBot or not LP.Character then return end local mouse = LP:GetMouse() local target = mouse.Target if target and target.Parent then local humanoid = target.Parent:FindFirstChild("Humanoid") or target.Parent.Parent:FindFirstChild("Humanoid") if humanoid and isEnemy(Players:GetPlayerFromCharacter(humanoid.Parent)) then if mouse1click then mouse1click() end end end end local function autoStomp() if not _G.Config.AutoStomp or not LP.Character then return end local character = LP.Character local humanoid = character:FindFirstChild("Humanoid") if not humanoid then return end for _, player in pairs(Players:GetPlayers()) do if player ~= LP and player.Character then local targetHum = player.Character:FindFirstChild("Humanoid") if targetHum and targetHum.Health > 0 then local targetRoot = player.Character:FindFirstChild("HumanoidRootPart") local myRoot = character:FindFirstChild("HumanoidRootPart") if targetRoot and myRoot and (targetRoot.Position - myRoot.Position).Magnitude < 10 then humanoid.Jump = true break end end end end end local function killAllEnemies() if not _G.Config.KillAll then return end for _, player in pairs(Players:GetPlayers()) do if isEnemy(player) and player.Character then local humanoid = player.Character:FindFirstChild("Humanoid") if humanoid then humanoid.Health = 0 end end end end local function teleportToNearestEnemy() if not _G.Config.TeleportToEnemy then return end local myRoot = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart") if not myRoot then return end local closestEnemy = nil local closestDistance = math.huge for _, player in pairs(Players:GetPlayers()) do if isEnemy(player) and player.Character then local enemyRoot = player.Character:FindFirstChild("HumanoidRootPart") if enemyRoot then local distance = (myRoot.Position - enemyRoot.Position).Magnitude if distance < closestDistance then closestDistance = distance closestEnemy = player end end end end if closestEnemy and closestEnemy.Character then local enemyRoot = closestEnemy.Character:FindFirstChild("HumanoidRootPart") if enemyRoot then myRoot.CFrame = enemyRoot.CFrame end end end RunService.RenderStepped:Connect(function() FovCircle.Visible = _G.Config.ShowFov FovCircle.Radius = _G.Config.Fov FovCircle.Position = UIS:GetMouseLocation() updateThirdPerson() updateWeaponVisibility() updateUnderMapKill() updateFlyHack() if _G.Config.TriggerBot then triggerBot() end if _G.Config.AutoStomp then autoStomp() end if _G.Config.InfiniteJump and UIS:IsKeyDown(Enum.KeyCode.Space) then local character = LP.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end if _G.Config.KillAll then killAllEnemies() end if _G.Config.TeleportToEnemy then teleportToNearestEnemy() _G.Config.TeleportToEnemy = false end targetUnderCrosshair = nil if _G.Config.Aimbot and not _G.Config.MiscUnderMapKill then local target = nil local dist = _G.Config.Fov for _, p in pairs(Players:GetPlayers()) do if isEnemy(p) and p.Character and p.Character:FindFirstChild("Head") and p.Character:FindFirstChild("Humanoid") and p.Character.Humanoid.Health > 0 then local isTargetVisible = isVisibleForAimbot(p.Character) if (not _G.Config.AimbotUseVisibleCheck) or isTargetVisible then local pos, vis = Camera:WorldToViewportPoint(p.Character.Head.Position) if vis then local mag = (Vector2.new(pos.X, pos.Y) - UIS:GetMouseLocation()).Magnitude if mag < dist and math.random(1, 100) <= _G.Config.HitChance then dist = mag target = p end end end end end if target and mousemoverel then local tPos = Camera:WorldToViewportPoint(target.Character.Head.Position) local mPos = UIS:GetMouseLocation() mousemoverel((tPos.X - mPos.X) / math.max(_G.Config.Smoothness, 0.1), (tPos.Y - mPos.Y) / math.max(_G.Config.Smoothness, 0.1)) end end for _, p in pairs(Players:GetPlayers()) do if not _G.Config.Esp then if ESP_Table[p] then for _, d in pairs(ESP_Table[p]) do d.Visible = false end end else local shouldDraw = (not _G.Config.UseTeamCheck) or (_G.Config.UseTeamCheck and isEnemy(p)) or (_G.Config.UseTeamCheck and _G.Config.EspTeamMode == "Teammates") if shouldDraw and p.Character and p.Character:FindFirstChild("HumanoidRootPart") and p.Character.Humanoid.Health > 0 then if not ESP_Table[p] then ESP_Table[p] = { Box = Drawing.new("Square"), Name = Drawing.new("Text"), HealthBar = Drawing.new("Square"), DistanceText = Drawing.new("Text"), Tracer = Drawing.new("Line"), HeadDot = Drawing.new("Circle") } end local data = ESP_Table[p] local root = p.Character.HumanoidRootPart local head = p.Character:FindFirstChild("Head") local pos, vis = Camera:WorldToViewportPoint(root.Position) if vis then if head then local headPos, headVis = Camera:WorldToViewportPoint(head.Position) if headVis then local distToCursor = (Vector2.new(headPos.X, headPos.Y) - UIS:GetMouseLocation()).Magnitude if distToCursor < 50 and targetUnderCrosshair == nil then targetUnderCrosshair = p end end end local espColor = (p == targetUnderCrosshair) and _G.Config.HighlightColor or (isEnemy(p) and _G.Config.EnemyColor or _G.Config.TeammateColor) local size = math.max(2000 / math.max(pos.Z, 1), 10) data.Box.Visible = _G.Config.EspBoxes data.Box.Size = Vector2.new(size, size * 1.5) data.Box.Position = Vector2.new(pos.X - size/2, pos.Y - (size*1.5)/2) data.Box.Color = espColor data.Box.Thickness = 1 data.Name.Visible = _G.Config.EspNames data.Name.Text = p.Name data.Name.Size = 14 data.Name.Center = true data.Name.Outline = true data.Name.Color = espColor data.Name.Position = Vector2.new(pos.X, pos.Y - (size*1.5)/2 - 16) local humanoid = p.Character:FindFirstChild("Humanoid") if _G.Config.EspHealthBar and humanoid then local healthPer = math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1) data.HealthBar.Visible = true data.HealthBar.Size = Vector2.new(5, size * 1.5 * healthPer) data.HealthBar.Position = Vector2.new(pos.X - size/2 - 7, pos.Y - (size*1.5)/2 + (size * 1.5 * (1 - healthPer))/2) data.HealthBar.Color = Color3.fromRGB(math.floor(255 * (1 - healthPer)), math.floor(255 * healthPer), 0) data.HealthBar.Filled = true end if _G.Config.EspDistance and LP.Character and LP.Character:FindFirstChild("HumanoidRootPart") then data.DistanceText.Visible = true data.DistanceText.Text = math.floor((LP.Character.HumanoidRootPart.Position - root.Position).Magnitude) .. "m" data.DistanceText.Size = 12 data.DistanceText.Center = true data.DistanceText.Color = Color3.new(1,1,1) data.DistanceText.Position = Vector2.new(pos.X, pos.Y + (size*1.5)/2 + 5) end if _G.Config.EspTracers then data.Tracer.Visible = true data.Tracer.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) data.Tracer.To = Vector2.new(pos.X, pos.Y) data.Tracer.Color = espColor data.Tracer.Thickness = 1 end if _G.Config.EspHeadDot and head then local headPos, headVis = Camera:WorldToViewportPoint(head.Position) if headVis then data.HeadDot.Visible = true data.HeadDot.Radius = 3 data.HeadDot.Position = Vector2.new(headPos.X, headPos.Y) data.HeadDot.Color = espColor data.HeadDot.Filled = true else data.HeadDot.Visible = false end end else for _, d in pairs(data) do d.Visible = false end end elseif ESP_Table[p] then for _, d in pairs(ESP_Table[p]) do d.Visible = false end end end end end) RunService.Heartbeat:Connect(function() if LP and LP.Character and LP.Character:FindFirstChild("Humanoid") then local humanoid = LP.Character.Humanoid local currentTime = tick() if not _G.Config.MiscUnderMapKill then if _G.Config.MiscBhop then if humanoid.FloorMaterial ~= Enum.Material.Air then if currentTime - lastBhopTime > bhopCooldown then humanoid.Jump = true lastBhopTime = currentTime end else humanoid.Jump = false end else lastBhopTime = 0 end if _G.Config.MiscSpeed then humanoid.WalkSpeed = _G.Config.SpeedAmount else humanoid.WalkSpeed = 16 end end if _G.Config.MiscNoclip or _G.Config.MiscUnderMapKill then for _, part in pairs(LP.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end elseif not _G.Config.MiscUnderMapKill then for _, part in pairs(LP.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end if not _G.Config.MiscUnderMapKill and underMapActive then if humanoid then humanoid.PlatformStand = false humanoid.AutoRotate = true local humanoidRootPart = LP.Character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then humanoidRootPart.Velocity = Vector3.new(0, 0, 0) end end underMapActive = false currentTarget = nil end if _G.Config.InstantRespawn and humanoid.Health <= 0 then LP.Character:BreakJoints() end end end) local dragging, dragStart, startPos MainFrame.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = i.Position startPos = MainFrame.Position end end) UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local delta = i.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) UIS.InputBegan:Connect(function(i) if i.KeyCode == _G.Config.MenuKey then MainFrame.Visible = not MainFrame.Visible end end)