local song = "3680680e80et0etuetuptupsups[upsf][upsf]3%70%70W70Wr0WruWruOruOauOa[Ouaf][Ouaf]6*0eT0eTueTupTupSupSfpSf[Spfj][Spfj]69qeeyippdg[pdj][pdj]68(eetYppsD[Dpj][Dpj][OHf]ufufIfOfpfafOfafpfdfsfafpfOfiDufufufIfOfpfafOfafpfdfsfafpfOfiDufiDufiDufiDufiD[uf]03680680e80et0etuetuptupssfj[sl][sl]8(et(etYetYptYpsYpsDpsDjsDj[sl][sl]7QerQerIerIprIpaIpaGpaGjGapGapIoaouYuIuYYaYIuuauoIIaIo[ak][ak][ak][oh][uf][uf][YD][YD][YD][ak][YD][IG][uf][uf][uf][ak][uf][oh][IG][IG][IG][ak][IG][OH][pj][IG]hGhGfG[oh][uf][ig][YD]fDfDSD[uf][ipsg]sdfghjhgsdfghjhgsdfghjhgsdfghjhJ lklkljhgfGhGhGhGhGhGhGhf[qeti]tyuiopoityuiopoityuiopoityuiopoityuiopoityuiopPsdfghjJk[sl][uf][oh][(Ye][wru][ro][ro][ro][ro][ro][Ir][ru][Yr][Ya][Ya][Ya][Ya][Ya][ua][Ia][oa][ro][ro][ro][ro][ro][Ir][ru][Yr][Ya][Ya][Ya][Ya][Ya][ua][Ia][oa][oa][oa][uo][ps][ps][up][oa][oa][uo][Ia][Ia][YI][uo][oah][oah][oah][oah][oah][IGp][uof][YID][Dsl][Dsl][Dsl][Dsl][Dsl][Dak][Dpj][ofh][oah][oah][oah][oah][oah][IGp][uof][YID][Dsl][Dsl][Dsl][Dsl][Dsl][Dak][Dpj][ofh][fh][fh][hk][fj][fj][jl][fh][fh][hk][DG][DG][Gk][ah][ah][fk][pg][pg][sj][of][of][ah][ID][ID][Gp][of]ouY[Yea][Yea][Yea]wuahfD[Dpk][Dpk][Dpk]ofkpDkofkpDkwuruwuruwuruwuruWyryWyryWyryWyry[80et]3680680e80et0etuetuptupsups[upsf][upsf]"
local speed = 0.12 -- adjust this if too fast/slow
local VIM = game:GetService("VirtualInputManager")
local keyMap = {
a="A", b="B", c="C", d="D", e="E", f="F", g="G",
h="H", i="I", j="J", k="K", l="L", m="M", n="N",
o="O", p="P", q="Q", r="R", s="S", t="T", u="U",
v="V", w="W", x="X", y="Y", z="Z",
A="A", B="B", C="C", D="D", E="E", F="F", G="G",
H="H", I="I", J="J", K="K", L="L", M="M", N="N",
O="O", P="P", Q="Q", R="R", S="S", T="T", U="U",
V="V", W="W", X="X", Y="Y", Z="Z",
["1"]="One", ["2"]="Two", ["3"]="Three", ["4"]="Four",
["5"]="Five", ["6"]="Six", ["7"]="Seven", ["8"]="Eight",
["9"]="Nine", ["0"]="Zero",
["-"]="Minus", ["="]="Equals",
["["]="LeftBracket", ["]"]="RightBracket",
[";"]="Semicolon", ["'"]="Quote",
[","]="Comma", ["."]="Period", ["/"]="Slash",
["`"]="BackQuote", ["\\"]="BackSlash",
[" "]="Space",
-- shifted versions (Virtual Piano uses these)
["!"]="One", ["@"]="Two", ["#"]="Three", ["$"]="Four",
["%"]="Five", ["^"]="Six", ["&"]="Seven", ["*"]="Eight",
["("]="Nine", [")"]="Zero",
}
local shiftKeys = {
["!"]="!", ["@"]="@", ["#"]="#", ["$"]="$", ["%"]="%",
["^"]="^", ["&"]="&", ["*"]="*", ["("]="(", [")"]=")",
A=true, B=true, C=true, D=true, E=true, F=true, G=true,
H=true, I=true, J=true, K=true, L=true, M=true, N=true,
O=true, P=true, Q=true, R=true, S=true, T=true, U=true,
V=true, W=true, X=true, Y=true, Z=true,
}
local function pressKey(char)
local keyName = keyMap[char]
if not keyName then return end
local needShift = shiftKeys[char]
if needShift then
VIM:SendKeyEvent(true, "LeftShift", false, game)
end
VIM:SendKeyEvent(true, keyName, false, game)
task.wait(0.01)
VIM:SendKeyEvent(false, keyName, false, game)
if needShift then
VIM:SendKeyEvent(false, "LeftShift", false, game)
end
end
local function playSong()
local i = 1
while i <= #song do
local char = song:sub(i, i)
if char == "[" then
-- chord: press all keys inside [] simultaneously
local j = song:find("]", i+1)
if j then
local chord = song:sub(i+1, j-1)
for k = 1, #chord do
pressKey(chord:sub(k, k))
end
i = j + 1
else
i = i + 1
end
else
pressKey(char)
i = i + 1
end
task.wait(speed)
end
end
print("Starting in 3 seconds... click on the piano!")
task.wait(3)
playSong()
print("Done!")made an auto piano script for Roblox Talent Show
plays moonlight sonata 3rd movement by itself, just click piano and let it go. no key system, just run and chill
if itβs too fast/slow just change speed value a bit
No comments yet. Be the first to comment!
1local song = "3680680e80et0etuetuptupsups[upsf][upsf]3%70%70W70Wr0WruWruOruOauOa[Ouaf][Ouaf]6*0eT0eTueTupTupSupSfpSf[Spfj][Spfj]69qeeyippdg[pdj][pdj]68(eetYppsD[Dpj][Dpj][OHf]ufufIfOfpfafOfafpfdfsfafpfOfiDufufufIfOfpfafOfafpfdfsfafpfOfiDufiDufiDufiDufiD[uf]03680680e80et0etuetuptupssfj[sl][sl]8(et(etYetYptYpsYpsDpsDjsDj[sl][sl]7QerQerIerIprIpaIpaGpaGjGapGapIoaouYuIuYYaYIuuauoIIaIo[ak][ak][ak][oh][uf][uf][YD][YD][YD][ak][YD][IG][uf][uf][uf][ak][uf][oh][IG][IG][IG][ak][IG][OH][pj][IG]hGhGfG[oh][uf][ig][YD]fDfDSD[uf][ipsg]sdfghjhgsdfghjhgsdfghjhgsdfghjhJ lklkljhgfGhGhGhGhGhGhGhf[qeti]tyuiopoityuiopoityuiopoityuiopoityuiopoityuiopPsdfghjJk[sl][uf][oh][(Ye][wru][ro][ro][ro][ro][ro][Ir][ru][Yr][Ya][Ya][Ya][Ya][Ya][ua][Ia][oa][ro][ro][ro][ro][ro][Ir][ru][Yr][Ya][Ya][Ya][Ya][Ya][ua][Ia][oa][oa][oa][uo][ps][ps][up][oa][oa][uo][Ia][Ia][YI][uo][oah][oah][oah][oah][oah][IGp][uof][YID][Dsl][Dsl][Dsl][Dsl][Dsl][Dak][Dpj][ofh][oah][oah][oah][oah][oah][IGp][uof][YID][Dsl][Dsl][Dsl][Dsl][Dsl][Dak][Dpj][ofh][fh][fh][hk][fj][fj][jl][fh][fh][hk][DG][DG][Gk][ah][ah][fk][pg][pg][sj][of][of][ah][ID][ID][Gp][of]ouY[Yea][Yea][Yea]wuahfD[Dpk][Dpk][Dpk]ofkpDkofkpDkwuruwuruwuruwuruWyryWyryWyryWyry[80et]3680680e80et0etuetuptupsups[upsf][upsf]"
2
3local speed = 0.12 -- adjust this if too fast/slow
4
5local VIM = game:GetService("VirtualInputManager")
6
7local keyMap = {
8 a="A", b="B", c="C", d="D", e="E", f="F", g="G",
9 h="H", i="I", j="J", k="K", l="L", m="M", n="N",
10 o="O", p="P", q="Q", r="R", s="S", t="T", u="U",
11 v="V", w="W", x="X", y="Y", z="Z",
12 A="A", B="B", C="C", D="D", E="E", F="F", G="G",
13 H="H", I="I", J="J", K="K", L="L", M="M", N="N",
14 O="O", P="P", Q="Q", R="R", S="S", T="T", U="U",
15 V="V", W="W", X="X", Y="Y", Z="Z",
16 ["1"]="One", ["2"]="Two", ["3"]="Three", ["4"]="Four",
17 ["5"]="Five", ["6"]="Six", ["7"]="Seven", ["8"]="Eight",
18 ["9"]="Nine", ["0"]="Zero",
19 ["-"]="Minus", ["="]="Equals",
20 ["["]="LeftBracket", ["]"]="RightBracket",
21 [";"]="Semicolon", ["'"]="Quote",
22 [","]="Comma", ["."]="Period", ["/"]="Slash",
23 ["`"]="BackQuote", ["\\"]="BackSlash",
24 [" "]="Space",
25 -- shifted versions (Virtual Piano uses these)
26 ["!"]="One", ["@"]="Two", ["#"]="Three", ["$"]="Four",
27 ["%"]="Five", ["^"]="Six", ["&"]="Seven", ["*"]="Eight",
28 ["("]="Nine", [")"]="Zero",
29}
30
31local shiftKeys = {
32 ["!"]="!", ["@"]="@", ["#"]="#", ["$"]="$", ["%"]="%",
33 ["^"]="^", ["&"]="&", ["*"]="*", ["("]="(", [")"]=")",
34 A=true, B=true, C=true, D=true, E=true, F=true, G=true,
35 H=true, I=true, J=true, K=true, L=true, M=true, N=true,
36 O=true, P=true, Q=true, R=true, S=true, T=true, U=true,
37 V=true, W=true, X=true, Y=true, Z=true,
38}
39
40local function pressKey(char)
41 local keyName = keyMap[char]
42 if not keyName then return end
43 local needShift = shiftKeys[char]
44 if needShift then
45 VIM:SendKeyEvent(true, "LeftShift", false, game)
46 end
47 VIM:SendKeyEvent(true, keyName, false, game)
48 task.wait(0.01)
49 VIM:SendKeyEvent(false, keyName, false, game)
50 if needShift then
51 VIM:SendKeyEvent(false, "LeftShift", false, game)
52 end
53end
54
55local function playSong()
56 local i = 1
57 while i <= #song do
58 local char = song:sub(i, i)
59 if char == "[" then
60 -- chord: press all keys inside [] simultaneously
61 local j = song:find("]", i+1)
62 if j then
63 local chord = song:sub(i+1, j-1)
64 for k = 1, #chord do
65 pressKey(chord:sub(k, k))
66 end
67 i = j + 1
68 else
69 i = i + 1
70 end
71 else
72 pressKey(char)
73 i = i + 1
74 end
75 task.wait(speed)
76 end
77end
78
79print("Starting in 3 seconds... click on the piano!")
80task.wait(3)
81playSong()
82print("Done!")