Run it
Copy the script and paste it into your executor.
().TAS_PlayGUI_Running
(() ().() )
.()
().TAS_PlayGUI_Running =
RunService = :()
HttpService = :()
Players = :()
Workspace = :()
StarterGui = :()
LocalPlayer = Players.LocalPlayer
REPO_BASE =
MANIFEST_URL = REPO_BASE ..
FOLDER =
DISPLAY_NAMES = {
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
}
(text, title, dur)
(()
StarterGui:(, {
Title = title , Text = text , Duration = dur
})
)
()
ok, content = (()
:(MANIFEST_URL, )
)
ok content #content <
runs = {}
line content:()
line = line:()
line ~=
id = line:(, )
label = DISPLAY_NAMES[id] id
.(runs, { id = id, label = label })
#runs > runs
(runs)
(FOLDER) (FOLDER)
downloaded =
skipped =
_, run (runs)
path = FOLDER .. .. run.id ..
(path)
skipped = skipped +
ok, content = (()
:(REPO_BASE .. run.id .. , )
)
ok content #content >
(() (path, content) )
downloaded = downloaded +
downloaded >
( .. downloaded .. .. skipped .. , , )
ValToStateName = {}
_, s (.HumanoidStateType:())
ValToStateName[s.Value] = s.Name
KeepEnabled = {
[.HumanoidStateType.Dead] = ,
[.HumanoidStateType.GettingUp] = ,
[.HumanoidStateType.Landed] = ,
[.HumanoidStateType.None] = ,
}
(cf)
ax, ang = cf:()
sh = .(ang / )
ax.X*sh, ax.Y*sh, ax.Z*sh, .(ang / )
(x, y, z, qx, qy, qz, qw)
.(x, y, z, qx, qy, qz, qw)
(f)
(f.CF) ==
#f.CF ==
cf = .(.(f.CF))
qx,qy,qz,qw = (cf)
f.CF = {cf.X, cf.Y, cf.Z, qx, qy, qz, qw}
#f.CF ==
cf = .(f.CF[],f.CF[],f.CF[]) * .(f.CF[],f.CF[],f.CF[])
qx,qy,qz,qw = (cf)
f.CF = {cf.X, cf.Y, cf.Z, qx, qy, qz, qw}
(f.CCF) ==
#f.CCF ==
ccf = .(.(f.CCF))
qx,qy,qz,qw = (ccf)
f.CCF = {ccf.X, ccf.Y, ccf.Z, qx, qy, qz, qw}
#f.CCF ==
ccf = .(f.CCF[],f.CCF[],f.CCF[]) * .(f.CCF[],f.CCF[],f.CCF[])
qx,qy,qz,qw = (ccf)
f.CCF = {ccf.X, ccf.Y, ccf.Z, qx, qy, qz, qw}
PlayConn =
IsPlaying =
CurrentRunName =
()
PlayConn PlayConn:(); PlayConn =
IsPlaying =
().TAS_IsPlaying =
CurrentRunName =
char = LocalPlayer.Character
char
root = char:()
root
root.Anchored =
root.Velocity = .zero
root.RotVelocity = .zero
hum = char:()
hum
_, st (.HumanoidStateType:())
(() hum:(st, ) )
(()
hum:() ~= .HumanoidStateType.GettingUp
hum:(.HumanoidStateType.GettingUp)
)
(label, rawJson)
IsPlaying (); .()
ok, data = (HttpService.JSONDecode, HttpService, rawJson)
ok (data) ~= (data[]) ~= (data[]) ~=
( .. label, );
frames = {}
_, seg (data[])
_, f (seg) (f); .(frames, f)
_, f (data[])
(f); .(frames, f)
#frames == ( .. label, );
char = LocalPlayer.Character
root = char char:()
hum = char char:()
root (, );
IsPlaying =
CurrentRunName = label
().TAS_IsPlaying =
root.Anchored =
hum
_, st (.HumanoidStateType:())
KeepEnabled[st]
(() hum:(st, ) )
( .. label, , )
t0 = .()
idx =
PlayConn = RunService.Heartbeat:(()
char char.Parent root root.Parent
();
hum hum.Health <= ();
elapsed = .() - t0
idx < #frames frames[idx+] frames[idx+].T <= elapsed
idx = idx +
fA = frames[idx]
fB = frames[idx + ]
fB (fA)== (fB)==
fA.CF fB.CF fA.V fB.V fA.RV fB.RV
dt = fB.T - fA.T
alpha = (dt > ) .((elapsed - fA.T) / dt, , )
root.CFrame = (.(fA.CF)):((.(fB.CF)), alpha)
(fA.CCF)== (fB.CCF)==
Workspace.CurrentCamera.CFrame =
(.(fA.CCF)):((.(fB.CCF)), alpha)
vA = .(.(fA.V)); vB = .(.(fB.V))
rvA = .(.(fA.RV)); rvB = .(.(fB.RV))
cv = vA:(vB, alpha)
crv = rvA:(rvB, alpha)
_, p (char:())
p:() p.Velocity = cv; p.RotVelocity = crv
hum fA.HS
sname = (fA.HS)== ValToStateName[fA.HS] fA.HS
sname sname ~=
cur = hum:().Name
cur ~= sname
enum = .HumanoidStateType[sname]
enum (() hum:(enum) )
(fA.AN) ==
animator = hum hum:()
animator
desiredAnims = {}
_, animData (fA.AN)
animData.Id animData.Id ~=
desiredAnims[animData.Id] = animData
_, track (animator:())
id = track.Animation track.Animation.AnimationId
id desiredAnims[id]
track:()
animId, animData (desiredAnims)
found =
_, track (animator:())
track.Animation track.Animation.AnimationId == animId
found =
track:(animData.Speed )
track:(animData.Weight , )
(() track.TimePosition = animData.Pos )
found
anim = .()
anim.AnimationId = animId
ok, track = (()
animator:(anim)
)
ok track
track:(, animData.Weight , animData.Speed )
(() track.TimePosition = animData.Pos )
anim:()
()
( .. label, , )
)
(id, label)
path = FOLDER .. .. id ..
(path)
( .. id .. , );
ok, content = (readfile, path)
ok content
( .. label, );
(label, content)
GITHUB_API =
TIMESTAMPS_FILE = FOLDER ..
()
(FOLDER) {}
(TIMESTAMPS_FILE) {}
ok, content = (readfile, TIMESTAMPS_FILE)
ok content #content < {}
ok2, data = (() HttpService:(content) )
(ok2 (data) == ) data {}
(timestamps)
(()
(TIMESTAMPS_FILE, HttpService:(timestamps))
)
(filename)
ok, content = (()
:(GITHUB_API .. filename .. , )
)
ok content #content <
ok2, data = (() HttpService:(content) )
ok2 (data) ~= data[]
commit = data[].commit
commit
date = commit.committer commit.committer.date
date
(runs)
(FOLDER) (FOLDER)
timestamps = ()
downloaded =
updated =
skipped =
_, run (runs)
filename = run.id ..
path = FOLDER .. .. filename
exists = (path)
remoteDate = (filename)
localDate = timestamps[filename]
needsUpdate =
exists
needsUpdate =
remoteDate localDate remoteDate ~= localDate
needsUpdate =
remoteDate localDate
needsUpdate =
needsUpdate
ok, content = (()
:(REPO_BASE .. filename, )
)
ok content #content >
(() (path, content) )
remoteDate
timestamps[filename] = remoteDate
exists
updated = updated +
downloaded = downloaded +
skipped = skipped +
(timestamps)
updated > downloaded >
( .. updated .. .. downloaded .. , , )
updated >
( .. updated .. , , )
downloaded >
( .. downloaded .. , , )
runs = ()
runs
(FOLDER) (FOLDER)
allFiles = (FOLDER)
runs = {}
_, path (allFiles)
filename = path:() path
filename:() filename ~=
id = filename:(, )
label = DISPLAY_NAMES[id] id
.(runs, { id = id, label = label })
.(runs, (a, b) a.id < b.id )
(, , )
(runs)
Rayfield = (:())()
Window = Rayfield:({
Name = ,
LoadingTitle = ,
LoadingSubtitle = ,
ConfigurationSaving = { Enabled = },
Discord = { Enabled = },
KeySystem = ,
})
RunTab = Window:(, )
RunTab:( .. #runs .. )
_, run (runs)
RunTab:({
Name = run.label,
Description = run.id .. ,
Callback = ()
(run.id, run.label)
,
})
CtrlTab = Window:(, )
CtrlTab:()
CtrlTab:({
Name = ,
Description = ,
Callback = ()
()
(, , )
,
})
CtrlTab:()
CtrlTab:({
Name = ,
Description = ,
Callback = ()
().()
,
})
().TAS_PlayGUI_Disconnect = ()
()
(() Rayfield:() )
().TAS_PlayGUI_Running =
(, )
( .. #runs .. , , )
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com, api.github.com, sirius.menu.
Open source autoplay!!!
Stay safe
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.
Universal