Files
2026-01-01 12:38:03 +00:00

21 lines
41 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html lang=en><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=author content="Godot Engine"><meta name=description content="A chill rises… Feature freeze is imminent"><script defer data-domain=godotengine.org src=https://plausible.godot.foundation/js/script.file-downloads.outbound-links.js></script><meta property="og:site_name" content="Godot Engine"><meta property="og:url" content="https://godotengine.org/article/dev-snapshot-godot-4-6-dev-5/"><meta property="og:type" content="website"><meta property="og:description" content="A chill rises… Feature freeze is imminent"><meta property="og:image" content="https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-6-dev-5.jpg"><meta name=twitter:card content="summary_large_image"><meta property="twitter:domain" content="godotengine.org"><meta property="twitter:url" content="https://godotengine.org/article/dev-snapshot-godot-4-6-dev-5/"><meta property="og:title" content="Dev snapshot: Godot 4.6 dev 5 Godot Engine"><title>Dev snapshot: Godot 4.6 dev 5 Godot Engine</title>
<link rel=alternate type=application/rss+xml title="Godot News" href=/rss.xml><link rel=alternate type=application/json title="Godot News" href=/rss.json><link rel=alternate type=application/atom+xml title="Godot News" href=/atom.xml><link rel=icon href=/assets/favicon.png sizes=any><link rel=icon href=/assets/favicon.svg type=image/svg+xml><link rel=stylesheet href=/assets/css/main.css?121><link rel=stylesheet href=/assets/css/header.css?6><link rel=stylesheet href=/assets/css/tobii.min.css><link rel=preload as=font href=/assets/fonts/Montserrat-Italic-VariableFont_wght.woff2 crossorigin><link rel=preload as=font href=/assets/fonts/Montserrat-VariableFont_wght.woff2 crossorigin><link rel=me href=https://mastodon.gamedev.place/@godotengine><input type=checkbox id=nav_toggle_cb><header class="flex column"><div class="container flex align-center"><div id=nav_head><a href=/ id=logo-link><img class=nav-logo src=/assets/logo.svg width=136 height=48 alt="Godot Engine">
<img class="nav-logo dark-logo" src=/assets/logo_dark.svg width=136 height=48 alt="Godot Engine"></a><div class=mobile-links><span class="fund mobile"><a href=https://fund.godotengine.org><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width:13px;fill:#fff;margin-right:4px"><path d="M47.6 300.4 228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6.0 115.2.0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg> Donate</a></span>
<label for=nav_toggle_cb id=nav_toggle_btn><img src=/assets/icons/hamburger.svg width=24 height=24 alt="Main menu"></label></div></div><nav id=nav><ul class=left><li><a href=/features/ data-dropdown=features-dropdown>Features</a><li class=mobile-only><a href=/consoles/>Console support</a><li class=mobile-only><a href=/priorities/>Priorities</a><li><a href=/showcase/>Showcase</a><li><a href=/blog/>Blog</a><li><a href=/community/ data-dropdown=community-dropdown>Community</a><li><a href=https://godotengine.org/asset-library/asset>Assets</a></ul><ul class=right><li><a href=/download/windows/ class=set-os-download-url>Download</a><li><a href=https://docs.godotengine.org>Docs</a><li><a href=https://contributing.godotengine.org/en/latest/organization/how_to_contribute.html>Contribute</a><li class="fund desktop"><a href=https://fund.godotengine.org><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width:13px;fill:#fff;margin-right:4px;top:1px;position:relative"><path d="M47.6 300.4 228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6.0 115.2.0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg> Donate</a></ul></nav></div></header><div class=nav-dropdown-menu id=features-dropdown><a href=/features/ class=touch-only>Features</a>
<a href=/consoles/>Console support</a>
<a href=/priorities/>Priorities</a></div><div class=nav-dropdown-menu id=community-dropdown><a href=/community/ class=touch-only>Community</a>
<a href=https://forum.godotengine.org>Forum</a>
<a href=/events/>Events</a></div><script>document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll("[data-dropdown]");e.forEach(e=>{const n=e.getAttribute("data-dropdown"),t=document.getElementById(n);if(t){let n=-1;const i=()=>{if(n===-1)return;clearTimeout(n),n=-1},a=()=>t.style.display==="block",r=()=>{if(a())return;if(window.innerWidth<1200)return;i();const n=e.getBoundingClientRect();t.style.top=n.bottom+"px",t.style.left=n.left+"px",t.style.display="block",e.classList.add("dropdown-open")},s=({instant:s=!1}={})=>{if(!a())return;const o=()=>{i(),t.style.display="none",e.classList.remove("dropdown-open")};if(s){o();return}n=setTimeout(o,100)},l=e=>{if(window.innerWidth<1200)return;e.preventDefault(),a()?s({instant:!0}):r()},c=e=>t=>{t.pointerType==="touch"&&e(t)},o=e=>t=>{t.pointerType!=="touch"&&e(t)};e.addEventListener("pointerup",c(e=>l(e))),document.documentElement.addEventListener("pointerup",c(n=>{!e.contains(n.target)&&!t.contains(n.target)&&s({instant:!0})})),e.addEventListener("pointerenter",o(e=>r())),e.addEventListener("pointerleave",o(e=>s())),t.addEventListener("pointerenter",o(e=>i())),t.addEventListener("pointerleave",o(e=>s()))}})})</script><main><style>body{background-color:var(--background-color)}h1{margin-bottom:8px;margin-top:32px}:not(pre)>code{background:var(--code-background-color);padding:1px 4px;font-size:.95em;border-radius:3px}pre{background:var(--codeblock-background-color);color:var(--codeblock-color)}pre code{display:block;overflow-x:auto;padding:.5em}.date-big{line-height:2;margin-left:32px}article{background-color:var(--base-color);box-shadow:0 3px 2px rgba(0,0,0,.15)}figure{margin:0}figure img{margin:0}article img,article video{max-width:100%;height:auto;display:block;margin:auto;margin-top:16px;margin-bottom:16px}article h1{margin-top:64px}article h2,article h3,article h4{margin-top:42px}.article-info{display:flex;flex-direction:column;gap:8px}.article-metadata{display:flex;gap:24px;align-items:center;font-family:var(--header-font-family);margin-bottom:12px}@media(max-width:900px){.article-metadata{flex-direction:column;align-items:flex-start;gap:16px}}.article-author{color:var(--base-color-text-subtitle-date);font-weight:700;font-size:18px;flex-grow:1;display:flex;gap:12px;align-items:center}.article-author .avatar{border-radius:100%;margin:0;background:0 0}.article-author .by{color:var(--base-color-text-subtitle)}.article-metadata .date{color:var(--base-color-text-subtitle-date)}.article-metadata .date.post-recent-highlight{color:var(--post-recent-highlight-color);opacity:.8}.article-metadata .date.post-recent-highlight::after{font-size:80%;content:"NEW";border:2px solid var(--post-recent-highlight-color);padding:2px 3px;margin-left:8px}.tag.active{filter:saturate(.75)}@media screen and (min-width:900px){article .content{width:70%;margin:auto}}@media(max-width:900px){body{background-color:var(--base-color)}article{background-color:initial;box-shadow:none}article img:first-child,article video:first-child{max-width:100%}}.blog-navigation{display:grid;grid-template-columns:1fr 1fr;padding-top:30px;padding-bottom:60px}.blog-navigation .next{text-align:right}@media(max-width:900px){.blog-navigation{grid-template-columns:1fr;gap:20px;border-top:1px solid var(--code-background-color)}.blog-navigation .next{text-align:left}}.blog-navigation span{opacity:.6;font-weight:700;margin-bottom:5px;display:block}.blog-navigation a{display:inline-block;text-decoration:none;color:inherit;opacity:.6;transition:opacity .2s}.blog-navigation a:hover{opacity:1}</style><link rel=stylesheet href=/assets/css/highlight.obsidian.min.css><div class=container><article class=padded><div class="content article-container"><figure class=article-cover><figcaption><strong>Kingdoms of the Dump</strong>
<span style=margin-left:.75rem;font-size:90%>A game by Roach Games and Dream Sloth Games</span></figcaption><img src=/storage/blog/covers/dev-snapshot-godot-4-6-dev-5.jpg title="Kingdoms of the Dump" alt="Kingdoms of the Dump A game by Roach Games and Dream Sloth Games" class=rounded-lg style=width:100%;height:auto;background-color:initial></figure><div class=article-info><h1>Dev snapshot: Godot 4.6 dev 5</h1><div class=article-metadata><div class=article-author><span>By: </span><img class=avatar width=25 height=25 src=/assets/images/authors/repiteo.jpg alt="Thaddeus Crews" loading=lazy>
<span class=by>Thaddeus Crews</span></div><span class=date data-post-date="2025-12-01 12:00:00 +0000">1 December 2025</span></div><div class=tags><a href=/blog/pre-release><div class="tag active">Pre-release</div></a></div></div><div class=article-body><p>As the Northern Hemispheres days get shorter and colder, we get closer to our much anticipated feature freeze. Dev 5 is jam-packed with new features and enhancements as contributors try to finish off their big contributions before we hit the feature freeze and Beta 1 shortly after. As a reminder, feature freeze is the period where we stop merging anything except for bug fixes as we shift our focus to polishing the existing code in preparation for release. We plan on entering our feature freeze on December 3 and only releasing one more dev snapshot before entering the Beta phase.<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><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.dev5/><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.<hr><p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2159270/Kingdoms_of_the_Dump/?curator_clanid=41324400"><strong>Kingdoms of the Dump</strong></a>, <em>a SNES-inspired JRPG where Trash Can Knight, a trash can knight, guides their party through a fantasy world of garbage. You can get the game on <a href="https://store.steampowered.com/app/2159270/Kingdoms_of_the_Dump/?curator_clanid=41324400">Steam</a>, and check out the developer websites for <a href=https://kingdomsofthedump.com/>Roach Games</a> and <a href=https://www.dreamslothgames.com/>Dream Sloth Games</a>. Notably: this title was created using Godot 2.1!</em><h2 id=highlights>Highlights</h2><h3 id=use-d3d12-by-default-on-windows>Use D3D12 by default on Windows</h3><p>Ever since its addition in Godot 4.3 by <a href=https://github.com/RandomShaper>RandomShaper</a> and further refinement by <a href=https://github.com/DarioSamo>DarioSamo</a>, Direct3D 12 has been a mainstay renderer for supported devices (Windows). This is because Vulkan is unfortunately unstable on Windows, with GPU drivers being poorly maintained compared to their Direct3D 12 counterparts. As such, for the 4.6 release cycle, <a href=https://github.com/blueskythlikesclouds>Skyth</a> was sponsored by the Godot Foundation to make Direct3D 12 the default RenderingDevice driver on Windows. His efforts paid off, and the change was integrated just before feature freeze (<a href=https://github.com/godotengine/godot/pull/113213>GH-113213</a>).<div class="card card-info" style=margin-top:1em><p>This will only impact <strong>new projects</strong> created in 4.6-dev5 or later. To use this new default in pre-existing Godot 4.5 projects, you should set the <code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver.windows</code> project setting to <code class="language-plaintext highlighter-rouge">d3d12</code> manually.</div><h3 id=add-support-for-delta-encoding-to-patch-pcks>Add support for delta encoding to patch PCKs</h3><p>In Godot 4.4 we introduced the ability to export PCK files as a patch PCK, by letting you provide a set of base PCK files with which to compare against, and then only export the files that had actually changed since then. While this isnt strictly needed when dealing with most of the major distribution platforms, since they will often distribute only the minimal difference between any two releases anyway, it can become important if youre distributing content patches through your own means, where things like disk space, bandwidth costs and metered connections come more into focus.<p>However, while this initial implementation did allow for much smaller PCK files compared to exporting everything, it was still an all-or-nothing deal on a per-file level. This meant that if you changed just a single character in some localization string, you would end up exporting the entire localization file for that language, which can potentially be dozens of megabytes in size. This also applied to certain metadata files that Godot manages behind the scenes, which can grow quite big in large-scale projects, and which would be modified anytime you added or removed resources.<p>To help with this, <a href=https://github.com/mihe>Mikael Hermansson</a> added support for whats called “delta encoding”, also known as “binary patching” or “binary diffing” (<a href=https://github.com/godotengine/godot/pull/112011>GH-112011</a>). This is the same technique used by the major distribution platforms in order to figure out what the minimal difference is between the latest release and the one you have installed, where you simply compare two arbitrary files (binary or otherwise) and try to extract the minimal set of changes from it. This means that you can now optionally export only the parts of a file that actually changed since your last patch, meaning changing a single character in some localization string results in a patch thats on the order of a few dozen bytes, as opposed to megabytes.<p>Note that this feature must be explicitly enabled, under the “Patching” tab in the export dialog, because it comes with a slight runtime overhead when patches are applied, which they are every time a patched file is loaded. This overhead can be as much as a few milliseconds in the worst case.<h3 id=dedicated-build-app-for-gradle-builds-on-android>Dedicated build app for Gradle builds on Android</h3><p>Godot supports two ways to export to Android: injecting your games data into a pre-built APK (the default) or by running the Gradle build system, which is how native Android apps are usually built.<p>Modifying the pre-built APK is faster and requires less setup, but is more limited. If you want to use <a href=https://docs.godotengine.org/en/latest/tutorials/platform/android/android_plugin.html>Godot Android Plugins</a> to integrate, for example, <a href=https://github.com/godot-sdk-integrations/godot-google-play-billing>Google Play Billing</a>, <a href=https://github.com/godot-sdk-integrations/godot-admob>AdMob</a>, or build an <a href=https://github.com/godotvr/godot_openxr_vendors>XR app</a>, you need to use Gradle.<p>While the Godot editor itself runs on Android, allowing you to develop games on your phone or tablet, it has only ever supported exporting via the pre-built APK… until now!<p>Thanks to the efforts of <a href=https://github.com/dsnopek>David Snopek</a> and <a href=https://github.com/devloglogan>Logan Lang</a> in <a href=https://github.com/godotengine/godot/pull/111732>GH-111732</a>, Godot is now able to initiate Gradle builds on Android, by sending commands to a companion app that provides a full Linux-like build environment to run Gradle. Using a companion app allows us to make setup easy by including everything you need within the app, while keeping Godot itself lightweight. We plan to release the app on Google Play and other Android stores before Godot 4.6 stable is released, but for now you can <a href="https://drive.google.com/file/d/1YFTL-SsVAfx7zCS7_fmuA9cRL7kY5JOz/view?usp=sharing">download an APK</a> from the PR.<h3 id=moving-openxr-forward>Moving OpenXR forward</h3><p>Godot now supports OpenXR 1.1 and will automatically enable OpenXR 1.1 features on devices that support this (<a href=https://github.com/godotengine/godot/pull/109302>GH-109302</a>). This comes with a compatibility layer to make this as transparent as possible for developers who want to deploy their games both to headsets that support OpenXR 1.1, and those that only support OpenXR 1.0.<p>The OpenXR loader logic for AOSP platforms has moved from the vendor plugin into the core (<a href=https://github.com/godotengine/godot/pull/106891>GH-106891</a>). Godot can now export to any supported OpenXR platform without relying on any plugins. This enables creating and distributing a single APK that runs on nearly all AOSP devices, a potential game changer for tutorial makers and developers who target vendor-agnostic stores like itch.io. The Godot OpenXR vendor plugin remains an important first-party plugin that enables the use of vendor extensions and implements support for specific vendor permissions and feature settings.<h3 id=massive-optimizations-to-the-2d-renderer>Massive optimizations to the 2D renderer</h3><p>In Godot 4.4 we introduced automatic 2D batching which is an optimization that saves a huge amount of CPU resources by drawing similar objects in a single draw call. 2D batching results in huge wins for content that can easily be batched, like text-heavy games or bullet hells.<p>Batching doesnt come without a cost, when the batching system is unable to create any batches, then it adds a performance cost, but doesnt improve performance. It also makes rendering slightly more expensive for the GPU.<p>In our testing we found that most scenes we tested were CPU-bottlenecked, so the increase in GPU cost did not make a noticeable difference, and where it did, the decrease in performance was very small.<p>However, over time we have had a few concerning reports of 4.4 being significantly slower than 4.3, especially on older and lower-end mobile devices. These devices also tended to be GPU-bottlenecked, which made the performance regression even more concerning.<p>In this release, we did a huge overhaul to the design of our 2D renderer to reduce the GPU performance cost when batching. The end result is significantly better performance on a range of hardware. In our testing this change has resulted in improved performance on all devices (in GPU-bound scenarios) ranging from 1.1x to 7x as fast.<p>To read more and see the benchmarks, check out the <a href=https://github.com/godotengine/godot/pull/112481>pull request</a>.<h3 id=and-more>And more!</h3><p>There are too many exciting changes to list them all here, but heres a curated selection:<ul><li>2D: Add support for rotating scene tiles in TileMapLayer (<a href=https://github.com/godotengine/godot/pull/108010>GH-108010</a>).<li>Animation: Add option to BoneConstraint3D to make reference target allow to set Node3D (<a href=https://github.com/godotengine/godot/pull/110336>GH-110336</a>).<li>Animation: Change AnimationLibrary serialization to avoid using Dictionary (<a href=https://github.com/godotengine/godot/pull/110502>GH-110502</a>).<li>Core: Add <code class="language-plaintext highlighter-rouge">RequiredParam&lt;T></code> and <code class="language-plaintext highlighter-rouge">RequiredResult&lt;T></code> to mark <code class="language-plaintext highlighter-rouge">Object *</code> arguments and return values as required (<a href=https://github.com/godotengine/godot/pull/86079>GH-86079</a>).<li>Core: Fix EnumDevices stall using IAT hooks (issue with certain USB peripherals) (<a href=https://github.com/godotengine/godot/pull/113013>GH-113013</a>).<li>Core: Implement support for reading and writing extended file attributes/alternate data streams (<a href=https://github.com/godotengine/godot/pull/102232>GH-102232</a>).<li>Editor: Add “Use Local Space” option to the 2D editor (<a href=https://github.com/godotengine/godot/pull/107264>GH-107264</a>).<li>Editor: Add ability to add new EditorSettings shortcuts (<a href=https://github.com/godotengine/godot/pull/102889>GH-102889</a>).<li>Editor: Add expression history to evaluator (<a href=https://github.com/godotengine/godot/pull/108391>GH-108391</a>).<li>Editor: Add tab menu button to list currently opened scenes (<a href=https://github.com/godotengine/godot/pull/108079>GH-108079</a>).<li>Editor: Allow customization of TabContainer tabs in editor (<a href=https://github.com/godotengine/godot/pull/58749>GH-58749</a>).<li>Editor: Allow dragging setting flags in layers property editor (<a href=https://github.com/godotengine/godot/pull/112174>GH-112174</a>).<li>Editor: Allow editing groups on multiple nodes (<a href=https://github.com/godotengine/godot/pull/112729>GH-112729</a>).<li>Editor: Allow resizing the length of animations by dragging the timeline (<a href=https://github.com/godotengine/godot/pull/110623>GH-110623</a>).<li>Editor: Make bottom panel into available dock slot (<a href=https://github.com/godotengine/godot/pull/108647>GH-108647</a>).<li>Editor: Make rotation gizmo white outline a 4th handle that rotates around the cameras view-axis (<a href=https://github.com/godotengine/godot/pull/108608>GH-108608</a>).<li>Editor: Move History dock to the bottom left by default (<a href=https://github.com/godotengine/godot/pull/112996>GH-112996</a>).<li>Editor: Rename Select Mode to Transform Mode, and create a new Select Mode without transform gizmo (<a href=https://github.com/godotengine/godot/pull/101168>GH-101168</a>).<li>Editor: Separate Node editor dock into two new docks: Signals and Groups (<a href=https://github.com/godotengine/godot/pull/101787>GH-101787</a>).<li>Editor: Show a warning toast when saving a large text-based scene (<a href=https://github.com/godotengine/godot/pull/53679>GH-53679</a>).<li>GDExtension: Store source of gdextension_interface.h in JSON (<a href=https://github.com/godotengine/godot/pull/107845>GH-107845</a>).<li>GDScript: Add debug/gdscript/warnings/directory_rules project setting (<a href=https://github.com/godotengine/godot/pull/93889>GH-93889</a>).<li>GDScript: Add step out to script debugger (<a href=https://github.com/godotengine/godot/pull/97758>GH-97758</a>).<li>GDScript: LSP: Rework and extend BBCode to Markdown docstring conversion (<a href=https://github.com/godotengine/godot/pull/113099>GH-113099</a>).<li>GUI: Allow SplitContainer to have more than two children (<a href=https://github.com/godotengine/godot/pull/90411>GH-90411</a>).<li>Platforms: Android: Adjust script editor size for virtual keyboard (<a href=https://github.com/godotengine/godot/pull/112766>GH-112766</a>).<li>Platforms: Wayland: Implement game embedding (<a href=https://github.com/godotengine/godot/pull/107435>GH-107435</a>).<li>Rendering: Refactor rendering driver copy APIs to fix several D3D12 issues (<a href=https://github.com/godotengine/godot/pull/111954>GH-111954</a>).<li>Rendering: TAA adjustment to reduce ghosting (<a href=https://github.com/godotengine/godot/pull/112196>GH-112196</a>).<li>XR: Add support for Android XR devices to the Godot XR Editor (<a href=https://github.com/godotengine/godot/pull/112777>GH-112777</a>).<li>XR: Implement <code class="language-plaintext highlighter-rouge">XR_KHR_android_thread_settings</code> (<a href=https://github.com/godotengine/godot/pull/112889>GH-112889</a>).<li>XR: Implement <code class="language-plaintext highlighter-rouge">XR_META_foveation_eye_tracked</code> (<a href=https://github.com/godotengine/godot/pull/112888>GH-112888</a>).<li>XR: OpenXR: Add profiling macro for process, <code class="language-plaintext highlighter-rouge">xrWaitFrame()</code> and acquiring swapchain (<a href=https://github.com/godotengine/godot/pull/112893>GH-112893</a>).</ul><h2 id=changelog>Changelog</h2><p><strong>134 contributors</strong> submitted <strong>323 fixes</strong> for this release. See our <a href=https://godotengine.github.io/godot-interactive-changelog/#4.6-dev5><strong>interactive changelog</strong></a> for the complete list of changes since <a href=/article/dev-snapshot-godot-4-6-dev-4/>4.6-dev4</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>This release is built from commit <a href=https://github.com/godotengine/godot/commit/f5918a9d35350bf6402dd1b4902ab539747d77a6><code class="language-plaintext highlighter-rouge">f5918a9d3</code></a>.<h2 id=downloads>Downloads</h2><div class="card card-download"><a class=card-download-link href=/download/archive/4.6-dev5>Download Godot 4.6 dev5</a><div class=card-download-details><img class=lightbox-ignore src=/storage/blog/covers/dev-snapshot-godot-4-6-dev-5.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=dev5&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=dev5&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=dev5&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=dev5&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=dev5&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=dev5&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-dev5>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,.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%,.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{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}.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:0 0!important}@media(prefers-color-scheme:light){.btn-close-thankyou-popup img{filter:invert(1);opacity:.75}}</style><script>document.addEventListener("DOMContentLoaded",()=>{const e=document.getElementById("thank-you");e.addEventListener("click",t=>{t.target===e&&(e.style.display="none")});const t=document.querySelector(".btn-close-thankyou-popup");t.addEventListener("click",()=>{e.style.display="none"});const n=document.querySelectorAll(".btn-download, .download-button");n.forEach(t=>{if(t.dataset?.external==="yes")return;t.addEventListener("click",()=>{e.style.display="",document.querySelector(".btn.btn-donate").focus()})});const s=document.querySelectorAll(".download-link");s.forEach(t=>{t.addEventListener("click",()=>{e.style.display=""})}),document.addEventListener("keydown",t=>{t.key==="Escape"&&(e.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><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.<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.</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 havent 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>.<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>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).<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>If youd 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><a class=btn href=https://fund.godotengine.org/>Donate now</a></div></div></article><div class=blog-navigation><div class=previous><span>Previous</span>
<a rel=prev href=/article/godot-xr-update-nov-2025/>Godot XR update - November 2025</a></div><div class=next><span>Next</span>
<a rel=next href=/article/dev-snapshot-godot-4-6-dev-6/>Dev snapshot: Godot 4.6 dev 6</a></div></div></div><link rel=stylesheet href=/assets/css/anchor-link.css?1><link rel=stylesheet href=/assets/css/article-cards.css?3><script src=/assets/js/anchor-link.js></script><script>document.addEventListener("DOMContentLoaded",()=>{window.applyAnchorLinks(".article-body"),document.querySelectorAll(".article-cover img, .article-body img").forEach(e=>{if(e.classList.contains("lightbox-ignore"))return;const t=document.createElement("a");t.href=e.src,t.classList.add("lightbox"),t.dataset.group="article",e.parentNode.appendChild(t),t.appendChild(e)})})</script></main><footer class=footer-global><div class=wrapper><div class=columns><div class=col><h2>Godot Engine</h2><ul><li><a class=set-os-download-url href=/download>Download</a><li><a href=https://docs.godotengine.org>Documentation</a><li><a href=/features/>Features</a><li><a href=https://editor.godotengine.org/releases/latest/>Web editor</a><li><a href=/download/archive/>Release archive</a><li><a href=https://github.com/godotengine>Source code</a></ul></div><div class=col><h2>Project</h2><ul><li><a href=/blog/>Blog</a><li><a href=/code-of-conduct/>Code of conduct</a><li><a href=/governance/>Governance</a><li><a href=/teams/>Teams</a><li><a href=/priorities/>Priorities</a><li><a href=/community/>Communities</a></ul></div><div class=col><h2>Resources</h2><ul><li><a href=https://godotengine.org/asset-library/asset>Asset library</a><li><a href=/press/>Press kit</a><li><a href=/showcase/>Showcase</a><li><a href=/education/>Education</a><li><a href=/consoles/>Console support</a></ul></div><div class=col><h2>Foundation</h2><ul><li><a href=https://godot.foundation/>About</a><li><a href=https://fund.godotengine.org>Donate</a><li><a href=/license/>License</a><li><a href=/privacy-policy/>Privacy policy</a><li><a href=/contact/>Contact us</a></ul></div></div><hr><div class=credits-and-socials><p>© 2007-2026 Juan Linietsky, Ariel Manzur and <a href=https://github.com/godotengine/godot/blob/master/AUTHORS.md target=_blank rel=noopener>contributors</a>. Hosted by the <a href=https://godot.foundation/ target=_blank rel=noopener>Godot Foundation</a>. Website <a href=https://github.com/godotengine/godot-website target=_blank rel=noopener>source code on GitHub</a>.<div class=social><a href=https://github.com/godotengine target=_blank rel=noopener title=GitHub><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6.0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6.0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3.0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1.0-6.2-.3-40.4-.3-61.4.0.0-70 15-84.7-29.8.0.0-11.4-29.1-27.8-36.6.0.0-22.9-15.7 1.6-15.4.0.0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5.0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9.0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4.0 33.7-.3 75.4-.3 83.6.0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6.0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9.0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a><a href=https://bsky.app/profile/godotengine.org target=_blank rel=noopener title=Bluesky><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4.4 6.7.9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8.0 41.9.0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3.5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9C220.6 589.1 265.1 437.8 288 361.1c22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4.4 6.7.9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7C566.9 194 576 75 576 58.4s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8C385.1 81.9 314.1 176.4 288 227.1z"/></svg>
</a><a href=https://mastodon.gamedev.place/@godotengine target=_blank rel=noopener title=Mastodon><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5.0.0.0-63.7 28.5-63.7 125.7.0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54a102.5 102.5.0 01-.9-13.9c85.6 20.9 158.7 9.1 178.8 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5H201V197c0-58.5-64-56.6-64-6.9v114.2H90.2c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"/></svg>
</a><a href=https://discord.gg/godotengine target=_blank rel=noopener title=Discord><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M524.5 69.8a1.5 1.5.0 00-.8-.7A485.1 485.1.0 00404.1 32a1.8 1.8.0 00-1.9.9 337.5 337.5.0 00-14.9 30.6 447.8 447.8.0 00-134.4.0 309.5 309.5.0 00-15.1-30.6 1.9 1.9.0 00-1.9-.9A483.7 483.7.0 00116.1 69.1a1.7 1.7.0 00-.8.7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 00.8 1.4A487.7 487.7.0 00176 479.9a1.9 1.9.0 002.1-.7 348.2 348.2.0 0030-48.8 1.9 1.9.0 00-1-2.6 321.2 321.2.0 01-45.9-21.9 1.9 1.9.0 01-.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8.0 011.9-.3c96.2 43.9 200.4 43.9 295.5.0a1.8 1.8.0 011.9.2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9.0 01-.2 3.1 301.4 301.4.0 01-45.9 21.8 1.9 1.9.0 00-1 2.6 391.1 391.1.0 0030 48.8 1.9 1.9.0 002.1.7 486 486 0 00147.2-74.1 1.9 1.9.0 00.8-1.4c12.2-126.7-20.6-236.8-87-334.5zm-302 267.8c-29 0-52.8-26.6-52.8-59.2s23.4-59.3 52.8-59.3c29.7.0 53.3 26.8 52.8 59.2.0 32.7-23.4 59.3-52.8 59.3zm195.4.0c-29 0-52.8-26.6-52.8-59.2s23.3-59.3 52.8-59.3c29.7.0 53.3 26.8 52.8 59.2.0 32.7-23.2 59.3-52.8 59.3z"/></svg>
</a><a href=https://www.reddit.com/r/godot title=Reddit target=_blank rel=noopener><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 256C0 114.6 114.6.0 256 0S512 114.6 512 256 397.4 512 256 512H37.1c-13.7.0-20.5-16.5-10.9-26.2L75 437C28.7 390.7.0 326.7.0 256zM349.6 153.6c23.6.0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6.0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4v.2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8.0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7.0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-1e2-29.1v-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7.0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5S160.3 247 177 247zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9.8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1.3 5.1 3.6 3.9 6.5z"/></svg>
</a><a href=/rss.xml title=RSS target=_blank rel=noopener><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M64 32C28.7 32 0 60.7.0 96V416c0 35.3 28.7 64 64 64h320c35.3.0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-2e2-2e2-2e2-13.3.0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9.0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3.0-24-10.7-24-24zm0 120a32 32 0 1164 0 32 32 0 11-64 0z"/></svg></a></div></div></div></footer><script defer src=/assets/js/localize.js?7></script><script defer src=/assets/js/tobii.min.js></script><script defer src=/assets/js/highlight.min.js?1></script><script defer src=/assets/js/highlight.gdscript.min.js?1></script><script>document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("pre:not(.manual) code").forEach(e=>{hljs.highlightBlock(e)}),document.querySelectorAll("[data-post-date]").forEach(e=>{Date.parse(e.dataset.postDate)>Date.now()-1e3*60*60*48&&e.classList.add("post-recent-highlight")}),new Tobii({zoom:!1});const e=document.querySelectorAll(".set-os-download-url");for(let n=0;n<e.length;n++){const s=e[n];let o="download";"version"in s.dataset&&s.dataset.version==="3"&&(o="download/3.x");let t="windows";navigator.platform.indexOf("Mac")!==-1?t="macos":navigator.userAgent.indexOf("Android")!==-1?t="android":navigator.platform.indexOf("Linux")!==-1&&(t="linux"),s.href=`/${o}/${t}/`}})</script>