Robeats autoplayer.
Key Required

Robeats autoplayer.

[⚡NEW] RoBeats! 🎧 Music + Rhythm + RPGTRGTJHTKJFYLYUYKMNTRGTJHTKJFYLYUYKMN 195.4K views 376 executesUpdated Nov 5, 2023
3.8/ 5(4 votes)
3175% Positive
Lua Script•145 lines (5542 chars)
--// variables

local player = game:GetService("Players").LocalPlayer;

local accuracy_bounds = {
    Perfect = -0, 
    Great = -100,
    Okay = -100
};

local accuracy_names = {"Perfect", "Great", "Okay"};

local accuracy = shared.accuracy or "Perfect"; -- Perfect, Great, Okay, Random
local note_time_target = accuracy_bounds[accuracy];

local track_system;

--// functions 

local function get_track_action_functions(track_system)
    local press_track, release_track; 
    
    for index, track_function in next, track_system do 
        if type(track_function) == "function" then 
            local constants = getconstants(track_function);
            
            if table.find(constants, "press") then 
                press_track = track_function;
                
                if release_track then 
                    break; 
                end;
            elseif table.find(constants, "release") then 
                release_track = track_function;
                
                if press_track then 
                    break; 
                end;
            end;
        end;
    end;
    
    return press_track, release_track;
end;

local function get_local_track_system(session)
    local local_slot_index = getupvalue(session.set_local_game_slot, 1);
    
    for index, session_function in next, session do 
        if type(session_function) == "function" then 
            local object = getupvalues(session_function)[1];
            
            if type(object) == "table" and rawget(object, "count") and object:count() <= 4 then 
                return object:get(local_slot_index);
            end;
        end;
    end;
end;

--// get tracksystem 

for index, module in next, getloadedmodules() do 
    local module_value = require(module);
    
    if type(module_value) == "table" then 
        local new_function = rawget(module_value, "new");
        
        if new_function then 
            local first_upvalue = getupvalues(new_function)[1];
            
            if type(first_upvalue) == "table" and rawget(first_upvalue, "twister") then 
                track_system = module_value;
                
                break;
            end;
        end;
    end;
end;

--// main autoplayer 

local old_track_system_new = track_system.new;
track_system.new = function(...)
    local track_functions = old_track_system_new(...);
    local arguments = {...};
    
    if arguments[2]._players._slots:get(arguments[3])._name == player.Name then -- make sure its only autoplaying your notes if in multiplayer
        for index, track_function in next, track_functions do 
            local upvalues = getupvalues(track_function);
            
            if type(upvalues[1]) == "table" and rawget(upvalues[1], "profilebegin") then 
                local notes_table = upvalues[2];
                
                track_functions[index] = function(self, slot, session)
                    local local_track_system = get_local_track_system(session);
                    local press_track, release_track = get_track_action_functions(local_track_system);
                    
                    local test_press_name = getconstant(press_track, 10);
                    local test_release_name = getconstant(release_track, 6);
                    
                    if accuracy == "Random" then 
                        note_time_target = accuracy_bounds[accuracy_names[math.random(1, 3)]];
                    end;
    
                    for note_index = 1, notes_table:count() do 
                        local note = notes_table:get(note_index);
                        
                        if note then 
                            local test_press, test_release = note[test_press_name], note[test_release_name];
                            
                            local note_track_index = note:get_track_index(note_index);
                            local pressed, press_result, press_delay = test_press(note);
                            
                            if pressed and press_delay >= note_time_target then
                                press_track(local_track_system, session, note_track_index);
                                
                                session:debug_any_press();
                                
                                if rawget(note, "get_time_to_end") then -- if its not a long note then release right after
                                    delay(math.random(5, 18) / 100, function()
                                        release_track(local_track_system, session, note_track_index);
                                    end);
                                end;
                            end;
                            
                            if test_release then 
                                local released, release_result, release_delay = test_release(note);
                                
                                if released and release_delay >= note_time_target then 
                                    delay(math.random(2, 5) / 100, function()
                                        release_track(local_track_system, session, note_track_index);
                                    end);
                                end;
                            end;
                        end;
                    end;
                    
                    return track_function(self, slot, session);
                end;
            end;
        end;
    end;
    
    return track_functions;
end;

Features & Information

Robeats autoplayer, dont use this for leaderboard stuff. it ruins the game. to make this work with android or an android emulatour inject a keyboard script, my favourite is the delta one

Community Comments (4)

sebastiancharry1676sebastiancharry1676Nov 7, 2023(edited)

Can you send me the keyboard script for mobile?

santirodriguezu10santirodriguezu10Mar 26, 2024(edited)

Does this work for mobile?

palmpalmJul 4, 2024(edited)

Yes bro it literally says

nyxianyxiaOct 15, 2025

still works

More Scripts for [⚡NEW] RoBeats! 🎧 Music + Rhythm + RPG