mirror of
https://github.com/godotengine/godot-website.git
synced 2025-12-31 09:48:43 +03:00
2959 lines
245 KiB
XML
2959 lines
245 KiB
XML
<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Godot Engine Official</title><link/><description/><atom:link href="https://godotengine.org/rss.xml" rel="self" type="application/rss+xml"/><item><title>Godot XR update - November 2025</title><link>https://godotengine.org/article/godot-xr-update-nov-2025/</link><summary>MOAT XR, XR game jam results, new features, OpenXR inventory</summary><description><h2 id="the-museum-of-all-things-released-on-the-meta-quest-store">“The Museum of All Things” released on the Meta Quest store!</h2>
|
||
<p>The Museum of All Things is a virtual museum where each exhibit is generated from an article on Wikipedia, and the links to other articles become doors to other exhibits.</p>
|
||
<p><img src="/storage/blog/godot-xr/updates/moat.png" alt="Museum of All Things" /></p>
|
||
<p>It was the topic of a <a href="https://godotengine.org/article/museum-of-all-things/">showcase back in February</a>, where it had a PCVR version, but no port to the Meta Quest.</p>
|
||
<p>However, now it’s launched on the <a href="https://www.meta.com/experiences/the-museum-of-all-things/25148973151401467/">Meta Quest store</a>!</p>
|
||
<h2 id="results-of-the-godot-xr-community-game-jam">Results of the Godot XR Community Game Jam</h2>
|
||
<p>In September the Godot XR Community held its latest game jam and we had some amazing entries. The quality is definitely rising from previous jams.</p>
|
||
<p>The theme this time around was “It takes two”, and the interpretations of the theme did not disappoint.</p>
|
||
<p>You can find the full results here, we’ll list the top 5 results below. I highly recommend checking out the other entries. There are a number of gems that didn’t make the top 5.</p>
|
||
<h3 id="no-5-rogue-vantage-by-allen-dawodu">No 5. “Rogue Vantage” by Allen Dawodu</h3>
|
||
<p><a href="https://itch.io/jam/godot-xr-game-jam-sep-2025/rate/3879177">Rogue Vantage</a> by <a href="https://allendawodu.itch.io/">Allen Dawodu</a> ranked 5th with 11 ratings (Score: 3.606).</p>
|
||
<iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/iX6pwozpcC8" title="Rogue Vantage" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
|
||
<p>This entry is a variation on the Superhot formula where time only progresses when you move.</p>
|
||
<p>However the main character is now an NPC that you need to assist. Levels get progressively more difficult as you’re trying to keep your NPC alive.</p>
|
||
<h3 id="no-4-and-2-we-are-by-miguebc">No 4. “And 2 We Are” by MigueBC</h3>
|
||
<p><a href="https://itch.io/jam/godot-xr-game-jam-sep-2025/rate/3883812">And 2 We Are</a> by <a href="https://miguebc.itch.io/">MigueBC</a> ranked 4th with 10 ratings (Score: 3.617).</p>
|
||
<iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/zowvWSvMEbg" title="And 2 We Are" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
|
||
<p>This entry has you play two separate characters that need to perform complimentary actions to escape a maze. It has a very Portal feel to it and I wish it had many more levels to it.</p>
|
||
<p>The miniaturization part was especially well executed.</p>
|
||
<h3 id="no-3-runaway-rails-by-copper-tunic">No 3. “Runaway Rails” by Copper Tunic</h3>
|
||
<p><a href="https://itch.io/jam/godot-xr-game-jam-sep-2025/rate/3880221">Runaway Rails</a> by <a href="https://copper-tunic.itch.io/">Copper Tunic</a> ranked 3rd with 11 ratings (Score: 3.833).</p>
|
||
<iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/euV89UPG4Go" title="Runaway Rails" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
|
||
<p>This great little rhythm game has you play together with another player to place rail road tracks to the beat of music in order to prevent a train from derailing.</p>
|
||
<p>If you don’t have a friend at hand, you can play together with an NPC.</p>
|
||
<p>The developer seems set to continue building this game out and has already released several updates to his game since the jam ended.</p>
|
||
<h3 id="no-2-things-you-can-do-with-two-hands-by-matt-giuca">No 2. “Things You Can Do With Two Hands” by Matt Giuca</h3>
|
||
<p><a href="https://itch.io/jam/godot-xr-game-jam-sep-2025/rate/3874113">Things You Can Do With Two Hands</a> by <a href="https://mgiuca.itch.io/">Matt Giuca</a> ranked 2nd with 11 ratings (Score: 4.000).</p>
|
||
<iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/L41KnIcSRzE" title="Things You Can Do With Two Hands" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
|
||
<p>This game might have a simple aesthetic, but it is a unique experience to play through.</p>
|
||
<p>The aim is to coordinate and perform actions with both your hands to complete levels. Whether it is turning keys in moving locks, throwing bowling balls that have to hit a cone at the same time, or trying to hit the moon while also hitting a target, it is deceptively tricky to complete the whole game.</p>
|
||
<h3 id="no-1-wiener-wobble-dog-park-by-andyman404">No 1. “Wiener Wobble Dog Park” by Andyman404</h3>
|
||
<p><a href="https://itch.io/jam/godot-xr-game-jam-sep-2025/rate/3883622">Wiener Wobble Dog Park</a> by <a href="https://andyman404.itch.io/">Andyman404</a> ranked 1st with 7 ratings (Score: 4.048).</p>
|
||
<iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/DNN8vEwrVdg" title="Wiener Wobble Dog Park" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
|
||
<p>The winner of the game jam was Wiener Wobble Dog Park. This unique entry has you control a sausage dog with two fingers on each hand. One hand controls the front of the dog, while the other controls the rear.</p>
|
||
<p>The dog works like a slinky and you have to move it through an obstacle course where you can move only when the dog touches the course. It is a frantic and very enjoyable experience.</p>
|
||
<h2 id="introducing-spatial-entities">Introducing spatial entities</h2>
|
||
<p>Spatial entities is a new collection of APIs within the OpenXR specification that gives us access to information about the real world around us. This API is designed to grow over time. Its initial iteration gives access to:</p>
|
||
<ol>
|
||
<li>Spatial anchors allow users to mark real world locations that are tracked by the headset. These can be stored on the headset and retrieved on subsequent runs of your application. They are great for placing virtual objects in a fixed location in your real space.</li>
|
||
<li>Plane tracking provides us with insight about the world around us, where is our floor, where are walls, where are tables, etc.</li>
|
||
<li>Marker tracking allows us to use various printed markers like QR codes, April tags, and Aruca codes, and have our headset identify and track those locations.</li>
|
||
</ol>
|
||
<p>Godot is an early adopter of this API thanks to funding through the Khronos Godot Integration Project.</p>
|
||
<p>You can try out this new API using the Galaxy XR headset as Android XR has support for all three implementations. We are eagerly awaiting news of other headsets supporting this functionality.</p>
|
||
<h2 id="frame-synthesis">Frame synthesis</h2>
|
||
<p>Frame synthesis is a new OpenXR API that defines a standard for advanced reprojection techniques. This allows you to run your application at a lower frame rate and have the runtime inject reprojected frames that use motion vectors and depth information to improve the image.</p>
|
||
<p>Note that this API only works with the Compatibility and Mobile renderers.</p>
|
||
<p>This work was made possible thanks to funding through the Khronos Godot Integration Project.</p>
|
||
<h2 id="openxr-inventory">OpenXR inventory</h2>
|
||
<p>The OpenXR working group maintains an <a href="https://github.khronos.org/OpenXR-Inventory/extension_support.html">inventory website</a> where you can see which OpenXR extensions are supported on various OpenXR Runtimes.</p>
|
||
<p>The past year our very own Bastiaan Olij has spent time on extending this inventory to also support a <a href="https://github.khronos.org/OpenXR-Inventory/extension_support.html#client_matrix">client matrix</a> showing which OpenXR extensions are supported by various game engines. Working together with developers from these other engines we were able to present a complete list and devise a system that will inform users of needed plugins to get access to these features.</p>
|
||
<p>We can now see that Godot leads the pack, supporting 95 official OpenXR extensions in total. This number is made up of:</p>
|
||
<ul>
|
||
<li>14 core extensions (KHR)</li>
|
||
<li>22 multi-vendor extensions (EXT)</li>
|
||
<li>59 vendor extensions</li>
|
||
</ul></description><category>Progress Report</category><guid>https://godotengine.org/article/godot-xr-update-nov-2025/</guid><dc:creator>Bastiaan Olij</dc:creator><pubDate>Fri, 21 Nov 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/november-2025-update-godot-xr-community.jpg</image></item><item><title>Godot and W4 Games support Android XR from day One</title><link>https://godotengine.org/article/announcing-android-xr-support/</link><summary>Announcing support for the Android XR ecosystem by the Godot Foundation and W4 Games</summary><description><p>With the recent public release of Samsung Galaxy XR, the first headset using the new Android XR operating system, we are pleased to announce that Godot already supports this new ecosystem.</p>
|
||
<p>As a game engine that puts OpenXR front and center, Godot is uniquely positioned to excel on this platform.</p>
|
||
<p>With the release of the <a href="https://store-beta.godotengine.org/asset/godot-xr/godot-openxr-vendors-plugin/">Godot OpenXR vendor plugin v4.2.0</a>, a new option for Android XR has been added that allows developers using <a href="https://godotengine.org/download/">Godot 4.5 and newer</a> to effortlessly export their existing projects to this new platform.</p>
|
||
<p>The Godot XR Editor has also been updated with Android XR support and runs beautifully on this new device. Users can download the Godot XR Editor from <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4">Google Play</a>.</p>
|
||
<p>W4 Games has <a href="https://www.w4games.com/blog/w4-games-news-1/w4-games-works-with-the-androidxr-team-and-the-godot-foundation-to-improve-godots-android-xr-support-123">announced their support of the platform</a> including implementing various vendor specific extensions that expose functionality unique to Android XR.</p>
|
||
<p>As part of this initiative, W4 Games will be making a donation to the Godot Foundation to ensure supporting Android XR long term and continue their work on enhancing Godot’s OpenXR support.</p></description><category>News</category><guid>https://godotengine.org/article/announcing-android-xr-support/</guid><dc:creator>Bastiaan Olij</dc:creator><pubDate>Fri, 14 Nov 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/godot-and-androidxr.jpg</image></item><item><title>Dev snapshot: Godot 4.6 dev 4</title><link>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-4/</link><summary>Powering through the post-GodotFest blues</summary><description><p>With <a href="https://godotfest.com/">GodotFest</a> now behind us, it’s only natural that some users would be left with a sense of longing. Well we have just the thing: our most recent Godot 4.6 development snapshot! It’s not even been two weeks since the last one, but we couldn’t just leave y’all hanging for more Godot content. As always, these snapshots feature big changes, meaning they’re likely accompanied by big regressions and bugs; get those tests and reports in as early as possible to ensure an expedient release cycle!</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev3/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400"><strong>House of Necrosis</strong></a>, <em>a turn-based, horror RPG where you must survive the horrors of a mansion that changes every time it’s entered. You can get the game or try the demo on <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://www.youtube.com/@Warrrkus">YouTube</a>, <a href="https://bsky.app/profile/mycard.utustudios.com">Bluesky</a>, or <a href="https://warrrkus.itch.io/">itch.io</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="animation-add-skeletonmodifier3d-iks-as-ikmodifier3d">Animation: Add <code class="language-plaintext highlighter-rouge">SkeletonModifier3D</code> IKs as <code class="language-plaintext highlighter-rouge">IKModifier3D</code></h3>
|
||
<p>For those that aren’t already aware, <code class="language-plaintext highlighter-rouge">SkeletonModificationStack3D</code> was removed in the transition from 3.x to 4.0, as it was deemed wildly unstable and unsalvageable. Since then, <a href="https://github.com/TokageItLab">Tokage</a> has been on a journey to reincorporate the functionality such that it lives up to the standards the rest of the engine aims for. This started early last year with the incorporation of <code class="language-plaintext highlighter-rouge">SkeletonModifier3D</code> (<a href="https://github.com/godotengine/godot/pull/87888">GH-87888</a>), which restored the majority of baseline functionality. However, there was one area which didn’t make the transiton: <abbr title="Inverse kinematics">IKs</abbr>.</p>
|
||
<p>The process of supporting IKs proved to be far more involved, as it too needed to be incorporated in a way that matched the engine’s standards and expectations. Consequently, that meant a solution that naturally expands off our <code class="language-plaintext highlighter-rouge">Node</code> paradigm; a tall order for how many use-cases and scenarios one must consider and account for when dealing with IKs. This resulted in <code class="language-plaintext highlighter-rouge">SkeletonModifier3D</code> receiving <strong>8 new subclasses</strong>, which are as follows:</p>
|
||
<ul>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_ikmodifier3d.html"><code class="language-plaintext highlighter-rouge">IKModifier3D</code></a>
|
||
<ul>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_chainik3d.html"><code class="language-plaintext highlighter-rouge">ChainIK3D</code></a></li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_iterateik3d.html"><code class="language-plaintext highlighter-rouge">IterateIK3D</code></a>
|
||
<ul>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_ccdik3d.html#class-ccdik3d"><code class="language-plaintext highlighter-rouge">CCDIK3D</code></a></li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_fabrik3d.html#class-fabrik3d"><code class="language-plaintext highlighter-rouge">FABRIK3D</code></a></li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_jacobianik3d.html#class-jacobianik3d"><code class="language-plaintext highlighter-rouge">JacobianIK3D</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_splineik3d.html#class-splineik3d"><code class="language-plaintext highlighter-rouge">SplineIK3D</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_twoboneik3d.html#class-twoboneik3d"><code class="language-plaintext highlighter-rouge">TwoBoneIK3D</code></a></li>
|
||
</ul>
|
||
<p>Attempting to go over all of these is well beyond the scope of this blog post, so readers wanting more information should check out the pull request for more details. Instead, we’ll show off one of the bugfixes to this new system in (<a href="https://github.com/godotengine/godot/pull/112573">GH-112573</a>), as it provides an easily digestable visualization of what this system is capable of.</p>
|
||
<h4 id="before">Before</h4>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-4/haha-funny-wiggle.webp" alt="gmod-ragdoll.mp3" /></p>
|
||
<h4 id="after">After</h4>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Still funny, but functional!">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/haha-funny-stretch.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="project-manager-various-improvements">Project manager: Various improvements</h3>
|
||
<p>The editor received a <strong>lot</strong> of love this development snapshot, with many features well worth a look in the curated highlights. However, for this blog post, we’ll be focusing on an often overlooked element of our editor: the project manager. While technically separate from the editor in the traditional sense, it is editor-exclusive functionality which exists to launch project editors, so they’re invariably intertwined. With the project manager getting an uncharacteristic amount of attention this cycle, here’s a quick lightning-round of changes:</p>
|
||
<p><a href="https://github.com/Rindbee">Rindbee</a> is starting things off with an improved UI navigation (<a href="https://github.com/godotengine/godot/pull/101129">GH-101129</a>). The previous implementation clashed with our recent AccessKit integration, as it didn’t lend itself to keyboard navigation. Now a new focus style makes navigation easier than ever:</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Project manager navigation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/project-manager-nagivation.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>Next is <a href="https://github.com/Meorge">Malcolm Anderson</a>, who implemented functionality for opening the project in the file explorer as a “Show in File Manager” button (<a href="https://github.com/godotengine/godot/pull/111624">GH-111624</a>). Unfortunately, while a highly-requested feature, it proved to be too cluttered and was slated for a revert. Not being one to throw out the baby with the bathwater, <a href="https://github.com/KoBeWi">Tomasz Chabora</a> saved the functionality by reimplementing it in the form of a newly-added right-click menu:</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Project manager navigation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/project-manager-right-click.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>Speaking of Tomasz, he’s here to round things off with yet another highly-requested feature: the ability to modify editor settings within the project manager (<a href="https://github.com/godotengine/godot/pull/82212">GH-82212</a>). Now opening a project just to make general adjustments is no longer necessary, as it can all be handled in the much more lightweight context of the project manager:</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Project manager navigation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/project-manager-editor-settings.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="buildsystem-support-dedicated-profilers">Buildsystem: Support dedicated profilers</h3>
|
||
<div class="card card-warning">
|
||
<p>This is unapologetically super-nerd territory, and strictly targeting those who already know what this is talking about. Everyone else, feel free to jump to the curated highlights instead.</p>
|
||
</div>
|
||
<p>It’s rare for our blog posts to mention the buildsystem in any capacity — let alone as a featured highlight — but this is a very special exception: Godot can now natively support dedicated profilers <a href="https://github.com/godotengine/godot/pull/104851">GH-104851</a>! Note that this is separate from <a href="https://docs.godotengine.org/en/latest/tutorials/scripting/debug/the_profiler.html">Godot’s built-in profiler</a>, as that’s suited for projects running <em>in</em> the engine, rather than the engine <em>itself</em>. Godot’s built-in profiler is still very useful, but these dedicated profilers are a great option for people who are very serious about optimizing Godot or their games.</p>
|
||
<p>Thanks to the efforts of <a href="https://github.com/Ivorforce">Lukas Tenbrink</a>, engine developers will no longer need to manually integrate (and constantly re-integrate) profiling logic to the engine. Instead, they merely need to pass the appropriate path to <code class="language-plaintext highlighter-rouge">profiler_path</code>, and our buildsystem will automatically detect and integrate the given profiler. Currently, the buildsystem supports <a href="https://github.com/wolfpld/tracy">Tracy</a> and <a href="https://perfetto.dev/">Perfetto</a>, but the groundwork exists for additional tools to be integrated down the road.</p>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>2D: Fix smart snapping lines to disappear after using the pivot tool (<a href="https://github.com/godotengine/godot/pull/105203">GH-105203</a>).</li>
|
||
<li>3D: Add Bresenham Line Algorithm to GridMap Drawing (<a href="https://github.com/godotengine/godot/pull/105292">GH-105292</a>).</li>
|
||
<li>Core: Add ability to get list of Project Settings changed, similar to Editor Settings functionality (<a href="https://github.com/godotengine/godot/pull/110748">GH-110748</a>).</li>
|
||
<li>Editor: Add indicator to linked resources (<a href="https://github.com/godotengine/godot/pull/109458">GH-109458</a>).</li>
|
||
<li>Editor: Allow concurrent unbinding and binding of signal arguments in editor (<a href="https://github.com/godotengine/godot/pull/108741">GH-108741</a>).</li>
|
||
<li>Editor: Autoloads with UIDs (<a href="https://github.com/godotengine/godot/pull/112193">GH-112193</a>).</li>
|
||
<li>Editor: Automatically open newly created script (<a href="https://github.com/godotengine/godot/pull/108342">GH-108342</a>).</li>
|
||
<li>Editor: Fix edit resource on inspector when inside array or dictionary (<a href="https://github.com/godotengine/godot/pull/106099">GH-106099</a>).</li>
|
||
<li>Editor: Open source code errors in external editor (<a href="https://github.com/godotengine/godot/pull/111805">GH-111805</a>).</li>
|
||
<li>Editor: Persist fullscreen setting on Android Editor (<a href="https://github.com/godotengine/godot/pull/112246">GH-112246</a>).</li>
|
||
<li>GUI: PopupMenu: Add theme option for merging icon and checkbox gutters (<a href="https://github.com/godotengine/godot/pull/112545">GH-112545</a>).</li>
|
||
<li>I18n: Add CSV translation template generation (<a href="https://github.com/godotengine/godot/pull/112149">GH-112149</a>).</li>
|
||
<li>I18n: Make editor language setting default to Auto (<a href="https://github.com/godotengine/godot/pull/112317">GH-112317</a>).</li>
|
||
<li>Input: Add support for setting a joypad’s LED light color (<a href="https://github.com/godotengine/godot/pull/111681">GH-111681</a>).</li>
|
||
<li>Rendering: Apply viewport oversampling to Polygon2D (<a href="https://github.com/godotengine/godot/pull/112352">GH-112352</a>).</li>
|
||
<li>XR: OpenXR: Add support for frame synthesis (<a href="https://github.com/godotengine/godot/pull/109803">GH-109803</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>83 contributors</strong> submitted <strong>168 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev4"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/dev-snapshot-godot-4-6-dev-3/">4.6-dev3</a>. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6">all changes included in 4.6</a> compared to the previous <a href="/releases/4.5/">4.5 feature release</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/bd2ca13c6f3a5198eac035c855dcd1759e077313"><code class="language-plaintext highlighter-rouge">bd2ca13c6</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev4">
|
||
Download Godot 4.6 dev4
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-4.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev4&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev4&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev4&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev4&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev4&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev4&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev4">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<ul>
|
||
<li>The newly released <a href="https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes">Visual Studio 2026</a> isn’t detected, instead falling back to VS2022/VS2019 <a href="https://github.com/godotengine/godot/issues/112675">GH-112675</a>. There already exist a couple of <a href="https://github.com/godotengine/godot/pull/110851">potential</a> <a href="https://github.com/godotengine/godot/pull/112677">solutions</a>, so this will likely be resolved next update.</li>
|
||
</ul>
|
||
<p>Additionally, SCons fails to detect/utilize Visual Studio 2026 when attempting a build. While not technically an engine issue, a number of contributors have expressed confusion over the lack of support, so it’s worth an explicit mention. This issue has since been <a href="https://github.com/SCons/scons/pull/4780">resolved upstream</a>, and will be incorporated in the next official release; anyone requiring the fix immediately should build SCons from the <a href="https://github.com/SCons/scons">source repository</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-4/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Fri, 14 Nov 2025 11:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-6-dev-4.jpg</image></item><item><title>Dev snapshot: Godot 3.7 dev 1</title><link>https://godotengine.org/article/dev-snapshot-godot-3-7-dev-1/</link><summary>Since Godot 3.6's release in September 2024, we have been working hard on the new feature branch: 3.7.</summary><description><p>Although the vast majority of contributors are busily working on Godot 4, a small problematic group refuse to stop improving Godot 3. Since <a href="/article/godot-3-6-finally-released">Godot 3.6</a>’s release in September 2024, we have been working hard on the new feature branch, 3.7.</p>
|
||
<p>Although a number of features are still in preparation, there have already been a number of improvements since 3.6, so consider this a sneak peek at some of the advances that will be available.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/3.7.dev1/"><strong>Web editor</strong></a> for this release.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2134980/Soul_Dier__Part_1/?curator_clanid=41324400"><strong>Soul Dier - Part 1</strong></a>, <em>a turn-based JRPG where you embark on a story-driven journey in a mysterious, hand-crafted world. You can buy the game or try out the demo on <a href="https://store.steampowered.com/app/2134980/Soul_Dier__Part_1/?curator_clanid=41324400">Steam</a> and follow the developers on their <a href="https://80.lv/author/ponpoppocpok-software">website</a>, <a href="https://www.youtube.com/@soul_dier_dev">YouTube</a>, or <a href="https://discord.com/invite/QzUfHUHDu6">Discord</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="core">Core</h3>
|
||
<p>Thanks to work particularly by <a href="https://github.com/lawnjelly">lawnjelly</a> and <a href="https://github.com/Ivorforce">Lukas Tenbrink</a>, much of core has been heavily optimized, including faster access to <code class="language-plaintext highlighter-rouge">ProjectSettings</code>, faster object casting, move semantics, and use of faster data structures benefiting 2D and 3D.</p>
|
||
<h3 id="3d-physics-interpolation">3D physics interpolation</h3>
|
||
<p>In tandem with work on Godot 4.5, the 3D physics interpolation has been rewritten from the ground up (<a href="https://github.com/godotengine/godot/pull/103685">GH-103685</a>).</p>
|
||
<p>This has enabled us to fix a number of longstanding bugs and usability issues (particularly with non-interpolated tree branches), as well as more accurately representing pivot relationships which should give a smoother result.</p>
|
||
<p>Luckily we have already worked through a lot of the bugs in 4.5 betas, but let us know if you spot any!</p>
|
||
<h3 id="blob-shadows">Blob shadows</h3>
|
||
<p>As an alternative to traditional shadow mapping, Godot 3.7 introduces support for analytical sphere and capsule soft shadows. While this requires some setup of blob shadow caster nodes, the results can look great, and can perform better than shadow mapping in many situations, and are an attractive option especially on mobile.</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-3-7-dev-1/blob_shadow.webp" alt="BlobShadow illustration" /></p>
|
||
<p>Blob shadows are typically only used on moving objects (as only a limited number of blobs can be used at one time), and are ideally used in conjunction with lightmaps for static geometry.</p>
|
||
<p>See (<a href="https://github.com/godotengine/godot/pull/84804">GH-84804</a>) for full details.</p>
|
||
<h3 id="mutable-audio-drivers">Mutable audio drivers</h3>
|
||
<p>While most of you will be making games with constant audio, those making applications (as well as users of the Editor itself) can now benefit from experimental “mutable audio” via hotswapping the audio driver (<a href="https://github.com/godotengine/godot/pull/63458">GH-63458</a>). This can dramatically reduce CPU usage. Audio is surprisingly one of the biggest CPU hogs in the Editor, despite it rarely playing any sounds!</p>
|
||
<p>This is good news especially for those of you using low-power PCs, or developing on battery-powered devices.</p>
|
||
<p><strong>Note</strong> that we are <em>expecting</em> regressions on some platforms / systems if hotswapping is not supported, this release is experimental and we are using it to identify problem platforms. You can help us by testing this in the editor, by checking that sound effects play correctly. If you encounter problems playing sounds, please report it on GitHub so we can investigate, and temporarily clear the muting flags in the editor in <code class="language-plaintext highlighter-rouge">editor_settings/interface/audio/</code> until we have it fixed.</p>
|
||
<h3 id="bug-fixes-and-backports">Bug fixes and backports</h3>
|
||
<p>As always, in addition to feature work, there have been a number of bugs fixed, and backports from Godot 4.x. These are detailed in the notes below. Of course the flow is two-way. Godot 4.x has also benefited from a number of new features forward ported from 3.x.</p>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>2D: Make selected tile in <code class="language-plaintext highlighter-rouge">TileSet</code> more visible through red outline (<a href="https://github.com/godotengine/godot/pull/105439">GH-105439</a>).</li>
|
||
<li>3D: FTI - <code class="language-plaintext highlighter-rouge">global_transform_interpolated()</code> on demand for invisible nodes (<a href="https://github.com/godotengine/godot/pull/107307">GH-107307</a>).</li>
|
||
<li>3D: Pre-calculate <code class="language-plaintext highlighter-rouge">is_visible_in_tree()</code> (<a href="https://github.com/godotengine/godot/pull/107324">GH-107324</a>).</li>
|
||
<li>Audio: Add ability to mute AudioServer (<a href="https://github.com/godotengine/godot/pull/63458">GH-63458</a>).</li>
|
||
<li>Codestyle: Simplify <code class="language-plaintext highlighter-rouge">ObjectDB::get_instance()</code> casting (<a href="https://github.com/godotengine/godot/pull/100603">GH-100603</a>).</li>
|
||
<li>Core: Allow constructing Quat from two Vector3s (<a href="https://github.com/godotengine/godot/pull/90464">GH-90464</a>).</li>
|
||
<li>Core: <code class="language-plaintext highlighter-rouge">Object::call()</code> prevent debug lock accessing dangling pointer (<a href="https://github.com/godotengine/godot/pull/96862">GH-96862</a>).</li>
|
||
<li>Core: Add move semantics to core containers (<a href="https://github.com/godotengine/godot/pull/100995">GH-100995</a>).</li>
|
||
<li>Core: Add <code class="language-plaintext highlighter-rouge">GLOBAL_GET</code> cached macros (<a href="https://github.com/godotengine/godot/pull/103763">GH-103763</a>).</li>
|
||
<li>Editor: Cancel tooltips when the mouse leaves the window (<a href="https://github.com/godotengine/godot/pull/95978">GH-95978</a>).</li>
|
||
<li>Editor: Improve Class display in Create dialog (<a href="https://github.com/godotengine/godot/pull/105459">GH-105459</a>).</li>
|
||
<li>Editor: Add an editor option to copy system info to clipboard (<a href="https://github.com/godotengine/godot/pull/105674">GH-105674</a>).</li>
|
||
<li>GDScript: Backport “Cleanup function state connections when destroying instance” for Godot 3 (<a href="https://github.com/godotengine/godot/pull/97464">GH-97464</a>).</li>
|
||
<li>GUI: Expose some helper methods on Viewport (<a href="https://github.com/godotengine/godot/pull/92573">GH-92573</a>).</li>
|
||
<li>Input: Fix Xbox Controller on Android (<a href="https://github.com/godotengine/godot/pull/106021">GH-106021</a>).</li>
|
||
<li>Physics: Fix physics platform behaviour regression (<a href="https://github.com/godotengine/godot/pull/97316">GH-97316</a>).</li>
|
||
<li>Plugin: Backport “[Editor] Add <code class="language-plaintext highlighter-rouge">EditorPlugin::scene_saved</code> signal” (<a href="https://github.com/godotengine/godot/pull/99857">GH-99857</a>).</li>
|
||
<li>Rendering: Implement glow map effect (<a href="https://github.com/godotengine/godot/pull/93133">GH-93133</a>).</li>
|
||
<li>Rendering: Physics Interpolation - Move 3D FTI to <code class="language-plaintext highlighter-rouge">SceneTree</code> (<a href="https://github.com/godotengine/godot/pull/103685">GH-103685</a>).</li>
|
||
<li>Rendering: FTI - Add custom interpolation for wheels (<a href="https://github.com/godotengine/godot/pull/105816">GH-105816</a>).</li>
|
||
<li>Rendering: Blob shadows (<a href="https://github.com/godotengine/godot/pull/84804">GH-84804</a>).</li>
|
||
<li>VisualScript: Bind Array and Pool*Array get and set functions (<a href="https://github.com/godotengine/godot/pull/96135">GH-96135</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>44 contributors</strong> submitted <strong>130 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#3.7-dev1"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/godot-3-6-finally-released">3.6-stable</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/a117d512b00f1646db174e703e7e888519b64608"><code class="language-plaintext highlighter-rouge">a117d512b</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/3.7-dev1">
|
||
Download Godot 3.7 dev1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-3-7-dev-1.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=x11.64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=mono_x11_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=mono_osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/3.7-dev1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript, GDNative, and VisualScript.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript, GDNative, and VisualScript.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>There are currently no known issues introduced by this release.</p>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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 3.x releases, but no longer works in this snapshot).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-3-7-dev-1/</guid><dc:creator>lawnjelly</dc:creator><pubDate>Thu, 13 Nov 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-3-7-dev-1.jpg</image></item><item><title>Dev snapshot: Godot 4.6 dev 3</title><link>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-3/</link><summary>Rocking a new look!</summary><description><p>Our third development snapshot of the 4.6 release cycle is upon us, and now the floodgates are well and truly open. The enhancements are bigger than ever, with several of them overhauling the look of the editor itself entirely! Big features necessitate big changes, which means the potential for big bugs and regressions; early reports and tests remain crucial to catch these issues as soon as possible.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev3/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3617620/My_Card_Is_Better_Than_Your_Card/?curator_clanid=41324400"><strong>My Card Is Better Than Your Card!</strong></a>, <em>a roguelike deckbuilder where you stick stickers to become the coolest kid on the playground. You can get the game or try the demo on <a href="https://store.steampowered.com/app/3617620/My_Card_Is_Better_Than_Your_Card/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://www.youtube.com/@UtuStudios">YouTube</a> or <a href="https://bsky.app/profile/mycard.utustudios.com">Bluesky</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="new-editor-theme">New editor theme</h3>
|
||
<p>Longtime users of the Godot Editor are likely familiar with one of its most popular custom themes: the <a href="https://github.com/passivestar/godot-minimal-theme">Godot Minimal Theme</a>. Created by <a href="https://github.com/passivestar">passivestar</a>, and showcased in the <a href="/article/dev-snapshot-godot-4-6-dev-1/">first dev snapshot</a>, this skin has become a favorite for many users thanks to a focus on its namesake: minimalism. One of the most frequent suggestions from the community has been an official integration of this theme in some capacity, to make the barrier of entry that much shorter. We’ll do you one better: it’s now the default theme for the editor!</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/new-editor-theme.jpg" alt="New editor theme" /></p>
|
||
<p><a href="https://github.com/YeldhamDev">Michael Alexsander</a> was tasked with helming the official implementation of this theme (<a href="https://github.com/godotengine/godot/pull/111118">GH-111118</a>), receiving help from passivestar directly to ensure a smooth and streamlined transition. Through his efforts, as well as several accompanying theme-related PRs from many other contributors such as <a href="https://github.com/DeeJayLSP">Douglas Leão</a>, we’re excited to (re)-introduce the newly dubbed “Modern Theme”!</p>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>We still love our original theme, henceforth known as the “Classic Theme,” and will continue to support it in tandem. It can be accessed through the <code class="language-plaintext highlighter-rouge">interface/theme/style</code> and <code class="language-plaintext highlighter-rouge">interface/theme/preset</code> settings.</p>
|
||
</div>
|
||
<p>It may surprise some that we chose to set the default color to a dark grey instead of the classic blue that makes our editor stand out at first glance. It is primarily due to the fact that it caused some issues with the perceived white balance. Removing hue from the equation resolves most of these problems.</p>
|
||
<p>While originally implemented as a 1-to-1 port of the Minimal Theme, we’ve already been making adjustments to better suit the design philosophies of the Godot Foundation itself. Namely: prioritizing accessibility options and retaining readability. As such, this implementation should <strong>not</strong> be taken as a final representation of this theme; the team fully welcomes and encourages early feedback in order to flush out any lingering blind spots. Nonetheless, we’re excited with the amount of progress made already, and hope you enjoy this new theme firsthand!</p>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>The project showcased in the new theme exhibit is <a href="https://codeberg.org/Librerama/librerama">Librerama</a>, by Michael Alexsander.</p>
|
||
</div>
|
||
<h3 id="condense-inspector-layout-for-arrays">Condense inspector layout for arrays</h3>
|
||
<p>In a similar vein to the previous point, we’ve applied a similar minimal-style overhaul to the array inspector. This change is inherent to the inspector itself, so the benefits will be shown regardless of which theme is chosen. <a href="https://github.com/dugramen">Koliur Rahman</a> has brought us this revamped implementation, trimming away wasted space by consolidating information and logic to their essential elements (<a href="https://github.com/godotengine/godot/pull/103257">GH-103257</a>).</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/array-old.jpg" alt="Array old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/array-new.jpg" alt="Array new" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="rendering-overhaul-screen-space-reflections">Rendering: Overhaul screen space reflections</h3>
|
||
<p>The editor has gotten a lot of love in this blog post, so let’s shake things up with some rendering news! <a href="https://github.com/blueskythlikesclouds">Skyth</a> has been hard at work overhauling our current screen space reflection logic, and their efforts in <a href="https://github.com/godotengine/godot/pull/111210">GH-111210</a> have resulted in better performance <strong>and</strong> higher quality! The PR is readily available for those seeking a more technical deep-dive on the “how”, but we’re here to showcase the end results; they should speak for themselves:</p>
|
||
<h4 id="64-max-steps">64 Max Steps</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New (half)</th>
|
||
<th>New (full)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/64-max-steps-old.jpg" alt="64 max steps old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/64-max-steps-new-half.jpg" alt="64 max steps new (half)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/64-max-steps-new-full.jpg" alt="64 max steps new (full)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4 id="256-max-steps">256 Max Steps</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New (half)</th>
|
||
<th>New (full)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/256-max-steps-old.jpg" alt="256 max steps old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/256-max-steps-new-half.jpg" alt="256 max steps new (half)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/256-max-steps-new-full.jpg" alt="256 max steps new (full)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4 id="roughness">Roughness</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/roughness-old.jpg" alt="Roughness old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/roughness-new.jpg" alt="Roughness new" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4 id="metallic-surface">Metallic Surface</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New (half)</th>
|
||
<th>New (full)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/metallic-surface-old.jpg" alt="Metallic surface old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/metallic-surface-new-half.jpg" alt="Metallic surface new (half)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/metallic-surface-new-full.jpg" alt="Metallic surface new (full)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>Animation: Remove default skeleton path in <code class="language-plaintext highlighter-rouge">MeshInstance3D</code> (<a href="https://github.com/godotengine/godot/pull/112267">GH-112267</a>).
|
||
<ul>
|
||
<li>If relying on the default <code class="language-plaintext highlighter-rouge">skeleton_path</code> in some scenes, users should manually re-specify the parent node as the <code class="language-plaintext highlighter-rouge">NodePath</code>, or they can enable the <code class="language-plaintext highlighter-rouge">animation/compatibility/default_parent_skeleton_in_mesh_instance_3d</code> project setting to restore the pre-4.6 behavior.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Editor: Add Create Resource Hotkey (<a href="https://github.com/godotengine/godot/pull/110641">GH-110641</a>).</li>
|
||
<li>Editor: Add splitter to “Create New Node” dialog (<a href="https://github.com/godotengine/godot/pull/111017">GH-111017</a>).</li>
|
||
<li>Editor: Android Editor: Add game speed control options in game menu bar (<a href="https://github.com/godotengine/godot/pull/111296">GH-111296</a>).</li>
|
||
<li>Editor: FindInFiles: Allow replacing individual results (<a href="https://github.com/godotengine/godot/pull/109727">GH-109727</a>).</li>
|
||
<li>Editor: Speed up deletion via the Scene Tree Dock in large trees (<a href="https://github.com/godotengine/godot/pull/109511">GH-109511</a>).</li>
|
||
<li>Editor: Use Inter as the default editor font, features enabled (<a href="https://github.com/godotengine/godot/pull/111140">GH-111140</a>).</li>
|
||
<li>Export: Android: Add export option to use <a href="https://github.com/Genymobile/scrcpy">scrcpy</a> to run project from editor (<a href="https://github.com/godotengine/godot/pull/108737">GH-108737</a>).</li>
|
||
<li>Export: Fix custom icon in Android export (<a href="https://github.com/godotengine/godot/pull/111688">GH-111688</a>).</li>
|
||
<li>Import: Betsy: Convert RGB to RGBA on the GPU for faster compression (<a href="https://github.com/godotengine/godot/pull/110060">GH-110060</a>).</li>
|
||
<li>Navigation: Make <code class="language-plaintext highlighter-rouge">NavigationServer</code> backend engine selectable (<a href="https://github.com/godotengine/godot/pull/106290">GH-106290</a>).</li>
|
||
<li>Rendering: Add Persistent Buffers utilizing UMA (<a href="https://github.com/godotengine/godot/pull/111183">GH-111183</a>).</li>
|
||
<li>Rendering: D3D12: Greatly reduce shader conversion time &amp; fix spec constant bitmasking (<a href="https://github.com/godotengine/godot/pull/111762">GH-111762</a>).</li>
|
||
<li>Rendering: Implement a very simple SSAO in GLES3 (<a href="https://github.com/godotengine/godot/pull/109447">GH-109447</a>).</li>
|
||
<li>Rendering: Overhaul and optimize Glow in the mobile renderer (<a href="https://github.com/godotengine/godot/pull/110077">GH-110077</a>).</li>
|
||
<li>Rendering: Use half float precision buffer for 3D when HDR2D is enabled (<a href="https://github.com/godotengine/godot/pull/109971">GH-109971</a>).</li>
|
||
<li>Tests: Add Android instrumented tests to the <code class="language-plaintext highlighter-rouge">app</code> module (<a href="https://github.com/godotengine/godot/pull/110829">GH-110829</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>101 contributors</strong> submitted <strong>239 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev3"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/dev-snapshot-godot-4-6-dev-2/">4.6-dev2</a>. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6">all changes included in 4.6</a> compared to the previous <a href="/releases/4.5/">4.5 feature release</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/9d84f3d135d4a53ee8c42f32d4df7cc66b2e3684"><code class="language-plaintext highlighter-rouge">9d84f3d13</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev3">
|
||
Download Godot 4.6 dev3
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-3.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev3">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>There are currently no known issues introduced by this release.</p>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-3/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Tue, 04 Nov 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-6-dev-3.jpg</image></item><item><title>Maintenance release: Godot 3.6.2</title><link>https://godotengine.org/article/maintenance-release-godot-3-6-2/</link><summary>Although we fixed many of the major 3.6 bugs in Godot 3.6.1 in June, we have decided to make a new 3.6 point release in order to keep up to date with platform requirements.</summary><description><p><strong>Edit 2025-10-25 @ 21:30 UTC:</strong> The original release had a regression affecting the Windows binaries (at least the editor) which lead to crashes (<a href="https://github.com/godotengine/godot/issues/111979">GH-111979</a>, <a href="https://github.com/godotengine/godot/issues/112021">GH-112021</a>). This was caused by the update to MinGW-GCC 14.2.1 for official build containers. We’ve temporarily reverted that change and rebuilt the Windows binaries today. If you downloaded this release for Windows or the export templates before 2025-10-25 21:30 UTC, please redownload it as the binaries have been replaced.</p>
|
||
<hr />
|
||
<p>Although we fixed many of the major 3.6 bugs in <a href="/article/godot-3-6-finally-released">Godot 3.6.1</a> in June, we have decided to make a new 3.6 point release in order to keep up to date with platform requirements.</p>
|
||
<p><a href="https://support.google.com/googleplay/android-developer/answer/11926878?hl=en">Google announced</a> that from August 31, 2025 (with possible extension to November 1, 2025), apps and updates submitted to the Play Store must target Android 15 (API level 35) and support 16 KiB page size. As a result we have updated Godot Android APIs and made compatibility changes to ensure users can update their Godot 3 games on Play Store with 3.6.2.</p>
|
||
<p>Since we had to rebuild Mono for Android with a 16 KiB page size, we took the opportunity to update our build containers to provide more <a href="https://github.com/godotengine/build-containers/tree/3.6?tab=readme-ov-file#toolchains">recent toolchains</a> for official builds. Like for 3.6.1, UWP export templates are no longer provided in this build (but can be compiled from source if needed).</p>
|
||
<p><strong>This is a safe and recommended update for all Godot 3.6.x users.</strong> It should have no major impact on your projects, even complex ones in production, if you’re already using 3.6.1-stable.</p>
|
||
<p><a href="/download/3.x/"><strong>Download Godot 3.6.2 now</strong></a> or try the <a href="https://editor.godotengine.org/3.6.2.stable/">online version of the Godot editor</a>.</p>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/3.6.2-stable">
|
||
Download Godot 3.6.2 stable
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/maintenance-release-godot-3-6-2.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=x11.64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=mono_x11_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=mono_osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/3.6.2-stable">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400"><strong>House of Necrosis</strong></a>, <em>a turn-based horror RPG with retro 32-bit 3D graphics. It is developed by <a href="https://warkus-productions.com/">Warkus</a> with Godot 3.6 Mono. You can get the game on <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://bsky.app/profile/warkus.bsky.social">Bluesky</a>.</em></p>
|
||
<h2 id="changed">Changed</h2>
|
||
<ul>
|
||
<li>Buildsystem: Update toolchains for official builds (Fedora 42 base, Mono 6.12.0.206, <del>MinGW-GCC 14.2.1,</del> Xcode 16.2) (<a href="https://github.com/godotengine/build-containers/pull/156">build-containers#156</a>).
|
||
<ul>
|
||
<li>The update of the Windows toolchains to MinGW-GCC 14.2.1 was temporarily reverted as it introduced crashes with LTO. 3.6.2-stable Windows binaries (editor and export templates) were rebuilt with the previous MinGW-GCC version on 2025-10-25 at 21:30 UTC.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Network: mbedTLS: Update to mbedTLS 3.6.5 (<a href="https://github.com/godotengine/godot/pull/108382">GH-108382</a>, <a href="https://github.com/godotengine/godot/pull/111845">GH-111845</a>).</li>
|
||
<li>Porting: Android: Update to target API 35, NDK r28, 16kb page size (<a href="https://github.com/godotengine/godot/pull/108433">GH-108433</a>).</li>
|
||
<li>Porting: Android: Address API 35 UI changes (<a href="https://github.com/godotengine/godot/pull/110255">GH-110255</a>).</li>
|
||
<li>Porting: Android: Set minsdk to 21, workaround <code class="language-plaintext highlighter-rouge">fseeko</code> error in Opus (<a href="https://github.com/godotengine/godot/pull/111061">GH-111061</a>).</li>
|
||
<li>Porting: iOS: Switch window creation to UIScene (<a href="https://github.com/godotengine/godot/pull/111103">GH-111103</a>).</li>
|
||
<li>Thirdparty: Enable builds with miniupnpc API 18 (<a href="https://github.com/godotengine/godot/pull/100389">GH-100389</a>).</li>
|
||
</ul>
|
||
<h2 id="fixed">Fixed</h2>
|
||
<ul>
|
||
<li>Buildsystem: Fix build on macOS 26 by removing AGL framework link (<a href="https://github.com/godotengine/godot/pull/110898">GH-110898</a>).</li>
|
||
<li>Editor: Fix inability to assign script after clearing (<a href="https://github.com/godotengine/godot/pull/108171">GH-108171</a>).</li>
|
||
<li>Editor: Fix Open Editor Data/Settings Folder menu in self-contained mode (<a href="https://github.com/godotengine/godot/pull/110414">GH-110414</a>).</li>
|
||
<li>Export: Fix order of operations for macOS template check (<a href="https://github.com/godotengine/godot/pull/108930">GH-108930</a>).</li>
|
||
<li>GUI: Fix Line breaking may not work correctly when using color tags with specific font (<a href="https://github.com/godotengine/godot/pull/109695">GH-109695</a>).</li>
|
||
<li>Rendering: Batching: Fix <code class="language-plaintext highlighter-rouge">MultiRect</code> casting to wrong type (<a href="https://github.com/godotengine/godot/pull/109111">GH-109111</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>14 contributors</strong> submitted <strong>19 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#3.6.2"><strong>interactive changelog</strong></a> for the complete list of changes since the 3.6.1 release.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/3cd3caab6779a7f3ec3bbeb9f200db50c735cfc8"><code class="language-plaintext highlighter-rouge">3cd3caab6</code></a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, you are encouraged to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with 3.6.2. Please check first the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a>, using the search function with relevant keywords, to ensure that the bug you experience is not known already.</p>
|
||
<p>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 3.6.1 or earlier 3.x releases no longer works in 3.6.2).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, and a handful of part or full-time developers, hired thanks to <a href="/donate">donations from the Godot community</a>. A big thankyou to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so with the <a href="https://fund.godotengine.org">development fund</a>.</p></description><category>Release</category><guid>https://godotengine.org/article/maintenance-release-godot-3-6-2/</guid><dc:creator>lawnjelly</dc:creator><pubDate>Thu, 23 Oct 2025 11:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/maintenance-release-godot-3-6-2.jpg</image></item><item><title>Dev snapshot: Godot 4.6 dev 2</title><link>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-2/</link><summary>Open the floodgates!</summary><description><p>With our <a href="/article/dev-snapshot-godot-4-6-dev-1/">first dev snapshot</a> out of the way, the 4.6 development cycle is no longer constraining itself to the territory of bugfixes. Many long-awaited features and enhancements are seeing the light of day at long last, as this behemoth of a snapshot boasts <strong>over 300</strong> improvements in all! This blog post will aim to highlight the heavy-hitters to the best of its ability, but the sheer number of changes may warrant users to check the <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev2">interactive changelog</a> for a more thorough dive. With new features comes the potential of new bugs, so early testing and reporting will be essential to catching regressions as quickly as possible.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev2/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3606890/Upload_Labs/?curator_clanid=41324400"><strong>Upload Labs</strong></a>, <em>an idle game where you build and optimize your computer’s system from the ground up. You can get the game for free on <a href="https://store.steampowered.com/app/3606890/Upload_Labs/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://www.youtube.com/@enigmadevstudios">YouTube</a> or <a href="https://discord.com/invite/enigmadev">Discord</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="build-godot-engine-as-a-library">Build Godot Engine as a library</h3>
|
||
<p>A very common request we’ve seen regarding Godot is the ability to build the engine as a standalone library. In the past, it’s not something we’ve actively pursued, as the engine paradigm is so central to many of our design philosophies. However, as time has gone on, we’ve encountered more and more scenarios where simply having the ability to access Godot in an isolated context is absolutely necessary for certain workflows. So while a fully-fledged integration of this concept isn’t something we fully support at this time, <a href="https://github.com/kisg">Gergely Kis</a> has put in the work to allow for a functional baseline (<a href="https://github.com/godotengine/godot/pull/110863">GH-110863</a>). Currently dubbed <code class="language-plaintext highlighter-rouge">LibGodot</code> internally, there’s now a basic support for a <code class="language-plaintext highlighter-rouge">GodotInstance</code> to function as an entry point for these specialized workflows.</p>
|
||
<h3 id="objectdb-profiling-tool"><code class="language-plaintext highlighter-rouge">ObjectDB</code> profiling tool</h3>
|
||
<p>Another common request from more technically-minded users has been a proper means of profiling <code class="language-plaintext highlighter-rouge">ObjectDB</code>, which can be considered the heart of our entire <code class="language-plaintext highlighter-rouge">Object</code> structure. First-time contributor <a href="https://github.com/AleksLitynski">Aleksander Litynski</a> took to this daunting task, bringing us the <code class="language-plaintext highlighter-rouge">ObjectDB Profiler</code> tool (<a href="https://github.com/godotengine/godot/pull/97210">GH-97210</a>). With this, users will be able to take snapshots of the current <code class="language-plaintext highlighter-rouge">ObjectDB</code> state during debug sessions, and compare that to other snapshots at a given point in time. These snapshots can also be viewed in a variety of contexts detailed in the PR’s original post, but the short version is finding or exporting a diff between states has never been easier or more accessible!</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/objectdb-profiler.jpg" alt="ObjectDB Profiler" /></p>
|
||
<h3 id="improved-automatic-mesh-lod-using-component-pruning">Improved automatic mesh LOD using component pruning</h3>
|
||
<p>Our mesh simplifier currently supports the ability to collapse edges, but lacked functionality for simplifying the components themselves. <a href="https://github.com/zeux">Arseny Kapoulkine</a> has addressed this shortcoming, enabling topologically complex sections of a larger mesh to more easily reach the desired <abbr title="Level of Detail">LOD</abbr> target (<a href="https://github.com/godotengine/godot/pull/110028">GH-110028</a>).</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/mesh-component-prune.jpg" alt="Pruned components in simplified mesh" /></p>
|
||
<h3 id="rotation-visualization-and-snapping">Rotation visualization and snapping</h3>
|
||
<p>The way that we present and handle our 3D space has already seen a fair number of improvements in the 4.6 cycle, but these two warrant particular mention for implementing popular features that are found in many 3D modelling programs today. Firstly, <a href="https://github.com/ryevdokimov">Robert Yevdokimov</a> has expanded the 3D Transform gizmo to visualize the current delta angle of a rotation operation (<a href="https://github.com/godotengine/godot/pull/108576">GH-108576</a>). This process is non-accumulating, meaning rotations beyond 360° are reset.</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Rotation accumulation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-2/rotation-accumulation.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>The second comes to us from <a href="https://github.com/passivestar">passivestar</a>, who integrated orbit snapping to the 3D Viewport (<a href="https://github.com/godotengine/godot/pull/111509">GH-111509</a>). While holding <code class="language-plaintext highlighter-rouge">Alt</code>, exiting an orbit pan will cause the resulting view to be snapped to a static, 45° offset. This is similar to directly swapping to an orthographic view, but from the convenience of orbitting and allowing for more granular 45° midpoints.</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Rotation snapping">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-2/rotation-snapping.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="rendering-blend-glow-before-tonemapping-and-change-default-to-screen">Rendering: Blend glow before tonemapping and change default to screen</h3>
|
||
<p><abbr title="High dynamic range"><a href="https://en.wikipedia.org/wiki/High_dynamic_range">HDR</a></abbr> has been growing in prevalence as a feature in modern displays, but actual support of the feature is lagging behind somewhat. This is largely because most existing programs were designed with <abbr title="Standard RGB"><a href="https://en.wikipedia.org/wiki/SRGB">sRGB</a></abbr> in mind, and necessitate retrofitting themselves to handle HDR. This process is much easier said than done, and sometimes the effects can be invisible to the average user, meaning such advancements are rarely given a proper highlight. <a href="https://github.com/allenwp">Allen Pestaluky</a> has broken this convention, with a PR that improves visual quality for all users <strong>and</strong> sets the stage for HDR output support (<a href="https://github.com/godotengine/godot/pull/110671">GH-110671</a>).</p>
|
||
<p>The first change was to blend glow before tonemapping for all rendering methods and blend modes (except soft light). While this was always the case in the Compatibility renderer, the functionality has been expanded to the Mobile and Forward+ renderers as well. Blending beforehand results in the glow effect blending in a more realistic fashion, sidestepping the hard edges and hue shifts if blended after.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Original scene</th>
|
||
<th>Before tonemapping (screen, AgX, 16.29 white)</th>
|
||
<th>After tonemapping (screen, AgX, 16.29 white)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/glow-original.jpg" alt="Original Scene" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/glow-before.jpg" alt="Before tonemapping (screen, AgX, 16.29 white)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/glow-after.jpg" alt="After tonemapping (screen, AgX, 16.29 white)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>The second change was adjusting the default blend mode from soft light to screen for all renderers. This too was already the case for the Compatibility renderer, though that default was set with the behavior of blend glow before tonemapping in mind. As such, a change in the other renderers to match the new behavior is to be expected.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Renderer</th>
|
||
<th>Soft light blend mode</th>
|
||
<th>Screen blend mode</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Mobile</td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/soft-light-blend-mobile.jpg" alt="Mobile renderer, soft light blend mode" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/screen-blend-mobile.jpg" alt="Mobile renderer, screen blend mode" /></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Forward+</td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/soft-light-blend-forward.jpg" alt="Forward+ renderer, soft light blend mode" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/screen-blend-forward.jpg" alt="Forward+ renderer, screen blend mode" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="card card-warning">
|
||
<p>This change technically breaks compatibility since it will result in a noticeable visual change, and the previous behavior cannot be restored by simply adjusting settings. In most cases we are confident that this change in behavior will be a direct upgrade. But this change is something to be aware of if your game is using Glow at all.</p>
|
||
</div>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>Core: Add <code class="language-plaintext highlighter-rouge">reserve_exact</code> to <code class="language-plaintext highlighter-rouge">CowData</code>, and change growth factor to 1.5x (<a href="https://github.com/godotengine/godot/pull/106039">GH-106039</a>).</li>
|
||
<li>Core: Add <code class="language-plaintext highlighter-rouge">reserve</code> function to <code class="language-plaintext highlighter-rouge">Array</code>, <code class="language-plaintext highlighter-rouge">Vector</code>, and <code class="language-plaintext highlighter-rouge">String</code> (<a href="https://github.com/godotengine/godot/pull/105928">GH-105928</a>).</li>
|
||
<li>Core: Add unique Node IDs to support base and instantiated scene refactorings (<a href="https://github.com/godotengine/godot/pull/106837">GH-106837</a>).</li>
|
||
<li>Documentation: Drop the experimental label for the Jolt Physics integration (<a href="https://github.com/godotengine/godot/pull/111115">GH-111115</a>).</li>
|
||
<li>Editor: Add game speed controls to the embedded game window (<a href="https://github.com/godotengine/godot/pull/107273">GH-107273</a>).</li>
|
||
<li>Editor: Add source lines to file locations on POT generation (<a href="https://github.com/godotengine/godot/pull/111419">GH-111419</a>).</li>
|
||
<li>Editor: Make file part of errors/warnings clickable in Output panel (<a href="https://github.com/godotengine/godot/pull/108473">GH-108473</a>).</li>
|
||
<li>Editor: Rework editor docks (<a href="https://github.com/godotengine/godot/pull/106503">GH-106503</a>).</li>
|
||
<li>Editor: Store script states for built-in scripts (<a href="https://github.com/godotengine/godot/pull/93713">GH-93713</a>).</li>
|
||
<li>GDScript: Add opt-in GDScript warning for when calling coroutine without <code class="language-plaintext highlighter-rouge">await</code> (<a href="https://github.com/godotengine/godot/pull/107936">GH-107936</a>).</li>
|
||
<li>GUI: Add <code class="language-plaintext highlighter-rouge">pivot_offset_ratio</code> property to Control (<a href="https://github.com/godotengine/godot/pull/70646">GH-70646</a>).</li>
|
||
<li>GUI: Add auto-scroll behavior when selecting text outside the visible area in RichTextLabel (<a href="https://github.com/godotengine/godot/pull/104715">GH-104715</a>).</li>
|
||
<li>GUI: Visualize MarginContainer margins when selected (<a href="https://github.com/godotengine/godot/pull/111095">GH-111095</a>).</li>
|
||
<li>Import: OBJ: Support bump multiplier (normal scale) (<a href="https://github.com/godotengine/godot/pull/110925">GH-110925</a>).</li>
|
||
<li>Network: Add Core UNIX domain socket support (<a href="https://github.com/godotengine/godot/pull/107954">GH-107954</a>).</li>
|
||
<li>Physics: Add MeshInstance3D primitive conversion options (<a href="https://github.com/godotengine/godot/pull/101521">GH-101521</a>).</li>
|
||
<li>Physics: Add MultiMesh physics interpolation for 2D transforms (MultiMeshInstance2D) (<a href="https://github.com/godotengine/godot/pull/107666">GH-107666</a>).</li>
|
||
<li>Rendering: Add material debanding for use in Mobile rendering method (<a href="https://github.com/godotengine/godot/pull/109084">GH-109084</a>).</li>
|
||
<li>Rendering: Implement motion vectors in compatibility renderer (<a href="https://github.com/godotengine/godot/pull/97151">GH-97151</a>).</li>
|
||
<li>Rendering: Make <code class="language-plaintext highlighter-rouge">OpenXRCompositionLayer</code> and its children safe for multithreaded rendering (<a href="https://github.com/godotengine/godot/pull/109431">GH-109431</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>114 contributors</strong> submitted <strong>323 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev2"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/dev-snapshot-godot-4-6-dev-1/">4.6-dev1</a>. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6">all changes included in 4.6</a> compared to the previous <a href="/releases/4.5/">4.5 feature release</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/7864ac80192e9e91bf56176af9f04cc013b580aa"><code class="language-plaintext highlighter-rouge">7864ac801</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev2">
|
||
Download Godot 4.6 dev2
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-2.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev2">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<ul>
|
||
<li><strong>The “Replace in Files…” function is currently broken, and will clear the contents of all files with matches when used.</strong> This issue will be fixed in the next snapshot via <a href="https://github.com/godotengine/godot/pull/112033">GH-112033</a>.</li>
|
||
</ul>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-2/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Mon, 20 Oct 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-6-dev-2.jpg</image></item><item><title>Maintenance release: Godot 4.5.1</title><link>https://godotengine.org/article/maintenance-release-godot-4-5-1/</link><summary>4.5's first maintenance release arrives!</summary><description><p>We saw the release of <a href="/releases/4.5/">Godot 4.5</a> less than a month ago, and have already been absolutely overwhelmed with the positive reception. Since then, our team has been hard at work on the development phase of Godot 4.6 (and subsequently its <a href="/article/dev-snapshot-godot-4-6-dev-1/">first snapshot</a>), and ensuring that any new regressions/bugs reported after the release of 4.5 are dealt with swiftly. The community has done an absolutely fantastic job at helping our team find and squash all of those aforementioned issues, and paved the way for us to deliver 4.5.1-stable for you today!</p>
|
||
<p>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.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="/download/"><strong>Download Godot 4.5.1 now</strong></a> or try the <a href="https://editor.godotengine.org/4.5.1.stable/">online version of the Godot editor</a>.</p>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5.1-stable">
|
||
Download Godot 4.5.1 stable
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/maintenance-release-godot-4-5-1.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5.1-stable">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/3245640/Starfinder_Afterlight/?curator_clanid=41324400"><strong>Starfinder: Afterlight</strong></a>, <em>a party-based RPG set in the science-fantasy universe of <a href="https://paizo.com/starfinder">Paizo’s Starfinder</a>. You can support the title on <a href="https://www.kickstarter.com/projects/epictellers/starfinder-afterlight">Kickstarter</a> and pre-order the game on <a href="https://store.steampowered.com/app/3245640/Starfinder_Afterlight/?curator_clanid=41324400">Steam</a>. You can follow the developers on <a href="https://bsky.app/profile/epictellers.bsky.social">Bluesky</a> or <a href="https://www.youtube.com/@epictellers-entertainment">YouTube</a>.</em></p>
|
||
<h2 id="changes">Changes</h2>
|
||
<p><strong>50 contributors</strong> submitted around <strong>92 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1"><strong>interactive changelog</strong></a> for the complete list of changes since the <a href="/releases/4.5/">4.5-stable release</a>.</p>
|
||
<ul>
|
||
<li>2D: Fix redundant calls of <code class="language-plaintext highlighter-rouge">CanvasItemEditor::_update_lock_and_group_button</code> on <code class="language-plaintext highlighter-rouge">SceneTreeEditor</code> node selection (<a href="https://github.com/godotengine/godot/pull/110320">GH-110320</a>).</li>
|
||
<li>3D: GridMap: Fix cell scale not applying to the cursor mesh (<a href="https://github.com/godotengine/godot/pull/104510">GH-104510</a>).</li>
|
||
<li>Animation: Fix Reset on Save corrupt poses if scene has multiple Skeletons (<a href="https://github.com/godotengine/godot/pull/110506">GH-110506</a>).</li>
|
||
<li>Animation: Make extended SkeletonModifiers retrieve interpolated global transform (<a href="https://github.com/godotengine/godot/pull/110987">GH-110987</a>).</li>
|
||
<li>Audio: Add one padding frame to QOA buffer for short streams (<a href="https://github.com/godotengine/godot/pull/110515">GH-110515</a>).</li>
|
||
<li>Core: Change “reserve called with a capacity smaller than the current size” error message to a verbose message (<a href="https://github.com/godotengine/godot/pull/110826">GH-110826</a>).</li>
|
||
<li>Core: Check for <code class="language-plaintext highlighter-rouge">NUL</code> characters in string parsing functions (<a href="https://github.com/godotengine/godot/pull/110556">GH-110556</a>).</li>
|
||
<li>Core: X11 input: prevent non-printable keys from producing empty strings (<a href="https://github.com/godotengine/godot/pull/110635">GH-110635</a>).</li>
|
||
<li>Documentation: Document typed dictionaries and arrays in the class reference (<a href="https://github.com/godotengine/godot/pull/107071">GH-107071</a>).</li>
|
||
<li>Editor: Add column boundary check in the autocompletion (<a href="https://github.com/godotengine/godot/pull/110017">GH-110017</a>).</li>
|
||
<li>Editor: Fix selection of remote tree using the keyboard (<a href="https://github.com/godotengine/godot/pull/110738">GH-110738</a>).</li>
|
||
<li>Editor: Set correct saved history after clearing (<a href="https://github.com/godotengine/godot/pull/111136">GH-111136</a>).</li>
|
||
<li>Export: Android: Ensure proper cleanup of the fragment (<a href="https://github.com/godotengine/godot/pull/109764">GH-109764</a>).</li>
|
||
<li>Export: Metal: Fix Metal compiler version inspection (<a href="https://github.com/godotengine/godot/pull/110873">GH-110873</a>).</li>
|
||
<li>Export: Windows: Fix application manifest in exported projects with modified resources (<a href="https://github.com/godotengine/godot/pull/111316">GH-111316</a>).</li>
|
||
<li>GDExtension: Fix <code class="language-plaintext highlighter-rouge">--dump-extension-api-with-docs</code> indentation (<a href="https://github.com/godotengine/godot/pull/110557">GH-110557</a>).</li>
|
||
<li>GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once (<a href="https://github.com/godotengine/godot/pull/111090">GH-111090</a>).</li>
|
||
<li>GDScript: LSP: Fix repeated restart attempts (<a href="https://github.com/godotengine/godot/pull/111290">GH-111290</a>).</li>
|
||
<li>GUI: Editor font: do not embolden the Main Font if it’s variable (<a href="https://github.com/godotengine/godot/pull/110737">GH-110737</a>).</li>
|
||
<li>GUI: Enforce zero width spaces and joiners with missing font. Do not warn about missing non-visual characters (<a href="https://github.com/godotengine/godot/pull/111355">GH-111355</a>).</li>
|
||
<li>GUI: Fix bottom panel being unintentionally draggable (<a href="https://github.com/godotengine/godot/pull/111121">GH-111121</a>).</li>
|
||
<li>GUI: Fix text servers build with disabled FreeType (<a href="https://github.com/godotengine/godot/pull/111001">GH-111001</a>).</li>
|
||
<li>GUI: TextServer: Enforce zero width spaces and joiners to actually be zero width and not fallback to regular space (<a href="https://github.com/godotengine/godot/pull/111014">GH-111014</a>).</li>
|
||
<li>Import: Material Conversion Error Handling (<a href="https://github.com/godotengine/godot/pull/109369">GH-109369</a>).</li>
|
||
<li>Import: OBJ importer: Support bump multiplier (normal scale) (<a href="https://github.com/godotengine/godot/pull/110925">GH-110925</a>).</li>
|
||
<li>Input: Fix invalid reported joypad presses (<a href="https://github.com/godotengine/godot/pull/111192">GH-111192</a>).</li>
|
||
<li>Input: Fix weak and strong joypad vibration being swapped (<a href="https://github.com/godotengine/godot/pull/111191">GH-111191</a>).</li>
|
||
<li>Navigation: [Navigation 2D] Fix sign of cross product (<a href="https://github.com/godotengine/godot/pull/110815">GH-110815</a>).</li>
|
||
<li>Navigation: Make navmesh rasterization errors more lenient (<a href="https://github.com/godotengine/godot/pull/110841">GH-110841</a>).</li>
|
||
<li>Physics: Fix bug in ManifoldBetweenTwoFaces (<a href="https://github.com/godotengine/godot/pull/110507">GH-110507</a>).</li>
|
||
<li>Physics: Fix CCD bodies adding multiple contact manifolds when using Jolt (<a href="https://github.com/godotengine/godot/pull/110914">GH-110914</a>).</li>
|
||
<li>Physics: Fix crash when calling <code class="language-plaintext highlighter-rouge">move_and_collide</code> with a null <code class="language-plaintext highlighter-rouge">jolt_body</code> (<a href="https://github.com/godotengine/godot/pull/110964">GH-110964</a>).</li>
|
||
<li>Physics: JoltPhysics: Fix Generic6DOFJoint3D not respecting angular limits (<a href="https://github.com/godotengine/godot/pull/111087">GH-111087</a>).</li>
|
||
<li>Porting: Change <code class="language-plaintext highlighter-rouge">macos.permission.RECORD_SCREEN</code> version check from 10.15 to 11.0 (<a href="https://github.com/godotengine/godot/pull/110936">GH-110936</a>).</li>
|
||
<li>Porting: macOS: Always use “Regular” activation policy for GUI, and headless main loop for command line only tools (<a href="https://github.com/godotengine/godot/pull/109795">GH-109795</a>).</li>
|
||
<li>Porting: Unix: Fix retrieval of PID exit code (<a href="https://github.com/godotengine/godot/pull/111058">GH-111058</a>).</li>
|
||
<li>Porting: Wayland: Emulate frame event for old <code class="language-plaintext highlighter-rouge">wl_seat</code> versions (<a href="https://github.com/godotengine/godot/pull/105587">GH-105587</a>).</li>
|
||
<li>Porting: Workaround X11 crash issue (<a href="https://github.com/godotengine/godot/pull/106798">GH-106798</a>).</li>
|
||
<li>Rendering: Compatibility: Fix backface culling gets ignored when double-sided shadows are used (<a href="https://github.com/godotengine/godot/pull/109793">GH-109793</a>).</li>
|
||
<li>Rendering: DirectX DescriptorsHeap pooling on CPU (<a href="https://github.com/godotengine/godot/pull/106809">GH-106809</a>).</li>
|
||
<li>Rendering: Disable unsupported SSR, SSS, DoF on transparent viewports (<a href="https://github.com/godotengine/godot/pull/108206">GH-108206</a>).</li>
|
||
<li>Rendering: Divide screen texture by luminance multiplier in compatibility (<a href="https://github.com/godotengine/godot/pull/110004">GH-110004</a>).</li>
|
||
<li>Rendering: Fix D3D12 stencil buffer not clearing (<a href="https://github.com/godotengine/godot/pull/111032">GH-111032</a>).</li>
|
||
<li>Rendering: Fix glow intensity not showing in compatibility renderer (<a href="https://github.com/godotengine/godot/pull/110843">GH-110843</a>).</li>
|
||
<li>Rendering: Fix LightmapGI not being correctly applied to objects (<a href="https://github.com/godotengine/godot/pull/111125">GH-111125</a>).</li>
|
||
<li>Rendering: Fix OpenXR with D3D12 using the wrong clip space projection matrix (<a href="https://github.com/godotengine/godot/pull/110865">GH-110865</a>).</li>
|
||
<li>Rendering: Increase precision of SpotLight attenuation calculation to avoid driver bug on Intel devices (<a href="https://github.com/godotengine/godot/pull/110363">GH-110363</a>).</li>
|
||
<li>Rendering: Move check for sky cubemap array back into the SkyRD initializer (<a href="https://github.com/godotengine/godot/pull/110627">GH-110627</a>).</li>
|
||
<li>Rendering: OpenXR: Fix ViewportTextures not displaying correct texture (OpenGL) (<a href="https://github.com/godotengine/godot/pull/110002">GH-110002</a>).</li>
|
||
<li>Rendering: Sort render list correctly in RD renderers (<a href="https://github.com/godotengine/godot/pull/111054">GH-111054</a>).</li>
|
||
<li>Rendering: Windows: Try reading GPU driver information directly from registry (<a href="https://github.com/godotengine/godot/pull/109346">GH-109346</a>).</li>
|
||
<li>XR: Fix late destruction access violation with OpenXRAPIExtension object (<a href="https://github.com/godotengine/godot/pull/110868">GH-110868</a>).</li>
|
||
</ul>
|
||
<h2 id="known-incompatibilities">Known incompatibilities</h2>
|
||
<p>As of now, there are no known incompatibilities with the previous Godot 4.5 release. <strong>We encourage all users to upgrade to 4.5.1.</strong></p>
|
||
<p>If you experience any unexpected behavior change in your projects after upgrading to 4.5.1, please <a href="https://github.com/godotengine/godot/issues">file an issue on GitHub</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a>.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Release</category><guid>https://godotengine.org/article/maintenance-release-godot-4-5-1/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Wed, 15 Oct 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/maintenance-release-godot-4-5-1.jpg</image></item><item><title>Godot Showcase - Material Maker</title><link>https://godotengine.org/article/godot-showcase-material-maker/</link><summary>RodZilla talks about his experience developing Material Maker, a procedural PBR material creation tool made with Godot.</summary><description><p>Today, we want to showcase <a href="https://www.materialmaker.org/">Material Maker</a>, which is an open-source application made with Godot. Material Maker is designed to create materials and textures for use in physically-based rendering (PBR). As a reminder, Godot is more than just a game engine; using its <a href="https://docs.godotengine.org/en/stable/tutorials/ui/index.html">UI building blocks</a>, it is possible to create full-featured applications for desktop, mobile and web platforms. In fact, the Godot editor is made with Godot itself!</p>
|
||
<p>Material Maker had its 1.4 release in early October. This marks a significant milestone in the project, as this is the first version to be running on Godot 4. We interviewed its author, RodZilla, about how this project came to fruition and what its future might look like.</p>
|
||
<iframe width="560" height="315" src="https://www.youtube.com/embed/MOZU1MKn6zU" title="Materials created using Material Maker" frameborder="0" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9; height: auto;"></iframe>
|
||
<h2 id="can-you-tell-us-a-little-bit-about-yourself-and-your-project">Can you tell us a little bit about yourself and your project?</h2>
|
||
<p>Hello, I’m Rodolphe Suescun, also known as RodZilla. I am 53, I live in Grenoble, France, and work as a senior software developer in the microelectronics industry, mostly on electronic design automation tools and embedded software.</p>
|
||
<p>I’ve been into game development as a hobby for 25 years, mostly learning, experimenting, and creating prototypes.</p>
|
||
<p>I started Material Maker back in 2018 because I wanted to create 3D games but was not very good at drawing textures. I put the project on GitHub and itch.io without much of a plan, and didn’t really communicate about it. Then one day, GameFromScratch made a video about my project, downloads started rising, and a community began forming, first on Reddit, then later on Discord.</p>
|
||
<p>When Material Maker reached 10,000 downloads, GameFromScratch encouraged me to apply for an Epic MegaGrant, which allowed me to spend a bit more time developing the project for a few months.</p>
|
||
<p>Although it is perceived as a procedural texture authoring tool, Material Maker is mainly about generating shaders which is why it has a few uncommon features, such as exporting shaders for Shadertoy, or animated or even raymarching materials for game engines. This is also what makes it so much fun to develop.</p>
|
||
<p>Material Maker now has almost 250 nodes and can export to Godot, Unity, and Unreal. It is also possible to create new nodes (either by assembling existing nodes or by writing their code using <a href="https://docs.godotengine.org/en/stable/tutorials/shaders/shader_reference/shading_language.html">Godot shading language</a>) and new export targets.</p>
|
||
<p>Another key part of the project is the website, where artists can share the amazing materials and nodes they create. It is the best showcase of what the tool can do, and a nice source of examples for new users.</p>
|
||
<p>Finally, I’m no longer alone and Material Maker has a few active contributors such as williamchange, Jowan-Spooner, and NotArme who helped a lot on the 1.4 release.</p>
|
||
<h2 id="can-you-give-us-some-examples-of-games-developed-with-the-help-of-material-maker">Can you give us some examples of games developed with the help of Material Maker?</h2>
|
||
<p>The first two games that come to mind are <a href="https://store.steampowered.com/app/2447980/Crown_Gambit/?curator_clanid=41324400">Crown Gambit</a> and <a href="https://store.steampowered.com/app/1344990/Zefyr_A_Thiefs_Melody/">Zefyr: A Thief’s Melody</a>, which were both released on Steam in June.</p>
|
||
<p><em>Crown Gambit</em> is a narrative dark fantasy deck-building game (made with Godot!). Rachel Dufossé, who worked as a 2D/3D artist on the project, joined our Discord server two years ago, asking questions and showing her work from time to time, while actively promoting Material Maker in the studio she works for, Wild Wits Games. She ended up giving a talk about her work with Material Maker to Atlangames, the network of video game companies in her region.</p>
|
||
<p><em>Zefyr: A Thief’s Melody</em> is an action-adventure game with nice Wind Waker and Beyond Good and Evil vibes. Mathias Fontmarty, the solo developer of this project, did not interact as much with the community, but gave a few talks about Material Maker at conferences (such as Capitole du Libre in Toulouse).</p>
|
||
<p>Those are beautiful projects, and it is always a real pleasure to see users carry the Material Maker flag in their own way, whether by creating amazing games or by sharing their experiences.</p>
|
||
<p>I can mention a few others, released or soon-to-come, such as <a href="https://store.steampowered.com/app/2053370/Chrono_Weaver/">Chrono Weaver</a>, <a href="https://store.steampowered.com/app/3697370/Beyond_The_Space_Wall/">Beyond the Space Wall</a>, <a href="https://store.steampowered.com/app/1343040/Blocky_Ball/">Blocky Ball</a>, <a href="https://store.steampowered.com/app/1839060/Polylithic/">Polylithic</a>, <a href="https://store.steampowered.com/app/2329690/KOOK/?curator_clanid=41324400">KOOK</a>, and <a href="https://store.steampowered.com/app/1171980/Neverlooted_Dungeon/">Neverlooted Dungeon</a>.</p>
|
||
<p>Note to readers: the 1.4 release has a new splash screen that shows games, shaders, and materials created with Material Maker, so please feel free to contact me on Discord if you used it for your game.</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-4.webp" alt="Material Maker splash screen featuring Crown Gambit" /></p>
|
||
<blockquote>
|
||
<p>One of Material Maker’s many splash screens; some of them are even animated!</p>
|
||
</blockquote>
|
||
<h2 id="what-were-some-of-the-biggest-challenges-you-faced-during-the-development-process-and-how-did-you-overcome-them">What were some of the biggest challenges you faced during the development process, and how did you overcome them?</h2>
|
||
<p>At the very beginning of the project, nodes were nearly hardcoded in GDScript and I soon realized it was a huge mistake. So I had to take a step back and come up with a generic way of describing the shader code used by nodes and assembling them. Then I added an editor for those shader nodes, which made node creation really easy.</p>
|
||
<p>I am not sure it was that big of a challenge, but it took a few weeks of not touching the code, and thinking about use cases and code generation to come up with the right solution. Although shader code generation has been improved and extended since then, it has not changed that much.</p>
|
||
<p>Exporting to other game engines was a bit challenging. I had to understand how they handle materials and come up with a convenient export workflow. Unreal needs a material graph and I didn’t find an easy-to-generate file format for it, so Material Maker generates a Python script that creates the graph when executed in Unreal (I know it is an ugly solution).</p>
|
||
<p>This challenge is not completely solved, though. When exporting dynamic materials to Unreal and Unity, Material Maker “translates” the generated GLSL shader code to HLSL. This part will need to be rewritten at some point, based on a proper GLSL parser.</p>
|
||
<p>Of course, there is optimization, mainly to decrease rendering time for generated textures. And there is still a lot more to be done.</p>
|
||
<p>On the non-technical challenges side, I would say that evolving from a “lone wolf working on personal projects” mindset to interacting with a very nice community of users and contributors was not without glitches. But I guess it was a well-needed evolution.</p>
|
||
<h2 id="the-project-is-under-the-mit-license-and-available-for-everyone-at-github-what-made-you-decide-to-make-the-project-free-and-open-source">The project is under the MIT license and available for everyone <a href="https://github.com/RodZill4/material-maker">at GitHub</a>. What made you decide to make the project free and open source?</h2>
|
||
<p>I have been an open-source software user (and advocate) for quite some time. I think I installed Linux for the first time back in 1993. If I remember correctly, that was about 30 floppy disks.</p>
|
||
<p>When I started Material Maker, it was just an experiment I intended to use to create textures, so I shared it under the MIT license, just like all prototypes you can find on my GitHub.</p>
|
||
<p>And for me it is a hobby anyway, so it was never meant to be paid software.</p>
|
||
<p>That said, donations pay for the domain name, the <abbr title="Virtual Private Server">VPS</abbr>, the “Apple tax”, and whatever hardware I needed to develop Material Maker and port it to all supported platforms, and I’m pretty happy with that. Huge thanks to everyone who supports this project!</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-2.webp" alt="Beehive material graph and preview" /></p>
|
||
<blockquote>
|
||
<p>Material showcased: <em>Beehive</em> by RodZilla (included in the <code class="language-plaintext highlighter-rouge">examples/</code> folder with Material Maker)</p>
|
||
</blockquote>
|
||
<h2 id="how-did-you-discover-godot-what-made-you-pick-it-for-your-project">How did you discover Godot? What made you pick it for your project?</h2>
|
||
<p>It is really funny that I discovered Godot just like Material Maker gained its current visibility. I discovered this game engine while watching a video from GameFromScratch covering Godot around the time it went open-source.</p>
|
||
<p>I tried it for a few very small game prototypes (including one featuring a silly mouse for my very first game jam) and I must admit it immediately clicked for me. Godot was far from what it would become, but I already loved the nodes approach and how natural the overall design felt.</p>
|
||
<p>I’ve been using Godot for all my game development projects and prototypes ever since, and it consistently proves easy and efficient to work with.</p>
|
||
<h2 id="material-maker-14-is-the-first-version-to-be-running-on-godot-4-what-upgrades-does-godot-4-bring-to-your-project">Material Maker 1.4 is the first version to be running on Godot 4. What upgrades does Godot 4 bring to your project?</h2>
|
||
<p>The main change that Godot 4 brings is compute shaders which give a lot more flexibility for shader generation and help improve performance. I also used them to introduce new generated meshes (rounded cube and cylinder) to replace the default ones.</p>
|
||
<p>Support for multiple windows made it possible for me to add flexible layout with undockable panels, and I will probably expose this part as a Godot addon so other application developers can reuse it.</p>
|
||
<p>I also started using the new GDScript features (mainly typed arrays and dictionaries), but it will take a long time before all of Material Maker’s code is updated.</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-3.webp" alt="Pavement Generator material preview" /></p>
|
||
<blockquote>
|
||
<p>Material showcased: <a href="https://www.materialmaker.org/material?id=548"><em>Pavement Generator</em> by Tarox</a></p>
|
||
</blockquote>
|
||
<h2 id="what-challenges-have-you-encountered-while-upgrading-the-project-to-godot-4-what-would-you-like-to-see-implemented">What challenges have you encountered while upgrading the project to Godot 4? What would you like to see implemented?</h2>
|
||
<p>The main challenge for me was learning the new <a href="https://docs.godotengine.org/en/stable/classes/class_renderingserver.html">RenderingServer</a> and <a href="https://docs.godotengine.org/en/stable/classes/class_renderingdevice.html">RenderingDevice</a> and finding out how to best use compute shaders for Material Maker’s use cases. Also, API changes between releases have been a bit annoying, but that’s the price to pay when using bleeding edge releases.</p>
|
||
<p>The only thing I’m missing for Material Maker is support for saving EXR files in the release templates. I currently have to use custom-built templates for Material Maker. This is not much of an annoyance since I only have to recompile Godot whenever I use a new release.</p>
|
||
<p>But speaking of possible improvements for Godot, while doing game jams with my team, we noticed Godot makes it hard for audio designers to do their job without diving into the whole Godot project (since sounds are triggered wherever there is an AudioStreamPlayer node). I wrote a small addon (called TRAudio and <a href="https://github.com/RodZill4/TRAudio">available on my GitHub</a>) that tries to bridge the gap between the audio designer and the software developer, but I think Godot would benefit from supporting this natively. The addon is OK in most use cases, but triggering sounds in animations is not as convenient as it could be.</p>
|
||
<h2 id="do-you-have-any-new-features-or-improvements-in-mind-for-material-maker-in-the-future">Do you have any new features or improvements in mind for Material Maker in the future?</h2>
|
||
<p>Of course, Material Maker has a roadmap, but I generally do not communicate much about it so I do not promise anything my limited free time does not allow.</p>
|
||
<p>That said, Material Maker 1.0 (and all previous releases) were about delivering a nice toolkit for creating seamlessly tileable materials. And 2.0 will focus on texturing 3D models (and 1.4 is a step in that direction with the new Mesh Map node).</p>
|
||
<p>The painting tool in Material Maker is a nice prototype and can do quite a few impressive things (brushes are completely procedural and described by connecting nodes), and in 1.4, all PBR channels can be painted by a single compute shader. But it becomes way too slow with complex brushes, and the end result of each stroke is stored in the final textures of the painted layer. So we start with a procedural brush, and lose the procedural aspect while painting (which defeats the purpose of the approach).</p>
|
||
<p>So instead of improving the current painting tool, I’m thinking of introducing very basic painting features in the material authoring tool. By “very basic”, I mean painting simple masks that can be applied to parts of the graph, or UV maps that will help place a procedural shape or pattern using a CustomUV node. Thus painting would become a guide for procedural generation, which would allow an interactive yet nearly non-destructive workflow for texturing models.</p>
|
||
<p>And in the short term, the <a href="https://rodzill4.github.io/material-maker/doc/node_simple_easy_sdf.html">EasySDF node and its corresponding dialog</a> (that is used to edit 2D and 3D Signed Distance Functions) will get an update, on both UI and code generation sides.</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-1.webp" alt="Broken Floor material graph and preview" /></p>
|
||
<blockquote>
|
||
<p>Material showcased: <a href="https://www.materialmaker.org/material?id=975"><em>Broken Floor</em> by Tarox</a></p>
|
||
</blockquote>
|
||
<h2 id="how-can-one-learn-to-use-material-maker">How can one learn to use Material Maker?</h2>
|
||
<p>This is probably the weakest point of this project. There are <a href="https://www.youtube.com/watch?v=mSuyrsJSZ_o&amp;list=PLI2XkW0E3DLhYDu30nxSiUsdBS-ziIbbo">nice video tutorials made by Kasper Arnklit Frandsen</a> and <a href="https://www.youtube.com/watch?v=yKQRfrxJRLM">a few more advanced ones by Pavel Oliva</a>, but they are a bit old. It is also possible to follow Substance Designer tutorials; the nodes are different, but the concepts are the same.</p>
|
||
<p>Another great way to learn is to <a href="https://www.materialmaker.org/materials">grab materials from the website</a> and study their graph.</p>
|
||
<p>In any case, you probably want to <a href="https://discord.gg/RnHgQS9Nqq">join our Discord server</a>. Material Maker has a very nice and welcoming community.</p>
|
||
<p>Material Maker definitely needs a few good-quality “official” video tutorials and I really need to make sure they happen.</p>
|
||
<h2 id="thank-you-for-sharing-your-experience-using-godot-is-there-anything-you-would-like-to-plug">Thank you for sharing your experience using Godot. Is there anything you would like to plug?</h2>
|
||
<p>Although I mainly mentioned Material Maker, I recently participated in six <a href="https://godotwildjam.com/">Godot Wild Jams</a>, followed by a <a href="https://itch.io/jam/godot-xr-game-jam-sep-2025">Godot XR Game Jam</a>, with a truly awesome team (now named Cularo Games). We’re now planning to push one of those projects further. The lone wolf in me will soon be gone for good.</p>
|
||
<hr />
|
||
<p>Thank you RodZilla for taking the time to answer our questions! We look forward to the future of Material Maker.</p>
|
||
<p><a href="https://www.materialmaker.org/">Material Maker</a> is free and open-source. It can be downloaded for Windows, macOS, and Linux on <a href="https://rodzilla.itch.io/material-maker">itch.io</a>. Along with the <a href="https://github.com/RodZill4/material-maker">GitHub repository</a>, there is also a <a href="https://www.reddit.com/r/MaterialMaker/">subreddit</a> and <a href="https://discord.gg/RnHgQS9Nqq">Discord server</a> you can join to interact with its community.</p></description><category>Showcase</category><guid>https://godotengine.org/article/godot-showcase-material-maker/</guid><dc:creator>Hugo Locurcio</dc:creator><pubDate>Tue, 14 Oct 2025 14:00:00 +0000</pubDate><image>https://godotengine.org/assets/showcase/material-maker/header.jpg</image></item><item><title>Release candidate: Godot 4.5.1 RC 2</title><link>https://godotengine.org/article/release-candidate-godot-4-5-1-rc-2/</link><summary>Hotfixes so nice, we added 'em twice!</summary><description><p>Last week saw our first <a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate</a> snapshot for <a href="/article/release-candidate-godot-4-5-1-rc-1/">4.5.1</a>, and in that time there have been even more critical bugfixes suitable for backporting. As such, we’re doing one more pass for good measure: 4.5.1-rc2 has arrived! Our top priority is ensuring the hotfix release is as stable as possible, so be sure to test and report any issues that aren’t present in 4.5-stable.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.1.rc2/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/6Ls6Bfa34"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/3208560/Trainatic/?curator_clanid=41324400"><strong>Trainatic</strong></a>, <em>a cozy(?) game where you guide your train through a procedurally-generated world, unlocking powerful synergies and skilltrees to aid your unyielding destruction. You can buy the game on <a href="https://store.steampowered.com/app/3208560/Trainatic/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://bsky.app/profile/ryanforrester.bsky.social">Bluesky</a> or <a href="https://www.youtube.com/@RyanForresterDev">YouTube</a>.</em></p>
|
||
<h2 id="whats-new">What’s new</h2>
|
||
<p><strong>31 contributors</strong> submitted <strong>45 improvements</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1-rc2"><strong>interactive changelog</strong></a> for the complete list of changes since the 4.5.1-rc1 release. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1">all changes included in 4.5.1</a> compared to the previous 4.5 feature release.</p>
|
||
<ul>
|
||
<li>2D: Fix redundant calls of <code class="language-plaintext highlighter-rouge">CanvasItemEditor::_update_lock_and_group_button</code> on <code class="language-plaintext highlighter-rouge">SceneTreeEditor</code> node selection (<a href="https://github.com/godotengine/godot/pull/110320">GH-110320</a>).</li>
|
||
<li>3D: GridMap: Fix cell scale not applying to the cursor mesh (<a href="https://github.com/godotengine/godot/pull/104510">GH-104510</a>).</li>
|
||
<li>Animation: Fix backward/pingpong root motion in AnimationTree (<a href="https://github.com/godotengine/godot/pull/110982">GH-110982</a>).</li>
|
||
<li>Animation: Fix Reset on Save corrupt poses if scene has multiple Skeletons (<a href="https://github.com/godotengine/godot/pull/110506">GH-110506</a>).</li>
|
||
<li>Animation: Make extended SkeletonModifiers retrieve interpolated global transform (<a href="https://github.com/godotengine/godot/pull/110987">GH-110987</a>).</li>
|
||
<li>Core: Change “reserve called with a capacity smaller than the current size” error message to a verbose message (<a href="https://github.com/godotengine/godot/pull/110826">GH-110826</a>).</li>
|
||
<li>Documentation: Fix and improve <code class="language-plaintext highlighter-rouge">Node2D.move_local_{x,y}()</code> description (<a href="https://github.com/godotengine/godot/pull/110878">GH-110878</a>).</li>
|
||
<li>Editor: Add column boundary check in the autocompletion (<a href="https://github.com/godotengine/godot/pull/110017">GH-110017</a>).</li>
|
||
<li>Editor: Fix <code class="language-plaintext highlighter-rouge">DPITexture</code> editor icon name (<a href="https://github.com/godotengine/godot/pull/110661">GH-110661</a>).</li>
|
||
<li>Editor: Fix Quick Open history (<a href="https://github.com/godotengine/godot/pull/111068">GH-111068</a>).</li>
|
||
<li>Editor: Fix selection of remote tree using the keyboard (<a href="https://github.com/godotengine/godot/pull/110738">GH-110738</a>).</li>
|
||
<li>Editor: Fix the project file was not updated when some files were removed (<a href="https://github.com/godotengine/godot/pull/110576">GH-110576</a>).</li>
|
||
<li>Editor: Set correct saved history after clearing (<a href="https://github.com/godotengine/godot/pull/111136">GH-111136</a>).</li>
|
||
<li>Editor: Tweak macOS notarization export message in the editor (<a href="https://github.com/godotengine/godot/pull/110793">GH-110793</a>).</li>
|
||
<li>Export: Windows: Fix application manifest in exported projects with modified resources (<a href="https://github.com/godotengine/godot/pull/111316">GH-111316</a>).</li>
|
||
<li>GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once (<a href="https://github.com/godotengine/godot/pull/111090">GH-111090</a>).</li>
|
||
<li>GDScript: LSP: Fix repeated restart attempts (<a href="https://github.com/godotengine/godot/pull/111290">GH-111290</a>).</li>
|
||
<li>GUI: Editor font: do not embolden the Main Font if it’s variable (<a href="https://github.com/godotengine/godot/pull/110737">GH-110737</a>).</li>
|
||
<li>GUI: Enforce zero width spaces and joiners with missing font. Do not warn about missing non-visual characters (<a href="https://github.com/godotengine/godot/pull/111355">GH-111355</a>).</li>
|
||
<li>GUI: Fix bottom panel being unintentionally draggable (<a href="https://github.com/godotengine/godot/pull/111121">GH-111121</a>).</li>
|
||
<li>GUI: Fix LineEdit’s placeholder text being selected when double clicking (<a href="https://github.com/godotengine/godot/pull/110886">GH-110886</a>).</li>
|
||
<li>GUI: Fix text servers build with disabled FreeType (<a href="https://github.com/godotengine/godot/pull/111001">GH-111001</a>).</li>
|
||
<li>GUI: TextServer: Enforce zero width spaces and joiners to actually be zero width and not fallback to regular space (<a href="https://github.com/godotengine/godot/pull/111014">GH-111014</a>).</li>
|
||
<li>Import: OBJ importer: Support bump multiplier (normal scale) (<a href="https://github.com/godotengine/godot/pull/110925">GH-110925</a>).</li>
|
||
<li>Input: Fix invalid reported joypad presses (<a href="https://github.com/godotengine/godot/pull/111192">GH-111192</a>).</li>
|
||
<li>Input: Fix weak and strong joypad vibration being swapped (<a href="https://github.com/godotengine/godot/pull/111191">GH-111191</a>).</li>
|
||
<li>Physics: Fix crash when calling <code class="language-plaintext highlighter-rouge">move_and_collide</code> with a null <code class="language-plaintext highlighter-rouge">jolt_body</code> (<a href="https://github.com/godotengine/godot/pull/110964">GH-110964</a>).</li>
|
||
<li>Physics: JoltPhysics: Fix Generic6DOFJoint3D not respecting angular limits (<a href="https://github.com/godotengine/godot/pull/111087">GH-111087</a>).</li>
|
||
<li>Porting: Change <code class="language-plaintext highlighter-rouge">macos.permission.RECORD_SCREEN</code> version check from 10.15 to 11.0 (<a href="https://github.com/godotengine/godot/pull/110936">GH-110936</a>).</li>
|
||
<li>Porting: macOS: Always use “Regular” activation policy for GUI, and headless main loop for command line only tools (<a href="https://github.com/godotengine/godot/pull/109795">GH-109795</a>).</li>
|
||
<li>Porting: Unix: Fix retrieval of PID exit code (<a href="https://github.com/godotengine/godot/pull/111058">GH-111058</a>).</li>
|
||
<li>Porting: Wayland: Emulate frame event for old <code class="language-plaintext highlighter-rouge">wl_seat</code> versions (<a href="https://github.com/godotengine/godot/pull/105587">GH-105587</a>).</li>
|
||
<li>Porting: Wayland: Inhibit idle in DisplayServerWayland::screen_set_keep_on (<a href="https://github.com/godotengine/godot/pull/110875">GH-110875</a>).</li>
|
||
<li>Rendering: Divide screen texture by luminance multiplier in compatibility (<a href="https://github.com/godotengine/godot/pull/110004">GH-110004</a>).</li>
|
||
<li>Rendering: Fix glow intensity not showing in compatibility renderer (<a href="https://github.com/godotengine/godot/pull/110843">GH-110843</a>).</li>
|
||
<li>Rendering: Fix LightmapGI not being correctly applied to objects (<a href="https://github.com/godotengine/godot/pull/111125">GH-111125</a>).</li>
|
||
</ul>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/69796bf7d67599b21308fb54723ed53a84e2e335"><code class="language-plaintext highlighter-rouge">69796bf7d</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5.1-rc2">
|
||
Download Godot 4.5.1 rc2
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-5-1-rc-2.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5.1-rc2">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5.1. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.</p>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a>.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/release-candidate-godot-4-5-1-rc-2/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Wed, 08 Oct 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/release-candidate-godot-4-5-1-rc-2.webp</image></item><item><title>Release candidate: Godot 4.5.1 RC 1</title><link>https://godotengine.org/article/release-candidate-godot-4-5-1-rc-1/</link><summary>Regression fixes coming in hot!</summary><description><p>It’s been just over two weeks since the release of <a href="/releases/4.5/">Godot 4.5</a>, and the overwhelmingly positive community response has been an absolute treat to behold! Our hard-working contributors have taken this energy to kick-start the development phase of Godot 4.6, resulting in our <a href="/article/dev-snapshot-godot-4-6-dev-1/">first snapshot</a> coming out earlier this week.</p>
|
||
<p>In saying that, the main focus was always going to be hammering out newly reported regressions encountered in the 4.5 release, and integrating any fixes deemed too risky to merge at the time. As such, we’ve already prepared a healthy number of regression fixes for a 4.5.1 maintenance release. This release candidate is intended to validate the fixes in an environment isolated from the new enhancements and features that 4.6 is already boasting. Your testing is crucial to detect and squash any new issues that weren’t present in 4.5-stable, in order to ensure that this hotfix is as clean of an upgrade as possible.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.1.rc1/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/6Ls6Bfa34"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/3361510/Coal_LLC/?curator_clanid=41324400"><strong>Coal LLC</strong></a>, <em>a capitalism simulator where you fulfill increasingly absurd quotas through increasingly dubious methods. You can buy the game or try out the demo on <a href="https://store.steampowered.com/app/3361510/Coal_LLC/?curator_clanid=41324400">Steam</a>, and follow the developers on their <a href="https://www.byebyeocean.net/">website</a>.</em></p>
|
||
<h2 id="whats-new">What’s new</h2>
|
||
<p><strong>31 contributors</strong> submitted <strong>33 improvements</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1-rc1"><strong>interactive changelog</strong></a> for the complete list of changes since the 4.5-stable release.</p>
|
||
<ul>
|
||
<li>Audio: Add one padding frame to QOA buffer for short streams (<a href="https://github.com/godotengine/godot/pull/110515">GH-110515</a>).</li>
|
||
<li>Buildsystem: Windows: Migrate <code class="language-plaintext highlighter-rouge">godot.manifest</code> to <code class="language-plaintext highlighter-rouge">platform/windows</code>, include as dependency (<a href="https://github.com/godotengine/godot/pull/110897">GH-110897</a>).</li>
|
||
<li>Core: Avoid repeated <code class="language-plaintext highlighter-rouge">_copy_on_write()</code> calls in <code class="language-plaintext highlighter-rouge">Array::resize()</code> (<a href="https://github.com/godotengine/godot/pull/110535">GH-110535</a>).</li>
|
||
<li>Core: Check for <code class="language-plaintext highlighter-rouge">NUL</code> characters in string parsing functions (<a href="https://github.com/godotengine/godot/pull/110556">GH-110556</a>).</li>
|
||
<li>Core: X11 input: prevent non-printable keys from producing empty strings (<a href="https://github.com/godotengine/godot/pull/110635">GH-110635</a>).</li>
|
||
<li>Documentation: Clarify that velocity doesn’t need delta multiplication in CharacterBody documentation (<a href="https://github.com/godotengine/godot/pull/109925">GH-109925</a>).</li>
|
||
<li>Documentation: Document the interaction between Light3D cull mask and GI/volumetric fog (<a href="https://github.com/godotengine/godot/pull/110423">GH-110423</a>).</li>
|
||
<li>Documentation: Document typed dictionaries and arrays in the class reference (<a href="https://github.com/godotengine/godot/pull/107071">GH-107071</a>).</li>
|
||
<li>Documentation: Fix Basis.determinant() doc: uniform scale determinant is scale^3 (<a href="https://github.com/godotengine/godot/pull/110424">GH-110424</a>).</li>
|
||
<li>Editor: Correct the order of Diagonal Mode in Add Property (<a href="https://github.com/godotengine/godot/pull/109214">GH-109214</a>).</li>
|
||
<li>Editor: Fix typos in BlendSpace2D editor’s axis labels’ accessibility names (<a href="https://github.com/godotengine/godot/pull/109847">GH-109847</a>).</li>
|
||
<li>Export: Android: Ensure proper cleanup of the fragment (<a href="https://github.com/godotengine/godot/pull/109764">GH-109764</a>).</li>
|
||
<li>Export: Metal: Fix Metal compiler version inspection (<a href="https://github.com/godotengine/godot/pull/110873">GH-110873</a>).</li>
|
||
<li>GDExtension: Fix <code class="language-plaintext highlighter-rouge">--dump-extension-api-with-docs</code> indentation (<a href="https://github.com/godotengine/godot/pull/110557">GH-110557</a>).</li>
|
||
<li>GUI: Fix LineEdit icon positon in right-to-left layout (<a href="https://github.com/godotengine/godot/pull/109363">GH-109363</a>).</li>
|
||
<li>Import: Material Conversion Error Handling (<a href="https://github.com/godotengine/godot/pull/109369">GH-109369</a>).</li>
|
||
<li>Navigation: [Navigation 2D] Fix sign of cross product (<a href="https://github.com/godotengine/godot/pull/110815">GH-110815</a>).</li>
|
||
<li>Navigation: Make navmesh rasterization errors more lenient (<a href="https://github.com/godotengine/godot/pull/110841">GH-110841</a>).</li>
|
||
<li>Physics: Fix bug in ManifoldBetweenTwoFaces (<a href="https://github.com/godotengine/godot/pull/110507">GH-110507</a>).</li>
|
||
<li>Physics: Fix CCD bodies adding multiple contact manifolds when using Jolt (<a href="https://github.com/godotengine/godot/pull/110914">GH-110914</a>).</li>
|
||
<li>Porting: Workaround X11 crash issue (<a href="https://github.com/godotengine/godot/pull/106798">GH-106798</a>).</li>
|
||
<li>Rendering: Compatibility: Fix backface culling gets ignored when double-sided shadows are used (<a href="https://github.com/godotengine/godot/pull/109793">GH-109793</a>).</li>
|
||
<li>Rendering: DirectX DescriptorsHeap pooling on CPU (<a href="https://github.com/godotengine/godot/pull/106809">GH-106809</a>).</li>
|
||
<li>Rendering: Disable unsupported SSR, SSS, DoF on transparent viewports (<a href="https://github.com/godotengine/godot/pull/108206">GH-108206</a>).</li>
|
||
<li>Rendering: Fix d3d12 stencil buffer not clearing (<a href="https://github.com/godotengine/godot/pull/111032">GH-111032</a>).</li>
|
||
<li>Rendering: Fix OpenXR with D3D12 using the wrong clip space projection matrix (<a href="https://github.com/godotengine/godot/pull/110865">GH-110865</a>).</li>
|
||
<li>Rendering: Increase precision of SpotLight attenuation calculation to avoid driver bug on Intel devices (<a href="https://github.com/godotengine/godot/pull/110363">GH-110363</a>).</li>
|
||
<li>Rendering: Move check for sky cubemap array back into the SkyRD initializer (<a href="https://github.com/godotengine/godot/pull/110627">GH-110627</a>).</li>
|
||
<li>Rendering: OpenXR: Fix ViewportTextures not displaying correct texture (OpenGL) (<a href="https://github.com/godotengine/godot/pull/110002">GH-110002</a>).</li>
|
||
<li>Rendering: Sort render list correctly in RD renderers (<a href="https://github.com/godotengine/godot/pull/111054">GH-111054</a>).</li>
|
||
<li>Rendering: Windows: Try reading GPU driver information directly from registry (<a href="https://github.com/godotengine/godot/pull/109346">GH-109346</a>).</li>
|
||
<li>XR: Fix late destruction access violation with OpenXRAPIExtension object (<a href="https://github.com/godotengine/godot/pull/110868">GH-110868</a>).</li>
|
||
</ul>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/c834443ef1fa3516e30124d8afaf448353d31010"><code class="language-plaintext highlighter-rouge">c834443ef</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5.1-rc1">
|
||
Download Godot 4.5.1 rc1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-5-1-rc-1.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5.1-rc1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5.1. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.</p>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a>.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/release-candidate-godot-4-5-1-rc-1/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Thu, 02 Oct 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/release-candidate-godot-4-5-1-rc-1.webp</image></item><item><title>Looking back at GodotCon US 2025</title><link>https://godotengine.org/article/godotcon-us-2025-wrapup/</link><summary>It's time for a summary of GodotCon Boston now that all talks are available on Youtube.</summary><description><p>As you might know, this year we hosted our first US-based GodotCon in Boston. Taking place at the tail end of spring, this was three solid days focused solely on making games with the Godot Engine. Our first day had hands-on workshops followed by two days of talks. For our inaugural event we had:</p>
|
||
<ul>
|
||
<li>Over 300 attendees.</li>
|
||
<li>Over 100 proposals.</li>
|
||
<li>38 talks.</li>
|
||
<li>14 showcases.</li>
|
||
<li>3 great days.</li>
|
||
</ul>
|
||
<p>GodotCon was run by members of the Boston Godot User Group and Boston Game Dev in co-ordination with the Godot Foundation during <a href="https://gamedev.boston/">Boston Gamedev Week</a>. From May 5th to May 7th we had three days of Godot-focused content at the Microsoft New England Research and Development Center (NERD Center!). A huge thanks to Microsoft for generously donating the space. This would not have been possible without them and their commitment to supporting non-profits and open-source software.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd110020250506091817.webp" alt="Emi giving the opening keynote at the Microsoft NERD Center." /></p>
|
||
<p>And while we’re at it, a huge thanks to all of our sponsors: <a href="https://www.arm.com/">Arm Technology</a>, <a href="https://www.endlessglobal.com/the-endless-foundation">Endless Foundation</a>, <a href="https://www.w4games.com/">W4 Games</a>, <a href="https://mikeklubnika.com/">Mike Klubnika</a>, <a href="https://xogot.com/">Xogot</a>, <a href="https://www.binarysolo.com/">Binary Solo</a>, and <a href="https://dislamedia.com/">Disla Media</a>. Without them a conference like this would not be possible.</p>
|
||
<h2 id="the-format">The format</h2>
|
||
<p>For our first US-based GodotCon, we committed to three days of programming. The first day we had five different workshops that covered a host of interesting topics. <a href="https://www.youtube.com/watch?v=tK2ACXUGcrY">Travis Hunter</a> walked folks through their first multiplayer experience with an incredibly fun grand finale where everyone got to play their game together. <a href="https://www.youtube.com/watch?v=JqL_oZ9SG7Q">Scott Doxey</a> showed us how to make a gdextension, end-to-end. <a href="https://www.youtube.com/watch?v=wWD7OCx7tNs">Simon</a> taught us way more than we ever needed to know about how Markov Chains work and how we can apply that to our projects. <a href="https://www.youtube.com/watch?v=k1GvvrkIq-8">Jesse (CoderNunk)</a> gave us a method for doing anime-style 3D characters using Blender. <a href="https://www.youtube.com/watch?v=f0CsbuHDr44">Nicholas O’Brien</a> went into incredible depth on narrative design.</p>
|
||
<p>On days 2 and 3, we got an amazing batch of talks and updates. You may have heard <a href="https://www.youtube.com/watch?v=u_WMJG0menc">Adam</a> talk about how the team got C# web exports working. <a href="https://www.youtube.com/watch?v=fiyf4XPanf4">Acerola</a> took us super in-depth with Compositor Effects. We got a inside look at converting <a href="https://www.youtube.com/watch?v=MEZoKKAoUAU">Domekeeper to multiplayer</a>. And some dufus even talked about <a href="https://www.youtube.com/watch?v=qoCWp_oP9Ng">making games on your phone</a>. All in all, there was a wide berth of topics from folks from the entire Godot community.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd11001234567891233.webp" alt="Julian, AKA StayAtHomeDev, talking about growing a YouTube audience." /></p>
|
||
<p>We’re happy to say that we have finally released all of the videos from GodotCon for free on YouTube; everything from lightning talks to workshops!</p>
|
||
<p><a href="https://www.youtube.com/watch?v=fiyf4XPanf4&amp;list=PLeG_dAglpVo5oOrjQqDTMQadVDqe1Zsom">🔗 Watch them all here</a></p>
|
||
<h2 id="the-showcase">The showcase</h2>
|
||
<p>In addition to the talks and workshops, we were able to put on a small games showcase.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd1100171748217.jpg" alt="Shot of the Garage, our showcase venue, filled with people playing games." /></p>
|
||
<p>In no particular order:</p>
|
||
<ul>
|
||
<li><a href="https://store.steampowered.com/app/1941420/Burrito_Bear/">Burrito Bear by SpaceOrca</a>: Eat burritos, avoid garbage in three bold, beautiful, shiny dimensions.</li>
|
||
<li><a href="https://store.steampowered.com/app/3660860/Turnip_Boy_Steals_the_Mail/">Turnip Boy Steals the Mail by Snoozy Kanoo</a>: A free new Turnip Boy adventure.</li>
|
||
<li><a href="https://store.steampowered.com/app/1712700/Memori/">Memori by PracticalNPC</a>: A precision pixel platformer with challenging puzzles.</li>
|
||
<li><a href="https://store.steampowered.com/app/2477750/Dunderbeck/">Dunderbeck by RUST LTD</a>: Fight, build, and eat your way across the mythical land of Cincinatti.</li>
|
||
<li><a href="https://store.steampowered.com/app/2840590/no_signal/">no signal by exodrifter</a>: An emotional point-and-click hard sci-fi adventure.</li>
|
||
<li><a href="https://store.steampowered.com/app/3293350/Dantes_9/">Dante’s 9 by John D</a>: A roguelite action-platformer fused with a deckbuilder.</li>
|
||
<li><a href="https://store.steampowered.com/app/3186280/Dukkido/">Dukkido by MariSuCho</a>: A physics-based action-RTS, featuring large handcrafted levels and dungeons.</li>
|
||
<li><a href="https://store.steampowered.com/app/3211750/Neongarten/">Neongarten by Moonroof Studios</a>: A minimalist cyberpunk city builder.</li>
|
||
<li><a href="https://www.comfymitten.games/devlog/turntide-tales">TurnTide Tales by Comfy Mitten</a>: An epic swashbuckling adventure across the high seas with a daring crew.</li>
|
||
</ul>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd11005214.webp" alt="Someone playing on a controller at the Turnip Boy Steals the Mail table." /></p>
|
||
<p>We also had some other cool stuff on display!</p>
|
||
<ul>
|
||
<li><a href="https://xogot.com/">Xogot</a>: The Godot editor on an iPad native interface.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=b-NQg4g9o0Q">Sweet Spot</a>: An interactive art exhibit by Michael Berthaud.</li>
|
||
<li><a href="https://migeran.com/">Godot Beyond Games</a>: Migeran showed their AR / VR / XR / Mobile / Web / Robotics uses of Godot Engine for non-game work.</li>
|
||
<li><a href="https://www.endlessglobal.com/foundation/access">Endless Access</a>: An education platform with lots of neat Godot integrations.</li>
|
||
</ul>
|
||
<p>Many thanks go to our small group of volunteers who helped everything run smoothly. Volunteers who did tons of design work. Volunteers who helped talks run smoothly. Volunteers who basically lived at the badge and merch tables and helped us pack our awesome swag bags.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd110020250508221757.webp" alt="A table of goods collected at GodotCon. Godot branded tote, Buckshot Roulette sticker packs, cards and stickers from the showcase games, badge, pins, and the GodotCon Anthology Mixtape" /><img src="/storage/blog/godotcon-us-2025/56bdd11005193.webp" alt="A close-up shot of the GodotCon T-shirt that was for sale." /></p>
|
||
<p>(Speaking of swag bags, how cool was our awesome Anthology “cassette” that included games, demos, and experiments by our speakers and showcasers!?)</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd110020250506231922551.webp" alt="A glamour shot of the GodotCon Anthology Mixtape." /></p>
|
||
<h1 id="the-future">The future</h1>
|
||
<p>When we first mentioned GodotCon Boston, folks were disappointed at the thought of missing a Godot event in Europe. Well, let that thought drift away. Although the name might be different, we’ve got Europe’s Godot Engine event, <a href="https://godotfest.com/">GodotFest happening in November</a>, and the Godot Foundation has already started organizing the GodotCon EU 2026. Get your tickets for GodotFest now! The prices were just lowered, but they go up starting in October.</p>
|
||
<p><em>But what about GodotCon in the US!?</em></p>
|
||
<p>You’re hearing it here first. GodotCon US will take place in <strong>Boston</strong> again next year. Putting on GodotCon to this level takes a large effort. The Boston Godot User Group put on a well-organized event. This time they have an entire year to prepare for something even bigger and better.</p>
|
||
<p><em>Do you want to put on the next GodotCon in your city?</em> Let’s make it happen! Reach out and get a conversation started. GodotCon loves to travel, but there are a few things we’d prefer to see from a potential GodotCon site:</p>
|
||
<ul>
|
||
<li>An experienced, dedicated game development group. It’s hard to trust a group that hasn’t been around for a year to stick together for another. (Besides, you need a large pool of volunteers!)</li>
|
||
<li>Some organizing experience.</li>
|
||
<li>Somewhere easy to travel to.</li>
|
||
</ul>
|
||
<p>Our GodotCon organizers would love to work with you and get you to successfully host an event.</p>
|
||
<h1 id="the-support">The support</h1>
|
||
<p>If you’d like to help keep GodotCon running, please consider <a href="https://fund.godotengine.org/">supporting the Godot Foundation</a>. Our goal for these events is always to try and keep the cost low so that more of the community can participate. Financial support from the Godot Foundation and sponsorships helps us to do so.</p></description><category>Events</category><guid>https://godotengine.org/article/godotcon-us-2025-wrapup/</guid><dc:creator>Chad Stewart</dc:creator><pubDate>Wed, 01 Oct 2025 14:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/godotcon-us-2025/looking-back-godotcon-2025.webp</image></item><item><title>Dev snapshot: Godot 4.6 dev 1</title><link>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-1/</link><summary>The calm before the storm…</summary><description><p>The first development snapshot for 4.6 has arrived! As is often the case for our first development snapshot, a significant portion of quality PRs from our backlog are finally able to see the light of day, as they were either locked out from the 4.5 feature freeze or deemed too risky to merge for the stable release. In saying that though, this is <em>by far</em> the biggest our backlog has ever been, so getting it all in for an initial snapshot was unrealistic. As such, while this may mean a slower trickle of PRs initially, you can expect future development snapshots to further expand on the foundation that this release sets.</p>
|
||
<p>The overwhelming majority of changes this time around are bugfixes, with most already slated to be backported to 4.5.1-stable in the very near future! In a sense, this release is serving not only as a foundation for 4.6, but for 4.5.1 as well; meaning, testing this build is crucial to ensure a smooth release for both. However, we’ve already got quite a few enhancements and features integrated that will remain exclusive to 4.6, so those wishing to stick with 4.5 may want to hold out for 4.5.1-rc1 coming later this week.</p>
|
||
<p>As usual, safety precautions should be taken with any pre-release environment. While we prepare these snapshots with the intent to be suitable for general testing, there will always be a non-zero risk of data loss/corruption. Creating backups before hand and/or utilizing version control are strongly recommended!</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</a>, 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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev1/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2256450/RAM_Random_Access_Mayhem/?curator_clanid=41324400"><strong>RAM: Random Access Mayhem</strong></a>, <em>a rougelike where you play as the enemies. You can buy the game or try out the demo on <a href="https://store.steampowered.com/app/2256450/RAM_Random_Access_Mayhem/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://twitter.com/Xylem_Studios">Twitter</a> or <a href="https://www.youtube.com/@xylemstudios">YouTube</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="drag-and-drop-export-variables">Drag-and-drop <code class="language-plaintext highlighter-rouge">@export</code> variables</h3>
|
||
<p>Part of starting out slow with enhancements in the development cycle means that you can expect quite a lot of QOL additions in the near future. One such addition that we’re excited to showcase comes from <a href="https://github.com/fkeyzuwu">fkeyz</a>: the ability to drag-and-drop objects to the script editor to automatically create an exported variable! (<a href="https://github.com/godotengine/godot/pull/106341">GH-106341</a>)</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Drag-and-drop demonstration">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-1/drag-and-drop-export.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="openxr-add-support-for-spatial-entities-extensions">OpenXR: Add support for Spatial Entities Extensions</h3>
|
||
<p>As <a href="https://github.com/BastiaanOlij">Bastiaan Olij</a> notes in his PR <a href="https://github.com/godotengine/godot/pull/107391">GH-107391</a>, the <a href="https://www.khronos.org/blog/openxr-spatial-entities-extensions-released-for-developer-feedback">OpenXR Spatial Entities Extensions</a> was introduced to standardize obtaining and interacting with information about the user’s real world environment. This is an absolute goliath of a specification, and is reflected in the implementation seeing over <strong>75 hundred lines of code</strong> changed. If you’re interested in seeing the changes firsthand (and have the necessary equipment for it), be sure to check out Bastiaan’s accompanying <a href="https://github.com/BastiaanOlij/spatial-entities-demo">demo project</a>.</p>
|
||
<h3 id="hide-control-focus-when-given-via-mouse-input">Hide <code class="language-plaintext highlighter-rouge">Control</code> focus when given via mouse input</h3>
|
||
<p>Courtesy of <a href="https://github.com/YeldhamDev">Michael Alexsander</a>, the focus state logic for mouse and touch is now decoupled from keyboard and joypad (<a href="https://github.com/godotengine/godot/pull/110250">GH-110250</a>). While it’s common for programs to have significant overlap between registering inputs of these types, it’s not uncommon for systems to deliberately stylize the two types separately, often handling their inputs in entirely separate ways. This change enables that granular control for toolmakers and UI designers. Included in the PR is a comprehensive ruleset for when focus is shown, which we’ve included below:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Situation</th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Clicking a <code class="language-plaintext highlighter-rouge">Control</code> with the mouse, giving it focus.</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Successfully switching focus via keyboard/joypad actions.</td>
|
||
<td>✔️</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Attempting to switch focus via keyboard/joypad actions but still remaining on the same <code class="language-plaintext highlighter-rouge">Control</code>.</td>
|
||
<td>✔️</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Clicking somewhere with the mouse while having a <code class="language-plaintext highlighter-rouge">Control</code> with visible focus.</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Clicking with the mouse a visibly focused <code class="language-plaintext highlighter-rouge">Control</code> (deviates from how it works in browsers).</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Using <code class="language-plaintext highlighter-rouge">Control.grab_focus(true)</code>.</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>The previous behavior can be achieved by enabling <code class="language-plaintext highlighter-rouge">gui/common/always_show_focus_state</code>.</p>
|
||
</div>
|
||
<h3 id="remove-prompt-to-restart-editor-after-changing-custom-theme">Remove prompt to restart editor after changing custom theme</h3>
|
||
<p>A common pain-point we’ve heard from creators attempting to integrate custom themes for the Godot editor itself is how pace-breaking the process can feel. This was a direct result of swapping between themes requiring a hard reset of the entire editor instance, making incremental tests tedious and realtime comparison virtually impossible. This makes sense, of course, as an editor’s theme is surely baked into the editor itself such that any change of the sort would need to jump through countless hurdles to make this feature possible. After all, you can’t just flip a switch and have everything “just work”.</p>
|
||
<p>Anyway, <a href="https://github.com/ryevdokimov">Robert Yevdokimov</a> flipped a switch and everything “just worked”. (<a href="https://github.com/godotengine/godot/pull/100876">GH-100876</a>)</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Swapping themes without a reset">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-1/theme-swap-no-reset.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>Oops.</p>
|
||
<p>To clarify: once-upon-a-time this reset was almost certainly necessary. Our internal logic for theming and customization is unrecognizable compared to their humble beginnings, and this is far from the first setting that was elevated to real-time support. It’s common for settings that become real-time to have a PR that explicitly targets the feature in question, but it’s rare for such features to have their changes exist in a vacuum. Perhaps there are other features out there, just like this, that have pre-conceived restrictions long-addressed without anyone realizing it. Until someone shows up to challenge those restrictions, we may never know.</p>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>The theme showcased for comparison is the <a href="https://github.com/passivestar/godot-minimal-theme">Godot Minimal Theme</a> by <a href="https://github.com/passivestar">passivestar</a>.</p>
|
||
</div>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>2D: Avoid unnecessary updates in <code class="language-plaintext highlighter-rouge">TileMapLayer</code> (<a href="https://github.com/godotengine/godot/pull/109243">GH-109243</a>).</li>
|
||
<li>3D: Do not require editor restart when changing manipulator gizmo opacity setting (<a href="https://github.com/godotengine/godot/pull/108549">GH-108549</a>).</li>
|
||
<li>C#: Add C# translation parser support (<a href="https://github.com/godotengine/godot/pull/99195">GH-99195</a>).</li>
|
||
<li>Core: Add ‘Find Sequence’ to <code class="language-plaintext highlighter-rouge">Span</code>s, and consolidate negative indexing behavior (<a href="https://github.com/godotengine/godot/pull/104332">GH-104332</a>).</li>
|
||
<li>Editor: Allow to use sliders for integers in <code class="language-plaintext highlighter-rouge">EditorSpinSlider</code> (<a href="https://github.com/godotengine/godot/pull/110459">GH-110459</a>).</li>
|
||
<li>Editor: FindInFiles: Show the number of matches for each file (<a href="https://github.com/godotengine/godot/pull/110770">GH-110770</a>).</li>
|
||
<li>Editor: Fix vertical alignment of Inspector category titles (<a href="https://github.com/godotengine/godot/pull/110303">GH-110303</a>).</li>
|
||
<li>Editor: Show “No Translations Configured” message for empty translation preview menu (<a href="https://github.com/godotengine/godot/pull/107649">GH-107649</a>).</li>
|
||
<li>Editor: Speed up large selections in the editor (<a href="https://github.com/godotengine/godot/pull/109515">GH-109515</a>).</li>
|
||
<li>Editor: Use a fixed-width font for the expression evaluator (<a href="https://github.com/godotengine/godot/pull/109166">GH-109166</a>).</li>
|
||
<li>Export: Add “Show Encryption Key” toggle (<a href="https://github.com/godotengine/godot/pull/106146">GH-106146</a>).</li>
|
||
<li>GDScript: Elide unnecessary copies in <code class="language-plaintext highlighter-rouge">CONSTRUCT_TYPED_*</code> opcodes (<a href="https://github.com/godotengine/godot/pull/110717">GH-110717</a>).</li>
|
||
<li>Import: Switch LOD generation to use iterative simplification (<a href="https://github.com/godotengine/godot/pull/110027">GH-110027</a>).</li>
|
||
<li>Porting: Wayland: Implement the xdg-toplevel-icon-v1 protocol (<a href="https://github.com/godotengine/godot/pull/107096">GH-107096</a>).</li>
|
||
<li>Rendering: Add methods to draw ellipses (<a href="https://github.com/godotengine/godot/pull/85080">GH-85080</a>).</li>
|
||
<li>Rendering: Add ubershader support to material and SDF variants in Forward+ (<a href="https://github.com/godotengine/godot/pull/109401">GH-109401</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>98 contributors</strong> submitted <strong>220 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev1"><strong>interactive changelog</strong></a> for the complete list of changes since the 4.5-stable.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/8d8041bd4dab30e51ecf5be21dc7bf1f6a26c039"><code class="language-plaintext highlighter-rouge">8d8041bd4</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev1">
|
||
Download Godot 4.6 dev1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-1.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.thankyou-wrapper {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.85);
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
z-index: 10;
|
||
}
|
||
.thankyou {
|
||
background: var(--base-color);
|
||
box-shadow: var(--more-shadow);
|
||
padding: 30px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
text-align: center;
|
||
position: relative;
|
||
border-radius: 13px;
|
||
}
|
||
.thankyou-reading {
|
||
font-size: 16px;
|
||
}
|
||
.thankyou-reading-list {
|
||
font-size: 16px;
|
||
margin: 0;
|
||
margin-left: 48px;
|
||
padding-left: 0;
|
||
}
|
||
.thankyou-donate {
|
||
margin-bottom: 24px;
|
||
text-align: center;
|
||
}
|
||
.btn.btn-donate {
|
||
background-color: var(--primary-color);
|
||
color: hsla(0, 0%, 100%, 0.9);
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
margin-bottom: 26px;
|
||
}
|
||
.thankyou h2 {
|
||
text-shadow: var(--base-shadow);
|
||
font-size: 36px;
|
||
font-weight: 800;
|
||
margin-bottom: 12px;
|
||
}
|
||
.thankyou h2 .anchored-link {
|
||
/* Hiding the anchored text automatically added on blogposts */
|
||
display: none !important;
|
||
}
|
||
.thankyou p {
|
||
max-width: 620px;
|
||
font-size: 25px;
|
||
}
|
||
@media (max-width: 768px) {
|
||
.thankyou-wrapper {
|
||
display: block;
|
||
}
|
||
.thankyou {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
overflow: scroll;
|
||
padding: 30px 40px 18px 40px;
|
||
}
|
||
.thankyou-reading-list {
|
||
margin-left: 24px;
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
width: 48px;
|
||
height: 48px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
}
|
||
.btn-close-thankyou-popup {
|
||
cursor: pointer;
|
||
position: absolute;
|
||
top: 12px;
|
||
right: 12px;
|
||
}
|
||
.btn-close-thankyou-popup img {
|
||
background: transparent !important; /* for overwriting the style in the blogposts img */
|
||
}
|
||
@media (prefers-color-scheme: light) {
|
||
.btn-close-thankyou-popup img {
|
||
filter: invert(1);
|
||
opacity: 0.75;
|
||
}
|
||
}
|
||
</style>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
const thankYouWrapper = document.getElementById('thank-you');
|
||
// Close itself, when clicked outside of the popup area.
|
||
thankYouWrapper.addEventListener('click', (e) => {
|
||
if (e.target === thankYouWrapper) {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
// Close with a close button.
|
||
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
|
||
thankYouBackButton.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = 'none';
|
||
});
|
||
// Open from the main download buttons.
|
||
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
|
||
downloadButtons.forEach((it) => {
|
||
if (it.dataset?.external === "yes") {
|
||
return;
|
||
}
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
document.querySelector('.btn.btn-donate').focus();
|
||
});
|
||
});
|
||
// Open from the all downloads list.
|
||
const downloadLinks = document.querySelectorAll('.download-link');
|
||
downloadLinks.forEach((it) => {
|
||
it.addEventListener('click', () => {
|
||
thankYouWrapper.style.display = '';
|
||
});
|
||
});
|
||
// Close the dialog when the user presses the escape key.
|
||
document.addEventListener('keydown', (e) => {
|
||
if (e.key === 'Escape') {
|
||
thankYouWrapper.style.display = 'none';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</strong>. 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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>There are currently no known issues introduced by this release.</p>
|
||
<p>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 <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<p>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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>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 and full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-1/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Tue, 30 Sep 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-6-dev-1.webp</image></item><item><title>Ensuring quality in the Godot documentation, a continuous process</title><link>https://godotengine.org/article/ensuring-quality-godot-documentation/</link><summary>The Godot documentation is the fruits of the labor of hundreds of people working together. How do we ensure the highest possible level of quality, while making it easy for anyone to contribute? Find out in this article.</summary><description><p>What makes up the quality and usability of an open-source project is not just about its code. A big part of what makes a project useful to the community is its documentation.</p>
|
||
<p>Over the years, Godot contributors have developed many tools and processes to ensure the highest possible level of quality for the <a href="https://docs.godotengine.org/">documentation</a>. Read on if you’re curious about how the documentation is made.</p>
|
||
<h2 id="documentation-repository-organization">Documentation repository organization</h2>
|
||
<p>Godot’s documentation is hosted on <a href="https://about.readthedocs.com/">Read the Docs</a>. This service provides hosting for projects using <a href="https://www.sphinx-doc.org/">Sphinx</a>, which is a static site generator targeted at building documentation.</p>
|
||
<p>The documentation’s source files are hosted <a href="https://github.com/godotengine/godot-docs">on GitHub</a>. Several customizations have been made to improve readability, such as <a href="https://github.com/godotengine/godot-docs/blob/master/_static/css/custom.css">adding a dark theme</a> (used according to browser/OS preferences) and <a href="https://github.com/godotengine/godot-docs/blob/master/_extensions/gdscript.py">GDScript syntax highlighting</a>.</p>
|
||
<p>There is a continuous integration system in place, which performs several automated tasks:</p>
|
||
<ul>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/ci.yml">General continuous integration</a>
|
||
<ul>
|
||
<li>Runs pre-commit hooks and builds the website to ensure no errors occur. The pre-commit hooks are configured to check for typos using <a href="https://github.com/codespell-project/codespell">codespell</a>.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/sync_class_ref.yml">Synchronize the class reference</a>
|
||
<ul>
|
||
<li>Automatically synchronizes the generated class reference with the <a href="https://github.com/godotengine/godot/tree/master/doc/classes">class reference XML</a> from the main Godot repository.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/build_offline_docs.yml">Build offline documentation in HTML and ePub formats</a>
|
||
<ul>
|
||
<li>Creates downloads of the documentation in offline-friendly formats.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/check_urls.yml">Check URLs for dead links</a>
|
||
<ul>
|
||
<li>URLs can stop working over time for several reasons. This check makes it possible to be informed of link rot and replace links with archived versions when needed.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/cherrypick.yml">Automatically cherry-pick relevant pull requests to stable branches</a>
|
||
<ul>
|
||
<li>The documentation is split into several branches (one for <code class="language-plaintext highlighter-rouge">master</code>, one for the latest <code class="language-plaintext highlighter-rouge">stable</code> version, one for <code class="language-plaintext highlighter-rouge">4.3</code> and so on). Pull requests that make changes relevant for stable versions are assigned a label such as <code class="language-plaintext highlighter-rouge">cherrypick:4.3</code>. When the pull request is merged, the commit is automatically cherry-picked to the corresponding stable branch.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<h2 id="internationalizing-the-documentation">Internationalizing the documentation</h2>
|
||
<p>As the Godot community is worldwide, we want the ability to provide not only the Godot editor in users’ native languages, but also the documentation.</p>
|
||
<p>To internationalize content that gets continuously updated, we use dedicated tooling to keep the translations in sync with the source material. Sphinx can extract content from each page to put in translation catalogs in the <a href="https://en.wikipedia.org/wiki/Gettext">Gettext</a> format (POT/PO files, <a href="https://docs.godotengine.org/en/stable/tutorials/i18n/localization_using_gettext.html">also supported by Godot!</a>). We merge these 500 POT files into a monolithic “Godot Documentation” component (500,000 words).</p>
|
||
<p>The class reference is handled separately as its source material is not Sphinx’s reStructuredText files, but XML files in the engine repository. For this, we use <a href="https://github.com/godotengine/godot-editor-l10n/blob/main/scripts/extract_classes.py">a script</a> to extract the descriptions from the XML files and generate a Gettext POT file (600,000 words).</p>
|
||
<p>So we’re currently at 1,100,000 words of documentation to translate! To put this into perspective, the Godot editor’s translation has a bit more than 40,000 words.</p>
|
||
<p>Godot uses <a href="https://hosted.weblate.org">Hosted Weblate</a> as a collaborative translation platform. This greatly simplifies the barrier to entry for editing Gettext files without merge conflicts, and provides a number of additional features such as suggestions, translation memory, or the ability to cross-compare translations.</p>
|
||
<ul>
|
||
<li><a href="https://hosted.weblate.org/projects/godot-engine/godot-docs/"><strong>Godot Documentation</strong></a> and <a href="https://hosted.weblate.org/projects/godot-engine/godot-class-reference/"><strong>Class Reference</strong></a> components on Hosted Weblate</li>
|
||
<li>Localized documentation websites: <a href="https://docs.godotengine.org/cs/4.x/">cs</a>, <a href="https://docs.godotengine.org/de/4.x/">de</a>, <a href="https://docs.godotengine.org/es/4.x/">es</a>, <a href="https://docs.godotengine.org/fr/4.x/">fr</a>, <a href="https://docs.godotengine.org/it/4.x/">it</a>, <a href="https://docs.godotengine.org/ja/4.x/">ja</a>, <a href="https://docs.godotengine.org/ko/4.x/">ko</a>, <a href="https://docs.godotengine.org/pl/4.x/">pl</a>, <a href="https://docs.godotengine.org/pt-br/4.x/">pt-br</a>, <a href="https://docs.godotengine.org/ru/4.x/">ru</a>, <a href="https://docs.godotengine.org/uk/4.x/">uk</a>, <a href="https://docs.godotengine.org/zh-cn/4.x/">zh-cn</a>, <a href="https://docs.godotengine.org/zh-tw/4.x/">zh-tw</a></li>
|
||
<li><a href="https://contributing.godotengine.org/en/latest/documentation/translation/index.html">Documentation on contributing translations</a></li>
|
||
<li><a href="https://chat.godotengine.org/channel/translation"><code class="language-plaintext highlighter-rouge">#translation</code> channel on the Godot Contributors Chat</a></li>
|
||
</ul>
|
||
<p><img alt="Hosted Weblate Godot documentation website screenshot" src="/storage/blog/ensuring-quality-godot-documentation/hosted-weblate.webp" /></p>
|
||
<h2 id="splitting-the-contributor-documentation-to-its-own-website">Splitting the contributor documentation to its own website</h2>
|
||
<p>Since September 2025, documentation for new and returning engine contributors has been split to its own website, <a href="https://contributing.godotengine.org">contributing.godotengine.org</a>. This website is powered by Sphinx, just like the main documentation. This split was motivated by several factors:</p>
|
||
<ul>
|
||
<li>The documentation is split by minor version, but the contributing documentation generally does not need a version split. Feature development always happens on the <code class="language-plaintext highlighter-rouge">master</code> branch, with cherry-picking towards the previous stable branch. In practice, it’s easier to maintain only one version of the documentation.</li>
|
||
<li>Contributing to the engine requires English reading comprehension. The existing documentation had some translations available, but they were not always complete or up-to-date. Focusing on English for contribution guides reduces the burden on translators, which can then better focus on other sections of the manual.</li>
|
||
</ul>
|
||
<p>Note that some of the pages that were previously in the Contributing section of the documentation were moved to a new section called <a href="https://docs.godotengine.org/en/latest/engine_details/architecture/index.html">Engine details</a>. These pages are not just useful for engine contributors, but also for people looking to compile their own builds and write custom modules in C++.</p>
|
||
<p>As an aside, splitting this website allows it to build much faster, which is useful when testing changes locally. The main documentation website now also builds slightly faster, but is still slow due to containing the class reference. The GitHub repository for the new website can be found at <a href="https://github.com/godotengine/godot-contributing-docs">godotengine/godot-contributing-docs</a>.</p>
|
||
<h2 id="class-reference-progress-tracker">Class reference progress tracker</h2>
|
||
<p>The Godot documentation is more than just a manual. It also contains an hosted mirror of the <em>class reference</em>, which documents every class that’s exposed to the scripting API in the engine. This class reference can be read directly offline in the editor, but the hosted version can be linked to on a website.</p>
|
||
<p>Since the class reference represents a massive amount of items to document, we built a website to track the documentation progress for each class:</p>
|
||
<ul>
|
||
<li><a href="https://godotengine.github.io/doc-status/"><strong>Godot class reference status</strong></a></li>
|
||
</ul>
|
||
<p>This website relies on the <a href="https://github.com/godotengine/godot/blob/master/doc/tools/doc_status.py"><code class="language-plaintext highlighter-rouge">doc_status.py</code></a> script from the main Godot repository, which detects the completion percentage and outputs a Markdown table with the results.</p>
|
||
<p>Being aware of the overall and per-class completion percentages at all times made it a lot easier to improve the documentation coverage. As of writing, the overall completion percentage is <strong>97%</strong>. With additional efforts from <a href="https://contributing.godotengine.org/en/latest/documentation/class_reference.html">contributors like you</a>, we can perhaps reach 100% completion in the future.</p>
|
||
<p><img alt="Godot class reference status website screenshot" src="/storage/blog/ensuring-quality-godot-documentation/doc-status.webp" /></p>
|
||
<h2 id="team-reports-for-class-reference-pull-requests">Team reports for class reference pull requests</h2>
|
||
<p>Another way for contributors to organize pull requests and work through the backlog is to use the <em>team reports</em> website. This website was built for contributors to check all open pull requests in a more convenient fashion than using GitHub’s web interface. Using this website, it’s easier to see when pull requets were last active and whether they are in a mergeable state (which may not be the case due to merge conflicts).</p>
|
||
<p>This website only tracks the main Godot repository on GitHub, not the documentation repository. With that said, in the context of the documentation, this is still relevant since all contributions to the class reference are sent to the main Godot repository. (The documentation repository only hosts a generated copy of the class reference from the XML source files.)</p>
|
||
<ul>
|
||
<li><a href="https://godotengine.github.io/godot-team-reports/#documentation"><strong>Godot Team Reports</strong></a></li>
|
||
</ul>
|
||
<p><img alt="Godot team reports website screenshot" src="/storage/blog/ensuring-quality-godot-documentation/team-reports.webp" /></p>
|
||
<h2 id="user-notes-system">User notes system</h2>
|
||
<p>In 2024, the Godot documentation got an integration for user notes using <a href="https://giscus.app/">Giscus</a>. This allows users to share additional information relevant for documentation readers. This integration is currently present on the <code class="language-plaintext highlighter-rouge">4.4</code>, <code class="language-plaintext highlighter-rouge">4.5</code>, <code class="language-plaintext highlighter-rouge">stable</code>, and <code class="language-plaintext highlighter-rouge">latest</code> branches of the documentation.</p>
|
||
<p>As an example, you can see it in action at the bottom of the <a href="https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html#godot-giscus">GDScript reference</a> manual page.</p>
|
||
<p><img alt="Godot documentation user notes screenshot" src="/storage/blog/ensuring-quality-godot-documentation/user-notes.webp" /></p>
|
||
<h3 id="why-have-user-notes-on-the-documentation">Why have user notes on the documentation?</h3>
|
||
<p>The Godot documentation is an essential learning resource for new and returning users alike. However, the content can sometimes benefit from additional clarification not found on the page itself. Since it’s an officially-maintained resource, it also tries to limit the number of third-party resources it links to.</p>
|
||
<p>To resolve this problem, we’ve decided to introduce a <em>user note system</em> in the Godot documentation. Inspired by user-provided comment systems such as <a href="https://www.php.net/docs.php">PHP’s</a>, this allows the community to make the documentation more useful for everyone: not just for users, but also for engine developers.</p>
|
||
<p><strong>It should be noted that <em>user notes</em> are different from the usual comments you’d find on a blog post.</strong> As described by the <a href="https://github.com/godotengine/godot-docs-user-notes/discussions/1">user-contributed notes policy</a>, they are intended to be used to provide additional context for the documentation or link to community resources. They are not designed to report bugs or suggest features. When the documentation is incorrect or outdated, please open an issue on the <a href="https://github.com/godotengine/godot-docs">godot-docs</a> repository instead of leaving a user note.</p>
|
||
<h3 id="how-user-notes-are-implemented">How user notes are implemented</h3>
|
||
<p>The user notes integration is powered by <a href="https://giscus.app/">Giscus</a>, an open-source script that allows integrating a GitHub Discussions thread on a web page. To do so, it automatically creates a discussion in a <a href="https://github.com/godotengine/godot-docs-user-notes">repository</a> when the first comment on a page is posted. On the Godot documentation, pages are matched based on their file name, but several page matching modes are provided by Giscus depending on the website’s needs.</p>
|
||
<p>Being hosted on GitHub Discussions allows anyone with a GitHub account to comment. On the organizational side, this also reduces system administration overhead as no separate backend or database for hosting comments is required. Spam protection (a traditionally difficult topic with comment platforms) is handled on GitHub’s end, which has historically been quite effective at avoiding spam.</p>
|
||
<p>As a bonus, you can also watch the <a href="https://github.com/godotengine/godot-docs-user-notes">godot-docs-user-notes</a> repository on GitHub to be informed of new user notes being added to documentation pages. Replying to user notes left by others is a good way to get started with documentation improvements, as many user notes bring new information that can be incorporated into the main page.</p>
|
||
<h2 id="conclusion">Conclusion</h2>
|
||
<p>This organization allows more people to contribute in various ways, even with limited technical know-how. Not only does the documentation benefit from those opening <a href="https://github.com/godotengine/godot-docs/pulls">pull requests</a>, it’s also continuously improved every day by those posting user notes at the bottom of documentation pages. These user notes bring further clarifications and context to the manual pages, as well as linking to useful resources.</p>
|
||
<p>A massive <strong>thank you</strong> to <a href="https://github.com/godotengine/godot-docs/graphs/contributors">all contributors to the documentation</a>! As always, we welcome contributions to the documentation. <a href="https://contributing.godotengine.org/en/latest/documentation/overview.html">The contribution process is well-documented</a>, but you’re welcome to hop on the <a href="https://chat.godotengine.org/channel/documentation"><code class="language-plaintext highlighter-rouge">#documentation</code> channel on the Godot Contributors Chat</a> if you have any questions.</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>If you would like to help with the development of these features, please consider <a href="https://fund.godotengine.org/">supporting the project financially</a>! More funding allows us to sponsor volunteer contributors and better respond to technical demands of project users.</p></description><category>News</category><guid>https://godotengine.org/article/ensuring-quality-godot-documentation/</guid><dc:creator>Hugo Locurcio</dc:creator><pubDate>Thu, 18 Sep 2025 14:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/ensuring-quality-godot-documentation.webp</image></item><item><title>Godot 4.5, making dreams accessible</title><link>https://godotengine.org/article/godot-4-5-making-dreams-accessible/</link><summary>From mind-blowing effects now made possible by the stencil buffer to accessibilty descriptions of your GUI elements that opens up the possibility for some with disabilities to play your game — we are proud to present to you Godot 4.5.</summary><description/><category>Release</category><guid>https://godotengine.org/article/godot-4-5-making-dreams-accessible/</guid><dc:creator>Godot contributors</dc:creator><pubDate>Mon, 15 Sep 2025 20:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/godot-4-5-making-dreams-accessible.webp?cache=v2</image></item></channel></rss> |