# phaser v3.90.0 — Phaser v3.90.0 - Product: phaser (https://whatsnew.fyi/product/phaser) - Vendor: phaserjs - Date: 2025-05-23 - Version: v3.90.0 - Original notes: https://github.com/phaserjs/phaser/releases/tag/v3.90.0 - Permalink: https://whatsnew.fyi/product/phaser/releases/v3.90.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add `GameObjects.Rectangle.setRounded` method to set rounded corners on Rectangle Shape Game Objects - **added** — Add `GameObjects.Rectangle.isRounded` read-only boolean to determine if Rectangle Shape Game Object has rounded corners - **added** — Add `GameObjects.Rectangle.radius` read-only number for the size of rounded corners - **added** — Add `Phaser.Math.Angle.GetClockwiseDistance()` to get the shortest nonnegative angular distance between two angles - **added** — Add `Phaser.Math.Angle.GetCounterClockwiseDistance()` to get the shortest nonpositive angular distance between two angles - **added** — Add `Phaser.Math.Angle.GetShortestDistance()` to get the shortest signed angular distance between two angles - **added** — Add `Phaser.GameObjects.BitmapText#setDisplaySize` method to set the original scaled size of BitmapText - **added** — Add fallback for Web Audio on Firefox for AudioListener positional properties - **changed** — Update `EXPAND` Scale Mode to clamp canvas size and prevent it from growing too large on landscape ultra-wide displays - **changed** — Throw an Error if trying to create a DOM Game Object without correctly configured Game Config - **fixed** — Remove erroneous `console.log` from the Text Game Object - **fixed** — Clear particle emitter color RGB arrays before repopulating - **fixed** — Fix `Phaser.Animations.AnimationFrame` to correctly use frame duration when set - **fixed** — Fix particle emitter custom `moveTo` functions to properly move particles - **fixed** — Change ImageCollections default Tileset values from `null` to `undefined` - **fixed** — Fix chained tweens to `persist` correctly after calling `Phaser.Tweens.BaseTween#stop` - **fixed** — Add default `canvas.dir = 'ltr'` and `context.direction = 'ltr'` to new left-to-right Text Game Objects - **fixed** — Fix `Grid` Game Objects to render `lineWidth` correctly in WebGL mode - **fixed** — Add `collisionMask` and `collisionCategory` checks to `Phaser.Physics.Arcade.World#separate` for individual physics game objects - **fixed** — Fix Arcade Physics bug causing immovable circle objects to move when pushed by polygons #### Version 3.90 - Tsugumi - 23rd May 2025 ##### New Features * `GameObjects.Rectangle.setRounded` is a new method that will allow the Rectangle Shape Game Object to have rounded corners. Pass the radius to set for the corners, or pass a value of zero to disable rounded corners. * `GameObjects.Rectangle.isRounded` is a new read-only boolean that can be used to determine if the Rectangle Shape Game Object has rounded corners, or not. * `GameObjects.Rectangle.radius` is a new read-only number that is the size of the rounded corners. Do not set directly, instead use the method `setRounded`. * Added `Phaser.Math.Angle.GetClockwiseDistance()` to get the shortest nonnegative angular distance between two angles. PR #7092 (thanks @samme) * Added `Phaser.Math.Angle.GetCounterClockwiseDistance()` gets the shortest nonpositive angular distance between two angles. PR #7092 (thanks @samme) * Added `Phaser.Math.Angle.GetShortestDistance()` gets the shortest signed angular distance between two angles. (This is like `Phaser.Math.Angle.ShortestBetween()` but in radians.) PR #7092 (thanks @samme) * Added `Phaser.GameObjects.BitmapText#setDisplaySize` method to `BitmapText` to get the original scaled size of 1. PR #6623 (thanks @samme) * Added fallback for Web Audio on Firefox. Firefox doesn't implement `positionX`, `positionY` and `positionZ` properties on the AudioListener instances at the moment. This prevents the follow feature from WebAudioSound to operate on Firefox. PR #7083 (thanks @raaaahman) ##### Updates * The `EXPAND` Scale Mode has been updated to now clamp the size of the canvas that is created, preventing it from growing too large on landscape ultra-wide displays. Fix #7027 (thanks @leha-games @rexrainbow) * An Error will now be thrown if you try to create a DOM Game Object but haven't correctly configured the Game Config (thanks @samme) ##### Bug Fixes * An erroneous `console.log` was left in the Text Game Object. This has now been removed. * Particle emitter color RGB arrays are cleared before repopulating. Fix #7069 (thanks @Golen87 @samme) * `Phaser.Animations.AnimationFrame` correctly uses frame duration when it is set. Fix #7070 (thanks @sylvainpolletvillard) * Particle emitter custom `moveTo` functions can now move particles. Fix #7063 (thanks @samme) * Changed ImageCollections default Tileset values from `null` to `undefined`. Fix #7053 (thanks @Snoturky) * Chained tweens now `persist` correctly even after calling `Phaser.Tweens.BaseTween#stop`. Fix #7048 (thanks @FranciscoCaetano88) * New left-to-right `Text` Game Objects now includes the default `canvas.dir = 'ltr` and `context.direction = 'ltr';`. Fixes a bug in Chrome 134 & Edge 134 where calling `destroy()` on a right-to-left `Text` Game Object prevents the next created left-to-right `Text` Game Object from rendering. Fix #7077 (thanks @Demeno) * `Grid` Game Objects renders `lineWidth` correctly in WebGL mode. Fix #7029 (thanks @AlvaroNeuronup) * Added `collisionMask` and `collisionCategory` checks to `Phaser.Physics.Arcade.World#separate` to allow individual physics game objects within a physics group to have it's own unique collision categories. Fix #7034 (thanks @frederikocmr) * Fixed Arcade Physics bug causing immovable circle objects to move when pushed by polygons. Fix #7054 (thanks @hunkydoryrepair) * Fixed `createFromTiles` to handle multiple tilesets when using sprite sheets. Fix #7122 (thanks @vikerman) * Fixed audio files not loading from Base64 data URIs (thanks @bagyoni) ##### Examples, Documentation, Beta Testing and TypeScript Thanks to the following for helping with the Phaser Examples, Beta Testing, Docs, and TypeScript definitions, either by reporting errors, fixing them, or helping author the docs: @justin-calleja @ixonstater @DayKev