with(Player) would have been better here - more concise and readable, and also faster. We really only need the "iterate through global.players" thing when we need the Player instances ordered by their PlayerID - and even then I think that's how with(Player) ends up doing it anyway, since player IDs are in join order and that's also the order the Player objects get instantiated in.