-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6a535ade21bf3453cf1f290e"))() end) end) --[[rscripts:analytics:end]] local ReplicatedStorage = game:GetService("ReplicatedStorage") local TaskDelay = task.delay local Random = Random.new(os.clock() + math.random(1, 10000)) local RhythmModule = require( ReplicatedStorage.Modules.Charts.RhythmModule ) local CreateWaves = getupvalue(RhythmModule.BeginBeatmap, 55) local TimeWindow = getupvalue(CreateWaves, 13) local Setup = RhythmModule.Setup local OnInputBegan = getupvalue(Setup, 29) local OnInputEnded = getupvalue(Setup, 30) local EnumInput = Enum.UserInputType local EnumKey = Enum.KeyCode local FakeInput = table.freeze({ UserInputType = EnumInput.MouseButton1 }) local FakeInput2 = table.freeze({ UserInputType = EnumInput.MouseButton2 }) local FakeSpace = table.freeze({ UserInputType = EnumInput.Keyboard, KeyCode = EnumKey.Space }) local ClickWaitingForRelease = false local Assist = false local function EndInput(input) OnInputEnded(input) end local function DelayedRelease(input, delayTime) TaskDelay(delayTime, EndInput, input) end local function Space() OnInputBegan(FakeSpace, false) TaskDelay( Random:NextNumber(0.003, 0.004), EndInput, FakeSpace ) end local function Click() if ClickWaitingForRelease then Space() return end ClickWaitingForRelease = true OnInputBegan(FakeInput, false) TaskDelay( Random:NextNumber(0.003, 0.004), function() ClickWaitingForRelease = false EndInput(FakeInput) end ) end local function Hold(length) OnInputBegan(FakeInput2, false) TaskDelay( length, EndInput, FakeInput2 ) end ReplicatedStorage.Bindables.Rhythm.ModifierApplied.Event:Connect(function(mod) Assist = mod == "Assist" end) local old old = hookfunction( TimeWindow, newcclosure(function(dif, _, delayTime, noteData, ...) if noteData then local multiplier = Assist and 1.75 or 1 local perfectTiming = ( 0.063 - math.clamp(dif, 0, 10) * 0.00135 ) * multiplier -- Gaussian-ish random (-1 to 1, centered around 0) local randomFactor = ( Random:NextNumber() + Random:NextNumber() + Random:NextNumber() ) / 3 randomFactor = (randomFactor - 0.5) * 2 local offset = randomFactor * perfectTiming local wave = noteData.Wave if wave == "Hold" then TaskDelay( delayTime + offset, function() Hold(noteData.HoldLength) end ) elseif wave ~= "Dodge" and wave ~= "Trace" then TaskDelay(delayTime + offset, Click) end end return old(dif, _, delayTime, noteData, ...) end) )