Phaser 3.6.0 "Asuna" is the current stable version and was released on 19th April 2018.
The previous version of Phaser was 3.5.1.


Download this version from npm. Need more details? Follow this tutorial.

npm install phaser@3.6.0


Phaser is on the jsDelivr CDN. Include one of the following in your html:

<script src="//"></script>
<script src="//"></script>

Looking for Phaser 2 / CE?

The latest CE release is 2.10.3 released on 21st March 2018.

Which file should I download?

Familiar with git? Use the "clone" link to get the whole repo. The "js" and "min.js" links download pre-built versions of Phaser with all modules enabled. The zip and tar links download an archive of the repository. If you're just doing a quick test then it's safe to grab the js files, however it's always worth having the source code to hand for reference.

What's New in 3.6.0?

New Features

  • Containers are now fully available! We have removed the beta warning and fixed the way in which they work with Cameras, input and scroll factors. They are also fully documented, so please see their docs and examples for use.
  • Group.getLast will return the last member in the Group matching the search criteria.
  • Group.getFirstNth will return the nth member in the Group, scanning from top to bottom, that matches the search criteria.
  • Group.getLastNth will return the nth member in the Group, scanning in reverse, that matches the search criteria.
  • Group.remove has a new optional argument destroyChild that will call destroy on the child after removing it.
  • Group.clear has a new optional argument destroyChild that will call destroy on all children in the Group after removing them.


  • Impact Physics Game Objects have changed setLite to setLiteCollision.
  • Impact Physics Game Objects have changed setPassive to setPassiveCollision.
  • Impact Physics Game Objects have changed setFixed to setFixedCollision.
  • Impact Physics Game Objects have changed setActive to setActiveCollision, previously the setActive collision method was overwriting the Game Objects setActive method, hence the renaming.
  • The modifications made to the RTree class in Phaser 3.4.0 to avoid CSP policy violations caused a significant performance hit once a substantial number of bodies were involved. We have recoded how the class deals with its accessor formats and returned to 3.3 level performance while still maintaining CSP policy adherence. Fix #3594 (thanks @16patsle)
  • The Retro Font namespace has changed to Phaser.GameObjects.RetroFont. Previously, you would access the parser and constants via BitmapText, i.e.: Phaser.GameObjects.BitmapText.ParseRetroFont.TEXT_SET6. This has now changed to its own namespace, so the same line would be: Phaser.GameObjects.RetroFont.TEXT_SET6. The Parser is available via Phaser.GameObjects.RetroFont.Parse. This keeps things cleaner and also unbinds RetroFont from BitmapText, allowing you to cleanly exclude it from your build should you wish. All examples have been updated to reflect this.
  • If using the removeFromScene option in Group.remove or Group.clear it will remove the child/ren from the Scene to which they belong, not the Scene the Group belongs to.

Bug Fixes

  • Fixed a bug that caused data to not be passed to another Scene if you used a transition to start it. Fix #3586 (thanks @willywu)
  • Group.getHandler would return any member of the Group, regardless of the state, causing pools to remain fixed at once member. Fix #3592 (thanks @samme)

Examples, Documentation and TypeScript

My thanks to the following for helping with the Phaser 3 Examples, Docs and TypeScript definitions, either by reporting errors, fixing them or helping author the docs:

@Fabadiculous @Antriel