Run it
Copy the script and paste it into your executor.
Players = :()
UIS = :()
RunService = :()
player = Players.LocalPlayer
NOTE_SPEED =
NOTE_COLOR = .(,,)
HIT_WINDOW =
NOTE_SIZE =
BUTTON_SIZE =
MIN_DELAY =
MAX_DELAY =
MULTI_NOTE_DELAY =
score =
combo =
misses =
notes = {}
playing =
paused =
mode =
resumeTimer =
isResuming =
spawnTimer =
spawnDelay = .(MIN_DELAY * , MAX_DELAY * ) /
gameTime =
timerRunning =
notesHit =
notesSpawned =
hitSoundId =
hitSound = .()
hitSound.Parent = player:()
hitSound.Volume =
gui = .()
gui.Parent = player.PlayerGui
gui.ResetOnSpawn =
resultFrame = .(, gui)
resultFrame.Size = .(,)
resultFrame.Position = .(,)
resultFrame.BackgroundColor3 = .(,,)
resultFrame.Visible =
.(, resultFrame).CornerRadius = .(,)
resultTitle = .(, resultFrame)
resultTitle.Size = .(,)
resultTitle.Position = .(,)
resultTitle.BackgroundTransparency =
resultTitle.Text =
resultTitle.TextScaled =
resultTitle.TextColor3 = .(,,)
resultText = .(, resultFrame)
resultText.Size = .(,)
resultText.Position = .(,)
resultText.BackgroundTransparency =
resultText.TextScaled =
resultText.TextColor3 = .(,,)
resultText.Text =
replayBtn = .(, resultFrame)
replayBtn.Size = .(,)
replayBtn.Position = .(,)
replayBtn.Text =
replayBtn.TextScaled =
replayBtn.BackgroundColor3 = .(,,)
menu = .(, gui)
menu.Size = .(,)
menu.Position = .(,)
menu.BackgroundColor3 = .(,,)
menu.Visible =
.(, menu).CornerRadius = .(,)
menuTitle = .(, menu)
menuTitle.Size = .(,)
menuTitle.Position = .(,)
menuTitle.BackgroundTransparency =
menuTitle.Text =
menuTitle.TextScaled =
menuTitle.TextColor3 = .(,,)
playBtn = .(, menu)
playBtn.Size = .(,)
playBtn.Position = .(,)
playBtn.Text =
playBtn.TextScaled =
playBtn.BackgroundColor3 = .(,,)
settingsBtn = .(, menu)
settingsBtn.Size = .(,)
settingsBtn.Position = .(,)
settingsBtn.Text =
settingsBtn.TextScaled =
settingsBtn.BackgroundColor3 = .(,,)
menuBackBtn = .(, menu)
menuBackBtn.Size = .(,)
menuBackBtn.Position = .(,)
menuBackBtn.Text =
menuBackBtn.TextScaled =
menuBackBtn.BackgroundColor3 = .(,,)
settings = .(, gui)
settings.Size = .(,)
settings.Position = .(,)
settings.BackgroundColor3 = .(,,)
settings.Visible =
.(, settings).CornerRadius = .(,)
settingsTitle = .(, settings)
settingsTitle.Size = .(,)
settingsTitle.Position = .(,)
settingsTitle.BackgroundTransparency =
settingsTitle.Text =
settingsTitle.TextScaled =
settingsTitle.TextColor3 = .(,,)
speedLabel = .(, settings)
speedLabel.Size = .(,)
speedLabel.Position = .(,)
speedLabel.BackgroundTransparency =
speedLabel.Text = ..NOTE_SPEED
speedLabel.TextScaled =
speedLabel.TextColor3 = .(,,)
speedUp = .(, settings)
speedUp.Size = .(,)
speedUp.Position = .(,)
speedUp.Text =
speedUp.TextScaled =
speedUp.BackgroundColor3 = .(,,)
speedDown = .(, settings)
speedDown.Size = .(,)
speedDown.Position = .(,)
speedDown.Text =
speedDown.TextScaled =
speedDown.BackgroundColor3 = .(,,)
speedUp.MouseButton1Click:(()
NOTE_SPEED +=
speedLabel.Text = ..NOTE_SPEED
)
speedDown.MouseButton1Click:(()
NOTE_SPEED >
NOTE_SPEED -=
speedLabel.Text = ..NOTE_SPEED
)
colorLabel = .(, settings)
colorLabel.Size = .(,)
colorLabel.Position = .(,)
colorLabel.BackgroundTransparency =
colorLabel.Text =
colorLabel.TextScaled =
colorLabel.TextColor3 = .(,,)
colors = {
{.(,,), },
{.(,,), },
{.(,,), },
{.(,,), },
{.(,,), },
{.(,,), },
{.(,,), },
{.(,,), }
}
i, v (colors)
btn = .(, settings)
btn.Size = .(,)
btn.Position = .( + ((i-)%)*, + .((i-)/)*)
btn.Text = v[]
btn.TextScaled =
btn.BackgroundColor3 = v[]
btn.MouseButton1Click:(()
NOTE_COLOR = v[]
)
soundLabel = .(, settings)
soundLabel.Size = .(,)
soundLabel.Position = .(,)
soundLabel.BackgroundTransparency =
soundLabel.Text =
soundLabel.TextScaled =
soundLabel.TextColor3 = .(,,)
soundBox = .(, settings)
soundBox.Size = .(,)
soundBox.Position = .(,)
soundBox.PlaceholderText =
soundBox.TextScaled =
soundBox.TextColor3 = .(,,)
soundBox.BackgroundColor3 = .(,,)
soundApply = .(, settings)
soundApply.Size = .(,)
soundApply.Position = .(,)
soundApply.Text =
soundApply.TextScaled =
soundApply.BackgroundColor3 = .(,,)
soundApply.MouseButton1Click:(()
id = soundBox.Text
id ~=
hitSoundId = id
hitSound.SoundId = .. hitSoundId
)
backToMenu = .(, settings)
backToMenu.Size = .(,)
backToMenu.Position = .(,)
backToMenu.Text =
backToMenu.TextScaled =
backToMenu.BackgroundColor3 = .(,,)
backToMenu.MouseButton1Click:(()
settings.Visible =
menu.Visible =
)
main = .(, gui)
main.Size = .(, )
main.Position = .(, )
main.BackgroundColor3 = .(,,)
main.Visible =
.(, main).CornerRadius = .(,)
toggle = .(, gui)
toggle.Size = .(,)
toggle.Position = .(,)
toggle.Text =
toggle.TextScaled =
toggle.BackgroundColor3 = .(,,)
toggle.Active =
toggle.Draggable =
.(, toggle).CornerRadius = .(,)
.(, toggle).AspectRatio =
toggle.MouseButton1Click:(()
main.Visible = main.Visible
menu.Visible =
settings.Visible =
resultFrame.Visible =
main.Visible playing
playing =
timerRunning =
)
info = .(, main)
info.Size = .(,)
info.BackgroundTransparency =
info.TextColor3 = .(,,)
info.TextScaled =
modeLabel = .(, main)
modeLabel.Size = .(,)
modeLabel.Position = .(,)
modeLabel.BackgroundTransparency =
modeLabel.TextColor3 = .(,,)
modeLabel.TextScaled =
modeLabel.Text =
()
score =
combo =
misses =
notesHit =
notesSpawned =
gameTime =
timerRunning =
paused =
isResuming =
_, v (notes)
v.obj:()
notes = {}
()
playing =
timerRunning =
paused =
isResuming =
pauseBtn = .(, main)
pauseBtn.Size = .(,)
pauseBtn.Position = .(,)
pauseBtn.Text =
pauseBtn.TextScaled =
pauseBtn.BackgroundColor3 = .(,,)
pauseBtn.MouseButton1Click:(()
isResuming
paused
isResuming =
resumeTimer =
pauseBtn.Text =
paused =
pauseBtn.Text =
_, v (notes)
v.obj:()
notes = {}
)
(text, pos)
btn = .(, main)
btn.Size = .(,)
btn.Position = pos
btn.Text = text
btn.TextScaled =
btn.BackgroundColor3 = .(,,)
btn.MouseButton1Click:(()
mode = text
modeLabel.Text = ..text
()
)
btn
(, .(,))
(, .(,))
(, .(,))
(, .(,))
menuBtn = .(, main)
menuBtn.Size = .(,)
menuBtn.Position = .(,)
menuBtn.Text =
menuBtn.TextScaled =
menuBtn.BackgroundColor3 = .(,,)
menuBtn.MouseButton1Click:(()
menu.Visible =
main.Visible =
settings.Visible =
resultFrame.Visible =
)
hitLine = .(, main)
hitLine.Size = .(,)
hitLine.Position = .(,)
hitLine.BackgroundColor3 = .(,,)
lanes = {}
keys = {,,,}
i = ,
lane = .(, main)
lane.Size = .(,)
lane.Position = .((i-)*,)
lane.BackgroundTransparency =
lanes[i] = lane
btn = .(, main)
btn.Size = .(BUTTON_SIZE,BUTTON_SIZE)
btn.Position = .((i-)* + ,)
btn.AnchorPoint = .(,)
btn.Text = keys[i]
btn.TextScaled =
btn.TextColor3 = .(,,)
btn.BackgroundColor3 = .(,,)
.(, btn).CornerRadius = .(,)
.(, btn).AspectRatio =
btn.MouseButton1Click:(()
(i)
)
(laneIndex)
note = .()
note.Size = .(NOTE_SIZE,NOTE_SIZE)
note.Position = .(,-)
note.AnchorPoint = .(,)
note.BackgroundColor3 = NOTE_COLOR
note.Parent = lanes[laneIndex]
.(, note).CornerRadius = .(,)
.(, note).AspectRatio =
.(notes,{
obj = note,
lane = laneIndex
})
notesSpawned +=
()
amount =
mode ==
amount =
mode ==
amount =
mode ==
amount =
mode ==
amount =
usedLanes = {}
i = , amount
lane = .(,)
usedLanes[lane]
lane = .(,)
usedLanes[lane] =
(lane)
i < amount
(MULTI_NOTE_DELAY)
(lane)
paused
closestNote =
closestDist = .huge
closestIndex =
i, data (notes)
data.lane == lane
dy = .(data.obj.AbsolutePosition.Y - hitLine.AbsolutePosition.Y)
dy < closestDist
closestDist = dy
closestNote = data.obj
closestIndex = i
closestNote closestDist <= HIT_WINDOW
closestNote:()
.(notes, closestIndex)
score +=
combo +=
notesHit +=
hitSoundId ~=
hitSound:()
keyMap = {
A = ,
S = ,
W = ,
D =
}
UIS.InputBegan:((input,gp)
gp playing
lane = keyMap[input.KeyCode.Name]
lane
(lane)
)
replayBtn.MouseButton1Click:(()
()
resultFrame.Visible =
main.Visible =
menu.Visible =
settings.Visible =
playing =
timerRunning =
)
menuBackBtn.MouseButton1Click:(()
menu.Visible =
main.Visible =
)
playBtn.MouseButton1Click:(()
menu.Visible =
main.Visible =
()
)
settingsBtn.MouseButton1Click:(()
menu.Visible =
settings.Visible =
)
RunService.RenderStepped:((dt)
info.Text = ..score....combo....misses .. ..math.(gameTime)
playing
timerRunning paused isResuming
gameTime -= dt
gameTime <=
gameTime =
timerRunning =
paused =
resultText.Text = ..score..
..notesHit..
..notesSpawned
resultFrame.Visible =
main.Visible =
isResuming
resumeTimer -= dt
resumeTimer <=
isResuming =
paused =
pauseBtn.Text =
paused
spawnTimer += dt
spawnTimer >= spawnDelay
spawnTimer =
spawnDelay = .(MIN_DELAY * , MAX_DELAY * ) /
()
i = #notes,,-
n = notes[i]
n.obj.Position += .(,NOTE_SPEED*dt)
n.obj.AbsolutePosition.Y > hitLine.AbsolutePosition.Y + HIT_WINDOW
n.obj:()
.(notes,i)
combo =
misses +=
)Fun to play whenever you're bored Free note hitsound id:7144958286

Universal