you realize your getting index -1 right. your getting all characters, then running a for each, the first index in a array is 0 which your setting to index of current, then your subtracting one from that and trying to get play order index -1.
that could be part of your issue though i dont think its the complete story.