universal fly
Key RequiredUniversal

universal fly

Universal Scriptmasmaxmasmax 1.5K views 5.1K executesUpdated Jun 19, 2026
Unrated
00
Lua Script•310 lines (10539 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- ============================================================================
-- SCRIPT: CYBER FLY PRO v8.0 [TOTAL IMMUNITY ANCHOR EDITION]
-- BLOCCO FORZATO CFRAME E ANCHOR PER PREVENIRE CADUTE COSTRANTE DA GIOCO
-- ============================================================================

print("[CYBER FLY] Loading Total Immunity Flight System...")

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")

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

-- Rimuove GUI precedenti
local playerGui = player:WaitForChild("PlayerGui")
if playerGui:FindFirstChild("CyberFlyGui") then
    playerGui.CyberFlyGui:Destroy()
end

-- STATO GLOBALE
local flying = false
local baseSpeed = 50       
local currentSpeed = 50    
local isMultiplierOn = false
local flightConnection = nil
local lastStaticCFrame = nil -- Forza la coordinata esatta nello spazio

-- NOTIFICA
local function notify(message)
    pcall(function()
        StarterGui:SetCore("SendNotification", {
            Title = "Cyber Fly",
            Text = message,
            Duration = 1.5
        })
    end)
end

-- LOOP DI VOLO HARD-ANCHORED
local function flightLoop()
    if flying and rootPart and camera then
        local direction = Vector3.new(0, 0, 0)
        
        -- Input della tastiera
        if UserInputService:IsKeyDown(Enum.KeyCode.W) then
            direction = direction + camera.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.S) then
            direction = direction - camera.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.A) then
            direction = direction - camera.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.D) then
            direction = direction + camera.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
            direction = direction + Vector3.new(0, 1, 0)
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
            direction = direction - Vector3.new(0, 1, 0)
        end
        
        -- Isola l'orientamento della visuale
        local cameraRotation = camera.CFrame - camera.CFrame.Position
        
        if direction.Magnitude > 0 then
            -- Se si muove, sblocca momentaneamente l'ancoraggio per permettere lo spostamento
            rootPart.Anchored = false
            local nextPosition = rootPart.Position + (direction.Unit * (currentSpeed * RunService.Heartbeat:Wait()))
            rootPart.CFrame = CFrame.new(nextPosition) * cameraRotation
            lastStaticCFrame = rootPart.CFrame
        else
            -- SE SEI FERMO: Blocca via codice le velocità e attiva l'ancoraggio rigido hardware
            rootPart.Velocity = Vector3.new(0, 0, 0)
            rootPart.RotVelocity = Vector3.new(0, 0, 0)
            if lastStaticCFrame then
                rootPart.CFrame = CFrame.new(lastStaticCFrame.Position) * cameraRotation
            else
                lastStaticCFrame = rootPart.CFrame
            end
            rootPart.Anchored = true -- Impedisce al motore di Roblox di farti cadere giù
        end
    end
end

-- ACCENSIONE / SPEGNIMENTO VOLO
local function startFlying()
    if not character or not character.Parent then return end
    flying = true
    humanoid.PlatformStand = true
    lastStaticCFrame = rootPart.CFrame
    flightConnection = RunService.Heartbeat:Connect(flightLoop)
    notify("🟢 Flight Mode: ACTIVATED")
end

local function stopFlying()
    flying = false
    if flightConnection then
        flightConnection:Disconnect()
        flightConnection = nil
    end
    if rootPart then 
        rootPart.Anchored = false -- Restituisce il controllo alla fisica normale
    end
    if humanoid then humanoid.PlatformStand = false end
    lastStaticCFrame = nil
    notify("🔴 Flight Mode: DEACTIVATED")
end

player.CharacterAdded:Connect(function(newChar)
    character = newChar
    rootPart = character:WaitForChild("HumanoidRootPart")
    humanoid = character:WaitForChild("Humanoid")
    if flying then stopFlying() end
end)

-- --- INTERFACCIA GRAFICA CYBERPUNK v8.0 ---
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CyberFlyGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 240, 0, 175)
MainFrame.Position = UDim2.new(0.05, 0, 0.6, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 18, 22)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = screenGui

local MainStroke = Instance.new("UIStroke")
MainStroke.Thickness = 2
MainStroke.Color = Color3.fromRGB(0, 255, 255)
MainStroke.Parent = MainFrame

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 8)
MainCorner.Parent = MainFrame

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 35)
Title.BackgroundColor3 = Color3.fromRGB(22, 27, 34)
Title.Text = "🚀 CYBER FLY CONTROLLER v8.0"
Title.TextColor3 = Color3.fromRGB(0, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 12
Title.Active = true
Title.Parent = MainFrame

local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 8)
TitleCorner.Parent = Title

-- TRASCINAMENTO PERSONALIZZATO FLUIDO
local dragging, dragInput, dragStart, startPos
Title.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

Title.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging 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)

