AutoPlayer All Perfection
Key Required

AutoPlayer All Perfection

Basically FNF: RemixPotatoGuyPotatoGuy 5.8K views 19K executesUpdated Apr 29, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•152 lines (5192 chars)
local v0 = game:GetService("RunService");
local v1 = game:GetService("VirtualInputManager");
local v2 = game:GetService("Players");
local v3 = game:GetService("TweenService");

local v4 = {
    KeyBinds = {[1] = Enum.KeyCode.A, [2] = Enum.KeyCode.S, [3] = Enum.KeyCode.W, [4] = Enum.KeyCode.D},
    HitPixels = 15, 
    TapDuration = 0.05,
};

local v5 = v2.LocalPlayer;
local v6 = {}; 
local v7 = {}; 
local v8 = false;
local v_minimized = false;
local mainLoop = nil;

-- GUI SETUP
local v9 = Instance.new("ScreenGui", v5:WaitForChild("PlayerGui"));
v9.Name = "AutoPlayer_Final_V3";
v9.ResetOnSpawn = false;

local v15 = Instance.new("Frame", v9);
v15.Size = UDim2.new(0, 200, 0, 120);
v15.Position = UDim2.new(0.5, -100, 0.5, -60);
v15.BackgroundColor3 = Color3.fromRGB(35, 35, 35);
v15.BorderSizePixel = 0;
v15.Active = true;
v15.Draggable = true;
v15.ClipsDescendants = true; -- Keeps the button hidden when collapsed

local TopBar = Instance.new("Frame", v15);
TopBar.Size = UDim2.new(1, 0, 0, 30);
TopBar.BackgroundColor3 = Color3.fromRGB(25, 25, 25);
TopBar.BorderSizePixel = 0;

local Title = Instance.new("TextLabel", TopBar);
Title.Size = UDim2.new(1, -70, 1, 0);
Title.Position = UDim2.new(0, 10, 0, 0);
Title.BackgroundTransparency = 1;
Title.Text = "AutoPlayer";
Title.TextColor3 = Color3.new(1, 1, 1);
Title.Font = Enum.Font.GothamBold;
Title.TextSize = 15;
Title.TextXAlignment = Enum.TextXAlignment.Left;

-- BUTTONS
local CloseBtn = Instance.new("TextButton", TopBar);
CloseBtn.Size = UDim2.new(0, 30, 0, 30);
CloseBtn.Position = UDim2.new(1, -30, 0, 0);
CloseBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50);
CloseBtn.BorderSizePixel = 0;
CloseBtn.Text = "X";
CloseBtn.TextColor3 = Color3.new(1, 1, 1);

local MinBtn = Instance.new("TextButton", TopBar);
MinBtn.Size = UDim2.new(0, 30, 0, 30);
MinBtn.Position = UDim2.new(1, -60, 0, 0);
MinBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60);
MinBtn.BorderSizePixel = 0;
MinBtn.Text = "-"; -- Start as minus
MinBtn.TextColor3 = Color3.new(1, 1, 1);
MinBtn.TextSize = 18;

local v36 = Instance.new("TextButton", v15);
v36.Size = UDim2.new(0.85, 0, 0, 50);
v36.Position = UDim2.new(0.075, 0, 0.45, 0);
v36.BackgroundColor3 = Color3.fromRGB(50, 50, 50);
v36.Text = "OFF";
v36.TextColor3 = Color3.new(1, 1, 1);
v36.Font = Enum.Font.GothamBold;
v36.TextSize = 22; -- Match button size

-- CLICK ENGINE
local function handleNote(arrowIdx)
    if v7[arrowIdx] then return end 
    v7[arrowIdx] = true
    
    task.spawn(function()
        local key = v4.KeyBinds[arrowIdx]
        v1:SendKeyEvent(true, key, false, game)
        task.wait(v4.TapDuration)
        v1:SendKeyEvent(false, key, false, game)
        v7[arrowIdx] = nil 
    end)
end

local function getMyKeySync()
    local Match = v5.PlayerGui:FindFirstChild("Main") and v5.PlayerGui.Main:FindFirstChild("MatchFrame")
    if not (Match and Match.Visible) then return nil end
    local playerVal = v5:FindFirstChild("File") and v5.File:FindFirstChild("CurrentPlayer")
    if playerVal and playerVal.Value then
        local side = (playerVal.Value.Name == "Player2") and "KeySync2" or "KeySync1"
        return Match:FindFirstChild(side)
    end
    return nil
end

local function startLoop()
    if mainLoop then mainLoop:Disconnect() end
    mainLoop = v0.Heartbeat:Connect(function()
        if not v8 then return end
        local KeySync = getMyKeySync()
        if not (KeySync and KeySync.Visible) then return end
        
        for i = 1, 4 do
            local folder = KeySync:FindFirstChild("Arrow"..i)
            local receptor = folder and folder:FindFirstChild("Arrow")
            local notes = folder and folder:FindFirstChild("Notes")
            
            if receptor and notes then
                local targetY = receptor.AbsolutePosition.Y
                for _, note in pairs(notes:GetChildren()) do
                    if not note:IsA("GuiObject") or not note.Visible or note.Name == "Arrow" or v6[note] then continue end
                    
                    if math.abs(note.AbsolutePosition.Y - targetY) <= v4.HitPixels then
                        v6[note] = true 
                        handleNote(i)
                        note.AncestryChanged:Once(function() v6[note] = nil end)
                    end
                end
            end
        end
    end)
end

-- BUTTON EVENTS
v36.MouseButton1Click:Connect(function()
    v8 = not v8
    v36.Text = v8 and "ON" or "OFF"
    v3:Create(v36, TweenInfo.new(0.2), {BackgroundColor3 = v8 and Color3.fromRGB(40, 150, 40) or Color3.fromRGB(50, 50, 50)}):Play()
    if v8 then startLoop() else if mainLoop then mainLoop:Disconnect() end end
end)

MinBtn.MouseButton1Click:Connect(function()
    v_minimized = not v_minimized
    
    -- Swap Text Symbol
    MinBtn.Text = v_minimized and "+" or "-"
    
    -- Smooth Resize
    local targetSize = v_minimized and UDim2.new(0, 200, 0, 30) or UDim2.new(0, 200, 0, 120)
    v15:TweenSize(targetSize, "Out", "Quad", 0.25, true)
    
    -- Toggle main button visibility
    v36.Visible = not v_minimized
end)

CloseBtn.MouseButton1Click:Connect(function()
    v8 = false; if mainLoop then mainLoop:Disconnect() end; v9:Destroy()
end)

Features & Information

Auto Player All Perfection Toggle On and Off Disclaimer: The Hold note bug i tried to fix it but nothing worked and i gave up after that, so im sorry and i apologize, also, Change your Key Controls to A S W D For it to Work. Will be updated soon
#Basically FNF Remix

Community Comments (6)

PotatoGuyPotatoGuyApr 29, 2026

You guys can change the TapDuration - [Any Numbers you want] either like TapDuration = 0.01 is OP

SansmanSansmanMay 2, 2026

I hope you'll update.

Replying to @Sansman
PotatoGuyPotatoGuyMay 8, 2026

@Sansman soon means 10 years or never

make an account to say its pretty good 👍🏿

SansmanSansmanMay 9, 2026

I am dead.

magi_tkmagi_tkSep 12, 2026

it doesnt hold when the long arrow came. fix ts. bc is so fire bro

More Scripts for Basically FNF: Remix