thatpastebinner

FUNKY FRIDAY AUTOPLAY REUPLOAD

Jun 7th, 2021
10,163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.99 KB | None | 0 0
  1. -- updated 5/12/21
  2. -- should choke less
  3.  
  4. -- updated 5/16/21
  5. -- should ignore invisible notes
  6. -- added hit chances and a toggle
  7. -- hit chances are a bit rough but should work good enough
  8.  
  9. -- only tested on Synapse X
  10. -- moved ui to github & removed the kick
  11.  
  12. -- for "free exploit" developers
  13. -- you need the following functions
  14. -- loadstring, HttpGet, getgc, getloadedmodules, getconnections, and set_thread_identity or whatever you call it
  15.  
  16. local library = loadstring(game:HttpGet("https://raw.githubusercontent.com/wally-rblx/uwuware-ui/main/main.lua"))()
  17.  
  18. local framework, scrollHandler
  19. while true do
  20.     for _, obj in next, getgc(true) do
  21.         if type(obj) == 'table' and rawget(obj, 'GameUI') then
  22.             framework = obj;
  23.             break
  24.         end
  25.     end
  26.  
  27.     for _, module in next, getloadedmodules() do
  28.         if module.Name == 'ScrollHandler' then
  29.             scrollHandler = module;
  30.             break;
  31.         end
  32.     end
  33.  
  34.     if (type(framework) == 'table') and (typeof(scrollHandler) == 'Instance') then
  35.         break
  36.     end
  37.  
  38.     wait(1)
  39. end
  40.  
  41. local runService = game:GetService('RunService')
  42. local userInputService = game:GetService('UserInputService')
  43. local client = game:GetService('Players').LocalPlayer;
  44. local random = Random.new()
  45.  
  46. local fastWait, fastSpawn, fireSignal, rollChance do
  47.     -- https://eryn.io/gist/3db84579866c099cdd5bb2ff37947cec
  48.     -- bla bla spawn and wait are bad
  49.     -- can also use bindables for the fastspawn idc
  50.  
  51.     function fastWait(t)
  52.         local d = 0;
  53.         while d < t do
  54.             d += runService.RenderStepped:wait()
  55.         end
  56.     end
  57.  
  58.     function fastSpawn(f)
  59.         coroutine.wrap(f)()
  60.     end
  61.    
  62.     -- updated for script-ware or whatever
  63.     -- attempted to update for krnl
  64.     local set_identity = (type(syn) == 'table' and syn.set_thread_identity) or setidentity or setthreadcontext
  65.     function fireSignal(target, signal, ...)
  66.         -- getconnections with InputBegan / InputEnded does not work without setting Synapse to the game's context level
  67.         set_identity(2)
  68.         for _, signal in next, getconnections(signal) do
  69.             if type(signal.Function) == 'function' and islclosure(signal.Function) then
  70.                 local scr = rawget(getfenv(signal.Function), 'script')
  71.                 if scr == target then
  72.                     pcall(signal.Function, ...)
  73.                 end
  74.             end
  75.         end
  76.         set_identity(7)
  77.     end
  78.  
  79.     -- uses a weighted random system
  80.     -- its a bit scuffed rn but it works good enough
  81.  
  82.     function rollChance()
  83.         local chances = {
  84.             { type = 'Sick', value = library.flags.sickChance },
  85.             { type = 'Good', value = library.flags.goodChance },
  86.             { type = 'Ok', value = library.flags.okChance },
  87.             { type = 'Bad', value = library.flags.badChance },
  88.         }
  89.        
  90.         table.sort(chances, function(a, b)
  91.             return a.value > b.value
  92.         end)
  93.  
  94.         local sum = 0;
  95.         for i = 1, #chances do
  96.             sum += chances[i].value
  97.         end
  98.  
  99.         if sum == 0 then
  100.             -- forgot to change this before?
  101.             -- fixed 6/5/21
  102.             return chances[random:NextInteger(1, 4)].type
  103.         end
  104.  
  105.         local initialWeight = random:NextInteger(0, sum)
  106.         local weight = 0;
  107.  
  108.         for i = 1, #chances do
  109.             weight = weight + chances[i].value
  110.  
  111.             if weight > initialWeight then
  112.                 return chances[i].type
  113.             end
  114.         end
  115.  
  116.         return 'Sick' -- just incase it fails?
  117.     end
  118. end
  119.  
  120. local map = { [0] = 'Left', [1] = 'Down', [2] = 'Up', [3] = 'Right', }
  121. local keys = { Up = Enum.KeyCode.Up; Down = Enum.KeyCode.Down; Left = Enum.KeyCode.Left; Right = Enum.KeyCode.Right; }
  122.  
  123. -- they are "weird" because they are in the middle of their Upper & Lower ranges
  124. -- should hopefully make them more precise!
  125. local chanceValues = {
  126.     Sick = 96,
  127.     Good = 92,
  128.     Ok = 87,
  129.     Bad = 77,
  130. }
  131.  
  132. local marked = {}
  133. local hitChances = {}
  134.  
  135. if shared._id then
  136.     pcall(runService.UnbindFromRenderStep, runService, shared._id)
  137. end
  138.  
  139. shared._id = game:GetService('HttpService'):GenerateGUID(false)
  140. runService:BindToRenderStep(shared._id, 1, function()
  141.     if (not library.flags.autoPlayer) then return end
  142.  
  143.     for i, arrow in next, framework.UI.ActiveSections do
  144.         if (arrow.Side == framework.UI.CurrentSide) and (not marked[arrow]) then
  145.             local indice = (arrow.Data.Position % 4) -- mod 4 because 5%4 -> 0, 6%4 = 1, etc
  146.             local position = map[indice]
  147.            
  148.             if (position) then
  149.                 local currentTime = framework.SongPlayer.CurrentlyPlaying.TimePosition
  150.                 local distance = (1 - math.abs(arrow.Data.Time - currentTime)) * 100
  151.  
  152.                 if (arrow.Data.Time == 0) then
  153.                 --  print('invisible', tableToString(arrow.Data), i, distance)
  154.                     continue
  155.                 end
  156.  
  157.                 local hitChance = hitChances[arrow] or rollChance()
  158.                 hitChances[arrow] = hitChance
  159.  
  160.                 -- if (not chanceValues[hitChance]) then warn('invalid chance', hitChance) end
  161.                 if distance >= chanceValues[hitChance] then
  162.                     marked[arrow] = true;
  163.                     fireSignal(scrollHandler, userInputService.InputBegan, { KeyCode = keys[position], UserInputType = Enum.UserInputType.Keyboard }, false)
  164.  
  165.                     -- wait depending on the arrows length so the animation can play
  166.                     if arrow.Data.Length > 0 then
  167.                         fastWait(arrow.Data.Length)
  168.                     else
  169.                         fastWait(0.075) -- 0.1 seems to make it miss more, this should be fine enough?
  170.                     end
  171.  
  172.                     fireSignal(scrollHandler, userInputService.InputEnded, { KeyCode = keys[position], UserInputType = Enum.UserInputType.Keyboard }, false)
  173.                     marked[arrow] = false;
  174.                 end
  175.             end
  176.         end
  177.     end
  178. end)
  179.  
  180. local window = library:CreateWindow('Funky Friday') do
  181.     local folder = window:AddFolder('Main') do
  182.         folder:AddToggle({ text = 'Autoplayer', flag = 'autoPlayer' })
  183.  
  184.         folder:AddSlider({ text = 'Sick %', flag = 'sickChance', min = 0, max = 100, value = 100 })
  185.         folder:AddSlider({ text = 'Good %', flag = 'goodChance', min = 0, max = 100, value = 0 })
  186.         folder:AddSlider({ text = 'Ok %', flag = 'okChance', min = 0, max = 100, value = 0 })
  187.         folder:AddSlider({ text = 'Bad %', flag = 'badChance', min = 0, max = 100, value = 0 })
  188.     end
  189.  
  190.     local folder = window:AddFolder('Credits') do
  191.         folder:AddLabel({ text = 'Credits' })
  192.         folder:AddLabel({ text = 'Jan - UI library' })
  193.         folder:AddLabel({ text = 'wally - Script' })
  194.     end
  195. end
  196.  
  197.  
  198. library:Init()
Advertisement
Add Comment
Please, Sign In to add comment