Skip to content

Poki Phaser 3 Plugin

A Phaser 3 plugin to easially integrate the Poki SDK


Hi! 👋 This is the official Poki Phaser Plugin for Phaser 3. This plugin will automate most of implementing the Poki SDK when making a game with Phaser.

Features

  • Inject & load the Poki SDK for you (asynchronously)
  • Trigger loadingStart/loadingFinished event when loading
  • gameplayStart/gameplayStop events fire automatically when your game scene starts and stops
  • commercialBreak is requested before gameplayStart is fired
  • Disable input and audio during video ads
  • Give you easy/global access to the SDK using scene.plugins.get('poki') so you can:
  • check if users have any adblock enabled;
  • request a rewardedBreak

How to use/install

This is a quick step by step tutorial on how to use our plugin. You can also always check the example in the /example directory.

Add the dependency

First, you have to make sure to add the @poki/phaser-3 plugin as a dependency to your project:

$ npm install --save-dev @poki/phaser-3
# or
$ yarn add --dev @poki/phaser-3

Install plugin to Phaser's configuration

Step two is to add the plugin to the plugins section of your Phaser configuration, for example:

import { PokiPlugin } from '@poki/phaser-3'
// ...
const config = {
  // ...
  plugins: {
    global: [
      {
        plugin: PokiPlugin,
        key: 'poki',
        start: true, // must be true, in order to load
        data: {
          // This must be the key/name of your loading scene
          loadingSceneKey: 'LoadingScene',
          // This must be the key/name of your game (gameplay) scene
          gameplaySceneKey: 'PlayScene',
          // This will always request a commercialBreak when gameplay starts,
          // set to false to disable this behaviour (recommended to have true,
          // see Poki SDK docs for more details).
          autoCommercialBreak: true
        }
      }
    ]
  }
}
// ...
var game = new Phaser.Game(config)

(more info on Phaser's configuration here)

Usage

Loading & Gameplay Events

The Poki Phaser plugin will automatically call PokiSDK.gameLoadingStart() and PokiSDK.gameLoadingStop(); if the loadingSceneKey is configured. The same is true for the set gameplaySceneKey. If your game doesn't use multiple scenes for gameplay you can manually call the events like so:

const poki = scene.plugins.get('poki') // get the plugin from the Phaser PluginManager
poki.gameplayStart()
// ... start gameplay ...
scene.on('player_died', () => {
  poki.gameplayStop()
})

On Initialized

To run code only when the PokiSDK is initialized you can use the following interface:

const poki = scene.plugins.get('poki') // get the plugin from the Phaser PluginManager
poki.runWhenInitialized((poki) => {
  // This is called after the PokiSDK is fully initialized, or immediately if
  // the PokiSDK has already been initialized.
  if (poki.hasAdblock) {
    console.log('😢')
  }
})