Cfly
Key RequiredUniversal

Cfly

Universal ScriptSigmaToSocietySigmaToSociety 1.1K views 992 executesUpdated Apr 1, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•225 lines (7081 chars)
-- CFrame Fly Script with Noclip - Executor Version
-- Keybind: L to toggle flight/noclip
-- Fixed speed: 50

-- Wait for game to load
repeat task.wait() until game:IsLoaded()

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")

local flying = false
local noclipEnabled = false
local flySpeed = 50 -- Fixed speed
local bodyVelocity = nil
local bodyGyro = nil
local noclipConnection = nil

-- Create simple GUI indicator
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FlyScriptGUI"
screenGui.Parent = player:FindFirstChild("PlayerGui") or Instance.new("PlayerGui", player)

-- Flight status indicator (top left corner)
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(0, 200, 0, 30)
statusLabel.Position = UDim2.new(0, 10, 0, 10)
statusLabel.BackgroundColor3 = Color3.new(0, 0, 0)
statusLabel.BackgroundTransparency = 0.3
statusLabel.TextColor3 = Color3.new(1, 1, 1)
statusLabel.Text = "Flight: DISABLED | Noclip: OFF"
statusLabel.Font = Enum.Font.GothamBold
statusLabel.TextSize = 14
statusLabel.BorderSizePixel = 1
statusLabel.BorderColor3 = Color3.new(1, 1, 1)
statusLabel.Parent = screenGui

-- Noclip function
local function enableNoclip()
    if noclipConnection then
        noclipConnection:Disconnect()
    end
    
    noclipConnection = game:GetService("RunService").Stepped:Connect(function()
        if noclipEnabled and character and character.Parent then
            for _, part in ipairs(character:GetDescendants()) do
                if part:IsA("BasePart") then
                    part.CanCollide = false
                end
            end
        end
    end)
end

local function disableNoclip()
    if noclipConnection then
        noclipConnection:Disconnect()
        noclipConnection = nil
    end
    
    if character and character.Parent then
        for _, part in ipairs(character:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = true
            end
        end
    end
end

-- Toggle noclip
local function toggleNoclip()
    noclipEnabled = not noclipEnabled
    
    if noclipEnabled then
        enableNoclip()
        player:Chat("Noclip ENABLED!")
    else
        disableNoclip()
        player:Chat("Noclip DISABLED!")
    end
    
    -- Update status label
    if flying then
        statusLabel.Text = "Flight: ENABLED | Noclip: " .. (noclipEnabled and "ON" or "OFF")
    else
        statusLabel.Text = "Flight: DISABLED | Noclip: " .. (noclipEnabled and "ON" or "OFF")
    end
end

-- Toggle flight function
local function toggleFly()
    flying = not flying
    
    if flying then
        humanoid.PlatformStand = true
        
        bodyVelocity = Instance.new("BodyVelocity")
        bodyVelocity.MaxForce = Vector3.new(1, 1, 1) * 100000
        bodyVelocity.Velocity = Vector3.new(0, 0, 0)
        bodyVelocity.Parent = rootPart
        
        bodyGyro = Instance.new("BodyGyro")
        bodyGyro.MaxTorque = Vector3.new(1, 1, 1) * 100000
        bodyGyro.Parent = rootPart
        
        statusLabel.Text = "Flight: ENABLED (Speed: 50) | Noclip: " .. (noclipEnabled and "ON" or "OFF")
        statusLabel.TextColor3 = Color3.new(0, 1, 0)
        player:Chat("Flight ENABLED! Speed: 50")
        
        -- Auto-enable noclip when flight is enabled
        if not noclipEnabled then
            toggleNoclip()
        end
    else
        if bodyVelocity then bodyVelocity:Destroy() end
        if bodyGyro then bodyGyro:Destroy() end
        humanoid.PlatformStand = false
        
        statusLabel.Text = "Flight: DISABLED | Noclip: " .. (noclipEnabled and "ON" or "OFF")
        statusLabel.TextColor3 = Color3.new(1, 1, 1)
        player:Chat("Flight DISABLED!")
        
        -- Optional: Uncomment this if you want noclip to disable when flight is off
        -- if noclipEnabled then
        --     toggleNoclip()
        -- end
    end
end

-- Movement update
local function updateMovement()
    if not flying or not bodyVelocity then return end
    
    local camera = workspace.CurrentCamera
    local moveDirection = Vector3.new(0, 0, 0)
    local userInputService = game:GetService("UserInputService")
    
    -- WASD controls with camera-relative movement (CFrame based)
    if userInputService:IsKeyDown(Enum.KeyCode.W) then
        moveDirection = moveDirection + camera.CFrame.LookVector
    end
    if userInputService:IsKeyDown(Enum.KeyCode.S) then
        moveDirection = moveDirection - camera.CFrame.LookVector
    end
    if userInputService:IsKeyDown(Enum.KeyCode.A) then
        moveDirection = moveDirection - camera.CFrame.RightVector
    end
    if userInputService:IsKeyDown(Enum.KeyCode.D) then
        moveDirection = moveDirection + camera.CFrame.RightVector
    end
    if userInputService:IsKeyDown(Enum.KeyCode.Space) then
        moveDirection = moveDirection + Vector3.new(0, 1, 0)
    end
    if userInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
        moveDirection = moveDirection - Vector3.new(0, 1, 0)
    end
    
    -- Apply velocity
    if moveDirection.Magnitude > 0 then
        moveDirection = moveDirection.Unit
        bodyVelocity.Velocity = moveDirection * flySpeed
    else
        bodyVelocity.Velocity = Vector3.new(0, 0, 0)
    end
    
    -- Face camera direction (CFrame orientation)
    bodyGyro.CFrame = CFrame.new(rootPart.Position, rootPart.Position + camera.CFrame.LookVector)
end

-- Keybind detection (L key for flight, N key for noclip)
local userInputService = game:GetService("UserInputService")

userInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    
    -- Toggle flight with L key
    if input.KeyCode == Enum.KeyCode.L then
        toggleFly()
    end
    
    -- Toggle noclip with N key (independent toggle)
    if input.KeyCode == Enum.KeyCode.N then
        toggleNoclip()
    end
end)

-- Main loop
local runService = game:GetService("RunService")
runService.RenderStepped:Connect(function()
    updateMovement()
end)

-- Handle character respawn
player.CharacterAdded:Connect(function(newCharacter)
    character = newCharacter
    humanoid = character:WaitForChild("Humanoid")
    rootPart = character:WaitForChild("HumanoidRootPart")
    
    -- Reset noclip state
    if noclipEnabled then
        disableNoclip()
        noclipEnabled = false
    end
    
    if flying then
        -- Re-enable flight after respawn
        task.wait(0.5)
        flying = false
        toggleFly()
    end
end)

-- Cleanup on player leave
player:GetPropertyChangedSignal("Parent"):Connect(function()
    if not player.Parent then
        if noclipConnection then
            noclipConnection:Disconnect()
        end
    end
end)

player:Chat("CFrame Fly Script with Noclip Loaded!")
player:Chat("Press L to toggle flight | Press N to toggle noclip")
player:Chat("Speed: 50 | Controls: WASD to move, Space to go up, Ctrl to go down")

Features & Information

Cfly made by ai

Community Comments (1)

SpiderManAmaTurkSpiderManAmaTurkJul 12, 2026

you are gay

More Scripts for Universal Scripts