-- Скрипт для ServerScriptService или StarterPlayerScripts local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local character = player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") -- Создание GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "NoClipGUI" screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = player.PlayerGui -- Основной фрейм local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 200, 0, 120) mainFrame.Position = UDim2.new(0, 10, 0, 10) mainFrame.BackgroundColor3 = Color3.new(0, 0, 0) mainFrame.BorderSizePixel = 2 mainFrame.BorderColor3 = Color3.new(1, 0.5, 0) mainFrame.Active = true mainFrame.Draggable = false -- Мы реализуем перетаскивание самостоятельно mainFrame.Parent = screenGui -- Заголовок local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, 0, 0, 30) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundColor3 = Color3.new(0, 0, 0) titleLabel.BorderSizePixel = 0 titleLabel.Text = "QJL RbxScripts" titleLabel.TextColor3 = Color3.new(1, 0.5, 0) titleLabel.TextScaled = true titleLabel.Font = Enum.Font.GothamBold titleLabel.Parent = mainFrame -- Кнопка NoClip local noClipButton = Instance.new("TextButton") noClipButton.Name = "NoClipButton" noClipButton.Size = UDim2.new(0.8, 0, 0, 40) noClipButton.Position = UDim2.new(0.1, 0, 0.4, 0) noClipButton.BackgroundColor3 = Color3.new(1, 0.5, 0) noClipButton.BorderSizePixel = 0 noClipButton.Text = "NOCLIP OFF" noClipButton.TextColor3 = Color3.new(0, 0, 0) noClipButton.TextScaled = true noClipButton.Font = Enum.Font.GothamBold noClipButton.Parent = mainFrame -- Переменные для состояния local noClipEnabled = false local noClipConnection = nil local isDragging = false local dragStart = nil local frameStart = nil -- Функция для перетаскивания GUI local function onInputBegan(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then local mousePos = input.Position local framePos = mainFrame.AbsolutePosition local frameSize = mainFrame.AbsoluteSize -- Проверяем, находится ли клик внутри фрейма if mousePos.X >= framePos.X and mousePos.X <= framePos.X + frameSize.X and mousePos.Y >= framePos.Y and mousePos.Y <= framePos.Y + frameSize.Y then isDragging = true dragStart = mousePos frameStart = mainFrame.Position -- Визуальная обратная связь при перетаскивании local tween = TweenService:Create(mainFrame, TweenInfo.new(0.1), {BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)}) tween:Play() end end end local function onInputChanged(input, gameProcessed) if gameProcessed then return end if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart local newPosition = UDim2.new( frameStart.X.Scale, frameStart.X.Offset + delta.X, frameStart.Y.Scale, frameStart.Y.Offset + delta.Y ) mainFrame.Position = newPosition end end local function onInputEnded(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if isDragging then isDragging = false -- Возвращаем обычный цвет local tween = TweenService:Create(mainFrame, TweenInfo.new(0.1), {BackgroundColor3 = Color3.new(0, 0, 0)}) tween:Play() end end end -- Подключаем обработчики для перетаскивания UserInputService.InputBegan:Connect(onInputBegan) UserInputService.InputChanged:Connect(onInputChanged) UserInputService.InputEnded:Connect(onInputEnded) -- Функция NoClip local function updateNoClip() if character and humanoid then for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = not noClipEnabled end end end end -- Обработчик переключения NoClip noClipButton.MouseButton1Click:Connect(function() noClipEnabled = not noClipEnabled if noClipEnabled then noClipButton.Text = "NOCLIP ON" -- Анимация при включении local tween = TweenService:Create(noClipButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.new(0, 1, 0)}) tween:Play() else noClipButton.Text = "NOCLIP OFF" -- Возвращаем оранжевый цвет local tween = TweenService:Create(noClipButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.new(1, 0.5, 0)}) tween:Play() end updateNoClip() end) -- Постоянное обновление NoClip (на случай респавна персонажа) if noClipConnection then noClipConnection:Disconnect() end noClipConnection = RunService.Stepped:Connect(function() if noClipEnabled and character then updateNoClip() end end) -- Обработчик респавна персонажа player.CharacterAdded:Connect(function(newCharacter) character = newCharacter humanoid = character:WaitForChild("Humanoid") -- Сбрасываем NoClip при респавне if noClipEnabled then noClipEnabled = false noClipButton.Text = "NOCLIP OFF" local tween = TweenService:Create(noClipButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.new(1, 0.5, 0)}) tween:Play() end end) -- Анимация появления mainFrame.Size = UDim2.new(0, 0, 0, 0) local appearTween = TweenService:Create(mainFrame, TweenInfo.new(0.5), {Size = UDim2.new(0, 200, 0, 120)}) appearTween:Play() print("NoClip GUI загружен! Перетаскивайте окно для перемещения.")