# Class: Plugin

## Phaser. Plugin

Phaser - Plugin

#### new Plugin(game, parent)

  This is a base Plugin template to use for any Phaser plugin development.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | A reference to the currently running game.
  `parent` | Any | The object that owns this plugin, usually Phaser.PluginManager.

  Source:
    - core/Plugin.js, line 16

### Members

#### active

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `active` | boolean | A Plugin with active=true has its preUpdate and update methods called by the parent, otherwise they are skipped.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 34

#### game

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | A reference to the currently running game.

  Source:
    - core/Plugin.js, line 23

#### hasPostRender

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `hasPostRender` | boolean | A flag to indicate if this plugin has a postRender method.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 70

#### hasPostUpdate

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `hasPostUpdate` | boolean | A flag to indicate if this plugin has a postUpdate method.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 58

#### hasPreUpdate

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `hasPreUpdate` | boolean | A flag to indicate if this plugin has a preUpdate method.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 46

#### hasRender

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `hasRender` | boolean | A flag to indicate if this plugin has a render method.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 64

#### hasUpdate

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `hasUpdate` | boolean | A flag to indicate if this plugin has an update method.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 52

#### parent

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `parent` | Any | The parent of this plugin. If added to the PluginManager the parent will be set to that, otherwise it will be null.

  Source:
    - core/Plugin.js, line 28

#### visible

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `visible` | boolean | A Plugin with visible=true has its render and postRender methods called by the parent, otherwise they are skipped.

  Default Value:
    - false
  Source:
    - core/Plugin.js, line 40

### Methods

#### destroy()

  Clear down this Plugin and null out references

  Source:
    - core/Plugin.js, line 108

#### postRender()

  Post-render is called after the Game Renderer and State.render have run. It is only called if visible is set to true.

  Source:
    - core/Plugin.js, line 100

#### preUpdate()

  Pre-update is called at the very start of the update cycle, before any other subsystems have been updated (including Physics). It is only called if active is set to true.

  Source:
    - core/Plugin.js, line 76

#### render()

  Render is called right after the Game Renderer completes, but before the State.render. It is only called if visible is set to true.

  Source:
    - core/Plugin.js, line 92

#### update()

  Update is called after all the core subsystems (Input, Tweens, Sound, etc) and the State have updated, but before the render. It is only called if active is set to true.

  Source:
    - core/Plugin.js, line 84