-- INTERFACCIA: PULSANTE DI ATTIVAZIONE DIRETTA (.Activated)
local flyButton = Instance.new("TextButton")
flyButton.Size = UDim2.new(1, -20, 0, 38)
flyButton.Position = UDim2.new(0, 10, 0, 45)
flyButton.BackgroundColor3 = Color3.fromRGB(24, 28, 34)
flyButton.Font = Enum.Font.GothamBold
flyButton.TextSize = 13
flyButton.Text = "VOLO: DISATTIVATO"
flyButton.TextColor3 = Color3.fromRGB(255, 50, 50)
flyButton.Parent = MainFrame

local btnStroke = Instance.new("UIStroke")
btnStroke.Thickness = 1
btnStroke.Color = Color3.fromRGB(255, 50, 50)
btnStroke.Parent = flyButton

local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 5)
btnCorner.Parent = flyButton

-- INTERFACCIA: VISUALIZZATORE VELOCITÀ
local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(1, -20, 0, 25)
speedLabel.Position = UDim2.new(0, 10, 0, 92)
speedLabel.BackgroundTransparency = 1
speedLabel.Text = "SPEED: " .. currentSpeed
speedLabel.TextColor3 = Color3.fromRGB(200, 220, 240)
speedLabel.Font = Enum.Font.GothamBold
speedLabel.TextSize = 13
speedLabel.Parent = MainFrame

-- COSTRUZIONE PULSANTI PICCOLI DI CONTROLLO
local function styleSmallBtn(btn, text, color)
    btn.Text = text
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 14
    btn.TextColor3 = color
    btn.BackgroundColor3 = Color3.fromRGB(24, 28, 34)
    btn.BorderSizePixel = 0
    local s = Instance.new("UIStroke")
    s.Thickness = 1
    s.Color = color
    s.Parent = btn
    local c = Instance.new("UICorner")
    c.CornerRadius = UDim.new(0, 4)
    c.Parent = btn
end

local minusBtn = Instance.new("TextButton")
minusBtn.Size = UDim2.new(0, 40, 0, 32)
minusBtn.Position = UDim2.new(0, 10, 0, 128)
styleSmallBtn(minusBtn, "-", Color3.fromRGB(255, 200, 0))
minusBtn.Parent = MainFrame

local plusBtn = Instance.new("TextButton")
plusBtn.Size = UDim2.new(0, 40, 0, 32)
plusBtn.Position = UDim2.new(0, 55, 0, 128)
styleSmallBtn(plusBtn, "+", Color3.fromRGB(0, 255, 150))
plusBtn.Parent = MainFrame

local multiBtn = Instance.new("TextButton")
multiBtn.Size = UDim2.new(0, 115, 0, 32)
multiBtn.Position = UDim2.new(1, -125, 0, 128)
styleSmallBtn(multiBtn, "⚡ MOLT. 10X", Color3.fromRGB(255, 0, 255))
multiBtn.Parent = MainFrame

-- LOGICA AGGIORNAMENTO VALORI
local function updateSpeedDisplay()
    if isMultiplierOn then
        currentSpeed = baseSpeed * 10
        speedLabel.Text = "SPEED: " .. currentSpeed .. " (Molt. 10x)"
    else
        currentSpeed = baseSpeed
        speedLabel.Text = "SPEED: " .. currentSpeed
    end
end

-- ASSEGNAZIONE EVENTI NATIVI .ACTIVATED
flyButton.Activated:Connect(function()
    if flying then
        stopFlying()
        flyButton.Text = "VOLO: DISATTIVATO"
        flyButton.TextColor3 = Color3.fromRGB(255, 50, 50)
        btnStroke.Color = Color3.fromRGB(255, 50, 50)
    else
        startFlying()
        flyButton.Text = "VOLO: ATTIVO"
        flyButton.TextColor3 = Color3.fromRGB(0, 255, 150)
        btnStroke.Color = Color3.fromRGB(0, 255, 150)
    end
end)

minusBtn.Activated:Connect(function()
    if baseSpeed > 10 then
        baseSpeed = baseSpeed - 10
        updateSpeedDisplay()
    end
end)

plusBtn.Activated:Connect(function()
    if baseSpeed < 1000 then
        baseSpeed = baseSpeed + 10
        updateSpeedDisplay()
    end
end)

multiBtn.Activated:Connect(function()
    isMultiplierOn = not isMultiplierOn
    if isMultiplierOn then
        multiBtn.BackgroundColor3 = Color3.fromRGB(45, 15, 50)
        multiBtn.UIStroke.Color = Color3.fromRGB(0, 255, 255)
        multiBtn.TextColor3 = Color3.fromRGB(0, 255, 255)
    else
        multiBtn.BackgroundColor3 = Color3.fromRGB(24, 28, 34)
        multiBtn.UIStroke.Color = Color3.fromRGB(255, 0, 255)
        multiBtn.TextColor3 = Color3.fromRGB(255, 0, 255)
    end
    updateSpeedDisplay()
end)

Features & Information

clicca + per andare più veloce clicca - per andare più piano e clicca x10 per andare velocissimo
#universale#volo universale#universale volo#script volo#volo

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts