As we’re hoping to enter feature freeze later in the month, you can expect this to be one of the last development snapshot highlights of the 4.8 cycle. Relatedly, many of our contributors are currently hard at work to help get their features across the finish line in time, so the number of featured points this time might be slightly lighter than usual. That shouldn’t matter too much though, as quite a few of the new offerings are things that the community have been eagerly awaiting for years.
Please consider supporting the project financially, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.
Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor, the XR editor, or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.
The cover illustration is from ScagJPT, a desktop simulation game, where your new companion best friend, Scag, is here for all your scagalicious needs. You can buy the game on Steam, and follow the developers on Bluesky and Discord.
Highlights
In case you missed them, see the 4.8 dev 1, 4.8 dev 2, 4.8 dev 3, and 4.8 dev 4 release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in 4.8 dev 5.
Rendering: Mip-level texture streaming
In the context of an engine such as Godot, “texture streaming” refers to the ability to dynamically load and unload images based on a camera’s relative position. Such a system would allow games to handle significantly more visible textures at any given point in time, which is why such a feature was one of the community’s most desired. Unfortunately, like most highly-desired features, it’s much easier said than done, and the “best” implementation direction isn’t exactly set in stone.
The approach that Trevor Davenport took in GH-113429 was mip-level texture streaming. That is: Godot now only loads the necessary mipmap of a texture, representing smaller or less detailed versions of the base texture when far away or otherwise obfuscated. This results in a significant reduction of VRAM requirements for textures, particularly for 3D titles with large, open worlds.
In order to leverage this new functionality, streaming must first be enabled in the project settings, necessitating an editor restart. You can make runtime changes via the TextureStreaming singleton.

Once enabled, textures can be imported as streamed textures, utilizing the new texture import type: “Texture2D Streamed”. This new texture type comes equipped with overrides for minimum and maximum resolution for a given texture, so you can safely preserve crucial details on a case-by-case basis. The per-texture properties override the system settings; the default is to use the system settings.

Import: Allow preserving alpha test coverage
Speaking of mipmaps: an existing issue in the engine was actually caused by their use, albeit indirectly. Certain material shaders, such as alpha scissor, would look pretty rough at long distances; this was a direct result of mipmap levels causing them to overfilter and dissolve away. While technical workarounds do exist, such as using a texture format with built-in alpha coverage like .dds, it’s still too much of a technical hurdle for what should be straightforward.
Kasper Arnklit Frandsen shared the above sentiment, leading him to create GH-104289. This allows any given texture to preserve their alpha data, even when falling back to their scaled-down equivalents.
Editor: Clean and simplify 2D toolbar
Jayden Sipe rounds out our highlights this time with GH-121080, bringing the editor’s 2D toolbar a well-earned makeover. Being the same mind behind the overhaul of our game view toolbar, these changes increase parity between the docks with a consistent vision and design philosophy. Once again, an emphasis on usability and clarity was absolutely crucial.
| Before | After |
|---|---|
And more!
There are too many exciting changes to list them all here, but here’s a curated selection:
- 2D: Add Information and Frame Time panels to the 2D editor (GH-122848).
- Animation: Rename
BoneSpreader3DtoBoneSpaceAdjuster3D(GH-122888). - Buildsystem: Allow disabling
RenderingDeviceand/or its renderers while compiling (GH-103100). - Core: Add support for metadata in text scenes (GH-121920).
- Core: Simplify
GDTypeby storing all properties in a single unified map. Save ~12mb runtime RAM (GH-122751). - Editor: Make main screen dock colors more readable (GH-122903).
- GUI: Add
formatproperty to SpinBox and deprecateprefix/suffix(GH-103998). - GUI: Add new default algorithm of automatic focus strategy for
Controlnodes (GH-120631). - Input: Add
Input.get_device_orientation()returning hardware-fused quaternion (GH-119142). - Platforms: Implement Feral GameMode integration on Linux (GH-117938).
Changelog
78 contributors submitted 183 fixes for this release. See our interactive changelog for the complete list of changes since 4.8 dev 4. You can also review all changes included in 4.8 compared to the previous 4.7 feature release.
This release is built from commit 9552dfb68.
Downloads
Standard build includes support for GDScript and GDExtension.
.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
Known issues
With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.
- There are currently no known issues introduced by this release.
Bug reports
As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.
In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).
Support
Godot is a non-profit, open-source game engine developed by hundreds of contributors in their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!
If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund platform managed by the Godot Foundation. There are also several alternative ways to donate which you may find more suitable.
