function stopAllAnimations()local X=currentAnim if emoteNames[X]~=nil and emoteNames[X]==false then X="\105\100\108\101"end currentAnim=""currentAnimInstance=nil if currentAnimKeyframeHandler~=nil then currentAnimKeyframeHandler:disconnect()end if currentAnimTrack~=nil then currentAnimTrack:Stop()currentAnimTrack:Destroy()currentAnimTrack=nil end return X end function setAnimationSpeed(X)if X~=currentAnimSpeed then currentAnimSpeed=X currentAnimTrack:AdjustSpeed(currentAnimSpeed)end end function keyFrameReachedFunc(X)if X=="\069\110\100"then local X=currentAnim if emoteNames[X]~=nil and emoteNames[X]==false then X="\105\100\108\101"end local G=currentAnimSpeed playAnimation(X,.0,Humanoid)setAnimationSpeed(G)end end


function stopAllAnimations()
    local oldAnim = currentAnim

    -- return to idle if finishing an emote
    if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
        oldAnim = "idle"
    end

    currentAnim = ""
    currentAnimInstance = nil
    if (currentAnimKeyframeHandler ~= nil) then
        currentAnimKeyframeHandler:disconnect()
    end

    if (currentAnimTrack ~= nil) then
        currentAnimTrack:Stop()
        currentAnimTrack:Destroy()
        currentAnimTrack = nil
    end
    return oldAnim
end

function setAnimationSpeed(speed)
    if speed ~= currentAnimSpeed then
        currentAnimSpeed = speed
        currentAnimTrack:AdjustSpeed(currentAnimSpeed)
    end
end

function keyFrameReachedFunc(frameName)
    if (frameName == "End") then

        local repeatAnim = currentAnim
        -- return to idle if finishing an emote
        if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
            repeatAnim = "idle"
        end

        local animSpeed = currentAnimSpeed
        playAnimation(repeatAnim, 0.0, Humanoid)
        setAnimationSpeed(animSpeed)
    end
end
