| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| phaser-arcade-physics.min.js | 2026-04-30 | 1.2 MB | |
| phaser-arcade-physics.js | 2026-04-30 | 7.8 MB | |
| phaser.esm.min.js | 2026-04-30 | 1.4 MB | |
| phaser.esm.js | 2026-04-30 | 8.4 MB | |
| phaser.min.js | 2026-04-30 | 1.4 MB | |
| phaser.js | 2026-04-30 | 8.4 MB | |
| Phaser v4.1.0 source code.tar.gz | 2026-04-30 | 15.7 MB | |
| Phaser v4.1.0 source code.zip | 2026-04-30 | 17.8 MB | |
| README.md | 2026-04-30 | 1.7 kB | |
| Totals: 9 Items | 62.0 MB | 8 | |
Version 4.1.0 - Salusa - 30th April 2026
New Features
RenderConfig#mipmapRegenerationoption allows certain framebuffer-based objects to use mipmaps if the game is configured to use mipmaps. This has a cost because mipmaps must be recreated after every change. Currently it only applies to DynamicTextures; Filters cannot render mipmaps. Thanks @Flow!Layeris now a trueGameObject. This fixes numerous small inconsistencies, and some big issues such as Filters not working. Thanks @rexrainbow for reporting the initial issue!- The base filter
Controllernow hasgetPaddingCeil(), which returns the ceiling of the current padding. This is mostly used internally to avoid quality loss from fractional padding. If your code callsgetPadding()on a filter controller (typically in a custom render node), you should replace it withgetPaddingCeil().
Fixes
- Fix reversions in rounded rectangle handling. Thanks @laineus!
- Remove duplicate function definition and exposed internal code docs from
RectangleCanvasRenderer. - Fix duplicate texture name resulting from
RenderTexture#saveTexture. Thanks @UnaiNeuronUp! - Fix framebuffers (in filters and DynamicTextures) using mipmaps incorrectly. Now filters do not render with mipmaps. Thanks @Flow!
- Fix lack of default export in ESM build. Thanks @kibertoad!
- Fix lack of Class and LOG_VERSION export in ESM build. Thanks to many users including @Flow and @rex for helping investigate this!
- Fix
Utils.Array.GetRandomoften returningnullif onlystartIndexwas specified. Now it always returns an array element if part of the array is within range, as documented.