local Players = game:GetService("Players") local player = Players.LocalPlayer local REPLACEMENTS = { ["119102480756352"] = { id = "137397247849088", speed = 1, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = false }, ["106608961865827"] = { id = "92005932540787", speed = 1, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = false }, ["87123834097610"] = { id = "82314433429874", speed = 1, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = false }, ["70432012102538"] = { id = "124320470694393", speed = 1, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = false }, ["116102651952484"] = { id = "82565280556544", speed = 0.9, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = false }, ["97808790386190"] = { id = "73331279050775", speed = 1, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = true }, ["127007788252180"] = { id = "80727527341153", speed = 1, looped = false, method = "stop", autoStopWhenOriginalStops = false }, ["125052838468389"] = { id = "127773001984630", speed = 3, looped = false, method = "adjustWeight", autoStopWhenOriginalStops = false }, } local function normalizeId(raw) if not raw then return nil end raw = tostring(raw) local digits = raw:match("(%d+)") return digits end local function makeRbAssetId(id) id = tostring(id) if id:match("^rbxassetid://") then return id end return "rbxassetid://" .. id end local currentConn local function onCharacter(character) if currentConn then currentConn:Disconnect() currentConn = nil end local humanoid = character:WaitForChild("Humanoid", 5) if not humanoid then return end currentConn = humanoid.AnimationPlayed:Connect(function(animTrack) local ok, err = pcall(function() local origAnimId = normalizeId(animTrack.Animation and animTrack.Animation.AnimationId) if not origAnimId then return end local opts = REPLACEMENTS[origAnimId] if not opts then return end local newAnim = Instance.new("Animation") newAnim.AnimationId = makeRbAssetId(opts.id) local newTrack local success, loadErr = pcall(function() newTrack = humanoid:LoadAnimation(newAnim) end) if not success or not newTrack then warn("Failed to load replacement animation:", opts.id, loadErr) return end local method = opts.method or "adjustWeight" if method == "adjustWeight" and animTrack.AdjustWeight then pcall(function() animTrack:AdjustWeight(-999) end) else pcall(function() animTrack:Stop() end) end newTrack:Play() if opts.speed then pcall(function() newTrack:AdjustSpeed(tonumber(opts.speed) or 1) end) end if opts.looped ~= nil then pcall(function() newTrack.Looped = opts.looped end) end if opts.timePosition then pcall(function() newTrack.TimePosition = tonumber(opts.timePosition) or 0 end) end if opts.autoStopWhenOriginalStops == nil then opts.autoStopWhenOriginalStops = true end if opts.autoStopWhenOriginalStops then spawn(function() local success2, _ = pcall(function() animTrack.Stopped:Wait() end) if success2 and newTrack and newTrack.IsPlaying then pcall(function() newTrack:Stop() end) end end) end end) if not ok then warn("Animation replacer error:", err) end end) end if player.Character then onCharacter(player.Character) end player.CharacterAdded:Connect(onCharacter) print("loaded replacement:", (function() local c=0; for _ in pairs(REPLACEMENTS) do c=c+1 end; return c end)())