The text below is selected, press Ctrl+C to copy to your clipboard. (⌘+C on Mac) No line numbers will be copied.
Guest
funky friday autoplay script pastebin roblox
By Funky Friday on 2024-09-19 08:00 am | Syntax: LUA | Views: 13



New Script | Raw | Show/Hide line no. | Copy text to clipboard
  1. local framework;
  2. local funcs = {}
  3.  
  4. local islclosure = islclosure or is_l_closure
  5. local getinfo = getinfo or debug.getinfo
  6. local getupvalues = getupvalues or debug.getupvalues
  7. local getconstants = getconstants or debug.getconstants
  8.  
  9. for i, v in next, getgc(true) do
  10.     if type(v) == 'table' and rawget(v, 'GameUI') then
  11.         framework = v;
  12.     end
  13.  
  14.     if type(v) == 'function' and islclosure(v) then
  15.         local info = getinfo(v);
  16.         if info.name == '' then continue end
  17.        
  18.         if info.source:match('%.Arrows$') then
  19.             local constants = getconstants(v);
  20.             if table.find(constants, 'Right') and table.find(constants, 'NewThread') then
  21.                 funcs.KeyDown = v;
  22.             elseif table.find(constants, 'Multiplier') and table.find(constants, 'MuteVoices') then
  23.                 funcs.KeyUp = v;
  24.             end
  25.         end
  26.     end
  27.  
  28.     if framework and funcs.KeyUp and funcs.KeyDown then break end
  29. end
  30.  
  31. if type(framework) ~= 'table' or (not rawget(framework, 'UI')) then
  32.     return game.Players.LocalPlayer:Kick('Failed to locate framework.')
  33. elseif (not (funcs.KeyDown and funcs.KeyUp)) then
  34.     return game.Players.LocalPlayer:Kick('Failed to locate key functions.')
  35. end
  36.  
  37.  
  38. local marked = {}
  39. local map = { [0] = 'Left', [1] = 'Down', [2] = 'Up', [3] = 'Right', }
  40. local keys = { Up = Enum.KeyCode.W; Down = Enum.KeyCode.S; Left = Enum.KeyCode.A; Right = Enum.KeyCode.D; }
  41.  
  42. -- https://eryn.io/gist/3db84579866c099cdd5bb2ff37947cec
  43. -- bla bla spawn and wait are bad
  44. -- can also use bindables for the fastspawn idc
  45.  
  46. local runService = game:GetService('RunService')
  47.  
  48. local fastWait, fastSpawn do
  49.     function fastWait(t)
  50.         local d = 0;
  51.         while d < t do
  52.             d += runService.RenderStepped:wait()
  53.         end
  54.     end
  55.  
  56.     function fastSpawn(f)
  57.         coroutine.wrap(f)()
  58.     end
  59. end
  60.  
  61. while runService.RenderStepped:wait() do
  62.     for _, arrow in next, framework.UI.ActiveSections do
  63.         if arrow.Side ~= framework.UI.CurrentSide then continue end -- ignore the opponent's arrows
  64.         if marked[arrow] then continue end -- ignore marked arrows so we dont spam them
  65.        
  66.         local index = arrow.Data.Position % 4
  67.         local position = map[index] -- % 4 because the right side numbers are 4, 5, 6, 7 and are not in the key map
  68.         if (not position) then continue end -- oh well the position got eaten
  69.  
  70.         local distance = (1 - math.abs(arrow.Data.Time - framework.SongPlayer.CurrentlyPlaying.TimePosition)) * 100 -- get the "distance" or whatever
  71.         if distance >= 95 then -- if above a certain threshold, we do this
  72.             marked[arrow] = true; -- mark the arrow
  73.             fastSpawn(function()
  74.                 funcs.KeyDown(position)
  75.                 if arrow.Data.Length > 0 then
  76.                     fastWait(arrow.Data.Length) -- usually these are held long enough
  77.                 else
  78.                     fastWait(0.1) -- wait a tiny bit of time so the fucking animations play and you dont get called out as bad :)
  79.                 end
  80.                 funcs.KeyUp(position)
  81.                 marked[arrow] = nil
  82.             end)
  83.         end
  84.     end
  85. end