Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
TweenService = :()
ContentProvider = :()
player = Players.LocalPlayer
char = player.Character player.CharacterAdded:()
hrp = char:()
MODEL_ID =
AUDIO_URL =
showModel = :(MODEL_ID)[]
showModel.Parent =
offset = hrp.CFrame.LookVector * + .(, , )
showModel:(hrp.CFrame + offset)
artful = showModel:()
pursuer = showModel:()
a1 = artful:()
a1 a1:()
a2 = pursuer:()
a2 a2:()
artfulAnim = artful:():()
pursuerAnim = pursuer:():()
stagePart = showModel:(, )
(, :(AUDIO_URL))
sound = .()
sound.SoundId = ()
sound.Volume =
sound.Parent = stagePart showModel
(model)
map = {}
_, v (model:())
v:() v.Part1
map[v.Part1.Name] = v
map
artfulMotors = (artful)
pursuerMotors = (pursuer)
(model, kfs, motorMap)
motors = {}
values = {}
_, kf (kfs:())
_, pose (kf:())
pose:()
m = motorMap[pose.Name]
m
motors[pose.Name] = m
values[pose.Name]
val = .()
val.Value = m.Transform
val.Parent = m
values[pose.Name] = val
tweens = {}
keyframes = kfs:()
.(keyframes, (a, b) a.Time < b.Time )
i = , #keyframes -
k1 = keyframes[i]
k2 = keyframes[i + ]
dt = k2.Time - k1.Time
_, pose (k2:())
pose:() motors[pose.Name]
pose.EasingStyle == .PoseEasingStyle.Constant
.(tweens, {
= k1.Time,
snap = ,
name = pose.Name,
cframe = pose.CFrame,
})
t = TweenService:(
values[pose.Name],
TweenInfo.(dt, .EasingStyle.Linear),
{ Value = pose.CFrame }
)
.(tweens, {
= k1.Time,
tween = t,
})
length = keyframes[#keyframes].Time
tweens, motors, values, length
(tweens, motors, values, length)
conn
conn = RunService.Heartbeat:(()
name, motor (motors)
values[name]
motor.Transform = values[name].Value
)
_, data (tweens)
.(data.delay, ()
data.snap
values[data.name]
values[data.name].Value = data.cframe
data.tween
data.tween:()
)
.(length, ()
conn conn:()
)
artfulTweens, artfulMotors2, artfulValues, len1 = (artful, artfulAnim, artfulMotors)
pursuerTweens, pursuerMotors2, pursuerValues, len2 = (pursuer, pursuerAnim, pursuerMotors)
totalLength = .(len1, len2)
ContentProvider:({ sound, artful, pursuer })
.()
(artfulTweens, artfulMotors2, artfulValues, len1)
(pursuerTweens, pursuerMotors2, pursuerValues, len2)
.()
sound:()
.(totalLength + , ()
sound sound:()
showModel showModel:()
)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: github.com.
watch artful and pursuer perform on stage artfully i guess this is client sided, only you can see it. if it freezes, don't panic, the animation is loading. i got inspired by the live performance in Artful's marvelous show on roblox and since i love roblox live performance events so much that i decided to turn it into a client-side script might not work well on low level executors like Xenos (probably stuff like audio desync or something like that) assets used https://www.roblox.com/games/111772397205366/Artfuls-Marvelous-Show animations and model https://www.youtube.com/watch?v=BsO4KWi1IKQ sound https://create.roblox.com/store/asset/121769105252456/Artful-Stage-show stage model

Universal