local TweenService = game:GetService("TweenService") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local TeleportService = game:GetService("TeleportService") local Stats = game:GetService("Stats") local VirtualUser = game:GetService("VirtualUser") local LocalPlayer = Players.LocalPlayer local guiParent = gethui and gethui() or (pcall(function() return game:GetService("CoreGui") end) and game:GetService("CoreGui") or LocalPlayer:WaitForChild("PlayerGui")) if guiParent:FindFirstChild("KvaplVisual") then guiParent.KvaplVisual:Destroy() end local clickSound = Instance.new("Sound", guiParent); clickSound.SoundId = "rbxassetid://6895079853"; clickSound.Volume = 0.5 local function playClick() clickSound:Play() end local themes = { Dark = { Bg = Color3.fromRGB(15, 15, 20), Side = Color3.fromRGB(22, 22, 28), Acc = Color3.fromRGB(120, 90, 255), Text = Color3.fromRGB(240, 240, 240), Btn = Color3.fromRGB(30, 30, 38), BtnHover = Color3.fromRGB(45, 45, 55), SliderBG = Color3.fromRGB(40, 40, 48) }, White = { Bg = Color3.fromRGB(245, 245, 250), Side = Color3.fromRGB(255, 255, 255), Acc = Color3.fromRGB(65, 105, 225), Text = Color3.fromRGB(30, 30, 30), Btn = Color3.fromRGB(230, 230, 235), BtnHover = Color3.fromRGB(215, 215, 225), SliderBG = Color3.fromRGB(200, 200, 205) }, Halloween = { Bg = Color3.fromRGB(20, 10, 5), Side = Color3.fromRGB(30, 15, 8), Acc = Color3.fromRGB(255, 100, 0), Text = Color3.fromRGB(255, 230, 200), Btn = Color3.fromRGB(45, 25, 15), BtnHover = Color3.fromRGB(65, 35, 20), SliderBG = Color3.fromRGB(60, 30, 15) } } local curTheme = themes.Dark local themedObjects = {Bg = {}, Side = {}, Acc = {}, Text = {}, Btn = {}, SliderBG = {}} local function tween(obj, props, dur, style) local t = TweenService:Create(obj, TweenInfo.new(dur or 0.4, style or Enum.EasingStyle.Sine, Enum.EasingDirection.Out), props); t:Play(); return t end local function applyTheme(tName) curTheme = themes[tName] or curTheme for obj, prop in pairs(themedObjects.Bg) do tween(obj, {[prop] = curTheme.Bg}, 0.5) end for obj, prop in pairs(themedObjects.Side) do tween(obj, {[prop] = curTheme.Side}, 0.5) end for obj, prop in pairs(themedObjects.Acc) do tween(obj, {[prop] = curTheme.Acc}, 0.5) end for obj, prop in pairs(themedObjects.Text) do tween(obj, {[prop] = curTheme.Text}, 0.5) end for obj, prop in pairs(themedObjects.Btn) do tween(obj, {[prop] = curTheme.Btn}, 0.5) end for obj, prop in pairs(themedObjects.SliderBG) do tween(obj, {[prop] = curTheme.SliderBG}, 0.5) end end -- === СОЗДАНИЕ GUI === local ScreenGui = Instance.new("ScreenGui", guiParent) ScreenGui.Name = "KvaplVisual" ScreenGui.ResetOnSpawn = false ScreenGui.IgnoreGuiInset = true -- Важно для точных 2D координат ESP -- Отдельная защищенная папка для всех элементов ESP local ESPFolder = Instance.new("Folder", ScreenGui) ESPFolder.Name = "ESPFolder" local LoadFrame = Instance.new("Frame", ScreenGui); LoadFrame.Size = UDim2.new(0, 350, 0, 120); LoadFrame.Position = UDim2.new(0.5, -175, 0.5, -60); LoadFrame.BackgroundColor3 = curTheme.Bg; Instance.new("UICorner", LoadFrame).CornerRadius = UDim.new(0, 16); local lfStroke = Instance.new("UIStroke", LoadFrame); lfStroke.Color = curTheme.Acc; lfStroke.Thickness = 1.5 local LoadTitle = Instance.new("TextLabel", LoadFrame); LoadTitle.Size = UDim2.new(1, 0, 0, 40); LoadTitle.Position = UDim2.new(0,0,0,15); LoadTitle.BackgroundTransparency = 1; LoadTitle.Text = "KvaplVisual Premium"; LoadTitle.TextColor3 = curTheme.Acc; LoadTitle.Font = Enum.Font.GothamBlack; LoadTitle.TextSize = 22 local LoadStatus = Instance.new("TextLabel", LoadFrame); LoadStatus.Size = UDim2.new(1, 0, 0, 20); LoadStatus.Position = UDim2.new(0,0,0,45); LoadStatus.BackgroundTransparency = 1; LoadStatus.Text = "Initializing..."; LoadStatus.TextColor3 = curTheme.Text; LoadStatus.Font = Enum.Font.Gotham; LoadStatus.TextSize = 13 local BarBG = Instance.new("Frame", LoadFrame); BarBG.Size = UDim2.new(0.8, 0, 0, 6); BarBG.Position = UDim2.new(0.1, 0, 0.75, 0); BarBG.BackgroundColor3 = curTheme.SliderBG; Instance.new("UICorner", BarBG).CornerRadius = UDim.new(1, 0) local BarFill = Instance.new("Frame", BarBG); BarFill.Size = UDim2.new(0, 0, 1, 0); BarFill.BackgroundColor3 = curTheme.Acc; Instance.new("UICorner", BarFill).CornerRadius = UDim.new(1, 0) local MainFrame = Instance.new("Frame", ScreenGui); MainFrame.Size = UDim2.new(0, 680, 0, 520); MainFrame.Position = UDim2.new(0.5, -340, 0.5, -260); MainFrame.BackgroundColor3 = curTheme.Bg; MainFrame.Visible = false; themedObjects.Bg[MainFrame] = "BackgroundColor3" Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 16) local UIStroke = Instance.new("UIStroke", MainFrame); UIStroke.Thickness = 1.5; UIStroke.Color = curTheme.Acc; themedObjects.Acc[UIStroke] = "Color" local Shadow = Instance.new("ImageLabel", MainFrame); Shadow.Size = UDim2.new(1, 80, 1, 80); Shadow.Position = UDim2.new(0, -40, 0, -40); Shadow.BackgroundTransparency = 1; Shadow.Image = "rbxassetid://1316045217"; Shadow.ImageColor3 = Color3.new(0,0,0); Shadow.ImageTransparency = 0.5; Shadow.ZIndex = -1 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) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then tween(MainFrame, {Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + (i.Position.X - dragStart.X), startPos.Y.Scale, startPos.Y.Offset + (i.Position.Y - dragStart.Y))}, 0.1) end end) local Sidebar = Instance.new("Frame", MainFrame); Sidebar.Size = UDim2.new(0, 200, 1, 0); Sidebar.BackgroundColor3 = curTheme.Side; Sidebar.BorderSizePixel = 0; themedObjects.Side[Sidebar] = "BackgroundColor3"; Instance.new("UICorner", Sidebar).CornerRadius = UDim.new(0, 16) local SideFix = Instance.new("Frame", Sidebar); SideFix.Size = UDim2.new(0, 20, 1, 0); SideFix.Position = UDim2.new(1, -20, 0, 0); SideFix.BackgroundColor3 = curTheme.Side; SideFix.BorderSizePixel = 0; themedObjects.Side[SideFix] = "BackgroundColor3" local Title = Instance.new("TextLabel", Sidebar); Title.Size = UDim2.new(1, 0, 0, 80); Title.BackgroundTransparency = 1; Title.Text = "KvaplVisual"; Title.TextColor3 = curTheme.Acc; Title.Font = Enum.Font.GothamBlack; Title.TextSize = 24; themedObjects.Acc[Title] = "TextColor3" local StatsLabel = Instance.new("TextLabel", Sidebar); StatsLabel.Size = UDim2.new(1, 0, 0, 40); StatsLabel.Position = UDim2.new(0, 0, 1, -40); StatsLabel.BackgroundTransparency = 1; StatsLabel.TextColor3 = Color3.fromRGB(150, 150, 150); StatsLabel.Font = Enum.Font.GothamSemibold; StatsLabel.TextSize = 12 RunService.RenderStepped:Connect(function() pcall(function() StatsLabel.Text = "FPS: " .. math.floor(Workspace:GetRealPhysicsFPS()) .. " | Ping: " .. math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()) .. "ms" end) end) local TabContainer = Instance.new("ScrollingFrame", Sidebar); TabContainer.Size = UDim2.new(1, 0, 1, -120); TabContainer.Position = UDim2.new(0, 0, 0, 80); TabContainer.BackgroundTransparency = 1; TabContainer.ScrollBarThickness = 0 local TabListLayout = Instance.new("UIListLayout", TabContainer); TabListLayout.Padding = UDim.new(0, 8); TabListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center local ContentContainer = Instance.new("Frame", MainFrame); ContentContainer.Size = UDim2.new(1, -200, 1, 0); ContentContainer.Position = UDim2.new(0, 200, 0, 0); ContentContainer.BackgroundTransparency = 1 local cache = { time = Lighting.ClockTime, ambient = Lighting.Ambient, outdoorAmbient = Lighting.OutdoorAmbient, materials = {}, color = {} } -- === ГЕНЕРАТОРЫ ЭЛЕМЕНТОВ === local tabs = {} local function createTab(name, icon) local btn = Instance.new("TextButton", TabContainer); btn.Size = UDim2.new(0.85, 0, 0, 42); btn.BackgroundColor3 = curTheme.Bg; btn.AutoButtonColor = false; btn.TextColor3 = curTheme.Text; btn.Font = Enum.Font.GothamBold; btn.TextSize = 13; btn.Text = " " .. icon .. " " .. name; btn.TextXAlignment = Enum.TextXAlignment.Left; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 10); themedObjects.Bg[btn] = "BackgroundColor3"; themedObjects.Text[btn] = "TextColor3" local page = Instance.new("ScrollingFrame", ContentContainer); page.Size = UDim2.new(1, -30, 1, -40); page.Position = UDim2.new(0, 15, 0, 20); page.BackgroundTransparency = 1; page.ScrollBarThickness = 2; page.ScrollBarImageColor3 = curTheme.Acc; page.Visible = false; themedObjects.Acc[page] = "ScrollBarImageColor3" local list = Instance.new("UIListLayout", page); list.Padding = UDim.new(0, 12); list:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() page.CanvasSize = UDim2.new(0, 0, 0, list.AbsoluteContentSize.Y + 20) end) tabs[name] = {Btn = btn, Page = page} btn.MouseButton1Click:Connect(function() playClick() for tName, tData in pairs(tabs) do if tName == name then tData.Page.Visible = true; tData.Page.Position = UDim2.new(0, 15, 0, 50); tween(tData.Page, {Position = UDim2.new(0, 15, 0, 20)}, 0.45, Enum.EasingStyle.Back); tween(tData.Btn, {BackgroundColor3 = curTheme.Acc, TextColor3 = Color3.new(1,1,1)}, 0.3) else tData.Page.Visible = false; tween(tData.Btn, {BackgroundColor3 = curTheme.Bg, TextColor3 = curTheme.Text}, 0.3) end end end) return page end local function createLabel(text, parent) local lbl = Instance.new("TextLabel", parent); lbl.Size = UDim2.new(1, -10, 0, 25); lbl.BackgroundTransparency = 1; lbl.Text = " " .. text; lbl.TextColor3 = curTheme.Acc; lbl.Font = Enum.Font.GothamBlack; lbl.TextSize = 13; lbl.TextXAlignment = Enum.TextXAlignment.Left; themedObjects.Acc[lbl] = "TextColor3" end local function createButton(text, parent, cb) local btn = Instance.new("TextButton", parent); btn.Size = UDim2.new(1, -10, 0, 45); btn.BackgroundColor3 = curTheme.Btn; btn.TextColor3 = curTheme.Text; btn.Font = Enum.Font.GothamSemibold; btn.TextSize = 14; btn.Text = text; btn.AutoButtonColor = false; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 10); themedObjects.Btn[btn] = "BackgroundColor3"; themedObjects.Text[btn] = "TextColor3" btn.MouseEnter:Connect(function() tween(btn, {BackgroundColor3 = curTheme.BtnHover}, 0.3) end); btn.MouseLeave:Connect(function() tween(btn, {BackgroundColor3 = curTheme.Btn}, 0.3) end) btn.MouseButton1Down:Connect(function() tween(btn, {Size = UDim2.new(1, -16, 0, 41)}, 0.15) end); btn.MouseButton1Up:Connect(function() playClick(); tween(btn, {Size = UDim2.new(1, -10, 0, 45)}, 0.4, Enum.EasingStyle.Elastic); cb() end) end local function createInput(placeholder, parent, cb) local box = Instance.new("TextBox", parent); box.Size = UDim2.new(1, -10, 0, 45); box.BackgroundColor3 = curTheme.Btn; box.TextColor3 = curTheme.Text; box.Font = Enum.Font.Gotham; box.TextSize = 14; box.PlaceholderText = placeholder; box.Text = ""; Instance.new("UICorner", box).CornerRadius = UDim.new(0, 10); themedObjects.Btn[box] = "BackgroundColor3"; themedObjects.Text[box] = "TextColor3" box.FocusLost:Connect(function(enterPressed) if enterPressed then playClick(); cb(box.Text) end end) return box end local function createToggle(text, parent, cb) local state = false; local frame = Instance.new("TextButton", parent); frame.Size = UDim2.new(1, -10, 0, 50); frame.BackgroundColor3 = curTheme.Btn; frame.Text = ""; Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10); themedObjects.Btn[frame] = "BackgroundColor3" local lbl = Instance.new("TextLabel", frame); lbl.Size = UDim2.new(0.7, 0, 1, 0); lbl.Position = UDim2.new(0, 15, 0, 0); lbl.BackgroundTransparency = 1; lbl.Text = text; lbl.TextColor3 = curTheme.Text; lbl.Font = Enum.Font.GothamSemibold; lbl.TextSize = 14; lbl.TextXAlignment = Enum.TextXAlignment.Left; themedObjects.Text[lbl] = "TextColor3" local switchBG = Instance.new("Frame", frame); switchBG.Size = UDim2.new(0, 44, 0, 24); switchBG.Position = UDim2.new(1, -60, 0.5, -12); switchBG.BackgroundColor3 = Color3.fromRGB(60, 60, 65); Instance.new("UICorner", switchBG).CornerRadius = UDim.new(1, 0) local circle = Instance.new("Frame", switchBG); circle.Size = UDim2.new(0, 20, 0, 20); circle.Position = UDim2.new(0, 2, 0.5, -10); circle.BackgroundColor3 = Color3.fromRGB(255, 255, 255); Instance.new("UICorner", circle).CornerRadius = UDim.new(1, 0) frame.MouseButton1Click:Connect(function() playClick(); state = not state; cb(state); tween(switchBG, {BackgroundColor3 = state and curTheme.Acc or Color3.fromRGB(60, 60, 65)}, 0.3); tween(circle, {Position = UDim2.new(0, state and 22 or 2, 0.5, -10)}, 0.4, Enum.EasingStyle.Back) end) end local function createSlider(text, parent, min, max, default, cb) local frame = Instance.new("Frame", parent); frame.Size = UDim2.new(1, -10, 0, 60); frame.BackgroundColor3 = curTheme.Btn; Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10); themedObjects.Btn[frame] = "BackgroundColor3" local lbl = Instance.new("TextLabel", frame); lbl.Size = UDim2.new(1, -30, 0, 20); lbl.Position = UDim2.new(0, 15, 0, 8); lbl.BackgroundTransparency = 1; lbl.Text = text .. ": " .. default; lbl.TextColor3 = curTheme.Text; lbl.Font = Enum.Font.Gotham; lbl.TextSize = 13; lbl.TextXAlignment = Enum.TextXAlignment.Left; themedObjects.Text[lbl] = "TextColor3" local bg = Instance.new("TextButton", frame); bg.Size = UDim2.new(1, -30, 0, 10); bg.Position = UDim2.new(0, 15, 0, 38); bg.BackgroundColor3 = curTheme.SliderBG; bg.Text = ""; Instance.new("UICorner", bg).CornerRadius = UDim.new(1, 0); themedObjects.SliderBG[bg] = "BackgroundColor3" local fill = Instance.new("Frame", bg); fill.Size = UDim2.new((default-min)/(max-min), 0, 1, 0); fill.BackgroundColor3 = curTheme.Acc; Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0); themedObjects.Acc[fill] = "BackgroundColor3" local dragging = false bg.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local pct = math.clamp((i.Position.X - bg.AbsolutePosition.X) / bg.AbsoluteSize.X, 0, 1); tween(fill, {Size = UDim2.new(pct, 0, 1, 0)}, 0.1); local val = math.floor(min + (max - min) * pct); lbl.Text = text .. ": " .. val; cb(val) end end) return frame end -- === 1. ВКЛАДКА MAIN === local p1 = createTab("Main", "⚙️") createLabel("Performance & Util", p1) createToggle("Anti-AFK (Защита от кика)", p1, function(s) if s then _G.afk = LocalPlayer.Idled:Connect(function() VirtualUser:Button2Down(Vector2.new(0,0),Workspace.CurrentCamera.CFrame); task.wait(1); VirtualUser:Button2Up(Vector2.new(0,0),Workspace.CurrentCamera.CFrame) end) else if _G.afk then _G.afk:Disconnect() end end end) createButton("Unlock FPS (Max 999)", p1, function() if setfpscap then setfpscap(999) end end) createButton("Rejoin Server", p1, function() if #Players:GetPlayers() <= 1 then LocalPlayer:Kick("\nRejoining..."); task.wait(); TeleportService:Teleport(game.PlaceId, LocalPlayer) else TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer) end end) createLabel("General Visuals", p1) createToggle("Fullbright (Осветление)", p1, function(s) Lighting.Ambient = s and Color3.new(1,1,1) or cache.ambient; Lighting.GlobalShadows = not s end) createToggle("Night Vision (ПНВ)", p1, function(s) Lighting.OutdoorAmbient = s and Color3.fromRGB(0, 255, 0) or cache.outdoorAmbient; Lighting.Ambient = s and Color3.fromRGB(0, 150, 0) or cache.ambient end) local targetFov, fovActive = 70, false RunService.RenderStepped:Connect(function() if fovActive and Workspace.CurrentCamera then Workspace.CurrentCamera.FieldOfView = targetFov end end) createSlider("Field of View (FOV)", p1, 70, 120, 70, function(val) targetFov = val; fovActive = true end) -- === 2. ВКЛАДКА VISUALS (100% РАБОЧИЙ УНИВЕРСАЛЬНЫЙ ESP) === local p2 = createTab("Visuals", "👁️") local espChams, espBoxes, espNames, tracers, bigHeads, outlineOnly = false, false, false, false, false, false createLabel("Players ESP", p2) createToggle("Chams (Подсветка сквозь стены)", p2, function(s) espChams = s end) createToggle("Chams Outline (Только контур)", p2, function(s) outlineOnly = s end) createToggle("2D Boxes (Квадраты)", p2, function(s) espBoxes = s end) createToggle("NameTags & Distance (Имена)", p2, function(s) espNames = s end) createToggle("Tracers (Линии до игроков)", p2, function(s) tracers = s end) createToggle("Big Heads (Большие головы)", p2, function(s) bigHeads = s end) local crosshair = Instance.new("Frame", ScreenGui); crosshair.Size = UDim2.new(0, 20, 0, 2); crosshair.Position = UDim2.new(0.5, -10, 0.5, -1); crosshair.BackgroundColor3 = Color3.new(1,1,1); crosshair.Visible = false; crosshair.BorderSizePixel = 0 local crosshairY = Instance.new("Frame", ScreenGui); crosshairY.Size = UDim2.new(0, 2, 0, 20); crosshairY.Position = UDim2.new(0.5, -1, 0.5, -10); crosshairY.BackgroundColor3 = Color3.new(1,1,1); crosshairY.Visible = false; crosshairY.BorderSizePixel = 0 createToggle("Screen Crosshair", p2, function(s) crosshair.Visible = s; crosshairY.Visible = s end) -- Функция поиска центральной части персонажа (работает даже на кастомных моделях) local function getCharacterRoot(char) return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Head") or char.PrimaryPart or char:FindFirstChildWhichIsA("BasePart") end -- Очистка ESP при выходе игрока Players.PlayerRemoving:Connect(function(p) for _, v in pairs(ESPFolder:GetChildren()) do if string.find(v.Name, "_" .. p.Name) then v:Destroy() end end end) RunService.RenderStepped:Connect(function() local camera = Workspace.CurrentCamera if not camera then return end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then pcall(function() local char = p.Character or Workspace:FindFirstChild(p.Name) local root = char and getCharacterRoot(char) local hum = char and char:FindFirstChildOfClass("Humanoid") local isAlive = not hum or hum.Health > 0 if char and root and isAlive then -- 1. Chams (Highlight + 3D BoxAdornment обход лимита 31 объекта) local hl = ESPFolder:FindFirstChild("HL_" .. p.Name) local bha = ESPFolder:FindFirstChild("BHA_" .. p.Name) if espChams or outlineOnly then if not hl then hl = Instance.new("Highlight", ESPFolder) hl.Name = "HL_" .. p.Name hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.OutlineColor = Color3.new(1, 1, 1) end hl.Adornee = char hl.FillColor = curTheme.Acc hl.FillTransparency = outlineOnly and 1 or 0.5 hl.Enabled = true -- 3D Бокс на случай, если в игре превышен лимит Highlight if espChams and not outlineOnly then if not bha then bha = Instance.new("BoxHandleAdornment", ESPFolder) bha.Name = "BHA_" .. p.Name bha.AlwaysOnTop = true bha.ZIndex = 5 bha.Size = Vector3.new(4, 5.5, 2) end bha.Adornee = root bha.Color3 = curTheme.Acc bha.Transparency = 0.65 bha.Visible = true elseif bha then bha.Visible = false end else if hl then hl.Enabled = false end if bha then bha.Visible = false end end -- 2. Big Heads local head = char:FindFirstChild("Head") if head and head:IsA("BasePart") then if bigHeads then head.Size = Vector3.new(3, 3, 3); head.CanCollide = false else head.Size = Vector3.new(1.2, 1.2, 1.2) end end -- 3. NameTags (BillboardGui в защищенной папке) local nameTag = ESPFolder:FindFirstChild("NameTag_" .. p.Name) local distMeters = math.floor((camera.CFrame.Position - root.Position).Magnitude) if espNames then if not nameTag then nameTag = Instance.new("BillboardGui", ESPFolder) nameTag.Name = "NameTag_" .. p.Name nameTag.Size = UDim2.new(0, 200, 0, 50) nameTag.AlwaysOnTop = true nameTag.StudsOffset = Vector3.new(0, 3.8, 0) local txt = Instance.new("TextLabel", nameTag) txt.Name = "Label" txt.Size = UDim2.new(1, 0, 1, 0) txt.BackgroundTransparency = 1 txt.Font = Enum.Font.GothamBold txt.TextSize = 13 txt.TextColor3 = Color3.new(1, 1, 1) txt.TextStrokeTransparency = 0 end nameTag.Adornee = char:FindFirstChild("Head") or root nameTag.Enabled = true nameTag.Label.Text = p.DisplayName .. " (@" .. p.Name .. ")\n[" .. distMeters .. "m]" nameTag.Label.TextColor3 = curTheme.Acc elseif nameTag then nameTag.Enabled = false end -- 4. 2D Boxes & Tracers local vector, onScreen = camera:WorldToViewportPoint(root.Position) local box = ESPFolder:FindFirstChild("Box_" .. p.Name) local tracer = ESPFolder:FindFirstChild("Tracer_" .. p.Name) if onScreen and vector.Z > 0 then -- 2D Box с четким контуром UIStroke if espBoxes then local topPos = camera:WorldToViewportPoint(root.Position + Vector3.new(0, 3, 0)) local bottomPos = camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3.5, 0)) local sizeY = math.clamp(math.abs(bottomPos.Y - topPos.Y), 12, 1200) local sizeX = sizeY * 0.65 if not box then box = Instance.new("Frame", ESPFolder) box.Name = "Box_" .. p.Name box.BackgroundTransparency = 1 local bStroke = Instance.new("UIStroke", box) bStroke.Name = "Stroke" bStroke.Thickness = 2 end box.Visible = true box.Size = UDim2.new(0, sizeX, 0, sizeY) box.Position = UDim2.new(0, vector.X - sizeX / 2, 0, vector.Y - sizeY / 2) box.Stroke.Color = curTheme.Acc elseif box then box.Visible = false end -- Tracer if tracers then if not tracer then tracer = Instance.new("Frame", ESPFolder) tracer.Name = "Tracer_" .. p.Name tracer.BorderSizePixel = 0 tracer.AnchorPoint = Vector2.new(0.5, 0.5) end local startX, startY = camera.ViewportSize.X / 2, camera.ViewportSize.Y local endX, endY = vector.X, vector.Y local dist2D = math.sqrt((endX - startX)^2 + (endY - startY)^2) tracer.Visible = true tracer.BackgroundColor3 = curTheme.Acc tracer.Size = UDim2.new(0, dist2D, 0, 1.5) tracer.Position = UDim2.new(0, (startX + endX) / 2, 0, (startY + endY) / 2) tracer.Rotation = math.deg(math.atan2(endY - startY, endX - startX)) elseif tracer then tracer.Visible = false end else if box then box.Visible = false end if tracer then tracer.Visible = false end end else -- Скрываем элементы, если персонаж мертв или еще не прогрузился local hl = ESPFolder:FindFirstChild("HL_" .. p.Name); if hl then hl.Enabled = false end local bha = ESPFolder:FindFirstChild("BHA_" .. p.Name); if bha then bha.Visible = false end local nameTag = ESPFolder:FindFirstChild("NameTag_" .. p.Name); if nameTag then nameTag.Enabled = false end local box = ESPFolder:FindFirstChild("Box_" .. p.Name); if box then box.Visible = false end local tracer = ESPFolder:FindFirstChild("Tracer_" .. p.Name); if tracer then tracer.Visible = false end end end) end end end) -- === 3. ВКЛАДКА PLAYER (Rage!) === local p3 = createTab("Player (Rage!)", "🏃‍♂️") createLabel("Movement Bypass", p3) local wsEnabled, wsVal = false, 16 createToggle("Enable WalkSpeed (Скорость)", p3, function(s) wsEnabled = s end) createSlider("WalkSpeed Limit", p3, 16, 150, 16, function(val) wsVal = val end) local jpEnabled, jpVal = false, 50 createToggle("Enable Custom JumpPower (Прыжок)", p3, function(s) jpEnabled = s end) createSlider("JumpPower Force", p3, 50, 300, 50, function(val) jpVal = val end) RunService.RenderStepped:Connect(function(dt) if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if wsEnabled and hum.MoveDirection.Magnitude > 0 then LocalPlayer.Character:TranslateBy(hum.MoveDirection * (wsVal - 16) * dt) end if jpEnabled then hum.JumpPower = jpVal; hum.UseJumpPower = true end end end) createToggle("Infinite Jump (В воздухе)", p3, function(s) _G.InfJ = s end) UserInputService.JumpRequest:Connect(function() if _G.InfJ and LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping) end end) createToggle("NoClip (Сквозь стены)", p3, function(s) _G.NoClip = s end) RunService.Stepped:Connect(function() if _G.NoClip and LocalPlayer.Character then for _, v in pairs(LocalPlayer.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end end) createToggle("SpinBot (Крутилка)", p3, function(s) _G.Spin = s end) RunService.RenderStepped:Connect(function() if _G.Spin and LocalPlayer.Character then local r = getCharacterRoot(LocalPlayer.Character); if r then r.CFrame = r.CFrame * CFrame.Angles(0, math.rad(50), 0) end end end) createLabel("Freecam (Без заваливания)", p3) local freecam = false; local camSpeed = 2; local camPitch, camYaw = 0, 0 createToggle("Enable Freecam (Заморозит перса)", p3, function(s) freecam = s if LocalPlayer.Character then local r = getCharacterRoot(LocalPlayer.Character); if r then r.Anchored = s end end if s then Workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable; local x, y, z = Workspace.CurrentCamera.CFrame:ToOrientation(); camPitch, camYaw = math.deg(x), math.deg(y) else Workspace.CurrentCamera.CameraType = Enum.CameraType.Custom end end) RunService.RenderStepped:Connect(function() if freecam then local cam = Workspace.CurrentCamera; local moveVec = Vector3.new() if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveVec = moveVec + cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveVec = moveVec - cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveVec = moveVec + cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveVec = moveVec - cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveVec = moveVec + Vector3.new(0,1,0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveVec = moveVec * 0.2 end cam.CFrame = cam.CFrame + (moveVec * camSpeed) if UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter; local delta = UserInputService:GetMouseDelta(); camYaw = camYaw - delta.X; camPitch = math.clamp(camPitch - delta.Y, -89, 89); cam.CFrame = CFrame.new(cam.CFrame.Position) * CFrame.fromOrientation(math.rad(camPitch), math.rad(camYaw), 0) else UserInputService.MouseBehavior = Enum.MouseBehavior.Default end end end) createLabel("Local Visuals", p3) local headLight = nil createToggle("Enable Headlight (Фонарик)", p3, function(s) if s then headLight = Instance.new("PointLight"); headLight.Name = "KLight"; headLight.Brightness = 3; headLight.Range = 30; headLight.Color = Color3.new(1,1,1); if LocalPlayer.Character then local r = getCharacterRoot(LocalPlayer.Character); if r then headLight.Parent = r end end else if headLight then headLight:Destroy(); headLight = nil end end end) createSlider("Headlight Brightness", p3, 1, 10, 3, function(val) if headLight then headLight.Brightness = val end end) createSlider("Headlight Range", p3, 10, 100, 30, function(val) if headLight then headLight.Range = val end end) createToggle("Local ForceField", p3, function(s) if LocalPlayer.Character then for _,v in pairs(LocalPlayer.Character:GetDescendants()) do if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then v.Material = s and Enum.Material.ForceField or Enum.Material.Plastic end end end end) createToggle("Invisible Body (Только тебе)", p3, function(s) if LocalPlayer.Character then for _,v in pairs(LocalPlayer.Character:GetDescendants()) do if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then v.Transparency = s and 1 or 0 end end end end) -- === 4. ВКЛАДКА WORLD === local p4 = createTab("World", "🌍") createLabel("Time Of Day Control", p4) local customTimeEnabled = false local customTimeSlider = createSlider("Set Time", p4, 0, 24, 14, function(val) _G.cTimeVal = val end); customTimeSlider.Visible = false createToggle("Enable Custom Time", p4, function(s) customTimeEnabled = s; customTimeSlider.Visible = s if not s then Lighting.ClockTime = cache.time end end) RunService.RenderStepped:Connect(function() if customTimeEnabled and _G.cTimeVal then Lighting.ClockTime = _G.cTimeVal end end) createToggle("Auto Day/Night Cycle", p4, function(s) _G.autoTime = s end) RunService.RenderStepped:Connect(function() if _G.autoTime then Lighting.ClockTime = Lighting.ClockTime + 0.005 end end) createLabel("Map Alterations", p4) local function applyWorldMaterial(mat, color) for _, v in pairs(Workspace:GetDescendants()) do if v:IsA("BasePart") and not v.Parent:FindFirstChildOfClass("Humanoid") then if not cache.materials[v] then cache.materials[v] = v.Material; cache.color[v] = v.Color end; v.Material = mat; if color then v.Color = color end end end end local function restoreWorld() for v, mat in pairs(cache.materials) do if v and v.Parent then v.Material = mat; v.Color = cache.color[v] end end end createButton("Ice World", p4, function() applyWorldMaterial(Enum.Material.Ice, Color3.fromRGB(150, 200, 255)) end) createButton("Lava World", p4, function() applyWorldMaterial(Enum.Material.Neon, Color3.fromRGB(255, 60, 0)) end) createButton("Neon Matrix", p4, function() applyWorldMaterial(Enum.Material.Neon, Color3.fromRGB(50, 255, 50)) end) createButton("Optimize Mats (Пластик)", p4, function() applyWorldMaterial(Enum.Material.SmoothPlastic, nil) end) createButton("Restore Original World", p4, function() restoreWorld() end) createInput("Вставьте ID кастомного Скайбокса", p4, function(text) local id = text:match("%d+") if id then for _, v in pairs(Lighting:GetChildren()) do if v:IsA("Atmosphere") or (v:IsA("Sky") and v.Name ~= "KSky") then v:Destroy() end end if not Lighting:FindFirstChild("KSky") then local sky = Instance.new("Sky", Lighting); sky.Name = "KSky"; local ast = "rbxassetid://"..id; sky.SkyboxBk, sky.SkyboxDn, sky.SkyboxFt, sky.SkyboxLf, sky.SkyboxRt, sky.SkyboxUp = ast, ast, ast, ast, ast, ast end end end) createSlider("Gravity", p4, 0, 200, 196, function(val) Workspace.Gravity = val end) createToggle("X-Ray (Прозрачная карта)", p4, function(s) for _, v in pairs(Workspace:GetDescendants()) do if v:IsA("BasePart") and not v.Parent:FindFirstChildOfClass("Humanoid") then v.Transparency = s and 0.6 or 0 end end end) createButton("Remove Shadows", p4, function() Lighting.GlobalShadows = false; for _, v in pairs(Workspace:GetDescendants()) do if v:IsA("BasePart") then v.CastShadow = false end end end) createToggle("Remove Water", p4, function(s) Workspace.Terrain.WaterTransparency = s and 1 or 0; Workspace.Terrain.WaterWaveSize = s and 0 or 0.1 end) -- === 5. ВКЛАДКА FILTERS & WEATHER === local p5 = createTab("Filters & Weather", "⛅") createLabel("Screen Filters & Shaders", p5) if Lighting:FindFirstChild("KvaplCC") then Lighting.KvaplCC:Destroy() end if Lighting:FindFirstChild("KvaplBloom") then Lighting.KvaplBloom:Destroy() end local CC = Instance.new("ColorCorrectionEffect", Lighting); CC.Name = "KvaplCC" local Bloom = Instance.new("BloomEffect", Lighting); Bloom.Name = "KvaplBloom" createSlider("Softness (Сглаживание)", p5, 0, 100, 0, function(val) local pct = val/100; CC.Saturation = pct * 0.4; CC.Contrast = pct * 0.15; CC.TintColor = Color3.fromRGB(255, 255 - (15*pct), 255 - (25*pct)); Bloom.Intensity = pct * 0.8; Bloom.Size = pct * 24 end) createToggle("Sunset Filter (Закат)", p5, function(s) CC.TintColor = s and Color3.fromRGB(255, 170, 100) or Color3.new(1,1,1); CC.Contrast = s and 0.1 or 0; CC.Saturation = s and 0.2 or 0 end) createToggle("Black & White (Ч/Б кино)", p5, function(s) CC.Saturation = s and -1 or 0 end) local vignette = Instance.new("ImageLabel", ScreenGui); vignette.Size = UDim2.new(1,0,1,0); vignette.BackgroundTransparency = 1; vignette.Image = "rbxassetid://1351119777"; vignette.ImageTransparency = 1 createToggle("Vignette (Затемнение краев)", p5, function(s) vignette.ImageTransparency = s and 0.3 or 1; vignette.ImageColor3 = Color3.new(0,0,0) end) createToggle("Horror Vignette (Кровь)", p5, function(s) vignette.ImageTransparency = s and 0.5 or 1; vignette.ImageColor3 = Color3.new(1,0,0) end) local mBlur = Instance.new("BlurEffect", Lighting); mBlur.Size = 0; local lastCamRot = Workspace.CurrentCamera.CFrame.LookVector createToggle("Motion Blur (Смазывание)", p5, function(s) _G.mBlur = s; if not s then mBlur.Size = 0 end end) RunService.RenderStepped:Connect(function() if _G.mBlur and Workspace.CurrentCamera then local currentRot = Workspace.CurrentCamera.CFrame.LookVector; local diff = (currentRot - lastCamRot).Magnitude; mBlur.Size = math.clamp(diff * 100, 0, 20); lastCamRot = currentRot end end) local drunkCam = false; local timeVar = 0 createToggle("Drunk Mode (Шатание камеры)", p5, function(s) drunkCam = s end) RunService.RenderStepped:Connect(function(dt) if drunkCam and Workspace.CurrentCamera then timeVar = timeVar + dt; Workspace.CurrentCamera.CFrame = Workspace.CurrentCamera.CFrame * CFrame.Angles(0, 0, math.rad(math.sin(timeVar * 2) * 2)) end end) local acidTrip = false createToggle("Acid Trip (Безумие)", p5, function(s) acidTrip = s; if not s then targetFov = 70; Lighting.Ambient = cache.ambient; CC.Saturation = 0 end end) RunService.RenderStepped:Connect(function(dt) if acidTrip then timeVar = timeVar + dt; targetFov = 70 + math.sin(timeVar * 5) * 30; fovActive = true; Lighting.Ambient = Color3.fromHSV((timeVar*0.2)%1, 1, 1); CC.Saturation = 2 end end) createLabel("Weather Systems", p5) local weatherPart = Instance.new("Part", Workspace.CurrentCamera); weatherPart.Size = Vector3.new(100, 1, 100); weatherPart.Transparency = 1; weatherPart.Anchored = true; weatherPart.CanCollide = false local pe = Instance.new("ParticleEmitter", weatherPart); pe.Enabled = false; pe.EmissionDirection = Enum.NormalId.Bottom RunService.RenderStepped:Connect(function() if Workspace.CurrentCamera then weatherPart.CFrame = Workspace.CurrentCamera.CFrame * CFrame.new(0, 30, 0) end end) createToggle("Snowfall (Снегопад)", p5, function(s) if s then pe.Texture = "rbxassetid://6201739501"; pe.Rate = 200; pe.Lifetime = NumberRange.new(5, 10); pe.Size = NumberSequence.new(0.5); pe.Speed = NumberRange.new(15, 20); pe.Enabled = true else pe.Enabled = false end end) createToggle("Heavy Rain (Дождь)", p5, function(s) if s then pe.Texture = "rbxassetid://1822830842"; pe.Rate = 1000; pe.Lifetime = NumberRange.new(2, 4); pe.Size = NumberSequence.new(0.2, 0.8); pe.Speed = NumberRange.new(80, 100); pe.Enabled = true else pe.Enabled = false end end) local hueActive = false; local hue = 0 createToggle("Rainbow World (Переливание карты)", p5, function(s) hueActive = s; if not s then Lighting.Ambient = cache.ambient end end) RunService.RenderStepped:Connect(function() if hueActive then hue = hue + 0.002; if hue > 1 then hue = 0 end; Lighting.Ambient = Color3.fromHSV(hue, 1, 1) end end) -- === 6. ВКЛАДКА SETTINGS === local p6 = createTab("Settings", "🛠️") createLabel("UI Customization", p6) local rgbUI = false createToggle("Rainbow UI (RGB Menu)", p6, function(s) rgbUI = s; if not s then applyTheme("Dark") end end) local uiHue = 0 RunService.RenderStepped:Connect(function() if rgbUI then uiHue = uiHue + 0.002; if uiHue > 1 then uiHue = 0 end; local rgbColor = Color3.fromHSV(uiHue, 1, 1); curTheme.Acc = rgbColor; for obj, prop in pairs(themedObjects.Acc) do obj[prop] = rgbColor end end end) createButton("Theme: Dark", p6, function() rgbUI = false; applyTheme("Dark") end) createButton("Theme: White", p6, function() rgbUI = false; applyTheme("White") end) createButton("Theme: Halloween", p6, function() rgbUI = false; applyTheme("Halloween") end) createLabel("KeyBinds", p6) local binds = { ToggleUI = Enum.KeyCode.RightShift, FastReset = nil, FastLeave = nil } local activeBindBtn = nil; local menuOpen = true local function createBind(text, parent, bindName) local frame = Instance.new("Frame", parent); frame.Size = UDim2.new(1, -10, 0, 45); frame.BackgroundColor3 = curTheme.Btn; Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10); themedObjects.Btn[frame] = "BackgroundColor3" local lbl = Instance.new("TextLabel", frame); lbl.Size = UDim2.new(0.6, 0, 1, 0); lbl.Position = UDim2.new(0, 15, 0, 0); lbl.BackgroundTransparency = 1; lbl.Text = text; lbl.TextColor3 = curTheme.Text; lbl.Font = Enum.Font.GothamSemibold; lbl.TextSize = 14; lbl.TextXAlignment = Enum.TextXAlignment.Left; themedObjects.Text[lbl] = "TextColor3" local btn = Instance.new("TextButton", frame); btn.Size = UDim2.new(0.3, 0, 0.7, 0); btn.Position = UDim2.new(0.65, 0, 0.15, 0); btn.BackgroundColor3 = curTheme.Bg; btn.TextColor3 = curTheme.Acc; btn.Font = Enum.Font.GothamBold; btn.TextSize = 12; btn.Text = binds[bindName] and binds[bindName].Name or "None"; Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8); themedObjects.Bg[btn] = "BackgroundColor3"; themedObjects.Acc[btn] = "TextColor3" btn.MouseButton1Click:Connect(function() playClick(); btn.Text = "..."; activeBindBtn = {Name = bindName, Btn = btn} end) end createBind("Menu Open/Close", p6, "ToggleUI") createBind("Fast Reset", p6, "FastReset") createBind("Fast Leave", p6, "FastLeave") createButton("Uninject KvaplVisual", p6, function() tween(MainFrame, {Size = UDim2.new(0, 680, 0, 0)}, 0.35, Enum.EasingStyle.Back).Completed:Wait(); ScreenGui:Destroy() end) UserInputService.InputBegan:Connect(function(input, gp) if activeBindBtn and input.UserInputType == Enum.UserInputType.Keyboard then playClick(); binds[activeBindBtn.Name] = input.KeyCode; activeBindBtn.Btn.Text = input.KeyCode.Name; activeBindBtn = nil; return end if not gp and input.UserInputType == Enum.UserInputType.Keyboard then if input.KeyCode == binds.ToggleUI then menuOpen = not menuOpen if menuOpen then MainFrame.Visible = true; tween(MainFrame, {Size = UDim2.new(0, 680, 0, 520)}, 0.45, Enum.EasingStyle.Back) else tween(MainFrame, {Size = UDim2.new(0, 680, 0, 0)}, 0.35, Enum.EasingStyle.Back).Completed:Connect(function() if not menuOpen then MainFrame.Visible = false end end) end end for bName, key in pairs(binds) do if input.KeyCode == key and bName ~= "ToggleUI" then if bName == "FastReset" and LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then LocalPlayer.Character:FindFirstChildOfClass("Humanoid").Health = 0 end if bName == "FastLeave" then game:Shutdown() end end end end end) -- === ЛОГИКА ЗАГРУЗКИ 12 СЕКУНД === tabs["Main"].Page.Visible = true; tabs["Main"].Btn.BackgroundColor3 = curTheme.Acc task.spawn(function() local barTween = tween(BarFill, {Size = UDim2.new(1, 0, 1, 0)}, 12, Enum.EasingStyle.Linear) task.wait(2); LoadStatus.Text = "Bypassing Anti-Cheat..." task.wait(3); LoadStatus.Text = "Injecting Modules..." task.wait(3); LoadStatus.Text = "Loading Features..." task.wait(3); LoadStatus.Text = "Ready!" barTween.Completed:Wait() tween(LoadFrame, {BackgroundTransparency = 1, Size = UDim2.new(0, 380, 0, 140)}, 0.5) tween(LoadTitle, {TextTransparency = 1}, 0.5); tween(LoadStatus, {TextTransparency = 1}, 0.5) tween(BarBG, {BackgroundTransparency = 1}, 0.5); tween(BarFill, {BackgroundTransparency = 1}, 0.5).Completed:Wait() LoadFrame:Destroy() MainFrame.Visible = true; MainFrame.Size = UDim2.new(0, 680, 0, 0) tween(MainFrame, {Size = UDim2.new(0, 680, 0, 520)}, 0.6, Enum.EasingStyle.Back) playClick() end)