# PreGameStateChangeEvent > Fired before a game state change occurs. Can be cancelled to prevent the transition. `gg.lode.observerapi.api.event` --- ## Signature ```java public class PreGameStateChangeEvent extends BaseEvent implements Cancellable ``` --- ## Methods ### getOldState ```java public GameState getOldState() ``` **Returns:** [[GameState]] - the current game state --- ### getNewState ```java public GameState getNewState() ``` **Returns:** [[GameState]] - the target game state --- ### getTickDelay ```java public int getTickDelay() ``` **Returns:** `int` - the delay in ticks before the state change occurs --- ### setTickDelay ```java public void setTickDelay(int tickDelay) ``` | Parameter | Type | Description | |-----------|------|-------------| | `tickDelay` | `int` | The delay in ticks before the state change | --- ### getSource ```java public @Nullable Player getSource() ``` **Returns:** `@Nullable Player` - the player who initiated the state change, or `null` --- ### isCancelled ```java public boolean isCancelled() ``` **Returns:** `boolean` - `true` if the event is cancelled --- ### setCancelled ```java public void setCancelled(boolean cancelled) ``` | Parameter | Type | Description | |-----------|------|-------------| | `cancelled` | `boolean` | Whether to cancel the event | --- ## Related Pages - [[GameState]] - [[GameStateChangeEvent]] - [[IObserverAPI]]