-
Notifications
You must be signed in to change notification settings - Fork 93
Description
local Player = game.Players.LocalPlayer
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
-- === Настройки ===
local MAX_WALKSPEED = 500
local DEFAULT_WALKSPEED = 16
local BUTTON_ACTIVE_COLOR = Color3.fromRGB(100, 200, 100)
local BUTTON_INACTIVE_COLOR = Color3.fromRGB(60, 60, 60)
-- === Переменные ===
local JumpConnection
local InfiniteJumpEnabled = false
local NoClip = false
local NoclipConnection
local currentSection = "main" -- main, settings
-- === Основной GUI ===
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "ControlGui"
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = Player:WaitForChild("PlayerGui")
-- Главный прямоугольный фрейм (растянут вправо)
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 350, 0, 250) -- Шире, но ниже
MainFrame.Position = UDim2.new(0.05, 0, 0.1, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
MainFrame.BackgroundTransparency = 0.1
MainFrame.Active = true
MainFrame.Visible = false
MainFrame.Parent = ScreenGui
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = MainFrame
-- === Панель для перемещения (верхняя часть) ===
local DragPanel = Instance.new("Frame")
DragPanel.Size = UDim2.new(1, 0, 0, 30)
DragPanel.Position = UDim2.new(0, 0, 0, 0)
DragPanel.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
DragPanel.BorderSizePixel = 0
DragPanel.Active = true
DragPanel.Parent = MainFrame
local DragCorner = Instance.new("UICorner")
DragCorner.CornerRadius = UDim.new(0, 8)
DragCorner.Parent = DragPanel
-- Текст "Fire Cheats" на панели
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(0, 120, 1, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "Fire Cheats"
TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleLabel.TextSize = 16
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = DragPanel
-- Кнопка закрытия на панели
local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 25, 0, 25)
CloseButton.Position = UDim2.new(1, -30, 0, 2)
CloseButton.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.Text = "X"
CloseButton.TextSize = 16
CloseButton.Parent = DragPanel
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 12)
CloseCorner.Parent = CloseButton
-- === Боковое меню ===
local SideMenu = Instance.new("Frame")
SideMenu.Size = UDim2.new(0, 60, 1, -30)
SideMenu.Position = UDim2.new(0, 0, 0, 30)
SideMenu.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
SideMenu.BorderSizePixel = 0
SideMenu.Parent = MainFrame
local SideMenuCorner = Instance.new("UICorner")
SideMenuCorner.CornerRadius = UDim.new(0, 8)
SideMenuCorner.Parent = SideMenu
-- Квадратный человечек в боковом меню
local HumanoidButton = Instance.new("TextButton")
HumanoidButton.Size = UDim2.new(0, 40, 0, 40)
HumanoidButton.Position = UDim2.new(0, 10, 0, 20)
HumanoidButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
HumanoidButton.Text = "👤"
HumanoidButton.TextColor3 = Color3.fromRGB(255, 255, 255)
HumanoidButton.TextSize = 20
HumanoidButton.Parent = SideMenu
local HumanoidCorner = Instance.new("UICorner")
HumanoidCorner.CornerRadius = UDim.new(0, 6)
HumanoidCorner.Parent = HumanoidButton
-- Шестерёнка в боковом меню (под человечком)
local GearButton = Instance.new("TextButton")
GearButton.Size = UDim2.new(0, 40, 0, 40)
GearButton.Position = UDim2.new(0, 10, 0, 70)
GearButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
GearButton.Text = "⚙️"
GearButton.TextColor3 = Color3.fromRGB(255, 255, 255)
GearButton.TextSize = 20
GearButton.Parent = SideMenu
local GearCorner = Instance.new("UICorner")
GearCorner.CornerRadius = UDim.new(0, 6)
GearCorner.Parent = GearButton
-- === Контентная область с ПРОКРУТКОЙ ===
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, -60, 1, -70)
ContentFrame.Position = UDim2.new(0, 60, 0, 30)
ContentFrame.BackgroundTransparency = 1
ContentFrame.ClipsDescendants = true
ContentFrame.Parent = MainFrame
-- ScrollingFrame для основной секции
local MainScrollingFrame = Instance.new("ScrollingFrame")
MainScrollingFrame.Size = UDim2.new(1, 0, 1, 0)
MainScrollingFrame.Position = UDim2.new(0, 0, 0, 0)
MainScrollingFrame.BackgroundTransparency = 1
MainScrollingFrame.ScrollBarThickness = 6
MainScrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
MainScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 300)
MainScrollingFrame.VerticalScrollBarInset = Enum.ScrollBarInset.Always
MainScrollingFrame.Visible = true
MainScrollingFrame.Parent = ContentFrame
-- ScrollingFrame для секции настроек
local SettingsScrollingFrame = Instance.new("ScrollingFrame")
SettingsScrollingFrame.Size = UDim2.new(1, 0, 1, 0)
SettingsScrollingFrame.Position = UDim2.new(0, 0, 0, 0)
SettingsScrollingFrame.BackgroundTransparency = 1
SettingsScrollingFrame.ScrollBarThickness = 6
SettingsScrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
SettingsScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 300)
SettingsScrollingFrame.VerticalScrollBarInset = Enum.ScrollBarInset.Always
SettingsScrollingFrame.Visible = false
SettingsScrollingFrame.Parent = ContentFrame
-- Ограничиваем прокрутку для обеих секций
local function setupScrollLimits(scrollingFrame)
scrollingFrame:GetPropertyChangedSignal("CanvasPosition"):Connect(function()
local canvasPos = scrollingFrame.CanvasPosition
if canvasPos.Y < 0 then
local tween = TweenService:Create(scrollingFrame, TweenInfo.new(0.3), {CanvasPosition = Vector2.new(0, 0)})
tween:Play()
elseif canvasPos.Y > scrollingFrame.CanvasSize.Y.Offset - scrollingFrame.AbsoluteSize.Y then
local targetY = math.max(0, scrollingFrame.CanvasSize.Y.Offset - scrollingFrame.AbsoluteSize.Y)
local tween = TweenService:Create(scrollingFrame, TweenInfo.new(0.3), {CanvasPosition = Vector2.new(0, targetY)})
tween:Play()
end
end)
end
setupScrollLimits(MainScrollingFrame)
setupScrollLimits(SettingsScrollingFrame)
-- === Надпись внизу (Made by Knew World) ===
local CreditLabel = Instance.new("TextLabel")
CreditLabel.Size = UDim2.new(1, -70, 0, 30)
CreditLabel.Position = UDim2.new(0, 60, 1, -35)
CreditLabel.BackgroundTransparency = 1
CreditLabel.Text = "Made by Knew World"
CreditLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
CreditLabel.TextSize = 14
CreditLabel.Font = Enum.Font.GothamBold
CreditLabel.TextXAlignment = Enum.TextXAlignment.Left
CreditLabel.Parent = MainFrame
-- === Кнопка toggle GUI (шестеренка) ===
local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.new(0, 40, 0, 40)
ToggleButton.Position = UDim2.new(0, 10, 0, 10)
ToggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleButton.Text = "⚙️"
ToggleButton.TextSize = 20
ToggleButton.ZIndex = 10
ToggleButton.Active = true
ToggleButton.Parent = ScreenGui
local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(0, 20)
ToggleCorner.Parent = ToggleButton
-- === Функция смены секций ===
local function showSection(sectionName)
MainScrollingFrame.Visible = (sectionName == "main")
SettingsScrollingFrame.Visible = (sectionName == "settings")
currentSection = sectionName
end
-- === Функция создания кнопок ===
local function createButton(name, position, size, color, text, parent)
local button = Instance.new("TextButton")
button.Name = name
button.Size = size
button.Position = position
button.BackgroundColor3 = color
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.TextScaled = true
button.Text = text
button.AutoButtonColor = false
button.Parent = parent
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 6)
buttonCorner.Parent = button
button.TouchTap:Connect(function()
button.MouseButton1Click:Fire()
end)
return button
end
-- === Анимация кнопки ===
local function animateButtonScale(button, scalePercent)
local originalSize = button.Size
local targetSize = UDim2.new(
originalSize.X.Scale * scalePercent,
originalSize.X.Offset * scalePercent,
originalSize.Y.Scale * scalePercent,
originalSize.Y.Offset * scalePercent
)
local tweenOut = TweenService:Create(button, TweenInfo.new(0.1), {Size = targetSize})
tweenOut:Play()
tweenOut.Completed:Wait()
local tweenIn = TweenService:Create(button, TweenInfo.new(0.1), {Size = originalSize})
tweenIn:Play()
end
-- === Кнопки основной секции ===
local JumpButton = createButton("InfiniteJump", UDim2.new(0, 10, 0, 10), UDim2.new(1, -20, 0, 40), BUTTON_INACTIVE_COLOR, "Inf Jump: OFF", MainScrollingFrame)
local ButtonNoClip = createButton("NoClipButton", UDim2.new(0, 10, 0, 60), UDim2.new(1, -20, 0, 40), BUTTON_INACTIVE_COLOR, "NoClip: OFF", MainScrollingFrame)
local ResetSpeedButton = createButton("ResetSpeed", UDim2.new(0, 10, 0, 110), UDim2.new(1, -20, 0, 40), Color3.fromRGB(90, 90, 200), "Reset Speed", MainScrollingFrame)
local PlusButton = createButton("SpeedPlus", UDim2.new(0, 10, 0, 160), UDim2.new(0.5, -15, 0, 40), Color3.fromRGB(0, 150, 0), "+10", MainScrollingFrame)
local MinusButton = createButton("SpeedMinus", UDim2.new(0.5, 5, 0, 160), UDim2.new(0.5, -15, 0, 40), Color3.fromRGB(150, 0, 0), "-10", MainScrollingFrame)
-- Отображение скорости в основной секции
local SpeedLabel = Instance.new("TextLabel")
SpeedLabel.Size = UDim2.new(1, -20, 0, 40)
SpeedLabel.Position = UDim2.new(0, 10, 0, 210)
SpeedLabel.BackgroundTransparency = 1
SpeedLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedLabel.TextScaled = true
SpeedLabel.Text = "Speed: " .. DEFAULT_WALKSPEED
SpeedLabel.Parent = MainScrollingFrame
-- === Кнопки секции настроек ===
local TestButton = createButton("TestButton", UDim2.new(0, 10, 0, 10), UDim2.new(1, -20, 0, 40), Color3.fromRGB(100, 100, 200), "TEST", SettingsScrollingFrame)
-- Добавляем дополнительные кнопки для прокрутки
local DummyButton1 = createButton("Dummy1", UDim2.new(0, 10, 0, 60), UDim2.new(1, -20, 0, 40), Color3.fromRGB(80, 80, 80), "Extra Button 1", SettingsScrollingFrame)
local DummyButton2 = createButton("Dummy2", UDim2.new(0, 10, 0, 110), UDim2.new(1, -20, 0, 40), Color3.fromRGB(80, 80, 80), "Extra Button 2", SettingsScrollingFrame)
local DummyButton3 = createButton("Dummy3", UDim2.new(0, 10, 0, 160), UDim2.new(1, -20, 0, 40), Color3.fromRGB(80, 80, 80), "Extra Button 3", SettingsScrollingFrame)
local DummyButton4 = createButton("Dummy4", UDim2.new(0, 10, 0, 210), UDim2.new(1, -20, 0, 40), Color3.fromRGB(80, 80, 80), "Extra Button 4", SettingsScrollingFrame)
local DummyButton5 = createButton("Dummy5", UDim2.new(0, 10, 0, 260), UDim2.new(1, -20, 0, 40), Color3.fromRGB(80, 80, 80), "Extra Button 5", SettingsScrollingFrame)
-- === Управление перетаскиванием ===
local draggingToggle, dragInputToggle, dragStartToggle, startPosToggle
local draggingMain, dragInputMain, dragStartMain, startPosMain
local function updateToggle(input)
local delta = input.Position - dragStartToggle
ToggleButton.Position = UDim2.new(
0, startPosToggle.X.Offset + delta.X,
0, startPosToggle.Y.Offset + delta.Y
)
end
local function updateMain(input)
local delta = input.Position - dragStartMain
MainFrame.Position = UDim2.new(
startPosMain.X.Scale, startPosMain.X.Offset + delta.X,
startPosMain.Y.Scale, startPosMain.Y.Offset + delta.Y
)
end
-- Шестерёнка toggle (открывает/закрывает GUI)
ToggleButton.MouseButton1Click:Connect(function()
MainFrame.Visible = not MainFrame.Visible
end)
ToggleButton.TouchTap:Connect(function()
MainFrame.Visible = not MainFrame.Visible
end)
-- Перетаскивание шестерёнки (только зажатие)
ToggleButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
draggingToggle = true
dragStartToggle = input.Position
startPosToggle = ToggleButton.Position
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
draggingToggle = false
connection:Disconnect()
end
end)
end
end)
ToggleButton.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInputToggle = input
end
end)
-- Перетаскивание основной панели
DragPanel.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
draggingMain = true
dragStartMain = input.Position
startPosMain = MainFrame.Position
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
draggingMain = false
connection:Disconnect()
end
end)
end
end)
DragPanel.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInputMain = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInputToggle and draggingToggle then
updateToggle(input)
end
if input == dragInputMain and draggingMain then
updateMain(input)
end
end)
-- Кнопки бокового меню
HumanoidButton.MouseButton1Click:Connect(function()
showSection("main")
animateButtonScale(HumanoidButton, 0.9)
end)
GearButton.MouseButton1Click:Connect(function()
showSection("settings")
animateButtonScale(GearButton, 0.9)
end)
-- Закрытие GUI
CloseButton.MouseButton1Click:Connect(function()
MainFrame.Visible = false
end)
CloseButton.TouchTap:Connect(function()
MainFrame.Visible = false
end)
-- === Обновление кнопок ===
local function updateJumpButton()
JumpButton.Text = InfiniteJumpEnabled and "Inf Jump: ON" or "Inf Jump: OFF"
JumpButton.BackgroundColor3 = InfiniteJumpEnabled and BUTTON_ACTIVE_COLOR or BUTTON_INACTIVE_COLOR
end
local function updateNoClipButton()
ButtonNoClip.Text = NoClip and "NoClip: ON" or "NoClip: OFF"
ButtonNoClip.BackgroundColor3 = NoClip and Color3.fromRGB(200, 100, 100) or BUTTON_INACTIVE_COLOR
end
-- === Бесконечный прыжок ===
local function setupInfiniteJump()
if JumpConnection then
JumpConnection:Disconnect()
end
JumpConnection = UserInputService.JumpRequest:Connect(function()
if not InfiniteJumpEnabled then return end
local Character = Player.Character
if not Character then return end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then
Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
end
JumpButton.MouseButton1Click:Connect(function()
InfiniteJumpEnabled = not InfiniteJumpEnabled
updateJumpButton()
animateButtonScale(JumpButton, 0.95)
if InfiniteJumpEnabled then
setupInfiniteJump()
else
if JumpConnection then
JumpConnection:Disconnect()
JumpConnection = nil
end
end
end)
-- === NoClip ===
ButtonNoClip.MouseButton1Click:Connect(function()
NoClip = not NoClip
updateNoClipButton()
animateButtonScale(ButtonNoClip, 0.95)
if NoclipConnection then
NoclipConnection:Disconnect()
NoclipConnection = nil
end
if NoClip then
NoclipConnection = RunService.Stepped:Connect(function()
local Character = Player.Character
if Character then
for _, part in pairs(Character:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
end
end
end
end)
end
end)
-- === Управление скоростью ===
local function changeSpeed(amount)
local Character = Player.Character
if not Character then return end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
local newSpeed = math.clamp(Humanoid.WalkSpeed + amount, 0, MAX_WALKSPEED)
Humanoid.WalkSpeed = newSpeed
SpeedLabel.Text = "Speed: " .. math.floor(newSpeed)
end
end
ResetSpeedButton.MouseButton1Click:Connect(function()
local Character = Player.Character
if not Character then return end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
Humanoid.WalkSpeed = DEFAULT_WALKSPEED
SpeedLabel.Text = "Speed: " .. DEFAULT_WALKSPEED
animateButtonScale(ResetSpeedButton, 0.95)
end
end)
PlusButton.MouseButton1Click:Connect(function()
changeSpeed(10)
animateButtonScale(PlusButton, 0.95)
end)
MinusButton.MouseButton1Click:Connect(function()
changeSpeed(-10)
animateButtonScale(MinusButton, 0.95)
end)
-- === Тест кнопка ===
TestButton.MouseButton1Click:Connect(function()
print("Test button pressed!")
animateButtonScale(TestButton, 0.95)
end)
-- === Слежение за скоростью ===
local function setupCharacter(char)
local Humanoid = char:WaitForChild("Humanoid")
SpeedLabel.Text = "Speed: " .. math.floor(Humanoid.WalkSpeed)
local connection
connection = Humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
SpeedLabel.Text = "Speed: " .. math.floor(Humanoid.WalkSpeed)
end)
Humanoid.Died:Connect(function()
if connection then
connection:Disconnect()
end
if InfiniteJumpEnabled then
InfiniteJumpEnabled = false
updateJumpButton()
if JumpConnection then
JumpConnection:Disconnect()
JumpConnection = nil
end
end
if NoClip then
NoClip = false
updateNoClipButton()
if NoclipConnection then
NoclipConnection:Disconnect()
NoclipConnection = nil
end
end
end)
end
-- Инициализация
if Player.Character then
setupCharacter(Player.Character)
setupInfiniteJump()
end
Player.CharacterAdded:Connect(function(char)
setupCharacter(char)
setupInfiniteJump()
end)
-- Активируем прокрутку для телефона
MainScrollingFrame.ScrollingEnabled = true
SettingsScrollingFrame.ScrollingEnabled = true
print("Fire Cheats loaded! Use the gear button to toggle menu.")