Really Cool Fly Script
Key RequiredUniversal

Really Cool Fly Script

Universal ScriptAuraAura 87.7K views 1.9K executesUpdated Jul 14, 2024
0.0/ 5(1 votes)
010% Positive
Lua Script•99 lines (3421 chars)
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

local flying = false
local speed = 50
local maxSpeed = 200
local minSpeed = 10
local speedIncrement = 5
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local flyConnections = {}

local function fly()
    if not flying then
        flying = true
        local bodyVelocity = Instance.new("BodyVelocity")
        bodyVelocity.Velocity = Vector3.new(0, 0, 0)
        bodyVelocity.MaxForce = Vector3.new(100000, 100000, 100000)
        bodyVelocity.Parent = humanoidRootPart

        local bodyGyro = Instance.new("BodyGyro")
        bodyGyro.CFrame = humanoidRootPart.CFrame
        bodyGyro.MaxTorque = Vector3.new(100000, 100000, 100000)
        bodyGyro.P = 3000
        bodyGyro.Parent = humanoidRootPart

        local function onRenderStep()
            local moveDirection = Vector3.new()
            if UserInputService:IsKeyDown(Enum.KeyCode.W) then
                moveDirection = moveDirection + (workspace.CurrentCamera.CFrame.LookVector * speed)
            end
            if UserInputService:IsKeyDown(Enum.KeyCode.S) then
                moveDirection = moveDirection - (workspace.CurrentCamera.CFrame.LookVector * speed)
            end
            if UserInputService:IsKeyDown(Enum.KeyCode.A) then
                moveDirection = moveDirection - (workspace.CurrentCamera.CFrame.RightVector * speed)
            end
            if UserInputService:IsKeyDown(Enum.KeyCode.D) then
                moveDirection = moveDirection + (workspace.CurrentCamera.CFrame.RightVector * speed)
            end
            if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
                moveDirection = moveDirection + (workspace.CurrentCamera.CFrame.UpVector * speed)
            end
            if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
                moveDirection = moveDirection - (workspace.CurrentCamera.CFrame.UpVector * speed)
            end

            bodyVelocity.Velocity = moveDirection
            bodyGyro.CFrame = workspace.CurrentCamera.CFrame
        end

        table.insert(flyConnections, RunService.RenderStepped:Connect(onRenderStep))
    end
end

local function stopFly()
    flying = false
    for _, v in pairs(humanoidRootPart:GetChildren()) do
        if v:IsA("BodyVelocity") or v:IsA("BodyGyro") then
            v:Destroy()
        end
    end
    for _, connection in pairs(flyConnections) do
        connection:Disconnect()
    end
    flyConnections = {}
end

local function toggleFly()
    if flying then
        stopFly()
    else
        fly()
    end
end

local function adjustSpeed(increment)
    speed = math.clamp(speed + increment, minSpeed, maxSpeed)
end

UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.G then
        toggleFly()
    elseif input.KeyCode == Enum.KeyCode.Equals then
        adjustSpeed(speedIncrement)
    elseif input.KeyCode == Enum.KeyCode.Minus then
        adjustSpeed(-speedIncrement)
    end
end)

player.CharacterAdded:Connect(function(newCharacter)
    character = newCharacter
    humanoidRootPart = character:WaitForChild("HumanoidRootPart")
    stopFly()
end)

player.CharacterRemoving:Connect(stopFly)

Features & Information

Toggle Fly: G Increase Speed keep pressing Equal Decrease Speed keep pressing Minus Join the Discord Fam discord.gg/nWbqsUDcQx
#Fly#Universal

Community Comments (1)

RAIGINATORRAIGINATORJul 18, 2024(edited)

i made a script like this nice script anyways

More Scripts for Universal Scripts