While Godot 4.2 is enjoying its last leg of the development cycle (check out beta 3!), we have an opportunity to compile yet another batch of changes fitting for Godot 4.1. Make sure to give this release candidate a test, so the stable version can be made available shortly.

The third maintenance release for Godot 4.1 contains a number of fixes for the rendering system, including issues in all rendering backends, in lightmap and voxel GI systems, and in particles. Various problems were addressed in the editor UI, and in the GUI system in general. The Input team improved controller support and resolved a couple of problems specific to the Android platform. And finally, several documentation mistakes have been corrected, plus there is new documentation available for RenderingDevice.

Maintenance releases are expected to be safe for an upgrade, but we recommend to always make 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 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 comes from Living for Plants, a chill management game about taking care of plants. It was made by shawcat in Godot 4.1 in just a few days, and you can watch their video documenting the process and sharing some thoughts about the engine. The game is available on itch.io and is completely free, so make sure to give it a go!

What’s new

76 contributors submitted around 126 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:

  • 2D: Allow using floating-point bone sizes and outline widths in the 2D editor (GH-79434).
  • 2D: Convert TileSet Atlas Merge input images to RGBA8 to match output, if needed (GH-80943).
  • 2D: Fix TileMap editor so that pressing control deselects cells correctly (GH-81925).
  • 2D: Fix animated tile time-slice calculation accumulating float errors (GH-82360).
  • 3D: Make CSGShape follow curve’s tilt in Path mode (GH-79355).
  • 3D: Ensure GridMap visibility is updated when entering the tree (GH-81106).
  • Animation: Improve and clarify paused Tweens (GH-79879).
  • Animation: Avoid emitting signals if the animation is not ready to be processed (GH-80367).
  • Animation: Ensure methods skipped by AnimationPlayer::seek are not called (GH-80708).
  • Animation: Fix animation keyframes being skipped when played backwards (GH-81452).
  • Animation: Fix SkeletonIK3D editor preview when changing active node (GH-82391).
  • Audio: Fix pausing stream on entering tree (GH-83779).
  • Buildsystem: SCons: Use CXXFLAGS to disable exceptions, it’s only for C++ (GH-83618).
  • C#: Fix line number when opening an external editor (GH-79404).
  • C#: Fix an error in Vector3.BezierDerivative (GH-82664).
  • Core: Support loading of translations on threads (GH-78747).
  • Core: Fix comparison of Callables with binds (GH-81131).
  • Core: Fix for non-deterministic behavior in PCKPacker (GH-81280).
  • Core: Fix not being able to set Node process priority in certain cases (GH-82358).
  • Documentation: Add missing RenderingDevice method descriptions (GH-80716).
  • Editor: Fix conversion of hex color strings in project converter (GH-74026).
  • Editor: Fix long plugin names breaking AssetLib UI (GH-80555).
  • Editor: Fix 2D/3D viewport context switching issues when script editor is floating (GH-80647).
  • Editor: Fix paste value emptying an array on some right click location (GH-80977).
  • Editor: Fix missing dependency warning popup (GH-82244, GH-83024).
  • Editor: Windows: Always double-quote path when launching the File Explorer (GH-78963).
  • Export: iOS: Fix build on Xcode 14 and older (GH-83088).
  • GDExtension: Fix incorrect virtual function in VideoStream.set_paused (GH-79710).
  • GDExtension: Fix variant_iter_get() actually calling iter_next() (GH-83681).
  • GDScript: Check get_node() shorthand in static functions (GH-78552).
  • GDScript: Fix get_method from named lambda (GH-80506).
  • GDScript: Add check for super() methods not being implemented (GH-81808).
  • GDScript: Fix GDScriptCache::get_full_script eating parsing errors because of early exit (GH-83540).
  • GDScript: LSP: Fix autocomplete quote handling (GH-81833).
  • GUI: Fix native popups auto-closing when interacting with non-client area (GH-79456).
  • GUI: Fix scrolling PopupMenu on keyboard/controller input (GH-80271).
  • GUI: Fix OptionButton minimum size when “Fit Longest Item” is enabled (GH-80366).
  • GUI: Fix TreeItem range slider not working properly (GH-81174).
  • Import: Fix reimporting scene with default values selected (GH-79907).
  • Import: Limit mesh complexity in LOD generation to prevent crashing (GH-80467).
  • Import: Fix grayscale DDS loading (GH-81134).
  • Import: Update Blender export flags for 3.6 (GH-81194).
  • Import: Avoid crash when generating LODs on meshes with non-finite vertices (GH-82285).
  • Input: Add XInput device ID for wireless Series 2 Elite controller (GH-82508).
  • Input: Android: Fix input routing logic when using a hardware keyboard (GH-80932).
  • Input: Android: Fix logic for deferred window input events being inverted (GH-83301).
  • Multiplayer: Fix watch properties not being correctly removed (GH-81033).
  • Navigation: Fix pathfinding funnel adding unwanted point (GH-79228).
  • Particles: Fix particle shader deterministic random values (GH-80638).
  • Particles: Fix GPUParticles2D offset stutter (GH-80984).
  • Particles: Fix errors when freeing GPUParticles (GH-82431).
  • Physics: Fix missing clear for some set_exclude* query parameter methods (GH-82043).
  • Porting: Linux: Use EWMH for DisplayServerX11::_window_minimize_check() implementation (GH-80036).
  • Porting: macOS: Fix borderless mode on macOS 13.6+ (GH-82357).
  • Porting: Web: Fix JavaScript callback memory leak (GH-81105).
  • Porting: Windows: Do not force redraw window background on mouse pass-through region change (GH-80153).
  • Porting: Windows: Fix not applying NVIDIA profile to new executables (GH-81251).
  • Rendering: Fix validation errors when enabling SSIL, TAA + MSAA (GH-80315, GH-81775).
  • Rendering: Ensure POINT_SIZE takes effect in the canvas item shader (GH-80323).
  • Rendering: Fix volumetric fog NaN values in textures from starting at a zero Vector2 (GH-80992).
  • Rendering: Fix various VoxelGI issues (GH-81067, GH-81124, GH-83035).
  • Rendering: Fix various LightmapGI issues (GH-81545, GH-81951).
  • Rendering: Fix cluster artifacts and negative light (GH-82546).
  • Rendering: Fix disabling depth prepass break opaque materials (GH-83371).
  • Rendering: GLES3: Fix clear color’s alpha value will affects 2D editor (GH-81395).
  • Rendering: GLES3: Fix instanced rendering color and custom data defaults (GH-81575).
  • Rendering: Mobile: Uncomment code required for fog rendering on clear color (GH-79776).
  • Rendering: Mobile: Fix issue with four subpasses always been requested (GH-80368).
  • Rendering: Mobile: Fix missing decal mask (GH-80911).
  • Rendering: Vulkan: Fix multithreaded compute list and GPU particle processing (GH-79849).
  • XR: Fix GPUParticles3D on the Meta Quest 2 with OpenGL renderer (GH-83756).

  • Thirdparty: mbedTLS 2.18.5, zlib/minizip 1.3.
  • Thirdparty: Sync controller mappings DB with SDL2 community repo.

This release is built from commit f80c673cd (see README).

Downloads

Standard build includes support for GDScript and GDExtension.

.NET 6 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.

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.1.x releases, but no longer works in 4.1.3 RC 1).

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.