local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") local mouse = player:GetMouse() -- Состояния и настройки local infiniteJumpEnabled, flyEnabled, noclipEnabled, speedEnabled = false, false, false, false local ctrlDeleteEnabled, altTeleportEnabled = false, false local espEnabled = false local sizeEnabled = false local espColorHue = 60 local espObjects = {} local espConnection local clearESP local ensureESPForPlayer local updateESP local espRadius = 700 -- радиус действия ESP (в студиях) local flySpeed, walkSpeed = 50, 50 local sizeScale = 1 local guiHue = 0 local guiMinimized = false local minWidth, minHeight = 250, 150 local resizing, resizeStart, startSize = false, nil, nil local resizeButton, minimizeButton local originalScales = {} local originalHipHeight = humanoid and humanoid.HipHeight or 2 local originalRootSize = rootPart and rootPart.Size or Vector3.new(2, 2, 1) -- Создаем GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "CheatGUI" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = player:WaitForChild("PlayerGui") -- Основной фрейм local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 300, 0, 570) mainFrame.Position = UDim2.new(0, 10, 0, 10) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local expandedWidth, expandedHeight = mainFrame.Size.X.Offset, mainFrame.Size.Y.Offset local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = mainFrame -- Заголовок local title = Instance.new("TextLabel") title.Name = "Title" title.Size = UDim2.new(1, 0, 0, 50) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundColor3 = Color3.fromRGB(20, 20, 20) title.BorderSizePixel = 0 title.Text = "🍌🍌🍌" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 24 title.Font = Enum.Font.GothamBold title.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 10) titleCorner.Parent = title -- RGB слайдер в заголовке local rgbSliderInTitle = Instance.new("Frame") rgbSliderInTitle.Name = "RGBSliderInTitle" rgbSliderInTitle.Size = UDim2.new(0, 70, 0, 16) rgbSliderInTitle.Position = UDim2.new(0, 25, 0, 18) rgbSliderInTitle.BackgroundTransparency = 1 rgbSliderInTitle.Parent = title local rgbSliderBar = Instance.new("Frame") rgbSliderBar.Name = "RGBSliderBar" rgbSliderBar.Size = UDim2.new(1, 0, 0, 6) rgbSliderBar.Position = UDim2.new(0, 0, 0, 5) rgbSliderBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255) rgbSliderBar.BorderSizePixel = 2 rgbSliderBar.BorderColor3 = Color3.fromRGB(255, 255, 255) rgbSliderBar.Parent = rgbSliderInTitle Instance.new("UICorner", rgbSliderBar).CornerRadius = UDim.new(0, 3) local gradient = Instance.new("UIGradient") gradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.14, Color3.fromRGB(255, 127, 0)), ColorSequenceKeypoint.new(0.17, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.33, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.67, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(0.83, Color3.fromRGB(255, 0, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)) }) gradient.Transparency = NumberSequence.new(0) gradient.Parent = rgbSliderBar local rgbSliderButton = Instance.new("TextButton") rgbSliderButton.Name = "RGBSliderButton" rgbSliderButton.Size = UDim2.new(0, 12, 0, 12) rgbSliderButton.Position = UDim2.new(guiHue / 360, -6, 0.5, -6) rgbSliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255) rgbSliderButton.BorderSizePixel = 3 rgbSliderButton.BorderColor3 = Color3.fromRGB(0, 0, 0) rgbSliderButton.Text = "" rgbSliderButton.Parent = rgbSliderBar Instance.new("UICorner", rgbSliderButton).CornerRadius = UDim.new(0, 6) local rgbSliderGlow = Instance.new("UIStroke") rgbSliderGlow.Color = Color3.fromRGB(255, 255, 255) rgbSliderGlow.Thickness = 2 rgbSliderGlow.Transparency = 0.3 rgbSliderGlow.Parent = rgbSliderButton -- Функция HSV to RGB local function HSVtoRGB(h, s, v) h = h % 360 local c = v * s local x = c * (1 - math.abs((h / 60) % 2 - 1)) local m = v - c local r, g, b = 0, 0, 0 if h < 60 then r, g, b = c, x, 0 elseif h < 120 then r, g, b = x, c, 0 elseif h < 180 then r, g, b = 0, c, x elseif h < 240 then r, g, b = 0, x, c elseif h < 300 then r, g, b = x, 0, c else r, g, b = c, 0, x end return Color3.new(r + m, g + m, b + m) end -- Функция для безопасного получения character/humanoid/rootPart local function getCharacterParts() if not character or not character.Parent then character = player.Character if not character then return nil, nil, nil end end if not humanoid or not humanoid.Parent then humanoid = character:FindFirstChild("Humanoid") if not humanoid then return character, nil, nil end end if not rootPart or not rootPart.Parent then rootPart = character:FindFirstChild("HumanoidRootPart") end return character, humanoid, rootPart end -- Обновление RGB слайдера local rgbDragging, rgbDragStart, rgbDragMode = false, nil, nil local function updateRGBSlider(input) if not rgbSliderBar or not rgbSliderBar.Parent then return end local mouseLocation = input and input.Position or UserInputService:GetMouseLocation() local relativePos = math.clamp((mouseLocation.X - rgbSliderBar.AbsolutePosition.X) / rgbSliderBar.AbsoluteSize.X, 0, 1) guiHue = math.floor(relativePos * 360) rgbSliderButton.Position = UDim2.new(relativePos, -6, 0.5, -6) local baseColor = HSVtoRGB(guiHue, 0.9, 0.6) local darkerColor = HSVtoRGB(guiHue, 0.9, 0.45) local lighterColor = HSVtoRGB(guiHue, 0.85, 0.75) mainFrame.BackgroundColor3 = baseColor title.BackgroundColor3 = darkerColor if contentCanvas then for _, child in pairs(contentCanvas:GetChildren()) do if child:IsA("Frame") and (child.Name:find("Toggle") or child.Name:find("SpeedSlider")) then child.BackgroundColor3 = lighterColor end end end end local function getESPColor() return HSVtoRGB(espColorHue, 0.9, 1) end local function refreshESPColors() local color = getESPColor() for _, data in pairs(espObjects) do if data.stroke then data.stroke.Color = color end if data.frame then data.frame.BackgroundColor3 = color end end end -- Content Frame (ScrollingFrame для прокрутки при уменьшении) local contentFrame = Instance.new("ScrollingFrame") contentFrame.Name = "ContentFrame" contentFrame.Size = UDim2.new(1, 0, 1, -50) contentFrame.Position = UDim2.new(0, 0, 0, 50) contentFrame.BackgroundTransparency = 1 contentFrame.BorderSizePixel = 0 contentFrame.ScrollBarThickness = 6 contentFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100) contentFrame.CanvasSize = UDim2.new(0, 0, 0, 520) -- Высота контента contentFrame.ScrollingEnabled = true contentFrame.Parent = mainFrame -- Canvas для ScrollingFrame local contentCanvas = Instance.new("Frame") contentCanvas.Name = "ContentCanvas" contentCanvas.Size = UDim2.new(1, -6, 0, 520) -- Учитываем толщину скроллбара contentCanvas.BackgroundTransparency = 1 contentCanvas.Parent = contentFrame -- Компактная раскладка 2xN local gridColumn, currentRowY, currentRowHeight = 0, 8, 0 local rowPadding = 6 local function placeElement(element, height) height = height or 60 element.Size = UDim2.new(0.5, -10, 0, height) local xScale = gridColumn == 0 and 0 or 0.5 local xOffset = gridColumn == 0 and 8 or 3 element.Position = UDim2.new(xScale, xOffset, 0, currentRowY) currentRowHeight = math.max(currentRowHeight, height) gridColumn = (gridColumn + 1) % 2 if gridColumn == 0 then currentRowY = currentRowY + currentRowHeight + rowPadding currentRowHeight = 0 end end local function finalizeLayout() if gridColumn ~= 0 then currentRowY = currentRowY + currentRowHeight + rowPadding gridColumn, currentRowHeight = 0, 0 end local totalHeight = math.max(currentRowY + 10, 120) contentCanvas.Size = UDim2.new(1, -6, 0, totalHeight) contentFrame.CanvasSize = UDim2.new(0, 0, 0, totalHeight) end -- Функция создания переключателя local function createToggle(name, callback) local toggleFrame = Instance.new("Frame") toggleFrame.Name = name .. "Toggle" toggleFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) toggleFrame.BorderSizePixel = 0 toggleFrame.Parent = contentCanvas Instance.new("UICorner", toggleFrame).CornerRadius = UDim.new(0, 8) placeElement(toggleFrame, 50) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -70, 1, 0) label.Position = UDim2.new(0, 8, 0, 0) label.BackgroundTransparency = 1 label.Text = name label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextSize = 18 label.TextScaled = true label.TextWrapped = true label.Font = Enum.Font.Gotham label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = toggleFrame local toggleLabelConstraint = Instance.new("UITextSizeConstraint") toggleLabelConstraint.MaxTextSize = 18 toggleLabelConstraint.MinTextSize = 10 toggleLabelConstraint.Parent = label local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0, 36, 0, 22) toggleButton.Position = UDim2.new(1, -42, 0.5, -11) toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) toggleButton.BorderSizePixel = 0 toggleButton.Text = "OFF" toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextSize = 14 toggleButton.Font = Enum.Font.GothamBold toggleButton.Parent = toggleFrame Instance.new("UICorner", toggleButton).CornerRadius = UDim.new(0, 12) local state = false toggleButton.MouseButton1Click:Connect(function() state = not state toggleButton.BackgroundColor3 = state and Color3.fromRGB(0, 255, 127) or Color3.fromRGB(60, 60, 60) toggleButton.Text = state and "ON" or "OFF" callback(state) end) return toggleFrame end -- Общая функция для обработки слайдеров local function setupSliderDrag(sliderBar, sliderButton, sliderFill, label, minValue, maxValue, updateCallback, textCallback) local dragging = false local function updateSlider(input) local relativePos = math.clamp((input.Position.X - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X, 0, 1) local newValue = math.floor(minValue + (maxValue - minValue) * relativePos) sliderFill.Size = UDim2.new(relativePos, 0, 1, 0) sliderButton.Position = UDim2.new(relativePos, -6, 0.5, -6) if label then label.Text = textCallback and textCallback(newValue) or (tostring(newValue)) end if updateCallback then updateCallback(newValue) end end sliderButton.MouseButton1Down:Connect(function() dragging = true end) sliderBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true updateSlider(input) end end) sliderButton.MouseButton1Up:Connect(function() dragging = false end) sliderButton.MouseLeave:Connect(function() if not UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateSlider(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) end -- Блок: переключатель + слайдер под ним (в одной ячейке сетки) local function createToggleWithSlider(name, currentValue, minValue, maxValue, onToggle, onValueChanged, valueFormatter) local blockFrame = Instance.new("Frame") blockFrame.Name = name .. "Block" blockFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) blockFrame.BorderSizePixel = 0 blockFrame.Parent = contentCanvas Instance.new("UICorner", blockFrame).CornerRadius = UDim.new(0, 8) -- Компактнее блок: уменьшаем высоту, чтобы не было большого пустого места под ползунком placeElement(blockFrame, 80) -- Верхняя часть: текст + переключатель local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -70, 0, 26) label.Position = UDim2.new(0, 8, 0, 4) label.BackgroundTransparency = 1 label.Text = name label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextSize = 18 label.TextScaled = true label.TextWrapped = true label.Font = Enum.Font.Gotham label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = blockFrame local blockLabelConstraint = Instance.new("UITextSizeConstraint") blockLabelConstraint.MaxTextSize = 18 blockLabelConstraint.MinTextSize = 10 blockLabelConstraint.Parent = label local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0, 36, 0, 22) toggleButton.Position = UDim2.new(1, -42, 0, 7) toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) toggleButton.BorderSizePixel = 0 toggleButton.Text = "OFF" toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextSize = 14 toggleButton.Font = Enum.Font.GothamBold toggleButton.Parent = blockFrame Instance.new("UICorner", toggleButton).CornerRadius = UDim.new(0, 12) local state = false toggleButton.MouseButton1Click:Connect(function() state = not state toggleButton.BackgroundColor3 = state and Color3.fromRGB(0, 255, 127) or Color3.fromRGB(60, 60, 60) toggleButton.Text = state and "ON" or "OFF" if onToggle then onToggle(state) end end) -- Нижняя часть: слайдер скорости local sliderLabel = Instance.new("TextLabel") sliderLabel.Size = UDim2.new(1, -20, 0, 20) sliderLabel.Position = UDim2.new(0, 8, 0, 40) sliderLabel.BackgroundTransparency = 1 local initialText = valueFormatter and valueFormatter(currentValue) or (name .. " Speed: " .. currentValue) sliderLabel.Text = initialText sliderLabel.TextColor3 = Color3.fromRGB(255, 255, 255) sliderLabel.TextSize = 13 sliderLabel.Font = Enum.Font.Gotham sliderLabel.TextXAlignment = Enum.TextXAlignment.Left sliderLabel.Parent = blockFrame local sliderBar = Instance.new("Frame") sliderBar.Name = "SliderBar" sliderBar.Size = UDim2.new(1, -20, 0, 6) sliderBar.Position = UDim2.new(0, 8, 0, 62) sliderBar.BackgroundColor3 = Color3.fromRGB(60, 60, 60) sliderBar.BorderSizePixel = 0 sliderBar.Parent = blockFrame Instance.new("UICorner", sliderBar).CornerRadius = UDim.new(0, 3) local sliderFill = Instance.new("Frame") sliderFill.Name = "SliderFill" local initialPos = (currentValue - minValue) / (maxValue - minValue) sliderFill.Size = UDim2.new(initialPos, 0, 1, 0) sliderFill.Position = UDim2.new(0, 0, 0, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(50, 150, 255) sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderBar Instance.new("UICorner", sliderFill).CornerRadius = UDim.new(0, 3) local sliderButton = Instance.new("TextButton") sliderButton.Name = "SliderButton" sliderButton.Size = UDim2.new(0, 12, 0, 12) sliderButton.Position = UDim2.new(initialPos, -6, 0.5, -6) sliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255) sliderButton.BorderSizePixel = 0 sliderButton.Text = "" sliderButton.Parent = sliderBar Instance.new("UICorner", sliderButton).CornerRadius = UDim.new(0, 6) setupSliderDrag(sliderBar, sliderButton, sliderFill, sliderLabel, minValue, maxValue, onValueChanged, function(value) return valueFormatter and valueFormatter(value) or (name .. " Speed: " .. value) end) return blockFrame end -- Кнопка закрытия local closeButton = Instance.new("TextButton") closeButton.Name = "CloseButton" closeButton.Size = UDim2.new(0, 30, 0, 30) closeButton.Position = UDim2.new(1, -35, 0, 10) closeButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50) closeButton.BorderSizePixel = 0 closeButton.Text = "X" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextSize = 20 closeButton.Font = Enum.Font.GothamBold closeButton.Parent = mainFrame Instance.new("UICorner", closeButton).CornerRadius = UDim.new(0, 5) closeButton.MouseButton1Click:Connect(function() screenGui:Destroy() end) -- Кнопка изменения размера resizeButton = Instance.new("TextButton") resizeButton.Name = "ResizeButton" resizeButton.Size = UDim2.new(0, 20, 0, 20) resizeButton.Position = UDim2.new(1, -20, 1, -20) resizeButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100) resizeButton.BorderSizePixel = 2 resizeButton.BorderColor3 = Color3.fromRGB(200, 200, 200) resizeButton.Text = "" resizeButton.Parent = mainFrame resizeButton.ZIndex = 10 Instance.new("UICorner", resizeButton).CornerRadius = UDim.new(0, 10) resizeButton.MouseButton1Down:Connect(function() if guiMinimized then return end resizing = true resizeStart = UserInputService:GetMouseLocation() startSize = mainFrame.Size end) -- Кнопка сворачивания (создаем после определения resizeButton) minimizeButton = Instance.new("TextButton") minimizeButton.Name = "MinimizeButton" minimizeButton.Size = UDim2.new(0, 30, 0, 30) minimizeButton.Position = UDim2.new(1, -70, 0, 10) minimizeButton.BackgroundColor3 = Color3.fromRGB(50, 150, 255) minimizeButton.BorderSizePixel = 0 minimizeButton.Text = "−" minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) minimizeButton.TextSize = 24 minimizeButton.Font = Enum.Font.GothamBold minimizeButton.Parent = mainFrame Instance.new("UICorner", minimizeButton).CornerRadius = UDim.new(0, 5) minimizeButton.MouseButton1Click:Connect(function() guiMinimized = not guiMinimized minimizeButton.Text = guiMinimized and "+" or "−" contentFrame.Visible = not guiMinimized if guiMinimized then expandedWidth = mainFrame.Size.X.Offset expandedHeight = math.max(mainFrame.Size.Y.Offset, minHeight) mainFrame.Size = UDim2.new(0, expandedWidth, 0, 50) resizing = false else mainFrame.Size = UDim2.new(0, expandedWidth, 0, math.max(expandedHeight, minHeight)) end if resizeButton then resizeButton.Visible = not guiMinimized end end) -- Перетаскивание окна local dragging, dragStart, startPos = false, nil, nil -- Начало перетаскивания (по заголовку или свободному месту фрейма) local function beginDrag(input) if resizing or rgbDragging then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end -- Обработчик начала ввода по заголовку title.InputBegan:Connect(function(input) beginDrag(input) end) -- Обработчик начала ввода по основному фрейму mainFrame.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end beginDrag(input) end) -- RGB слайдер - обработка через события элементов rgbSliderButton.MouseButton1Down:Connect(function() rgbDragging = true rgbDragStart = UserInputService:GetMouseLocation() rgbDragMode = nil end) rgbSliderBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then rgbDragging = true rgbDragStart = UserInputService:GetMouseLocation() rgbDragMode = "slider" updateRGBSlider(input) end end) -- Обработка движения мыши (RGB-слайдер и перетаскивание окна) UserInputService.InputChanged:Connect(function(input) if input.UserInputType ~= Enum.UserInputType.MouseMovement then return end -- RGB слайдер (имеет приоритет над остальными действиями) if rgbDragging then if rgbDragMode == "slider" or not rgbDragMode then updateRGBSlider() end return end -- Изменение размера окна if resizing and resizeStart and startSize then local currentMouse = UserInputService:GetMouseLocation() local deltaX = currentMouse.X - resizeStart.X local deltaY = currentMouse.Y - resizeStart.Y local newWidth = math.max(minWidth, startSize.X.Offset + deltaX) local newHeight = math.max(minHeight, startSize.Y.Offset + deltaY) mainFrame.Size = UDim2.new(0, newWidth, 0, newHeight) expandedWidth = newWidth expandedHeight = newHeight return end -- Перетаскивание окна if dragging and dragStart and startPos and not resizing then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false resizing = false rgbDragging = false rgbDragStart = nil rgbDragMode = nil end end) -- Fly функции local bodyVelocity, bodyPosition, bodyGyro, antiGravity = nil, nil, nil, nil local function cleanupBodyMovers() for _, mover in pairs({bodyVelocity, bodyPosition, bodyGyro, antiGravity}) do if mover then mover:Destroy() end end bodyVelocity, bodyPosition, bodyGyro, antiGravity = nil, nil, nil, nil if rootPart and rootPart.Parent then for _, v in pairs(rootPart:GetChildren()) do if v:IsA("BodyVelocity") or v:IsA("BodyPosition") or v:IsA("BodyGyro") or v:IsA("BodyAngularVelocity") or v:IsA("BodyForce") or v:IsA("BodyThrust") then v:Destroy() end end end end local function enableFly() local char, hum, root = getCharacterParts() if not root or not hum then return end cleanupBodyMovers() bodyPosition = Instance.new("BodyPosition") bodyPosition.MaxForce = Vector3.new(50000, 50000, 50000) bodyPosition.Position = root.Position bodyPosition.Parent = root bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(50000, 50000, 50000) bodyGyro.CFrame = root.CFrame bodyGyro.Parent = root bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(50000, 50000, 50000) bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyVelocity.Parent = root local mass = root.AssemblyMass or 1 local gravity = workspace.Gravity or 196.2 antiGravity = Instance.new("BodyForce") antiGravity.Name = "AntiGravity" antiGravity.Force = Vector3.new(0, mass * gravity * 1.2, 0) antiGravity.Parent = root hum.PlatformStand = true end local function disableFly() cleanupBodyMovers() if humanoid and humanoid.Parent then humanoid.PlatformStand = false task.spawn(function() task.wait(0.1) if humanoid and humanoid.Parent and rootPart and rootPart.Parent then cleanupBodyMovers() humanoid.PlatformStand = false if humanoid:GetState() == Enum.HumanoidStateType.Physics then humanoid:ChangeState(Enum.HumanoidStateType.Freefall) end end end) end end -- Создаем переключатели и блоки -- 1-й ряд: Fly (снизу слайдер), Speed (снизу слайдер) createToggleWithSlider("Fly", flySpeed, 20, 500, function(enabled) flyEnabled = enabled if enabled then task.spawn(function() task.wait(0.1) enableFly() end) else disableFly() end end, function(newSpeed) flySpeed = newSpeed end, nil ) createToggleWithSlider("Speed", walkSpeed, 16, 200, function(enabled) speedEnabled = enabled local _, hum = getCharacterParts() if hum then hum.WalkSpeed = enabled and walkSpeed or 16 end end, function(newSpeed) walkSpeed = newSpeed if speedEnabled then local _, hum = getCharacterParts() if hum then hum.WalkSpeed = walkSpeed end end end, nil ) -- Остальные функции идут ниже, в той же 2xN сетке createToggle("Infinite Jump", function(enabled) infiniteJumpEnabled = enabled end) createToggle("Noclip", function(enabled) noclipEnabled = enabled end) createToggle("Ctrl Delete", function(enabled) ctrlDeleteEnabled = enabled end) createToggle("Alt Teleport", function(enabled) altTeleportEnabled = enabled end) -- Масштаб персонажа local function cacheOriginalScales() local _, hum, root = getCharacterParts() if not hum then return end originalScales = {} for _, name in ipairs({"BodyHeightScale", "BodyWidthScale", "BodyDepthScale", "HeadScale"}) do local v = hum:FindFirstChild(name) if v and v:IsA("NumberValue") then originalScales[name] = v.Value end end originalHipHeight = hum.HipHeight if root then originalRootSize = root.Size end end local function applyCharacterScale(scale) local char, hum, root = getCharacterParts() if not char or not hum then return end if char.ScaleTo then char:ScaleTo(scale) return end if hum.ScaleTo then hum:ScaleTo(scale) return end if next(originalScales) == nil then cacheOriginalScales() end for name, baseValue in pairs(originalScales) do local v = hum:FindFirstChild(name) if v and v:IsA("NumberValue") then v.Value = baseValue * scale end end if originalHipHeight then hum.HipHeight = originalHipHeight * scale end if root and originalRootSize then root.Size = originalRootSize * scale end end -- Блок изменения размера персонажа (Size) createToggleWithSlider( "Size", 100, 50, 300, function(enabled) sizeEnabled = enabled if not enabled then sizeScale = 1 applyCharacterScale(1) else applyCharacterScale(sizeScale) end end, function(newPercent) sizeScale = newPercent / 100 if sizeEnabled then applyCharacterScale(sizeScale) end end, function(value) return "Size: " .. value .. "%" end ) createToggleWithSlider( "ESP", espColorHue, 0, 360, function(enabled) espEnabled = enabled if not enabled then clearESP() else refreshESPColors() end end, function(newHue) espColorHue = newHue if espEnabled then refreshESPColors() end end, function(value) return "Color Hue: " .. value .. "°" end ) finalizeLayout() -- Infinite Jump UserInputService.JumpRequest:Connect(function() if infiniteJumpEnabled then local _, hum = getCharacterParts() if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end end) -- Объединенный Heartbeat для Speed и Fly local camera = workspace.CurrentCamera local gravity = workspace.Gravity or 196.2 RunService.Heartbeat:Connect(function() -- Защита скорости if speedEnabled then local _, hum = getCharacterParts() if hum and hum.Parent and hum.WalkSpeed ~= walkSpeed then hum.WalkSpeed = walkSpeed end end -- Fly обработка if flyEnabled then local char, hum, root = getCharacterParts() if not root or not hum then return end -- Проверка и создание body movers if not bodyPosition or not bodyPosition.Parent or bodyPosition.Parent ~= root then enableFly() end if not bodyGyro or not bodyGyro.Parent or bodyGyro.Parent ~= root then enableFly() end if not bodyVelocity or not bodyVelocity.Parent or bodyVelocity.Parent ~= root then enableFly() end -- Обновление антигравитации if not antiGravity or not antiGravity.Parent or antiGravity.Parent ~= root then local mass = root.AssemblyMass or 1 antiGravity = Instance.new("BodyForce") antiGravity.Name = "AntiGravity" antiGravity.Force = Vector3.new(0, mass * gravity * 1.5, 0) antiGravity.Parent = root else local mass = root.AssemblyMass or 1 antiGravity.Force = Vector3.new(0, mass * gravity * 1.5, 0) end if not hum.PlatformStand then hum.PlatformStand = true end -- Управление полетом if bodyPosition and bodyGyro and bodyVelocity then camera = workspace.CurrentCamera if camera then local moveDirection = Vector3.new(0, 0, 0) local lookVector = camera.CFrame.LookVector local rightVector = camera.CFrame.RightVector if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection = moveDirection + lookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection = moveDirection - lookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDirection = moveDirection - rightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDirection = moveDirection + rightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDirection = moveDirection + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDirection = moveDirection - Vector3.new(0, 1, 0) end if moveDirection.Magnitude > 0 then moveDirection = moveDirection.Unit * flySpeed local forceMultiplier = moveDirection.Y < 0 and 3 or (moveDirection.Y > 0 and 2 or 1.5) bodyPosition.MaxForce = Vector3.new(50000, 50000 * forceMultiplier, 50000) bodyVelocity.MaxForce = Vector3.new(50000, 50000 * forceMultiplier, 50000) bodyPosition.Position = root.Position + moveDirection * 0.2 bodyVelocity.Velocity = moveDirection else bodyPosition.Position = root.Position bodyVelocity.Velocity = Vector3.new(0, 0, 0) bodyPosition.MaxForce = Vector3.new(50000, 75000, 50000) bodyVelocity.MaxForce = Vector3.new(50000, 75000, 50000) end bodyGyro.CFrame = camera.CFrame end end elseif bodyVelocity or bodyPosition or bodyGyro then cleanupBodyMovers() end end) -- Noclip RunService.Stepped:Connect(function() local char, hum, root = getCharacterParts() if char and noclipEnabled then for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) -- Обновление при спавне player.CharacterAdded:Connect(function(newCharacter) character = newCharacter humanoid = character:WaitForChild("Humanoid") rootPart = character:WaitForChild("HumanoidRootPart") originalScales = {} originalHipHeight = humanoid.HipHeight or 2 originalRootSize = rootPart.Size or originalRootSize disableFly() if speedEnabled then humanoid.WalkSpeed = walkSpeed end if flyEnabled then enableFly() end if sizeEnabled then applyCharacterScale(sizeScale) end end) -- Ctrl Delete и Alt Teleport local function onMouseClick() if not mouse then return end local ctrlHeld = UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) or UserInputService:IsKeyDown(Enum.KeyCode.RightControl) local altHeld = UserInputService:IsKeyDown(Enum.KeyCode.LeftAlt) or UserInputService:IsKeyDown(Enum.KeyCode.RightAlt) if ctrlDeleteEnabled and ctrlHeld then local target = mouse.Target if target and target.Parent then if not (character and target:IsDescendantOf(character)) then target:Destroy() end end return end if altTeleportEnabled and altHeld then local char, hum, root = getCharacterParts() if not root then return end local hit = mouse.Hit if not hit then return end local hipHeight = (hum and hum.HipHeight) or 2 local rootHeight = root.Size.Y or 6 local safetyOffset = hipHeight + (rootHeight / 2) + 1 local destination = Vector3.new(hit.Position.X, hit.Position.Y + safetyOffset, hit.Position.Z) camera = workspace.CurrentCamera local lookTarget = camera and (destination + camera.CFrame.LookVector) or (destination + root.CFrame.LookVector) root.CFrame = CFrame.new(destination, lookTarget) if root.AssemblyLinearVelocity then root.AssemblyLinearVelocity = Vector3.zero else root.Velocity = Vector3.new(0, 0, 0) end end end mouse.Button1Down:Connect(onMouseClick) -- ESP clearESP = function() for _, data in pairs(espObjects) do if data.gui then data.gui:Destroy() end end espObjects = {} end ensureESPForPlayer = function(targetPlayer) if not espEnabled or targetPlayer == player then return end local char = targetPlayer.Character if not char or not char.Parent then return end local root = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") if not root then return end local myChar, _, myRoot = getCharacterParts() if not myRoot then myRoot = myChar and (myChar:FindFirstChild("HumanoidRootPart") or myChar:FindFirstChild("Torso") or myChar:FindFirstChild("UpperTorso")) if not myRoot then return end end local existing = espObjects[targetPlayer] local distance = (root.Position - myRoot.Position).Magnitude if distance > espRadius then if existing and existing.gui then existing.gui:Destroy() end espObjects[targetPlayer] = nil return end if existing and existing.gui and existing.gui.Parent then return end local color = getESPColor() local boxGui = Instance.new("BillboardGui") boxGui.Name = "BananaESP_Box" boxGui.Adornee = root boxGui.Size = UDim2.new(4, 0, 6, 0) boxGui.StudsOffset = Vector3.new(0, 0, 0) boxGui.AlwaysOnTop = true boxGui.LightInfluence = 0 boxGui.Parent = root local frame = Instance.new("Frame") frame.BackgroundTransparency = 0.7 frame.BackgroundColor3 = color frame.BorderSizePixel = 0 frame.Size = UDim2.new(1, 0, 1, 0) frame.Parent = boxGui local stroke = Instance.new("UIStroke") stroke.Thickness = 2 stroke.Color = color stroke.Transparency = 0 stroke.Parent = frame espObjects[targetPlayer] = {gui = boxGui, frame = frame, stroke = stroke} end updateESP = function() if not espEnabled then clearESP() return end for plr, data in pairs(espObjects) do if not plr or not plr.Parent or not plr.Character or not plr.Character.Parent then if data.gui then data.gui:Destroy() end espObjects[plr] = nil end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then ensureESPForPlayer(plr) end end end espConnection = RunService.Heartbeat:Connect(function() if espEnabled then updateESP() elseif next(espObjects) ~= nil then clearESP() end end) -- Инициализация цвета (такие же настройки, как в updateRGBSlider) local baseColor = HSVtoRGB(guiHue, 0.9, 0.6) local darkerColor = HSVtoRGB(guiHue, 0.9, 0.45) mainFrame.BackgroundColor3 = baseColor title.BackgroundColor3 = darkerColor print("GUI загружен! Используйте переключатели для активации функций.")