The classes that you can not remove are all required for basic network interaction which is one the keystones of the engine. Every PlayerController will have an PlayerState, which is responsible for replicating the players network data. Same goes for the GameMode and for it’s GameState class, the mode is only available in the host and handles joining, match handling, etc while the GameState is used to replicate global game related information to the connected clients.