Yeah I checked the simple one before I posted. The simple game ensures that there is always a portal on screen that is equal to curPortal. Your game does not. You are setting curPortal to either 2, -2, 1 or -1. Maybe you are trying to add and subtract from curPortal instead of setting it? I dunno, but the point is your game looks more like a buddy system. You can only set the position of the player if a portal ID = curPortal. So in Foyer A it is looking for a portal where the Id = curPortal, however curPortal is 2, and the ID of the only portal in the level is 4. The simple game does not have these declarations for setting curPortal to one of 4 values so it's really about what you were trying to achieve with those events.