With GodotCon behind us and our developers recuperated, we’re thrilled to return to a more frequent release-cycle. It’s only been two weeks since we last checked in, yet there’s still so much to talk about! So buckle on in for a breakdown of what you can expect to see in 4.4 dev 5.

Many of the changes in this release are bug fixes that will be backported to Godot 4.3 and released in 4.3.1! So please test this release well so we can be confident with the changes and release 4.3.1 with them as soon as possible.

Keep in mind that while we try to make sure each dev snapshot is stable enough for general testing, 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.

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, XR editor, or the Android editor for this release (join the Android editor testing group to get access to pre-release builds).


The cover illustration is from The Rise of the Golden Idol, a mystery game where you unravel the truth behind 20 cases of crime in the 1970s! It is developed by Color Gray Games. You can purchase the game on Steam and follow the developer on Twitter.

Highlights

In case you missed them, see the 4.4 dev 1, 4.4 dev 2, 4.4 dev 3, and 4.4 dev 4 release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 5.

Here are highlights of a few new features in dev 5 that you might find particularly exciting!

Universalize UID support

Previously, the UID format was not supported by all Resource types. This proved to be a pain point for users wishing to reference their scripts and other resources in a manner that’s path-agnostic. This, along with a need to refactor their scripts anytime these kinds of files were moved, put a significant duty of care on the end-user that shouldn’t have been necessary.

Starting with dev 5, this will no longer be your burden to bear! Thanks to a long-term effort from reduz, UIDs will now be applied universally in a way the engine can automatically track and account for. This is achieved via .uid files for the resource types that previously didn’t support them, functioning similarly to other metadata files that “track” a main file.

Note that, unlike metadata files, .uid files are strictly for the editor; the information is migrated to the uid database on export. Despite this, users using version control software should add these files, as they’re required to properly sync data (similar to .import files). For more information, see (GH-97352).

Favorite editor items

A common complaint we hear regarding the inspector is the potential for it to get cluttered. Namely, while there’s generally a wide selection of options available for a given class/script, users will usually only care about a particular subsection that suits them. To account for this, YeldhamDev brings us the long-awaited ability to pin one’s favorite properties in the inspector! Check out the implementation from PR (GH-97352) below:

And more!

There are too many exciting changes to list them all here, but here’s a curated selection:

  • 2D: Add a way to know when a TileMapLayer’s cell is modified (GH-96188).
  • 2D: Make possible to scale multiple nodes at once in the canvas editor (GH-98534).
  • 3D: Fix Gridmap shortcut conflicts with 3D editor (GH-99170).
  • 3D: Move GridMapEditor to bottom panel (GH-96922).
  • Animation: Add advance_on_start option to NodeAnimation to handle advance(0) for each NodeAnimation (GH-94372).
  • Animation: Fix key is deselected by changing key time in KeyEdit in FPS mode (GH-99319).
  • Animation: Implement LookAtModifier3D (GH-98446).
  • Animation: Sort blend shapes in the inspector by ID instead of alphabetically (GH-99231).
  • Audio: Allow waveform resize (GH-97551).
  • Audio: Fix AudioStreamWAV::save_to_wav adding extra ‘.wav’ to file if existing ext is not lower case (GH-98717).
  • Buildsystem: Bump minimum version of SCons to 4.0 & Python to 3.8 (GH-99134).
  • Core: Add typed dictionary support for binary serialization (GH-98120).
  • Core: Fix Freed Object booleanization (GH-93885).
  • Core: Fix MissingResource properties being stripped on save (GH-86600).
  • Core: Fix comparison of callables (GH-99078).
  • Core: Provide a reliable way to see original resources in a directory (GH-96590).
  • Dotnet: Add Codium support to C# external editors (GH-89051).
  • Dotnet: Implement [ExportToolButton] (GH-97894).
  • Editor: Add a pin toggle to prevent involuntary bottom editor switching (GH-98074).
  • Editor: Add fuzzy string matching to quick open search (GH-98278).
  • Editor: Highlight scripts used by current scene (GH-97041).
  • Editor: Optimize FileSystem Dock filtering (GH-95107).
  • Export: Add ability for PCK patches to remove files (GH-97356).
  • Export: Display project settings splash color on web export (GH-96625)
  • GDExtension: Fix method binds not saying if they are varargs (GH-99403).
  • GDExtension: Improve macOS library loading/export (GH-98809).
  • GDScript: Add support for print command in local (command line -d) debugger (GH-97218).
  • GUI: Fix tooltip appearing in old place, on movement (GH-96721).
  • Import: Allow passing UID to importer (GH-97363).
  • Import: Reload cached resources in runtime on file reimport (GH-98710).
  • Input: Revert “Fix InputEvent device id clash” and add a compatibility function (GH-99449).
  • Multiplayer: Handle scene UIDs in MultiplayerSpawner (GH-99137).
  • Navigation: Improve NavMeshGenerator2D::generator_bake_from_source_geometry_data performance (GH-98957).
  • Navigation: Reduce allocations for NavMap synchronisation (GH-98866).
  • Network: Split Unix/Windows IP implementation (GH-99026).
  • Network: Split Unix/Windows NetSocket implementation (GH-98969).
  • Plugin: Make the method selector dialog available via EditorInterface (GH-98859).
  • Rendering: Add multimesh_get_buffer_rd_rid method to RenderingServer (GH-98788).
  • Rendering: Ensure shadow material and mesh are not used with wireframe mode (GH-98683).
  • Rendering: Normalize normal, tangent, and binormal before interpolating in the mobile renderer to avoid precision errors on heavily scaled meshes (GH-99163).
  • Rendering: Reduce shader permutations in the compatibility backend (GH-87558).
  • Shaders: Add renderer state defines to shader preprocessor (GH-98549).
  • Shaders: Add swap connection option to visual shader graph (GH-99177).
  • XR: Fix pose recenter signal to be omitted properly (GH-99159).

Changelog

116 contributors submitted 265 improvements for this new snapshot. See our interactive changelog for the complete list of changes since the previous 4.4-dev4 snapshot.

This release is built from commit 9e609843.

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.

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 on their free time, as well as a handful of part or 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 Godot Foundation. There are also several alternative ways to donate which you may find more suitable.