hi @zack1991 , my recommendation: since you can have the same players connected in more than one room at the time, then you can make 2 rooms:
1 - for the two players that will handle the entire game-play
2 - for everyone (spectators and players), then you can make your players broadcast to the second room their "movements" and all the information you want to make "public", that way you can have all spectators getting those updates.
Does this make sense for your flow?
Unfortunatelly I don't have any code examples for that specific case, though I have examples of users connected to more than one room, but that shouldn't be the issue for you.
Also you can check the colyseus showcase and look into other projects, or in the colyseus examples.
Best,
Damian