
KeylessUniversal

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 загружен! Используйте переключатели для активации функций.")



Cool! But add More features, Like some more fly animations, But still Cool
w