Загрузка данных


-- Скрипт для Delta Executor: розовая кнопка "Fly" с noclip
local player = game.Players.LocalPlayer
local FLY_SPEED = 50
local BUTTON_COLOR = Color3.fromRGB(255, 105, 180)

local flyEnabled = false
local bodyVelocity, bodyGyro
local noclipParts = {}

-- Создаём GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = player.PlayerGui

local button = Instance.new("ImageButton")
button.Size = UDim2.new(0, 70, 0, 70)
button.Position = UDim2.new(0, 10, 0, 10)
button.BackgroundColor3 = BUTTON_COLOR
button.BorderSizePixel = 0
button.Image = "rbxassetid://"
button.ImageColor3 = BUTTON_COLOR
button.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = button

local text = Instance.new("TextLabel")
text.Size = UDim2.new(1, 0, 1, 0)
text.BackgroundTransparency = 1
text.Text = "Fly"
text.TextColor3 = Color3.new(1, 1, 1)
text.TextScaled = true
text.Font = Enum.Font.SourceSansBold
text.Parent = button

local function toggleFly()
    flyEnabled = not flyEnabled
    local character = player.Character
    if not character then return end
    local root = character:FindFirstChild("HumanoidRootPart")
    local humanoid = character:FindFirstChildOfClass("Humanoid")
    if not root or not humanoid then return end

    if flyEnabled then
        humanoid:SetStateEnabled(Enum.HumanoidStateType.Falling, false)
        humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
        humanoid.PlatformStand = true

        bodyVelocity = Instance.new("BodyVelocity")
        bodyVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6)
        bodyVelocity.Velocity = Vector3.new(0, 0, 0)
        bodyVelocity.Parent = root

        bodyGyro = Instance.new("BodyGyro")
        bodyGyro.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
        bodyGyro.CFrame = root.CFrame
        bodyGyro.Parent = root

        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") and part.CanCollide then
                part.CanCollide = false
                table.insert(noclipParts, part)
            end
        end
        text.Text = "Fly ON"
    else
        humanoid.PlatformStand = false
        humanoid:SetStateEnabled(Enum.HumanoidStateType.Falling, true)
        humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)

        if bodyVelocity then bodyVelocity:Destroy() end
        if bodyGyro then bodyGyro:Destroy() end

        for _, part in ipairs(noclipParts) do
            if part and part.Parent then
                part.CanCollide = true
            end
        end
        noclipParts = {}
        text.Text = "Fly"
    end
end

button.MouseButton1Click:Connect(toggleFly)

player.CharacterAdded:Connect(function()
    if flyEnabled then
        flyEnabled = false
        text.Text = "Fly"
        noclipParts = {}
    end
end)

game:GetService("RunService").RenderStepped:Connect(function()
    if not flyEnabled then return end
    local character = player.Character
    if not character then return end
    local root = character:FindFirstChild("HumanoidRootPart")
    if not root then return end

    local cam = workspace.CurrentCamera
    local forward = cam.CFrame.LookVector * Vector3.new(1, 0, 1)
    forward = forward.Unit
    local right = cam.CFrame.RightVector * Vector3.new(1, 0, 1)
    right = right.Unit
    local up = Vector3.new(0, 1, 0)

    local moveDir = Vector3.new(0, 0, 0)
    local uis = game:GetService("UserInputService")
    if uis:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + forward end
    if uis:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - forward end
    if uis:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - right end
    if uis:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + right end
    if uis:IsKeyDown(Enum.KeyCode.Space) then moveDir = moveDir + up end
    if uis:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir = moveDir - up end

    if moveDir.Magnitude > 0 then
        moveDir = moveDir.Unit * FLY_SPEED
    else
        moveDir = Vector3.new(0, 0, 0)
    end

    if bodyVelocity then
        bodyVelocity.Velocity = moveDir
    end

    if bodyGyro then
        local look = cam.CFrame.LookVector * Vector3.new(1, 0, 1)
        if look.Magnitude > 0.01 then
            local targetCFrame = CFrame.lookAt(root.Position, root.Position + look, Vector3.new(0, 1, 0))
            bodyGyro.CFrame = targetCFrame
        end
    end
end)