# IObserverAPI > Main API interface providing access to all Observer managers and game state control. `gg.lode.observerapi` --- ## Signature ```java public interface IObserverAPI ``` --- ## Methods ### getGameState ```java GameState getGameState() ``` Returns the current [[GameState]]. **Returns:** `GameState` - the current game state --- ### setGameState ```java void setGameState(GameState state) ``` Sets the game state. Throws various exceptions depending on the current and target state. | Parameter | Type | Description | |-----------|------|-------------| | `state` | `GameState` | The target game state | **Throws:** | Exception | Condition | |-----------|-----------| | [[AlreadyInGameModeException]] | Already in game mode | | [[AlreadyInLobbyModeException]] | Already in lobby mode | | [[AlreadyInPreGameModeException]] | Already in pre-game mode | | [[InsufficientPlayersException]] | Not enough players to start | | [[InsufficientTeamsException]] | Not enough teams to start | | [[NotInLobbyModeException]] | Not in lobby mode when required | | [[NotInPreGameModeException]] | Not in pre-game mode when required | | [[PlayerOverflowException]] | Too many players | | [[TeamOverflowException]] | Too many teams | | [[LeadNotInstalledException]] | Lead plugin is not installed | --- ### setGameState (with source) ```java void setGameState(GameState state, @Nullable Player source) ``` Sets the game state with an optional source player. | Parameter | Type | Description | |-----------|------|-------------| | `state` | `GameState` | The target game state | | `source` | `@Nullable Player` | The player who initiated the state change | **Throws:** Same exceptions as `setGameState(GameState)`. --- ### getCapsuleManager ```java ICapsuleManager getCapsuleManager() ``` **Returns:** [[ICapsuleManager]] --- ### getMechanicsManager ```java IMechanicsManager getMechanicsManager() ``` **Returns:** [[IMechanicsManager]] --- ### getEliminationManager ```java IEliminationManager getEliminationManager() ``` **Returns:** [[IEliminationManager]] --- ### getKitManager ```java IKitManager getKitManager() ``` **Returns:** [[IKitManager]] --- ### getRespawnManager ```java IRespawnManager getRespawnManager() ``` **Returns:** [[IRespawnManager]] --- ### getPlayerManager ```java IPlayerManager getPlayerManager() ``` **Returns:** [[Observer/API/Managers/IPlayerManager]] --- ### getDecayManager ```java IDecayManager getDecayManager() ``` **Returns:** [[IDecayManager]] --- ### getCustomRecipesManager ```java ICustomRecipesManager getCustomRecipesManager() ``` **Returns:** [[ICustomRecipesManager]] --- ### getWorldEventManager ```java IWorldEventManager getWorldEventManager() ``` **Returns:** [[IWorldEventManager]] --- ### getLateScatterManager ```java ILateScatterManager getLateScatterManager() ``` **Returns:** [[ILateScatterManager]] --- ### getHelpOpManager ```java IHelpOpManager getHelpOpManager() ``` **Returns:** [[IHelpOpManager]] --- ### getLifestealManager ```java ILifestealManager getLifestealManager() ``` **Returns:** [[ILifestealManager]] --- ### getPedestalManager ```java IPedestalManager getPedestalManager() ``` **Returns:** [[IPedestalManager]] --- ### getTranslationManager ```java ITranslationManager getTranslationManager() ``` **Returns:** [[ITranslationManager]] --- ## Related Pages - [[ObserverAPI]] - [[GameState]] - [[ICapsuleManager]] - [[IMechanicsManager]] - [[IEliminationManager]] - [[IKitManager]] - [[IRespawnManager]] - [[Observer/API/Managers/IPlayerManager]] - [[IDecayManager]] - [[ICustomRecipesManager]] - [[IWorldEventManager]] - [[ILateScatterManager]] - [[IHelpOpManager]] - [[ILifestealManager]] - [[IPedestalManager]] - [[ITranslationManager]]