Fe animation
Key Required

Fe animation

Brookhaven 🏡RPDizzilovellDizzilovell 15K views 58 executesUpdated Jul 21, 2025
Unrated
00
Lua Script•144 lines (4557 chars)
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")

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

local flying = true
local speed = 50

local moveDirection = Vector3.new(0,0,0)

local keys = {
    W = false,
    A = false,
    S = false,
    D = false,
    Space = false,
    LeftControl = false,
}

-- Create BodyVelocity
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(1e5,1e5,1e5)
bodyVelocity.Velocity = Vector3.new(0,0,0)
bodyVelocity.Parent = rootPart

local function updateMoveDirection()
    local camCFrame = workspace.CurrentCamera.CFrame
    local forward = camCFrame.LookVector
    local right = camCFrame.RightVector
    local up = Vector3.new(0,1,0)

    local dir = Vector3.new(0,0,0)

    if keys.W then dir = dir + forward end
    if keys.S then dir = dir - forward end
    if keys.A then dir = dir - right end
    if keys.D then dir = dir + right end
    if keys.Space then dir = dir + up end
    if keys.LeftControl then dir = dir - up end

    if dir.Magnitude > 0 then
        moveDirection = dir.Unit
    else
        moveDirection = Vector3.new(0,0,0)
    end
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.UserInputType == Enum.UserInputType.Keyboard then
        local key = input.KeyCode.Name
        if keys[key] ~= nil then
            keys[key] = true
            updateMoveDirection()
        end
    end
end)

UserInputService.InputEnded:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    if input.UserInputType == Enum.UserInputType.Keyboard then
        local key = input.KeyCode.Name
        if keys[key] ~= nil then
            keys[key] = false
            updateMoveDirection()
        end
    end
end)

-- MOBILE BUTTONS SETUP --
if UserInputService.TouchEnabled then
    local screenGui = Instance.new("ScreenGui")
    screenGui.Name = "FlyControls"
    screenGui.Parent = player:WaitForChild("PlayerGui")

    local function createButton(name, pos, text)
        local btn = Instance.new("TextButton")
        btn.Name = name
        btn.Size = UDim2.new(0, 60, 0, 60)
        btn.Position = pos
        btn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
        btn.BackgroundTransparency = 0.5
        btn.TextColor3 = Color3.new(1,1,1)
        btn.Text = text
        btn.Parent = screenGui
        btn.AutoButtonColor = true
        btn.Font = Enum.Font.SourceSansBold
        btn.TextScaled = true
        return btn
    end

    -- Create buttons for controls
    local btnW = createButton("W", UDim2.new(0.1, 0, 0.7, 0), "↑")
    local btnA = createButton("A", UDim2.new(0.02, 0, 0.8, 0), "←")
    local btnS = createButton("S", UDim2.new(0.1, 0, 0.85, 0), "↓")
    local btnD = createButton("D", UDim2.new(0.18, 0, 0.8, 0), "→")
    local btnUp = createButton("Space", UDim2.new(0.9, 0, 0.75, 0), "↑Up")
    local btnDown = createButton("LeftControl", UDim2.new(0.9, 0, 0.85, 0), "↓Down")

    -- Helper function to handle touch input for buttons
    local function buttonTouch(btn, key)
        btn.TouchStarted:Connect(function()
            keys[key] = true
            updateMoveDirection()
        end)
        btn.TouchEnded:Connect(function()
            keys[key] = false
            updateMoveDirection()
        end)
        btn.TouchMoved:Connect(function(touch)
            -- In case finger moves off button, reset
            local pos = touch.Position
            local absPos = btn.AbsolutePosition
            local size = btn.AbsoluteSize
            if pos.X < absPos.X or pos.X > absPos.X + size.X or pos.Y < absPos.Y or pos.Y > absPos.Y + size.Y then
                keys[key] = false
                updateMoveDirection()
            end
        end)
    end

    buttonTouch(btnW, "W")
    buttonTouch(btnA, "A")
    buttonTouch(btnS, "S")
    buttonTouch(btnD, "D")
    buttonTouch(btnUp, "Space")
    buttonTouch(btnDown, "LeftControl")
end

-- Main loop
RunService.RenderStepped:Connect(function()
    if flying then
        bodyVelocity.Velocity = moveDirection * speed
        humanoid.PlatformStand = true
    else
        bodyVelocity.Velocity = Vector3.new(0,0,0)
        humanoid.PlatformStand = false
    end
end)

Features & Information

Plays a animation thats fe fe animation

Community Comments (0)

No comments yet for this script.

More Scripts for Brookhaven 🏡RP