local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local ContentProvider = game:GetService("ContentProvider") local player = Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local hrp = char:WaitForChild("HumanoidRootPart") local MODEL_ID = "rbxassetid://110786751701517" local AUDIO_URL = "https://github.com/phurinwong/phighting-sword-anims/raw/refs/heads/main/MonstrousPerformance.mp3" local showModel = game:GetObjects(MODEL_ID)[1] showModel.Parent = workspace local offset = hrp.CFrame.LookVector * 25 + Vector3.new(0, 17, 0) showModel:PivotTo(hrp.CFrame + offset) local artful = showModel:WaitForChild("Artful") local pursuer = showModel:WaitForChild("Pursuer") local a1 = artful:FindFirstChild("Animate") if a1 then a1:Destroy() end local a2 = pursuer:FindFirstChild("Animate") if a2 then a2:Destroy() end local artfulAnim = artful:WaitForChild("AnimSaves"):WaitForChild("harmonicaanimartf") local pursuerAnim = pursuer:WaitForChild("AnimSaves"):WaitForChild("harmonicaapurs") local stagePart = showModel:WaitForChild("soundpart", 10) writefile("MonstrousPerformance.mp3", game:HttpGet(AUDIO_URL)) local sound = Instance.new("Sound") sound.SoundId = getcustomasset("MonstrousPerformance.mp3") sound.Volume = 1 sound.Parent = stagePart or showModel local function buildMotorMap(model) local map = {} for _, v in ipairs(model:GetDescendants()) do if v:IsA("Motor6D") and v.Part1 then map[v.Part1.Name] = v end end return map end local artfulMotors = buildMotorMap(artful) local pursuerMotors = buildMotorMap(pursuer) local function buildTweenData(model, kfs, motorMap) local motors = {} local values = {} for _, kf in ipairs(kfs:GetKeyframes()) do for _, pose in ipairs(kf:GetDescendants()) do if pose:IsA("Pose") then local m = motorMap[pose.Name] if m then motors[pose.Name] = m if not values[pose.Name] then local val = Instance.new("CFrameValue") val.Value = m.Transform val.Parent = m values[pose.Name] = val end end end end end local tweens = {} local keyframes = kfs:GetKeyframes() table.sort(keyframes, function(a, b) return a.Time < b.Time end) for i = 1, #keyframes - 1 do local k1 = keyframes[i] local k2 = keyframes[i + 1] local dt = k2.Time - k1.Time for _, pose in ipairs(k2:GetDescendants()) do if pose:IsA("Pose") and motors[pose.Name] then if pose.EasingStyle == Enum.PoseEasingStyle.Constant then table.insert(tweens, { delay = k1.Time, snap = true, name = pose.Name, cframe = pose.CFrame, }) else local t = TweenService:Create( values[pose.Name], TweenInfo.new(dt, Enum.EasingStyle.Linear), { Value = pose.CFrame } ) table.insert(tweens, { delay = k1.Time, tween = t, }) end end end end local length = keyframes[#keyframes].Time return tweens, motors, values, length end local function PlayKeyframeSequence(tweens, motors, values, length) local conn conn = RunService.Heartbeat:Connect(function() for name, motor in pairs(motors) do if values[name] then motor.Transform = values[name].Value end end end) for _, data in ipairs(tweens) do task.delay(data.delay, function() if data.snap then if values[data.name] then values[data.name].Value = data.cframe end elseif data.tween then data.tween:Play() end end) end task.delay(length, function() if conn then conn:Disconnect() end end) end local artfulTweens, artfulMotors2, artfulValues, len1 = buildTweenData(artful, artfulAnim, artfulMotors) local pursuerTweens, pursuerMotors2, pursuerValues, len2 = buildTweenData(pursuer, pursuerAnim, pursuerMotors) local totalLength = math.max(len1, len2) ContentProvider:PreloadAsync({ sound, artful, pursuer }) task.wait(0.1) PlayKeyframeSequence(artfulTweens, artfulMotors2, artfulValues, len1) PlayKeyframeSequence(pursuerTweens, pursuerMotors2, pursuerValues, len2) task.wait(1.3) sound:Play() task.delay(totalLength + 0.5, function() if sound then sound:Destroy() end if showModel then showModel:Destroy() end end)