InitializeGameEngine re-registers all packet handlers on every login, overwriting our swaps. The NetClient pointer may be reused so comparing it doesn't detect re-registration. Fix: unconditionally reset swap_count and re-install all swaps whenever InitializeGameEngine fires.