We entered the beta phase for Godot 4.2 a couple of weeks ago, with 4.2 beta 1. If you missed that release, have a look at the release notes for an overview of the key changes in Godot 4.2.

Since the start of the beta phase, we fixed a number of bugs reported by the community, so we’re publishing further beta snapshots to validate those fixes, and iterate closer to the release candidate stage.

Notably, this third beta improves support for 3D projects made with Godot 4.1 when migrating them to Godot 4.2. Following our changes to the mesh vertices and attributes compression format, we are now introducing a helpful dialog when you first open a pre-existing project. It lets you choose to upgrade and re-save all the meshes in your projects to make them compatible with Godot 4.2.

This release also updates the toolchains used to build official binaries, notably for Windows, macOS, iOS and JavaScript. This should be mostly transparent to end users, but toolchain bugs are a possibility. So please report if anything seems off compared to the previous beta build in terms of performance, or outright crashing.

For C# users, the .NET 8.0 release is set to be launched this November. Make sure to try the current preview release (8.0.0-rc.2) with Godot to make sure everything works as expected. This Godot beta release includes a fix to support preview releases so give it a try and report any bugs that you find.

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 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 illustration picture for this article is taken from The Last Game, a roguelite twin-stick shooter by Frédéric Julian made with Godot 4.1. It was recently released on App Store, Google Play, Steam, and itch.io. You can follow the development on Twitter or Discord.

What’s new

For an overview of what’s new overall in Godot 4.2, have a look at the release notes for 4.2 beta 1, which cover a lot of the changes. This blog post only covers the changes between beta 2 and beta 3.

44 contributors submitted 74 improvements for this release. You can review the complete list of changes with our interactive changelog, which contains links to relevant commits and PRs for this and every previous release. Below are the most notable changes compared to 4.2-beta2:

  • 2D: Fix transform calculations for drag-moving CanvasItems in editor (GH-82667).
  • 2D: Fix Polygon2D undo on transforming vertices (GH-83659).
  • 2D: Fix TileSet painting options appear out of screen (GH-83790).
  • 3D: Add an editor tool to automatically upgrade and re-save meshes (GH-83613).
  • Animation: Fix “Some nodes are referenced by animation tracks” when deleting instance (GH-82486).
  • Animation: Readd close button for nodes in AnimationNodeBlendTree editor (GH-83507).
  • Animation: Add vertical scrolling to bézier track editor (GH-83776).
  • Audio: Fix pausing stream on entering tree (GH-83779).
  • Buildsystem: Web: Fix closure compiler builds using BIGINT (GH-83720).
  • C#: Fallback to the latest SDK (GH-83325).
  • Core: Add support for ImageTexture3D serialization (GH-82055).
  • Core: Update triangulate_delaunay() to avoid needless reallocations (GH-83434).
  • Core: Fix heap-use-after-free when resource loaded with load_threaded_request is never fetched (GH-83782).
  • Editor: Fix unexpected behaviors of using Duplicate To on folders (GH-81437).
  • Editor: Make LineEdit secret character easier to change and enter (GH-81724).
  • Editor: Fix internal CONNECT_INHERITED being saved in PackedScene & Make Local (GH-81737).
  • Editor: Fix remove_control_from_dock fails when dock is floating (GH-83512).
  • Editor: Fix crash on recovered orphaned nodes (GH-83604).
  • Editor: Fix StringName leaks in VariantParser (GH-83619).
  • Editor: Improve threading in ClassDB and EditorHelp (GH-83695).
  • Export: Use “version” project setting as macOS/iOS “short_version” fallback (GH-83686).
  • GDExtension: Allow coexistence of GDScript and GDExtension virtual methods in the same object (GH-83583).
  • GDExtension: Add path option to ScriptLanguageExtension::_validate (GH-83588).
  • GDExtension: Fix variant_iter_get() actually calling iter_next() (GH-83681).
  • GDExtension: Fixed error on loading extensions (GH-83734).
  • GDScript: Fix lambda hot reloading (GH-81628).
  • GDScript: Fix non-static call is allowed in static var lambda body (GH-83486).
  • GDScript: Fix GDScriptCache::get_full_script eating parsing errors because of early exit (GH-83540).
  • GUI: Add bulk change guards to successive theme overrides in Editor and GUI (GH-83626).
  • GUI: Fix TabBar and TabContainer dragging issues (GH-83637).
  • GUI: Fix missing initial position modes for the main window (GH-83824).
  • GUI: TextServerAdvanced: Keep dynamically loaded ICU data in memory (GH-83827).
  • GUI: Increase precision of RAW mode in ColorPicker (GH-83851).
  • Import: Prevent crash from importing a certain kind of invalid GLTF (GH-83663).
  • Input: Sync controller mappings DB with SDL2 community repo (GH-83845).
  • Multiplayer: Display multiplayer authority ID in remote debugger (GH-83437).
  • Navigation: Fix NavigationObstacle3D debug being affected by rotation and scale (GH-82593).
  • Navigation: Fix NavigationObstacle3D height (GH-83701).
  • Navigation: Fix NavigationAgent3D stored y-axis velocity and make it optional (GH-83705).
  • Navigation: Fix NavigationLink enabled toggle (GH-83709).
  • Navigation: Fix hole in heightmap navigation mesh baking (GH-83783).
  • Particles: Fix typo in particles process material when using emission color texture (GH-83620).
  • Particles: Fix massive performance hit due to enabling collision (GH-83749).
  • Particles: Fix directed points not working, and fix friction formula (GH-83831).
  • Porting: Android: Fix joypad trigger value range (GH-81322).
  • Porting: Android: Fix logic for deferred window input events being inverted (GH-83301).
  • Porting: Linux: Implement clipboard_get/has_image (GH-81439).
  • Porting: Web: Revert to proxy_to_pthread=no as default (GH-83837).
  • Rendering: Add an extra backbuffer color texture that can be used when an upscaler is in use (GH-83192).
  • Rendering: Optimize lightmapper using triangle clusters on the acceleration structure (GH-83284).
  • Rendering: Ensure that only visible paired lights are used (GH-83493).
  • Rendering: Fix shadow map debug visualization camera frustum index buffer size (GH-83639).
  • Rendering: Fixing incorrect normal map when using triplanar world mapping and mesh rotation (GH-83658).
  • Rendering: Some more fixes for compressed meshes (GH-83704).
  • Rendering: Fix GPUParticles3D on the Meta Quest 2 with OpenGL renderer (GH-83756).
  • Rendering: Fix LightmapGI taking editor-only and sky-only lights into account (GH-83861).
  • Thirdparty: brotli: Sync with upstream 1.1.0 (GH-82580).
  • Thirdparty: ThorVG: update to v0.11.2 (GH-83656).
  • Thirdparty: mbedTLS: Update to version 2.18.5 (GH-83721).
  • Thirdparty: openxr: Revert to 1.0.28, newer versions crash on Windows/Mingw-GCC (GH-83829).

This release is built from commit e8d57afae.

Downloads

Standard build includes support for GDScript and GDExtension.

.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.

  • .NET build requires .NET SDK 6.0 or 7.0 installed in a standard location.
    • .NET 8.0 should also be supported, but keep in mind this version of the .NET SDK is still in preview. Give it a try and let us know if you find any bugs.
  • To export to Android, .NET 7.0 or later is required. To export to iOS, .NET 8.0 is required. Make sure to set the target framework in the .csproj file.

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

There are currently no known issues introduced by this release.

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 4.2 beta 3).

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.