Show / Hide Table of Contents

# Interface IBeatSaberPlugin

Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at data/Managed/Plugins.

###### Namespace: IPA

###### Assembly: IPA.Loader.dll

##### Syntax

    public interface IBeatSaberPlugin

### Methods

| Improve this Doc View Source

#### OnActiveSceneChanged(Scene, Scene)

Gets invoked whenever a scene is changed

##### Declaration

    void OnActiveSceneChanged(Scene prevScene, Scene nextScene)

##### Parameters

Type | Name | Description
--- | --- | ---
Scene | prevScene | The Scene that was previously loaded
Scene | nextScene | The Scene being loaded

| Improve this Doc View Source

#### OnApplicationQuit()

Gets invoked when the application is closed.

##### Declaration

    void OnApplicationQuit()

| Improve this Doc View Source

#### OnApplicationStart()

Gets invoked when the application is started.

THIS EVENT WILL NOT BE GUARANTEED TO FIRE. USE Init OR OnEnable() INSTEAD.

##### Declaration

    void OnApplicationStart()

| Improve this Doc View Source

#### OnFixedUpdate()

Gets invoked on ever physics update.

##### Declaration

    void OnFixedUpdate()

| Improve this Doc View Source

#### OnSceneLoaded(Scene, LoadSceneMode)

Gets invoked whenever a scene is loaded.

##### Declaration

    void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode)

##### Parameters

Type | Name | Description
--- | --- | ---
Scene | scene | The scene currently loaded
LoadSceneMode | sceneMode | The type of loading

| Improve this Doc View Source

#### OnSceneUnloaded(Scene)

Gets invoked whenever a scene is unloaded

##### Declaration

    void OnSceneUnloaded(Scene scene)

##### Parameters

Type | Name | Description
--- | --- | ---
Scene | scene | The unloaded scene

| Improve this Doc View Source

#### OnUpdate()

Gets invoked on every graphic update.

##### Declaration

    void OnUpdate()

### Extension Methods

ReflectionUtil.SetPrivateField(Object, String, Object)
ReflectionUtil.GetPrivateField<T>(Object, String)
ReflectionUtil.SetPrivateProperty(Object, String, Object)
ReflectionUtil.InvokePrivateMethod(Object, String, Object[])
ReflectionUtil.InvokePrivateMethod<T>(Object, String, Object[])