{"@attributes":{"version":"2.0"},"channel":{"title":"Godot Engine Official","link":{},"description":{},"item":[{"title":"Dev snapshot: Godot 4.7 beta 5","link":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-5\/","summary":"Lockeder and loadeder","description":"<p>While we\u2019re still confident in our overall stability at this time, a few changes made in the time since <a href=\"\/article\/dev-snapshot-godot-4-7-beta-4\/\">4.7 beta 4<\/a> warrant further evaluation. As such, we\u2019re doing one <em>final<\/em> final development snapshot, Godot 4.7 beta 5, before we turn to the release candidate stage (for real this time).<\/p>\n<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>\n<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.7.beta5\/\"><strong>Web editor<\/strong><\/a>, the <a href=\"https:\/\/www.meta.com\/s\/h9JcJGHfg\"><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>\n<hr \/>\n<p><em>The cover illustration is from<\/em> <a href=\"https:\/\/3denemy.itch.io\/girlballs\"><strong>GIRLBALLS<\/strong><\/a>, <em>a girlball game where it\u2019s good to be a ball. You can play the game for free on <a href=\"https:\/\/3denemy.itch.io\/girlballs\">itch.io<\/a>, and follow the developers\u2014<a href=\"https:\/\/bsky.app\/profile\/eneme.itch.io\">3denemy<\/a>, <a href=\"https:\/\/bsky.app\/profile\/kitworldz.bsky.social\">kit<\/a>, <a href=\"https:\/\/bsky.app\/profile\/crayondev.ie\">Crayon<\/a>, and <a href=\"https:\/\/bsky.app\/profile\/wriks.motorcycles\">wriks<\/a>\u2014on Bluesky!<\/em><\/p>\n<h2 id=\"highlights\">Highlights<\/h2>\n<p>For an overview of what\u2019s new overall in Godot 4.7, have a look at the highlights for <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">4.7 beta 1<\/a>, which cover a lot of the changes. This blog post only covers the changes between beta 4 and beta 5. This section covers the most relevant changes made since the beta 4 snapshot, which are largely regression fixes:<\/p>\n<ul>\n<li>2D: Fix <code class=\"language-plaintext highlighter-rouge\">Polygon2D<\/code> being culled against a stale AABB after editing vertices (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119872\">GH-119872<\/a>).<\/li>\n<li>2D: Fix drawable texture access before null check (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119930\">GH-119930<\/a>).<\/li>\n<li>Animation: Fix <code class=\"language-plaintext highlighter-rouge\">AnimationNode<\/code>\u2019s branching by custom timeline usage (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119980\">GH-119980<\/a>).<\/li>\n<li>Animation: Fix empty animation menu in blend space editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119964\">GH-119964<\/a>).<\/li>\n<li>Animation: Make <code class=\"language-plaintext highlighter-rouge\">AnimationNodeAnimation<\/code>\u2019s custom timeline processing logic compatible with <code class=\"language-plaintext highlighter-rouge\">AnimationMixer<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119871\">GH-119871<\/a>).<\/li>\n<li>Audio: Pulseaudio: Do not crash when getting latency when disconnected (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119975\">GH-119975<\/a>).<\/li>\n<li>Audio: Pulseaudio: Do not report the same message twice in a row (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119977\">GH-119977<\/a>).<\/li>\n<li>Editor: Enable <code class=\"language-plaintext highlighter-rouge\">touch_dragger<\/code> in <code class=\"language-plaintext highlighter-rouge\">ExportTemplateManager<\/code> on touchscreen devices (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119890\">GH-119890<\/a>).<\/li>\n<li>Editor: Fix \u201cChange Type\u201d ignoring non-top-level nodes and editing foreign nodes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119909\">GH-119909<\/a>).<\/li>\n<li>Editor: Fix \u201cOpen Documentation\u201d ignoring non-top-level nodes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119908\">GH-119908<\/a>).<\/li>\n<li>Editor: Prevent crash when detaching freed debugger (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119992\">GH-119992<\/a>).<\/li>\n<li>GDScript: Move stack cleanup after resumed coroutine completion (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119755\">GH-119755<\/a>).<\/li>\n<li>GUI: Fix EditorSpinSlider not showing tooltips (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119950\">GH-119950<\/a>).<\/li>\n<li>GUI: Properly update shader text syntax highlighting (for disabled regions) (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119968\">GH-119968<\/a>).<\/li>\n<li>I18n: Improve some strings in ScenePaint2DEditor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119880\">GH-119880<\/a>).<\/li>\n<li>Physics: Jolt: Change ConeTwistJoint3D to use cone shaped limits (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119982\">GH-119982<\/a>).<\/li>\n<li>Plugin: Fix <code class=\"language-plaintext highlighter-rouge\">EditorPlugin::remove_control_from_docks<\/code> freeing passed control (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117337\">GH-117337<\/a>).<\/li>\n<li>Rendering: Don\u2019t use CreateCommandList1 on D3D12 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119971\">GH-119971<\/a>).<\/li>\n<li>Rendering: Put area light cluster iterations behind a spec constant (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119970\">GH-119970<\/a>).<\/li>\n<\/ul>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p><strong>20 contributors<\/strong> submitted <strong>32 fixes<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7-beta5\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since <a href=\"\/article\/dev-snapshot-godot-4-7-beta-4\/\">4.7 beta 4<\/a>. You can also review <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7\">all changes included in 4.7<\/a> compared to the previous <a href=\"\/releases\/4.6\/\">4.6 feature release<\/a>.<\/p>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/bbd3f43b57db5008539e87bd86ef9e3cc7a44a23\"><code class=\"language-plaintext highlighter-rouge\">bbd3f43b5<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.7-beta5\">\nDownload Godot 4.7 beta5\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-5.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta5&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta5&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-linux\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta5&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta5&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-macos\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta5&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta5&amp;slug=mono_win64.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-windows\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.7-beta5\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. 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.7. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.<\/p>\n<p>With every release, we accept that there are going to be various issues which have already been reported but haven\u2019t 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>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-5\/","pubDate":"Wed, 03 Jun 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-5.jpg"},{"title":"Creating games entirely on Android!","link":"https:\/\/godotengine.org\/article\/gabe-stable-release\/","summary":"GABE brings full Gradle support to the Godot Android & XR editor, so you can build and publish games entirely from your Android device or XR device.","description":"<p><a href=\"https:\/\/godotengine.org\/article\/android_godot_editor_play_store_beta_release\/\">Since 2023<\/a>, Godot users could <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.godotengine.editor.v4\">develop their games on Android<\/a>, but they still needed a PC to perform the final export. We began changing that in Godot 4.4 by adding support for <a href=\"https:\/\/godotengine.org\/releases\/4.4\/#android-editor-export-support\">non-Gradle exports<\/a>. However, many features remained out of reach; if your project used Android plugins like <a href=\"https:\/\/godot-sdk-integrations.github.io\/godot-google-play-billing\/\">Google Play Billing<\/a> or required some Gradle export customizations, you were back to using a PC.<\/p>\n<p><a href=\"https:\/\/godotengine.org\/releases\/4.6\/#section-platforms\">In Godot 4.6<\/a>, we introduced a companion app for the Android editor with a simple goal: bring full Gradle support to mobile. While that early version made the editor \u201cfeature complete\u201d on paper, it was still in alpha and wasn\u2019t quite ready.<\/p>\n<p>Today, we\u2019re happy to announce that GABE, the Godot Android Build Environment, is now stable and available on the <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.godotengine.godot_gradle_build_environment\">Google Play Store<\/a> and <a href=\"https:\/\/www.meta.com\/experiences\/gabe\/26529365196759917\/\">Meta Horizon Store<\/a>.<\/p>\n<h2 id=\"what-is-gabe\">What is GABE?<\/h2>\n<p>GABE stands for <strong>G<\/strong>odot <strong>A<\/strong>ndroid <strong>B<\/strong>uild <strong>E<\/strong>nvironment. And no, it has nothing to do with the other Gabe you are thinking about! :P<\/p>\n<p>This is a companion app for the Godot Editor on Android and XR devices which works in the background whenever you trigger a Gradle export. GABE handles downloading and managing all the build dependencies. After you grant it access to your project for the first time, it <em>just works<\/em> for subsequent exports in the background.<\/p>\n<h2 id=\"what-gabe-brings-to-your-workflow\">What GABE brings to your workflow<\/h2>\n<ul>\n<li>You can now generate <strong>AAB<\/strong> files (Android App Bundles) directly on your Android device or XR device. You no longer need to move your project to a desktop just to get it ready for the Play Store or Horizon Store.\n<ul>\n<li>This also means that you can now create, develop, export, and publish a Godot game to any store using only an Android device or XR device.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>If your project uses plugins like Google Play Billing or AdMob, you previously had to use a PC to export. Now, you can directly build your apps with plugin support.<\/p>\n<\/li>\n<li>Since XR apps require Gradle for vendor-specific plugins and features, GABE enables you to build and deploy XR projects directly from within your headsets. (In case you missed it: Godot is officially available on <a href=\"https:\/\/www.meta.com\/experiences\/godot-game-engine\/7713660705416473\/\">Meta Quest<\/a> and <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.godotengine.editor.v4\">Android XR<\/a> with an experimental build for PicoOS also available).<\/li>\n<\/ul>\n<p>To sum it all up, with this release we are removing one of the major limitations of the Godot editor on Android and XR devices, the <a href=\"https:\/\/godotengine.org\/article\/android_godot_editor_play_store_beta_release\/#generating-android-apk-binaries\">inability to generate Android binaries directly on device<\/a>. You now get the same export customizations and features set on your phone, tablet, or XR device that you\u2019d expect on a desktop.<\/p>\n<h2 id=\"download\">Download<\/h2>\n<p>You can download GABE from:<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.godotengine.godot_gradle_build_environment\">Play Store<\/a><\/li>\n<li><a href=\"https:\/\/www.meta.com\/experiences\/gabe\/26529365196759917\/\">Horizon Store<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/godotengine\/android-editor-buildenv-app\/releases\/latest\">GitHub Release page<\/a><\/li>\n<\/ul>\n<p>It\u2019s been a long road to bring full build support to the Godot editor on Android and XR devices, and we are excited to see what you build <em>entirely<\/em> on device!<\/p>","category":"Release","guid":"https:\/\/godotengine.org\/article\/gabe-stable-release\/","pubDate":"Tue, 02 Jun 2026 14:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/gabe-stable-release.jpg"},{"title":"Dev snapshot: Godot 4.7 beta 4","link":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-4\/","summary":"Locked and loaded","description":"<p>Our fourth, and likely final, development snapshot for Godot 4.7 has arrived: 4.7 beta 4! Being an iteration on the relatively-stable <a href=\"\/article\/dev-snapshot-godot-4-7-beta-3\/\">4.7 beta 3<\/a>, it\u2019s only a matter of time before the release candidate process begins, so join us for one last (probably) round-up in preparation.<\/p>\n<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>\n<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.7.beta4\/\"><strong>Web editor<\/strong><\/a>, the <a href=\"https:\/\/www.meta.com\/s\/h9JcJGHfg\"><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>\n<hr \/>\n<p><em>The cover illustration is from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/3784760\/Elfie_A_Sand_Plan\/?curator_clanid=41324400\"><strong>Elfie: A Sand Plan<\/strong><\/a>, <em>a puzzle game where you help a rotund elephant build sand castles. You can buy the game on <a href=\"https:\/\/store.steampowered.com\/app\/3784760\/Elfie_A_Sand_Plan\/?curator_clanid=41324400\">Steam<\/a>, and check out the developer on <a href=\"https:\/\/bsky.app\/profile\/pressedelephant.com\">Bluesky<\/a>, <a href=\"https:\/\/pressedelephant.itch.io\/\">itch.io<\/a>, or <a href=\"https:\/\/mastodon.gamedev.place\/@SolsAtelier\">Mastodon<\/a>!<\/em><\/p>\n<h2 id=\"highlights\">Highlights<\/h2>\n<p>For an overview of what\u2019s new overall in Godot 4.7, have a look at the highlights for <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">4.7 beta 1<\/a>, which cover a lot of the changes. This blog post only covers the changes between beta 3 and beta 4. This section covers the most relevant changes made since the beta 3 snapshot, which are largely regression fixes:<\/p>\n<ul>\n<li>3D: Fix autosmooth behavior change caused by performance fix (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119682\">GH-119682<\/a>).<\/li>\n<li>Assetlib: Improve the look of the asset rating indicator (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119635\">GH-119635<\/a>).<\/li>\n<li>Assetlib: Improve the visual of the Asset Store\u2019s page selector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119719\">GH-119719<\/a>).<\/li>\n<li>Core: Fix <code class=\"language-plaintext highlighter-rouge\">ResourceLoader::load_threaded_get()<\/code> deadlocks (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119757\">GH-119757<\/a>).<\/li>\n<li>Editor: Change disabled \u201cPaste\u201d options to hidden (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119717\">GH-119717<\/a>).<\/li>\n<li>Editor: Fix editor scene tabs not updating properly on theme change (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119721\">GH-119721<\/a>).<\/li>\n<li>Editor: Make theme previews scale with the editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119679\">GH-119679<\/a>).<\/li>\n<li>Editor: Speed up <code class=\"language-plaintext highlighter-rouge\">_find_file<\/code> for case-insensitive file systems (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116063\">GH-116063<\/a>).<\/li>\n<li>GUI: Add property to auto adjust oversampling with canvas item scale (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119692\">GH-119692<\/a>).<\/li>\n<li>GUI: Fix issue in <code class=\"language-plaintext highlighter-rouge\">BoxContainer<\/code> that clipped children with non-integer minimum sizes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118488\">GH-118488<\/a>).<\/li>\n<li>Import: Ensure that BPTC LayeredTexture images get compressed with same signedness (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119598\">GH-119598<\/a>).<\/li>\n<li>Import: VideoStreamPlaybackTheora: Uninitialize and print error if file has no video stream (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119775\">GH-119775<\/a>).<\/li>\n<li>Rendering: Disable ubershaders on problematic Adreno compiler versions (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119639\">GH-119639<\/a>).<\/li>\n<li>Rendering: Fix <code class=\"language-plaintext highlighter-rouge\">MaterialStorage::material_set_shader<\/code> race condition (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116203\">GH-116203<\/a>).<\/li>\n<li>Shaders: Forbid using hint_screen_texture in unsupported shader types (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119665\">GH-119665<\/a>).<\/li>\n<\/ul>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p><strong>38 contributors<\/strong> submitted <strong>54 fixes<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7-beta4\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since <a href=\"\/article\/dev-snapshot-godot-4-7-beta-3\/\">4.7 beta 3<\/a>. You can also review <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7\">all changes included in 4.7<\/a> compared to the previous <a href=\"\/releases\/4.6\/\">4.6 feature release<\/a>.<\/p>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/dff2b9bb66a01d8c1a207531b0752405c7399124\"><code class=\"language-plaintext highlighter-rouge\">dff2b9bb6<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.7-beta4\">\nDownload Godot 4.7 beta4\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-4.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta4&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta4&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-linux\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta4&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta4&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-macos\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta4&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta4&amp;slug=mono_win64.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-windows\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.7-beta4\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. 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.7. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.<\/p>\n<p>With every release, we accept that there are going to be various issues which have already been reported but haven\u2019t 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>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-4\/","pubDate":"Fri, 29 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-4.jpg"},{"title":"Godot XR Community Game Jam V","link":"https:\/\/godotengine.org\/article\/godot-xr-update-game-jam-v\/","summary":"Results of the 5th Godot XR Community Game Jam!","description":"<p>The <a href=\"https:\/\/itch.io\/jam\/godot-xr-game-jam-mar-2026\">fifth Godot XR Community Game Jam<\/a> ran from 16 March 2026 until 23 March 2026.\nWe had 98 participants join, who submitted 23 games. Up from 90 participants and 21 games last jam. There is a definite improvement in the quality of the entries.<\/p>\n<p>The theme of this game jam was \u201cRewind\u201d.<\/p>\n<p>Counting down the top 5:<\/p>\n<h2 id=\"no-5-screwthetime-by-evitrea\">No 5. <a href=\"https:\/\/itch.io\/jam\/godot-xr-game-jam-mar-2026\/rate\/4407534\">ScrewTheTime by EviTRea<\/a><\/h2>\n<p>This VR platformer has you take control of a character but also control of the flow of time. Rewind time to move platforms so your character can progress through the level.\nA solid base for a game that has loads of potential.<\/p>\n<iframe width=\"560\" height=\"315\" style=\"width: 100%; height: 100%; aspect-ratio: 16\/9;\" src=\"https:\/\/www.youtube.com\/embed\/sJ-Ypb3cptE\" title=\"ScrewTheTime\" frameborder=\"0\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n<h2 id=\"no-4-last-minute-by-cularo-games-rodzilla-siropfraisecitron-tilca-and-apolomusic\">No 4. <a href=\"https:\/\/itch.io\/jam\/godot-xr-game-jam-mar-2026\/rate\/4406743\">Last Minute by Cularo Games, RodZilla, SiropFraiseCitron, Tilca, and Apolo.music<\/a><\/h2>\n<p>A great take on the escape room genre where you need to play around with time in order to solve various puzzles.<\/p>\n<iframe width=\"560\" height=\"315\" style=\"width: 100%; height: 100%; aspect-ratio: 16\/9;\" src=\"https:\/\/www.youtube.com\/embed\/kMU8h2p1vWs\" title=\"Last Minute\" frameborder=\"0\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n<h2 id=\"no-3-neurocorp-training-demo-by-surrebraldesigns\">No 3. <a href=\"https:\/\/itch.io\/jam\/godot-xr-game-jam-mar-2026\/rate\/4409496\">NeuroCorp Training Demo by SurrebralDesigns<\/a><\/h2>\n<p>This incredibly detailed entry has you examine scenes from the past. Only one level was completed but it showcased the idea very well. You get teleported into an immersive recording of a past event where you can scrub through time in order to complete various tasks.<\/p>\n<iframe width=\"560\" height=\"315\" style=\"width: 100%; height: 100%; aspect-ratio: 16\/9;\" src=\"https:\/\/www.youtube.com\/embed\/iYO10Y77Dn0\" title=\"NeuroCorp Training Demo\" frameborder=\"0\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n<h2 id=\"no-2-chrono-crank-by-copper-tunic-leoscavesoul-allen-dawodu-and-celyk\">No 2. <a href=\"https:\/\/itch.io\/jam\/godot-xr-game-jam-mar-2026\/rate\/4402255\">Chrono Crank by Copper Tunic, LeoscaveSoul, Allen Dawodu, and Celyk<\/a><\/h2>\n<p>Arguably the most visually stunning entry of the jam, this steampunk-styled game has you take control of time through a huge handheld device with a crank. As you spin the crank, you move time backwards and forwards. In this way you can control various events in the game. The trick is to line up events to prevent catastrophe.<\/p>\n<iframe width=\"560\" height=\"315\" style=\"width: 100%; height: 100%; aspect-ratio: 16\/9;\" src=\"https:\/\/www.youtube.com\/embed\/J9urRfjBDZg\" title=\"Chrono Crank\" frameborder=\"0\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n<h2 id=\"no-1-rewind-tower-by-thatscooljack-atomicant-effiayre-and-pory\">No 1. <a href=\"https:\/\/itch.io\/jam\/godot-xr-game-jam-mar-2026\/rate\/4405300\">Rewind Tower by Thatscooljack, AtomicAnt, Effiayre, and Pory<\/a><\/h2>\n<p>The winner of this jam is a tower defence game with a twist. It has the usual elements you expect from tower defence games, where you need to purchase units and place them along a track that the enemy units will follow.\nThe first thing that stands out is the amazing tactility of the game. You use a coin-operated machine to purchase units, wind them up, then physically place them on the board.\nIn later levels where your units run out, you can pick them up again and rewind them so they continue in the battle.<\/p>\n<p>This is an absolute joy to play and we hope they build it out into a full-fledged game.<\/p>\n<iframe width=\"560\" height=\"315\" style=\"width: 100%; height: 100%; aspect-ratio: 16\/9;\" src=\"https:\/\/www.youtube.com\/embed\/aZpwhW8nMT4\" title=\"Rewind Tower\" frameborder=\"0\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n<h2 id=\"xr-projects-to-watch\">XR projects to watch<\/h2>\n<p>There were two entries in the XR Game Jam that twisted the rules but do deserve a spotlight.<\/p>\n<h3 id=\"skuarewave-by-skooter500\"><a href=\"https:\/\/skooter500.itch.io\/skuarewave\">SkuareWave by Skooter500<\/a><\/h3>\n<p>This is a project by Dr Bryan Duggan from TU Dublin that he has been working on for several months. For the jam he added a rewind mechanic to it. The project itself is something worth trying out. It\u2019s basically a huge virtual synthesiser where you can play music by moving your hands through a grid of cubes, each assigned an instrument and note.<\/p>\n<h3 id=\"open-saber-by-leandro-dreamer\"><a href=\"https:\/\/leandrodreamer.itch.io\/open-saber\">Open Saber by Leandro Dreamer<\/a><\/h3>\n<p>Necrashter created an entry called Record Saber based on the Open Saber project, adding a rewind recording mechanic to this game for the jam.<\/p>\n<p>Those who have been following Godot\u2019s XR development for a long time may remember Holger Dammertz (NeoSpark314) who was one of the core contributors helping bring Godot to the Quest 1. He built a Beat Saber inspired game called Beep Saber as a demonstration project to show how to build a game like this on Godot.<\/p>\n<p>In the past few months, Leandro Dreamer has taken upon itself to port this project to Godot 4 and greatly extend it. And so Open Saber VR was born.\nAs with Beep Saber, it is fully open source and serves as a great example of what Godot can do on standalone VR hardware.<\/p>\n<h2 id=\"godot-xr-community-game-jam-vi\">Godot XR Community Game Jam VI<\/h2>\n<p>We\u2019ve already started planning the next game jam which we\u2019ve tentatively scheduled to start on the 21st of September 2026.<\/p>","category":"Progress Report","guid":"https:\/\/godotengine.org\/article\/godot-xr-update-game-jam-v\/","pubDate":"Thu, 28 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/xr-gamejam-v-results-godot-xr-community.jpg"},{"title":"JetBrains Rider brings support for Godot Asset Store addons","link":"https:\/\/godotengine.org\/article\/partners_jetbrains_rider_asset_store_addons_support\/","summary":"Developers building add-ons for the new Godot Asset Store can now benefit from new and improved support from JetBrains Rider.","description":"<p>With the <a href=\"https:\/\/godotengine.org\/article\/introducing-the-godot-asset-store\/\">launch<\/a> of the new <a href=\"https:\/\/store.godotengine.org\/\">Godot Asset Store<\/a>, <a href=\"https:\/\/www.jetbrains.com\/rider\/\">JetBrains Rider<\/a> is among the first to embrace it as a tool provider for addon developers.<\/p>\n<p>Starting with Rider 2026.2, JetBrains offers dedicated project templates for creating Godot addons from scratch. These templates cover the full range of addon types, from simple script-based assets and <a href=\"https:\/\/docs.godotengine.org\/en\/stable\/tutorials\/plugins\/editor\/index.html\">editor plugins<\/a> to complex addons with native C++ <a href=\"https:\/\/docs.godotengine.org\/en\/stable\/tutorials\/scripting\/gdextension\/index.html\">GDExtensions<\/a>.<\/p>\n<p>Here\u2019s what Rider brings to the table for Godot addon developers:<\/p>\n<ul>\n<li>Project templates: Godot games, assets, and editor plugins, with a preconfigured project structure, build settings, and run configurations.<\/li>\n<li>GDExtension support: create and build native C++ extensions for Godot directly in the IDE, with full CMake integration.<\/li>\n<li>Run and debug: run the Godot editor and debug both GDScript and native C++ code from a single IDE, with preconfigured run configurations generated automatically.<\/li>\n<li>Publish-ready structure: the project templates follow the official Godot Asset Store submission recommendations, so your addon is ready for publishing from day one.<\/li>\n<\/ul>\n<p>For a detailed, step-by-step walkthrough, check out the product documentation: <a href=\"https:\/\/www.jetbrains.com\/help\/rider\/2026.2\/Godot_asset_store_addon.html\">Develop Godot Asset Store addons in Rider<\/a>.<\/p>\n<h2 id=\"about-jetbrains-rider-and-godot\">About JetBrains Rider and Godot<\/h2>\n<p>JetBrains has been <a href=\"https:\/\/godotengine.org\/article\/jetbrains-joins-dev-fund-supports-godot\/\">investing in Godot support for several years<\/a>. Rider provides deep <a href=\"https:\/\/www.jetbrains.com\/help\/rider\/Godot.html\">integration with the Godot engine<\/a>, including code insight and debugging for both C# and GDScript, scene and resource navigation, and a rich set of inspections tailored for Godot projects.<\/p>\n<p>You can find the official JetBrains-developed addon <a href=\"https:\/\/store.godotengine.org\/asset\/jetbrains\/jetbrains-rider-integration\/\">JetBrains Rider Integration<\/a>, on the Godot Asset Store. It helps you develop addons and games in Rider by connecting it as an external editor to the Godot editor.<\/p>\n<p>We\u2019re happy to see ecosystem partners like JetBrains contribute to making Godot addon development more accessible and professional. Having a polished, end-to-end workflow for creating, debugging, and publishing addons benefits the entire Godot community.<\/p>","category":"News","guid":"https:\/\/godotengine.org\/article\/partners_jetbrains_rider_asset_store_addons_support\/","pubDate":"Tue, 26 May 2026 15:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/partners_jetbrains_rider_asset_store_addons_support.png"},{"title":"Introducing the Godot Asset Store","link":"https:\/\/godotengine.org\/article\/introducing-the-godot-asset-store\/","summary":"We've been working on replacing the Asset Library with something built for the present and future. Here's what's coming.","description":"<p>The <a href=\"https:\/\/godotengine.org\/asset-library\/asset\">Asset Library<\/a> has served for many years as the official place to publish and acquire assets, fulfilling a valuable community need.\nHowever with the <a href=\"https:\/\/godotengine.org\/article\/godot-growth-stats-2026\/\">rapid growth of the Godot community and ecosystem<\/a>, it was time to come up with a new infrastructure.<\/p>\n<p>After a couple years of work and a few months of beta testing, we are pleased to introduce the new <a href=\"https:\/\/store.godotengine.org\/\">Godot Asset Store<\/a>.<\/p>\n<p><img src=\"\/storage\/blog\/asset-store\/godot-asset-store-screenshot.webp\" alt=\"A screenshot of the Godot Asset Store\" \/><\/p>\n<h2 id=\"the-godot-asset-store\">The <a href=\"https:\/\/store.godotengine.org\/\">Godot Asset Store<\/a><\/h2>\n<p>The new Asset Store is live and stable and will be fully integrated in Godot 4.7. The Asset Store leverages Godot\u2019s shared account system, which means that if you have donated to the <a href=\"https:\/\/fund.godotengine.org\">development fund<\/a>, participated on <a href=\"https:\/\/forum.godotengine.org\/\">the forum<\/a> or on the <a href=\"https:\/\/chat.godotengine.org\/\">developer chat<\/a>, or voted for <a href=\"https:\/\/showreel.godotengine.org\/\">showreel candidates<\/a>, you already have an account. And if you haven\u2019t, creating one is easy.<\/p>\n<p>The Asset Store introduces several new features:<\/p>\n<ul>\n<li>\n<p>User reviews and ratings\n<img src=\"\/storage\/blog\/asset-store\/asset-store-reviews.png\" alt=\"A screenshot showing the Reviews page of an asset\" \/><\/p>\n<\/li>\n<li>\n<p>Analytics for publishers\n<img src=\"\/storage\/blog\/asset-store\/asset-store-analytics.png\" alt=\"A screenshot of the analytics page\" \/><\/p>\n<\/li>\n<li>\n<p>Multiple download versions per asset\n<img src=\"\/storage\/blog\/asset-store\/asset-store-multiple-versions.png\" alt=\"A screenshot of the download per version drop-down\" \/><\/p>\n<\/li>\n<li>\n<p>A changelog page for asset\n<img src=\"\/storage\/blog\/asset-store\/asset-store-changelog.png\" alt=\"A screenshot of an asset changelog page\" \/><\/p>\n<\/li>\n<li>\n<p>The ability to tag asset, including creating custom tags\n<img src=\"\/storage\/blog\/asset-store\/godot-asset-store-tags.png\" alt=\"A screenshot of an asset's tags\" \/><\/p>\n<\/li>\n<\/ul>\n<p>In addition, many more features are <a href=\"https:\/\/store.godotengine.org\/roadmap\/\">coming in the near future<\/a> including the ability to <a href=\"https:\/\/github.com\/godotengine\/godot-asset-store-tracker\/issues\/14\">buy and sell assets<\/a>.<\/p>\n<p>We encourage users to visit the store, either through the <a href=\"https:\/\/store.godotengine.org\/\">website<\/a> or through the <a href=\"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-3\/\">preview builds for Godot 4.7<\/a> and start providing feedback.<\/p>\n<p>And we encourage publishers to start migrating their assets to the Asset Store.\nNote that we considered automatically moving the assets from the library to the new store but decided against due to numerous issues:<\/p>\n<ul>\n<li>Need every publishers to create a new account and link them to their previous account<\/li>\n<li>Require permission from each publisher to republish on their behalf<\/li>\n<li>Need to re-upload all assets from the Asset Library to the new hosting solution as the Asset Library doesn\u2019t actually host any of the assets it distributes<\/li>\n<li>Auto-migrating abandoned or no longer supported assets would just create a lot of irrelevant entries in the new store<\/li>\n<\/ul>\n<h2 id=\"what-about-the-asset-library\">What about the Asset Library?<\/h2>\n<p>We initially didn\u2019t have plans to run an asset store operated by the Foundation, as with most projects outside of the Godot Engine itself, we try to foster an ecosystem that provides solutions Godot developers need. There were also existing stores that people use (like <a href=\"https:\/\/itch.io\/search?q=godot\">itch<\/a>), so we assumed the community would centralize around the one that worked best for them.<\/p>\n<p>Unfortunately this approach and resulting gap led to confusion within the community as to which of those existing stores were backed by the Godot Foundation (e.g., the Foundation started receiving regular support emails from users). Some of these stores were also hosting paid versions of free assets (such as <a href=\"https:\/\/www.kenney.nl\/\">Kenney\u2019s<\/a>) with unclear information about ownership or transparency.<\/p>\n<p>Among these concerns, we were also running into growing tech debt with the Asset Library given that its architecture and infrastructure were not designed for the current present needs:<\/p>\n<ul>\n<li>The Asset Library doesn\u2019t use Godot shared account system, so users and publishers have to use yet another account for it, and the Foundation has to spend resources supporting and maintaining that account system.<\/li>\n<li>Existing infrastructure was hard to evolve while maintaining compatibility with older versions of the Godot editor.<\/li>\n<\/ul>\n<p>We will keep the Asset Library running since many older versions of the engine still need it, but it should be considered deprecated, and will be set as a read-only repository in the near future.<\/p>\n<h2 id=\"future\">Future<\/h2>\n<p>Our core goals for the Asset Store in Godot 4.7 and 4.8 are to ensure that the transition away from the Asset Library is fully complete, and to make the Asset Store a space that\u2019s safe, functional, and up to the quality standards you\u2019d expect.<\/p>\n<p>Following that, we have several items on the <a href=\"https:\/\/store.godotengine.org\/roadmap\/\">Asset Store roadmap<\/a>, the most anticipated one being the ability to sell and buy assets.\nWe also want to make it easier for users to donate to free plugins so we can improve support for many popular projects such as <a href=\"https:\/\/store.godotengine.org\/asset\/ramokz\/phantom-camera\/\">Phantom Camera<\/a>, <a href=\"https:\/\/store.godotengine.org\/asset\/nathanhoad\/dialogue-manager\/\">Dialogue Manager<\/a>, and <a href=\"https:\/\/store.godotengine.org\/asset\/godotsteam\/godotsteam-gdextension\/\">GodotSteam<\/a>.<\/p>\n<p>As a mean to promote Godot\u2019s extensibility, the Godot Foundation will use the Asset Store to publish official plugins and extensions we are working on and that we don\u2019t believe should be part of the core out-of-the-box experience.<\/p>\n<p>This is just the beginning, and we really value your feedback and input. We want to hear your thoughts, and we will keep making changes and adjusting to make sure the <a href=\"https:\/\/store.godotengine.org\/\">Godot Asset Store<\/a> delivers on the wants and needs of the community. So feel free create an <a href=\"https:\/\/github.com\/godotengine\/godot-asset-store-tracker\/issues\">issue on our tracker<\/a>, <a href=\"https:\/\/github.com\/godotengine\/godot-asset-store-tracker\/discussions\">open a discussion<\/a>, or get in touch via email at <a href=\"mailto:contact@godot.foundation\">contact@godot.foundation<\/a>.<\/p>\n<p>We\u2019ll keep you all posted regarding the improvements of the store so expect to hear from us soon.<\/p>","category":"News","guid":"https:\/\/godotengine.org\/article\/introducing-the-godot-asset-store\/","pubDate":"Fri, 22 May 2026 15:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/godot-asset-store.jpg"},{"title":"Dev snapshot: Godot 4.7 beta 3","link":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-3\/","summary":"The squashing continues","description":"<p>It\u2019s only been a little over a week since the release of <a href=\"\/article\/dev-snapshot-godot-4-7-beta-2\/\">4.7 beta 2<\/a>, but we\u2019re dedicated to picking up the pace for snapshots in the latter stages of our pre-release cycles. This allows our users to get the most fresh slate possible for testing, and helps us suss out any reported issues that are no longer relevant at this time. The number of release blockers has only gotten smaller, but we\u2019ll need your help to get over the finish line, so be sure to report anything that crops up in our latest snapshot: 4.7 beta 3.<\/p>\n<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>\n<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.7.beta3\/\"><strong>Web editor<\/strong><\/a>, the <a href=\"https:\/\/www.meta.com\/s\/h9JcJGHfg\"><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>\n<hr \/>\n<p><em>The cover illustration is from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/3648730\/Blood_Vial\/?curator_clanid=41324400\"><strong>Blood Vial<\/strong><\/a>, <em>a boomer shooter where you must tend to your constantly leaking healthbar by quite literally diving into the spilled blood of your enemies. You can buy the game on <a href=\"https:\/\/store.steampowered.com\/app\/3648730\/Blood_Vial\/?curator_clanid=41324400\">Steam<\/a>, and check out the developer on <a href=\"https:\/\/www.youtube.com\/@DillonDev\">YouTube<\/a>, <a href=\"https:\/\/dillonsteyl.itch.io\/\">itch.io<\/a>, or <a href=\"https:\/\/discord.com\/invite\/garZv3Emsv\">Discord<\/a>!<\/em><\/p>\n<h2 id=\"highlights\">Highlights<\/h2>\n<p>For an overview of what\u2019s new overall in Godot 4.7, have a look at the highlights for <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">4.7 beta 1<\/a>, which cover a lot of the changes. This blog post only covers the changes between beta 2 and beta 3. This section covers the most relevant changes made since the beta 2 snapshot, which are largely regression fixes:<\/p>\n<ul>\n<li>3D: Fix CSG performance regression from auto smoothing (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119551\">GH-119551<\/a>).<\/li>\n<li>Assetlib: Fix template assets not being exclusive to the project manager (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119608\">GH-119608<\/a>).<\/li>\n<li>Assetlib: Show \u201cVerified\u201d badge for verified asset authors (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119581\">GH-119581<\/a>).<\/li>\n<li>Core: Android: Fix reported crashes from the Play store (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119496\">GH-119496<\/a>).<\/li>\n<li>Core: Skip UTF-8 BOM when loading TRES (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119565\">GH-119565<\/a>).<\/li>\n<li>Editor: Fix float value <code class=\"language-plaintext highlighter-rouge\">NAN<\/code> still shown as 0 in the debugger and inspector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115013\">GH-115013<\/a>).<\/li>\n<li>GDExtension: Phase out <code class=\"language-plaintext highlighter-rouge\">RefCounted<\/code> singletons as UB pitfalls (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119429\">GH-119429<\/a>).<\/li>\n<li>GUI: Fix error spam when resizing a control in a zero size parent with anchors mode enabled (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116688\">GH-116688<\/a>).<\/li>\n<li>GUI: Fix various accessibility issues in <code class=\"language-plaintext highlighter-rouge\">PopupMenu<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119312\">GH-119312<\/a>).<\/li>\n<li>I18n: Import: Fix empty columns importing as invalid English translation (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119563\">GH-119563<\/a>).<\/li>\n<li>Input: Fix: support multi-input for <code class=\"language-plaintext highlighter-rouge\">BaseButton<\/code> with Alt + Click (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118653\">GH-118653<\/a>).<\/li>\n<li>Navigation: Fix <code class=\"language-plaintext highlighter-rouge\">NavigationServer3D.map_get_closest_point_normal<\/code> returning unnormalized value (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119022\">GH-119022<\/a>).<\/li>\n<li>Physics: Move the Jolt <code class=\"language-plaintext highlighter-rouge\">body_test_motion<\/code> contact filtering to collector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118155\">GH-118155<\/a>).<\/li>\n<li>Rendering: Add project setting to disable new Volumetric fog blending behavior (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119414\">GH-119414<\/a>).<\/li>\n<li>Rendering: Fix compute barriers not working on Intel Iris Xe Graphics (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119313\">GH-119313<\/a>).<\/li>\n<li>Shaders: Improve inline shader preview layout (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118865\">GH-118865<\/a>).<\/li>\n<\/ul>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p><strong>47 contributors<\/strong> submitted <strong>85 fixes<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7-beta3\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since <a href=\"\/article\/dev-snapshot-godot-4-7-beta-2\/\">4.7 beta 2<\/a>. You can also review <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7\">all changes included in 4.7<\/a> compared to the previous <a href=\"\/releases\/4.6\/\">4.6 feature release<\/a>.<\/p>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/86082170822e19ebb619c7f53c8fe54a6f8d3d2a\"><code class=\"language-plaintext highlighter-rouge\">860821708<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.7-beta3\">\nDownload Godot 4.7 beta3\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-3.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta3&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta3&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-linux\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta3&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta3&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-macos\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta3&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta3&amp;slug=mono_win64.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-windows\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.7-beta3\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. 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.7. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.<\/p>\n<p>With every release, we accept that there are going to be various issues which have already been reported but haven\u2019t 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>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-3\/","pubDate":"Thu, 21 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-3.jpg"},{"title":"Maintenance release: Godot 4.6.3","link":"https:\/\/godotengine.org\/article\/maintenance-release-godot-4-6-3\/","summary":"The stability has tripled!","description":"<p>Progress on <a href=\"\/article\/dev-snapshot-godot-4-7-beta-2\/\">Godot 4.7<\/a> has continued without a hitch, but the need for more 4.6 maintenance releases remains ever-present. Our <a href=\"https:\/\/docs.godotengine.org\/en\/latest\/about\/release_policy.html#release-support-timeline\">commitment to active support<\/a> brings us to today\u2019s release of Godot 4.6.3.<\/p>\n<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>\n<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>\n<p><a href=\"\/download\/archive\/4.6.3-stable\/\"><strong>Download Godot 4.6.3 now<\/strong><\/a> or try the <a href=\"https:\/\/editor.godotengine.org\/4.6.3.stable\/\">online version of the Godot editor<\/a>.<\/p>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.6.3-stable\">\nDownload Godot 4.6.3 stable\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/maintenance-release-godot-4-6-3.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=stable&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=stable&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=stable&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.6.3-stable\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<hr \/>\n<p><em>The cover illustration is from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/2629230\/The_Adventures_of_Sir_Kicksalot\/?curator_clanid=41324400\"><strong>The Adventures of Sir Kicksalot<\/strong><\/a>, <em>a first-person action game where you can use an arsenal of kicking, weaponry, sorcery, stealth, and more kicking to cleverly defeat your foes. You can buy the game or try the demo on <a href=\"https:\/\/store.steampowered.com\/app\/2629230\/The_Adventures_of_Sir_Kicksalot\/?curator_clanid=41324400\">Steam<\/a>, and follow the developer on <a href=\"https:\/\/eldidou.itch.io\/\">itch.io<\/a>.<\/em><\/p>\n<h2 id=\"changes\">Changes<\/h2>\n<p><strong>41 contributors<\/strong> submitted <strong>86 fixes<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.6.3\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since the <a href=\"\/article\/maintenance-release-godot-4-6-2\/\">4.6.2-stable release<\/a>.<\/p>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/35e80b3a8822a9df9be390814b62f44c0a9c69e8\"><code class=\"language-plaintext highlighter-rouge\">35e80b3a8<\/code><\/a>.<\/p>\n<ul>\n<li>2D: Update layer selector when modifying the <code class=\"language-plaintext highlighter-rouge\">TileMap<\/code> in the inspector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117256\">GH-117256<\/a>).<\/li>\n<li>3D: Fix Marker3D editor gizmo being darker than intended for negative axis lines (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116995\">GH-116995<\/a>).<\/li>\n<li>3D: Fix wrong rotation of cells while being pasted in the <code class=\"language-plaintext highlighter-rouge\">GridMap<\/code> editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116683\">GH-116683<\/a>).<\/li>\n<li>Animation: Fix SplineIK crash cases (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117959\">GH-117959<\/a>).<\/li>\n<li>Buildsystem: Annual Android versions bump for 2026 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113761\">GH-113761<\/a>).<\/li>\n<li>C#: Prevent SourceGenerators from becoming a transitive dependency (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114868\">GH-114868<\/a>).<\/li>\n<li>Core: Android: Fix the use of <code class=\"language-plaintext highlighter-rouge\">--main-pack<\/code> in template builds (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119495\">GH-119495<\/a>).<\/li>\n<li>Core: Debugger: Rather than looping infinitely on data read errors, drop the connection (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113905\">GH-113905<\/a>).<\/li>\n<li>Core: Fix race in <code class=\"language-plaintext highlighter-rouge\">RefCounted::unreference()<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118678\">GH-118678<\/a>).<\/li>\n<li>Core: Improve thread-safety of <code class=\"language-plaintext highlighter-rouge\">Object<\/code> signals (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117511\">GH-117511<\/a>).<\/li>\n<li>Editor: Avoid repeats in resource gather (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118926\">GH-118926<\/a>).<\/li>\n<li>Editor: Don\u2019t print UID errors when cache is not initialized (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118527\">GH-118527<\/a>).<\/li>\n<li>Editor: Fix and improve the editor layout dialog (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117846\">GH-117846<\/a>).<\/li>\n<li>Editor: Fix game speed UI not resetting when game is restarted (from editor) (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116568\">GH-116568<\/a>).<\/li>\n<li>Export: iOS: Fix one-click deploy with Xcode 26 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118559\">GH-118559<\/a>).<\/li>\n<li>GUI: Fix TextEdit IME error on mouse over (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111859\">GH-111859<\/a>).<\/li>\n<li>GUI: RTL: Fix character click offsets after the table (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117011\">GH-117011<\/a>).<\/li>\n<li>Import: Copy scene unique ID when replacing imported instance (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118522\">GH-118522<\/a>).<\/li>\n<li>Input: Android: Fix handling of back navigation when targeting API level 36 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117653\">GH-117653<\/a>).<\/li>\n<li>Input: Fix incorrect reading of joypad UTF8 <code class=\"language-plaintext highlighter-rouge\">raw_name<\/code> in <code class=\"language-plaintext highlighter-rouge\">Input.get_joy_info()<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115218\">GH-115218<\/a>).<\/li>\n<li>Physics: Fix over-removal of area overlaps when using Jolt (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118285\">GH-118285<\/a>).<\/li>\n<li>Rendering: Add project setting to disable new Volumetric fog blending behavior (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119414\">GH-119414<\/a>).<\/li>\n<li>Rendering: Fix GLES3 batching skipping rendering all items on specific buffer sizes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117725\">GH-117725<\/a>).<\/li>\n<li>Rendering: Fix LightmapGI probe update speed setting not applying in Compatibility (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117771\">GH-117771<\/a>).<\/li>\n<li>Rendering: Select relevant 3D lights per mesh on GLES3 and Mobile renderers (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/107234\">GH-107234<\/a>).<\/li>\n<\/ul>\n<h2 id=\"known-incompatibilities\">Known incompatibilities<\/h2>\n<p>As of now, there are no known incompatibilities with the previous Godot 4.6.2 release. <strong>We encourage all users to upgrade to 4.6.3.<\/strong><\/p>\n<p>If you experience any unexpected behavior change in your projects after upgrading to 4.6.3, please <a href=\"https:\/\/github.com\/godotengine\/godot\/issues\">file an issue on GitHub<\/a>.<\/p>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Release","guid":"https:\/\/godotengine.org\/article\/maintenance-release-godot-4-6-3\/","pubDate":"Wed, 20 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/maintenance-release-godot-4-6-3.jpg"},{"title":"Godot OpenXR Vendors plugin v5.1","link":"https:\/\/godotengine.org\/article\/godot-xr-update-may-2026\/","summary":"Introducing the new major version of the Godot OpenXR Vendors plugin with several Android XR features!","description":"<h2 id=\"godot-openxr-vendors-plugin-v51\">Godot OpenXR Vendors plugin v5.1<\/h2>\n<p>The <a href=\"https:\/\/github.com\/GodotVR\/godot_openxr_vendors\">OpenXR Vendors plugin<\/a> is an official GDExtension that builds on top of the OpenXR support in Godot, and provides support for additional functionality, primarily vendor-specific OpenXR extensions.<\/p>\n<p>Today we are releasing <strong>version 5.1<\/strong>, which can be downloaded from the <a href=\"https:\/\/store.godotengine.org\/asset\/godot-xr\/godot-openxr-vendors-plugin\/\">Asset Store<\/a>, <a href=\"https:\/\/godotengine.org\/asset-library\/asset\/5014\">Asset Library<\/a>, or <a href=\"https:\/\/github.com\/GodotVR\/godot_openxr_vendors\/releases\/tag\/5.1.0-stable\">GitHub release page<\/a>.<\/p>\n<p>The <a href=\"https:\/\/godotengine.org\/article\/godot-openxr-vendors-plugin-400\/\">previous major version<\/a> (v4) promised support for Godot 4.4 and newer, which meant that we couldn\u2019t take advantage of features only available in Godot 4.5 or 4.6.<\/p>\n<p>So, an important part of the v5 upgrade was increasing the minimum supported version to Godot 4.6, which unlocked our ability to implement some things we weren\u2019t able to before.<\/p>\n<h3 id=\"breaking-changes\">Breaking changes<\/h3>\n<p>The major version upgrade introduces the following compatibility breakages:<\/p>\n<ul>\n<li>Renamed some very long class names (like <code class=\"language-plaintext highlighter-rouge\">OpenXRAndroidEnvironmentDepthExtensionWrapper<\/code>) to a somewhat more manageable length by dropping the superfluous <code class=\"language-plaintext highlighter-rouge\">*Wrapper<\/code> suffix (to become <code class=\"language-plaintext highlighter-rouge\">OpenXRAndroidEnvironmentDepthExtension<\/code>, for example).<\/li>\n<li>Godot 4.6 now bundles the Khronos OpenXR loader for Android so it was removed from this plugin.<\/li>\n<li>Rec709 is now the default color space when using Meta\u2019s color space extension. This is an improvement we\u2019ve wanted to do for a long time, but waited for a major version update so it would be less disruptive for users.<\/li>\n<\/ul>\n<h3 id=\"android-xr\">Android XR<\/h3>\n<p>Quite a few of the recent improvements to the plugin (not only for v5, but also <a href=\"https:\/\/github.com\/GodotVR\/godot_openxr_vendors\/releases\/tag\/4.2.0-stable\">v4.2<\/a> and <a href=\"https:\/\/github.com\/GodotVR\/godot_openxr_vendors\/releases\/tag\/4.3.0-stable\">v4.3<\/a>) have been to support vendor-specific features of Android XR.<\/p>\n<p>This is due in large part to the collaboration between Google, the Godot Foundation, and W4 Games which was <a href=\"https:\/\/godotengine.org\/article\/announcing-android-xr-support\/\">announced in November 2025<\/a>.<\/p>\n<p>This upgrade includes the following new features:<\/p>\n<ul>\n<li><a href=\"https:\/\/godotvr.github.io\/godot_openxr_vendors\/manual\/androidxr\/trackables.html\">Trackables<\/a>: Provides information about the physical space the user is in. Android XR also supports <a href=\"https:\/\/docs.godotengine.org\/en\/latest\/tutorials\/xr\/openxr_spatial_entities.html\">OpenXR spatial entities<\/a>, which provides similar functionality, but at the moment there\u2019s still features in the Android XR-specific trackables that aren\u2019t supported yet in the multi-vendor spatial entities.<\/li>\n<li><a href=\"https:\/\/registry.khronos.org\/OpenXR\/specs\/1.1\/html\/xrspec.html#XR_ANDROID_recommended_resolution\">Dynamic Resolution<\/a>: Will dynamically scale down the render resolution in response to system load, which can help maintain a consistent frame rate. We implemented a <a href=\"https:\/\/godotengine.org\/article\/godot-openxr-vendors-plugin-400\/#dynamic-resolution\">similar feature<\/a> for Meta headsets back in v4.<\/li>\n<li><a href=\"https:\/\/registry.khronos.org\/OpenXR\/specs\/1.1\/html\/xrspec.html#XR_ANDROID_unbounded_reference_space\">Unbounded Reference Space<\/a>: Enables the user to move freely through a complex environment, even many meters from where they started.<\/li>\n<li><strong>Automatically launching the streaming client<\/strong>: Using Android XR\u2019s Direct Preview functionality, you can run XR applications on your desktop which are streamed to the headset, which can allow for faster iteration time. Now, the plugin can make this easier by automatically launching the streaming client on your headset.<\/li>\n<li><strong>Mouse interaction<\/strong>: Allows accessing mouse input in a similar way to traditional XR controllers.<\/li>\n<\/ul>\n<p>To top up these new features, we have collaborated with Google on documentation, guidance, and samples for <a href=\"https:\/\/developer.android.com\/develop\/xr\/godot\">developing on Android XR with Godot<\/a>.<\/p>\n<h3 id=\"openxr-validation-layers-for-android\">OpenXR validation layers for Android<\/h3>\n<p>The Khronos Group provides validation layers for OpenXR that can perform extra validation to ensure that Godot is using OpenXR correctly. Enabling these on desktop is very easy, and Khronos even provides pre-built binaries for Windows and macOS.<\/p>\n<p>However, enabling them on standalone Android-based headsets is much trickier. You\u2019d need to build the layers yourself, and manually add them to your Godot project at a specific location, along with a special JSON file.<\/p>\n<p>Version 5 of the Godot OpenXR Vendors plugin simplifies this process by building the Android binaries for the OpenXR validation layers, and wrapping them into an Android library binary (AAR). For added convenience, the generated Android library binary (AAR) is uploaded to <a href=\"https:\/\/central.sonatype.com\/artifact\/org.godotengine\/openxr-validation-layers\/overview\">MavenCentral<\/a> alongside each release of the Godot OpenXR Vendors plugin.\nThis enables OpenXR Android projects to easily integrate the validation layers by adding a dependency to the <a href=\"https:\/\/godotvr.github.io\/godot_openxr_vendors\/manual\/openxr_validation_layers.html\">OpenXR validation layers Android library<\/a>.<\/p>\n<p>For Godot projects built with the Godot OpenXR Vendors plugin v5, all you need to do is click a checkbox in your export settings!<\/p>\n<p><img src=\"\/storage\/blog\/godot-xr\/updates\/validation_layer_selection.png\" alt=\"Enable OpenXR Validation Layers checkbox in export settings\" \/><\/p>\n<p>While this isn\u2019t a feature that will be used by most XR developers, it is a tool that will allow us to develop Godot and the plugin to be more compliant with the OpenXR spec.<\/p>\n<h3 id=\"using-composition-layer-extensions-on-the-main-projection-layer\">Using Composition Layer extensions on the main Projection Layer<\/h3>\n<p>The plugin allows using several OpenXR extensions to add features to the <a href=\"https:\/\/docs.godotengine.org\/en\/latest\/classes\/class_openxrcompositionlayer.html#\">OpenXRCompositionLayer<\/a> node (and its children), which is most frequently used for rendering UI panels or media.<\/p>\n<p>The main 3D content that\u2019s rendered by Godot is also associated with a composition layer, the main projection layer. However, up until now, it wasn\u2019t possible to configure any of these extensions on that layer. That\u2019s changed in v5.1!<\/p>\n<p>Now you can set any of the same extra configuration that was available via <strong>OpenXRCompositionLayer<\/strong> nodes on the main projection layer too, either through code or Project Settings.<\/p>\n<p>On some headsets (namely, Meta\u2019s), this can allow using the <code class=\"language-plaintext highlighter-rouge\">XR_FB_composition_layer_depth_test<\/code> extension to allow content rendered by Godot to correctly appear in front of or behind other composition layers, without having to use hole punching (which can\u2019t be used with transparent layers). This is a feature that has been requested by the community for a long time.<\/p>\n<h3 id=\"hybrid-app-testing-on-desktop\">Hybrid App testing on desktop<\/h3>\n<p>In v4, we added support for Hybrid Apps on Android, which can dynamically switch between fully immersive and floating 2D panels.<\/p>\n<p>However, developers couldn\u2019t test them on desktop, only when deploying to the headset.<\/p>\n<p>In v5, we\u2019ve added the ability to simulate Hybrid App switching on desktop, which can help to accelerate iteration speed.<\/p>\n<hr \/>\n<p><em>The illustration picture for this article comes from <a href=\"https:\/\/dsnopek.itch.io\/expedition-to-blobotopia\">Expedition to Blobotopia<\/a> which was <a href=\"https:\/\/www.youtube.com\/watch?v=6RE8KuCspqw\">created entirely in VR<\/a> and available for <a href=\"https:\/\/www.meta.com\/experiences\/expedition-to-blobotopia-demo\/24941992168770375\/\">Meta<\/a> and <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.snopekgames.gwj81\">Android XR<\/a> headsets.<\/em><\/p>","category":"Progress Report","guid":"https:\/\/godotengine.org\/article\/godot-xr-update-may-2026\/","pubDate":"Tue, 19 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/godot-openxr-vendors-plugin-v5-1-godot-xr-community.jpg"},{"title":"Release candidate: Godot 4.6.3 RC 2","link":"https:\/\/godotengine.org\/article\/release-candidate-godot-4-6-3-rc-2\/","summary":"A Saturday surprise","description":"<p>We rarely opt for Saturday releases for these snapshots, as the majority of the team are already enjoying their weekend (hopefully you are as well!). However, we had some exciting new regression fixes for the upcoming 4.6.3 maintenance release, so we didn\u2019t feel right just sitting on them. As such, we\u2019re dropping the next release candidate now, so users can get their hands on it even earlier than usual!<\/p>\n<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>\n<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.3.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>\n<hr \/>\n<p><em>The illustration picture for this article comes from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/3441280\/The_Greenening\/?curator_clanid=41324400\"><strong>The Greenening<\/strong><\/a>, <em>a incremental game where you embark on a wholesome journey to explore and reawaken a forgotten world. You can buy the game on <a href=\"https:\/\/store.steampowered.com\/app\/3441280\/The_Greenening\/?curator_clanid=41324400\">Steam<\/a>, and follow the developer on <a href=\"https:\/\/www.youtube.com\/@erkberg\">YouTube<\/a> or <a href=\"https:\/\/bsky.app\/profile\/erkberg.bsky.social\">Bluesky<\/a>.<\/em><\/p>\n<h2 id=\"whats-new\">What\u2019s new<\/h2>\n<p><strong>14 contributors<\/strong> submitted <strong>21 improvements<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.6.3-rc2\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since <a href=\"\/article\/release-candidate-godot-4-6-3-rc-1\/\">4.6.3 RC 1<\/a>. You can also review <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.6.3\">all changes included in 4.6.3<\/a> compared to the previous <a href=\"\/article\/maintenance-release-godot-4-6-2\/\">4.6.2 maintenance release<\/a>.<\/p>\n<p>This section covers all changes made since <a href=\"\/article\/release-candidate-godot-4-6-3-rc-1\/\">4.6.3 RC 1<\/a>, which are largely regression fixes:<\/p>\n<ul>\n<li>3D: Fix 3D viewport selection getting stuck when editing a <code class=\"language-plaintext highlighter-rouge\">GridMap<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117521\">GH-117521<\/a>).<\/li>\n<li>3D: Fix Marker3D editor gizmo being darker than intended for negative axis lines (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116995\">GH-116995<\/a>).<\/li>\n<li>3D: Fix mouse wheel zoom scrolling contents in the <code class=\"language-plaintext highlighter-rouge\">GridMap<\/code> editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117378\">GH-117378<\/a>).<\/li>\n<li>3D: Fix problems with undoing selection and pasting in <code class=\"language-plaintext highlighter-rouge\">GridMap<\/code> editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116814\">GH-116814<\/a>).<\/li>\n<li>Animation: Fix compressed Pos3D track interpolation (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118159\">GH-118159<\/a>).<\/li>\n<li>Editor: Avoid repeats in resource gather (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118926\">GH-118926<\/a>).<\/li>\n<li>Editor: Fix and improve the editor layout dialog (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117846\">GH-117846<\/a>).<\/li>\n<li>Editor: Fix blurry icons in the inspector dock\u2019s object selector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115222\">GH-115222<\/a>).<\/li>\n<li>Editor: Fix FileSystem dock visual separation when docked at bottom (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115267\">GH-115267<\/a>).<\/li>\n<li>Editor: Fix keying state not being updated for sub-inspectors (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117673\">GH-117673<\/a>).<\/li>\n<li>Editor: Fix right clicking an item in filesystem <code class=\"language-plaintext highlighter-rouge\">ItemList<\/code> draws focus (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114968\">GH-114968<\/a>).<\/li>\n<li>Editor: Fix text alignment in check box inside <code class=\"language-plaintext highlighter-rouge\">EditorInspectorSection<\/code>s (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117683\">GH-117683<\/a>).<\/li>\n<li>Editor: Update the notification for Auto-exposure (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114732\">GH-114732<\/a>).<\/li>\n<li>GDScript: Fix GDScript LSP test link errors when <code class=\"language-plaintext highlighter-rouge\">websocket<\/code> is disabled (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114951\">GH-114951<\/a>).<\/li>\n<li>GDScript: Pattern guard warning fix (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/110523\">GH-110523<\/a>).<\/li>\n<li>GUI: Fix <code class=\"language-plaintext highlighter-rouge\">RichTextLabel<\/code> not updating after change <code class=\"language-plaintext highlighter-rouge\">scroll_active<\/code> field (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114467\">GH-114467<\/a>).<\/li>\n<li>GUI: Fix TextEdit IME error on mouse over (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111859\">GH-111859<\/a>).<\/li>\n<li>Platforms: Fix clipboard history not updating on subsequent copies in Wayland (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116648\">GH-116648<\/a>).<\/li>\n<li>Platforms: Wayland: Unify clipboard sending code (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117873\">GH-117873<\/a>).<\/li>\n<li>Rendering: Add project setting to disable new Volumetric fog blending behavior (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119414\">GH-119414<\/a>).<\/li>\n<li>Rendering: Fix LightmapGI probe update speed setting not applying in Compatibility (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117771\">GH-117771<\/a>).<\/li>\n<\/ul>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/e880d6bbfb74479376a0cba9b106ac0c39b4cfe4\"><code class=\"language-plaintext highlighter-rouge\">e880d6bbf<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.6.3-rc2\">\nDownload Godot 4.6.3 rc2\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/release-candidate-godot-4-6-3-rc-2.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=rc2&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=rc2&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=rc2&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.6.3-rc2\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<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.6.3. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.<\/p>\n<p>With every release we accept that there are going to be various issues, which have already been reported but haven\u2019t 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>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/release-candidate-godot-4-6-3-rc-2\/","pubDate":"Sat, 16 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/release-candidate-godot-4-6-3-rc-2.jpg"},{"title":"Dev snapshot: Godot 4.7 beta 2","link":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-2\/","summary":"Second verse, same as the first!","description":"<p>It\u2019s been a couple of weeks since we saw the release of <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">4.7 beta 1<\/a>, and in that time we\u2019ve managed to detect and resolve over 100 regressions! There\u2019s still plenty of work to be done on the testing front, so users are encouraged to report whatever new issues crop up this newest release: Godot 4.7 beta 2.<\/p>\n<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>\n<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.7.beta2\/\"><strong>Web editor<\/strong><\/a>, the <a href=\"https:\/\/www.meta.com\/s\/h9JcJGHfg\"><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>\n<hr \/>\n<p><em>The cover illustration is from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/2769240\/Wax_Heads\/?curator_clanid=41324400\"><strong>Wax Heads<\/strong><\/a>, <em>a cozy-punk narrative sim where you work in a struggling record store and chat to quirky customers with unique tastes. You can buy the game on <a href=\"https:\/\/store.steampowered.com\/app\/2769240\/Wax_Heads\/?curator_clanid=41324400\">Steam<\/a>, and check out the developers\u2014<a href=\"https:\/\/bsky.app\/profile\/rothiotome.bsky.social\">Roc\u00edo Tom\u00e9<\/a> and <a href=\"https:\/\/bsky.app\/profile\/patattiemurray.bsky.social\">Murray Somerwolff<\/a>\u2014on Bluesky!<\/em><\/p>\n<h2 id=\"highlights\">Highlights<\/h2>\n<p>For an overview of what\u2019s new overall in Godot 4.7, have a look at the highlights for <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">4.7 beta 1<\/a>, which cover a lot of the changes. This blog post only covers the changes between beta 1 and beta 2. This section covers the most relevant changes made since the beta 1 snapshot, which are largely regression fixes:<\/p>\n<ul>\n<li>3D: Add undo\/redo support for Pilot Mode camera movement (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119349\">GH-119349<\/a>).<\/li>\n<li>Animation: Rename various signal parameters called \u2018name\u2019 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119316\">GH-119316<\/a>).<\/li>\n<li>Core: Fix a race in <code class=\"language-plaintext highlighter-rouge\">ResourceLoader::load_threaded_request()<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118824\">GH-118824<\/a>).<\/li>\n<li>Documentation: Link to tutorial and add platform notes to HDR output docs (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118692\">GH-118692<\/a>).<\/li>\n<li>Editor: Fix editor screenshots with HDR enabled (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119013\">GH-119013<\/a>).<\/li>\n<li>Editor: Improve \u2018Clear Output\u2019 button position (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118954\">GH-118954<\/a>).<\/li>\n<li>Export: Remove experimental warning from <code class=\"language-plaintext highlighter-rouge\">Use Gradle Build<\/code> option on Android (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119172\">GH-119172<\/a>).<\/li>\n<li>GDExtension: Deprecate GDExtension\u2019s <code class=\"language-plaintext highlighter-rouge\">object_cast_to<\/code> and <code class=\"language-plaintext highlighter-rouge\">classdb_get_class_tag<\/code>, in favour of <code class=\"language-plaintext highlighter-rouge\">is_class<\/code> casts (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119254\">GH-119254<\/a>).<\/li>\n<li>GUI: Make internal children of built-in nodes use their parent\u2019s material (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115637\">GH-115637<\/a>).<\/li>\n<li>Rendering: Fix behavior of <code class=\"language-plaintext highlighter-rouge\">window_is_hdr_output_supported<\/code> for Wayland and adjust warnings (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117913\">GH-117913<\/a>).<\/li>\n<li>Rendering: HDR: Implement checking if surface supports HDR output (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/119091\">GH-119091<\/a>).<\/li>\n<li>XR: Update default OpenXR action map (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118975\">GH-118975<\/a>).<\/li>\n<\/ul>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p><strong>74 contributors<\/strong> submitted <strong>153 fixes<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7-beta2\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">4.7-beta1<\/a>. You can also review <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7\">all changes included in 4.7<\/a> compared to the previous <a href=\"\/releases\/4.6\/\">4.6 feature release<\/a>.<\/p>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/7775792057009cb27068f1a3252902fb9c991836\"><code class=\"language-plaintext highlighter-rouge\">777579205<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.7-beta2\">\nDownload Godot 4.7 beta2\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-2.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta2&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta2&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-linux\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta2&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta2&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-macos\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta2&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta2&amp;slug=mono_win64.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-windows\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.7-beta2\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. 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.7. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.<\/p>\n<p>With every release, we accept that there are going to be various issues which have already been reported but haven\u2019t 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>\n<ul>\n<li>XR: The Godot editor will crash upon quitting a XR project on macOS (<a href=\"https:\/\/github.com\/godotengine\/godot\/issues\/119146\">GH-119146<\/a>).<\/li>\n<li>GUI: Popup menu tooltips don\u2019t show up when the search bar is enabled (<a href=\"https:\/\/github.com\/godotengine\/godot\/issues\/119407\">GH-119407<\/a>).<\/li>\n<\/ul>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-2\/","pubDate":"Mon, 11 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-2.jpg"},{"title":"GodotCon Boston - Save the date!","link":"https:\/\/godotengine.org\/article\/godotcon-us-2026\/","summary":"Want to join? Boston 21-22 of July. Get your tickets now! (Call for speakers, showcases, and sponsors open).","description":"<p>The official GodotCon returns to Boston for the second US edition. For this edition of the event, we teamed up with <a href=\"https:\/\/scenetree.org\/\">SceneTree<\/a> to help us organize it and make sure that everything runs smoothly.<\/p>\n<h3 id=\"information\">Information<\/h3>\n<table>\n<tbody>\n<tr>\n<td>\ud83d\udcc5 Dates<\/td>\n<td>21st, 22nd of July 2026<\/td>\n<\/tr>\n<tr>\n<td>\ud83d\udd51 Time<\/td>\n<td>09:00 - 18:00<\/td>\n<\/tr>\n<tr>\n<td>\ud83c\uddf3\ud83c\uddf1 Location<\/td>\n<td>Boston, Massachusetts, United States<\/td>\n<\/tr>\n<tr>\n<td>\ud83d\udccd Venue<\/td>\n<td>Microsoft NERD Center. <a href=\"https:\/\/maps.app.goo.gl\/LJC9R7QiTxN6S3cv7\">1 Memorial Dr, Cambridge, MA 02142, United States<\/a><\/td>\n<\/tr>\n<tr>\n<td>\ud83c\udf10 Website<\/td>\n<td><a href=\"https:\/\/conference.godotengine.org\/US\/2026\/\">https:\/\/conference.godotengine.org\/US\/2026\/<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a class=\"btn\" href=\"https:\/\/tickets.godotengine.org\/scene-tree\/godotcon-us-2026\/\">Buy tickets \ud83c\udf9f\ufe0f<\/a><\/p>\n<h3 id=\"call-for-speakers-sponsors-and-showcases\">Call for speakers, sponsors, and showcases<\/h3>\n<p>If you would like to be a part of the conference by giving a talk or a workshop, please submit your proposals through the link below. We are looking for a diverse range of topics, from beginner to advanced, so don\u2019t hesitate to submit your ideas. Of note: We have a lot more room for workshops this year on the 20th of July.<\/p>\n<p><a href=\"https:\/\/talks.godotengine.org\/godotcon-boston-2026\/cfp\"><strong>\u27a1\ufe0f Call for submissions<\/strong><\/a>, Deadline: 1st of June 2026<\/p>\n<p>We are also actively looking for sponsors to support GodotCon Boston. If you or your company would be interested in learning more about sponsorship opportunities, feel free to reach out to <a href=\"mailto:president@scenetree.org\">president@scenetree.org<\/a>.<\/p>\n<p>Want to show off your Godot-related project? Whether you have some really handy toolset or an amazing game made in Godot, submit to be a part of the showcase.<\/p>\n<p><a href=\"https:\/\/talks.godotengine.org\/godotcon-boston-2026\/cfp\"><strong>\u27a1\ufe0f Showcase submissions<\/strong><\/a>, Deadline: 1st of June 2026<\/p>\n<h3 id=\"call-for-volunteers\">Call for volunteers<\/h3>\n<p>An event like this only happens thanks to passionate people like you who are willing to help behind the scenes. If you want to contribute to making GodotCon Boston 2026 a welcoming and smooth experience for everyone, we are currently looking for volunteers to help us manage different aspects of the conference, from stage managers to photographers.<\/p>\n<p>If you would like to participate, please fill out <a href=\"https:\/\/forms.gle\/3C5rqH8MjRuRXjS36\">this form<\/a>.<\/p>\n<h3 id=\"tickets-and-more\">Tickets and more<\/h3>\n<p>Get your tickets <a href=\"https:\/\/tickets.godotengine.org\/scene-tree\/godotcon-us-2026\/\">here<\/a> and stay tuned for more information by joining the <a href=\"https:\/\/discord.gg\/A2YPMR23ye\">GodotCon Discord<\/a> or the mailing list.<\/p>\n<form method=\"post\" action=\"https:\/\/godot.news\/subscription\/form\" class=\"listmonk-form\">\n<style>@media (min-width: 768px) { input[type=\"submit\"] {border-radius: 0px var(--button-border-radius) var(--button-border-radius) 0;}}<\/style>\n<div>\n<input type=\"hidden\" name=\"nonce\" \/>\n<input type=\"email\" name=\"email\" required=\"\" placeholder=\"E-mail\" style=\"font-size: 18px;padding: 16px 18px;border: 1px solid var(--base-color);box-shadow: 0 4px 9px -3px #0000002e;background: var(--card-footer-color);color: var(--base-color-text);\" \/>\n<p style=\"display:none;\">\n<input id=\"6e6e9\" type=\"checkbox\" name=\"l\" checked=\"\" value=\"6e6e9ba4-732b-4528-b4cd-71bbe6850f8d\" \/>\n<label for=\"6e6e9\">Godot Conference<\/label>\n<\/p>\n<input type=\"submit\" class=\"btn\" value=\"Subscribe\" style=\"cursor: pointer;border: inherit;\" \/>\n<\/div>\n<\/form>\n<p>See you soon!<\/p>","category":"Events","guid":"https:\/\/godotengine.org\/article\/godotcon-us-2026\/","pubDate":"Fri, 08 May 2026 13:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/godotcon-boston-2026.jpg"},{"title":"Release candidate: Godot 4.6.3 RC 1","link":"https:\/\/godotengine.org\/article\/release-candidate-godot-4-6-3-rc-1\/","summary":"Third time's the charm!","description":"<p>While Godot 4.7 is enjoying its <a href=\"\/article\/dev-snapshot-godot-4-7-beta-1\/\">beta period<\/a>, work continues on ensuring 4.6 is as stable as possible. So we\u2019re continuing our streak of maintenance releases with Godot 4.6.3, whose first release candidate builds are now ready for testing!<\/p>\n<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>\n<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.3.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>\n<hr \/>\n<p><em>The illustration picture for this article comes from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/3618030\/Flock_Around\/?curator_clanid=41324400\"><strong>Flock Around<\/strong><\/a>, <em>a multiplayer bird-watching game, where you explore a nature sanctuary with friends to fill out your guidebook. You can buy the game on <a href=\"https:\/\/store.steampowered.com\/app\/3618030\/Flock_Around\/?curator_clanid=41324400\">Steam<\/a>, and follow the developers on <a href=\"https:\/\/www.youtube.com\/@SecretPlanGames\">YouTube<\/a>, <a href=\"https:\/\/bsky.app\/profile\/secretplangames.bsky.social\">Bluesky<\/a>, and <a href=\"https:\/\/discord.gg\/M627tQj3HQ\">Discord<\/a>.<\/em><\/p>\n<h2 id=\"whats-new\">What\u2019s new<\/h2>\n<p><strong>31 contributors<\/strong> submitted <strong>56 improvements<\/strong> for this release. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.6.3-rc1\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes since the 4.6.1-stable release.<\/p>\n<p>This section covers the most relevant changes made since the <a href=\"\/article\/maintenance-release-godot-4-6-2\/\">4.6.2 maintenance release<\/a>, which are largely regression fixes:<\/p>\n<ul>\n<li>2D: Update layer selector when modifying the <code class=\"language-plaintext highlighter-rouge\">TileMap<\/code> in the inspector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117256\">GH-117256<\/a>).<\/li>\n<li>3D: Fix wrong rotation of cells while being pasted in the <code class=\"language-plaintext highlighter-rouge\">GridMap<\/code> editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116683\">GH-116683<\/a>).<\/li>\n<li>Animation: Fix SplineIK crash cases (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117959\">GH-117959<\/a>).<\/li>\n<li>C#: Prevent SourceGenerators from becoming a transitive dependency (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114868\">GH-114868<\/a>).<\/li>\n<li>Core: Debugger: Rather than looping infinitely on data read errors, drop the connection (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113905\">GH-113905<\/a>).<\/li>\n<li>Core: Fix race in <code class=\"language-plaintext highlighter-rouge\">RefCounted::unreference()<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118678\">GH-118678<\/a>).<\/li>\n<li>Core: Improve thread-safety of <code class=\"language-plaintext highlighter-rouge\">Object<\/code> signals (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117511\">GH-117511<\/a>).<\/li>\n<li>Editor: Don\u2019t print UID errors when cache is not initialized (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118527\">GH-118527<\/a>).<\/li>\n<li>Editor: Fix game speed UI not resetting when game is restarted (from editor) (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116568\">GH-116568<\/a>).<\/li>\n<li>Export: iOS: Fix one-click deploy with Xcode 26 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118559\">GH-118559<\/a>).<\/li>\n<li>GUI: RTL: Fix character click offsets after the table (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117011\">GH-117011<\/a>).<\/li>\n<li>Import: Copy scene unique ID when replacing imported instance (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118522\">GH-118522<\/a>).<\/li>\n<li>Input: Fix incorrect reading of joypad UTF8 <code class=\"language-plaintext highlighter-rouge\">raw_name<\/code> in <code class=\"language-plaintext highlighter-rouge\">Input.get_joy_info()<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115218\">GH-115218<\/a>).<\/li>\n<li>Physics: Fix over-removal of area overlaps when using Jolt (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118285\">GH-118285<\/a>).<\/li>\n<li>Rendering: Fix GLES3 batching skipping rendering all items on specific buffer sizes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117725\">GH-117725<\/a>).<\/li>\n<li>Rendering: Select relevant 3D lights per mesh on GLES3 and Mobile renderers (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/107234\">GH-107234<\/a>).<\/li>\n<\/ul>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/6357d9e4cd17bb0d6f7c78183753b76f6852eb05\"><code class=\"language-plaintext highlighter-rouge\">6357d9e4c<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.6.3-rc1\">\nDownload Godot 4.6.3 rc1\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/release-candidate-godot-4-6-3-rc-1.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=rc1&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=rc1&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&amp;flavor=rc1&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.6.3&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\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.6.3-rc1\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<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.6.3. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.<\/p>\n<p>With every release we accept that there are going to be various issues, which have already been reported but haven\u2019t 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>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/release-candidate-godot-4-6-3-rc-1\/","pubDate":"Fri, 08 May 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/release-candidate-godot-4-6-3-rc-1.jpg"},{"title":"Godot usage and engine growth","link":"https:\/\/godotengine.org\/article\/godot-growth-stats-2026\/","summary":"Godot adoption has rapidly increased in the last few years. Here is a look at the hard numbers.","description":"<p>I like to keep track of Godot\u2019s growth. Since we don\u2019t have any tracking information in the engine itself, this can be challenging. So I use a variety of sources to try to get a full picture of how Godot is growing over time. I have been collecting data long enough now that I can finally put together some graphs that illustrate the growth of the engine.<\/p>\n<p>This data comes from many different sources and is collected in different ways, so it can be a little bit scattered. For example, I have data for the total number of downloads of each version of the engine from our website at a given point in time, but I don\u2019t have downloads per month. Whereas on Steam and Google Play, I have total downloads for all versions and monthly downloads. Finally, the data generally runs up into February 2026 since that is the last time I updated the data (and when I started the first draft of this post).<\/p>\n<p>Overall, this data can give us some insight into the growth of Godot and its trajectory, but is not an exact picture.<\/p>\n<h2 id=\"engine-usage\">Engine usage<\/h2>\n<p>Our data for engine usage is a little messy, partly owing to the mechanism we use for collecting the data and partly due to fragmentation within the ecosystem. I track engine usage primarily from 3 sources:<\/p>\n<ol>\n<li>Downloads from our website\/GitHub (we host the engine on GitHub and provide a link via our website)<\/li>\n<li>Downloads via Steam<\/li>\n<li>Downloads via Google Play<\/li>\n<\/ol>\n<p>Steam and Google Play provide data on cumulative installs by unique users while our website\/GitHub only provides data about total download count and includes duplicates when a user downloads the engine multiple times.<\/p>\n<h4 id=\"steam-and-google-play---cumulative-installs\">Steam and Google Play - Cumulative Installs<\/h4>\n<p><img alt=\"Graph of Godot editor downloads on Steam and Google Play\" src=\"\/storage\/blog\/godot-usage-2026\/steam-google-play-installs.png\" \/><\/p>\n<h4 id=\"website-downloads\">Website downloads<\/h4>\n<p>We have shifted to a better method of tracking downloads from the website that will provide us with more granular data in the future, but since the shift was so recent, we don\u2019t have good data yet. So we need to make do with my imperfect data collection.<\/p>\n<p><img alt=\"Graph of Godot editor downloads from the website\" src=\"\/storage\/blog\/godot-usage-2026\/website-installs.png\" \/><\/p>\n<p>We seem to be getting pretty consistently up to the 2ish million download mark with each release. You can see that quick patch releases partially cannibalize the stable release. Importantly for us, we can see that very few people are downloading earlier releases once a patch release has come out (e.g. very few people downloaded 4.4 once 4.4.1 was available). That differs from stable release to stable release (e.g. people continued to download 4.3 to some extent once 4.4 released). This is great news and confirms that users are mostly behaving the way that we expect: they are sticking to major versions in general and upgrading to new minor versions carefully, while being a lot less cautious about upgrading to a newer patch release.<\/p>\n<p>I am looking forward to seeing how this data looks over the next few years as the current information is too sparse to draw many conclusions.<\/p>\n<h2 id=\"community\">Community<\/h2>\n<p>For those who have been around the community for the last few years, this won\u2019t come as a surprise. Our community has doubled in size in the last couple of years. The growth appears to be slowing down in the last year, but it\u2019s too early to know if that is a trend or not.<\/p>\n<p><img alt=\"Graph of Godot's growth in various social networks\" src=\"\/storage\/blog\/godot-usage-2026\/community.png\" \/><\/p>\n<p>My method of collecting data is just viewing whatever public-facing number is available when I remember to check and write it down. I have not been very scientific about my data collection practice as you can see.<\/p>\n<p>Notably, this data only tracks our large communities on social media which are predominantly English-speaking and Western-influenced. This data leaves out the growth in communities from countries that use different social networks. For example, we know that Godot usage is growing a lot in China where Reddit, Twitter, and Bluesky usage is a lot lower than it is in North America and Europe. Also, this data doesn\u2019t include Discord, which has a major Godot community. That is a limitation from the fact that I didn\u2019t think to include Discord when I started collecting this data!<\/p>\n<h2 id=\"games-releases\">Games releases<\/h2>\n<h4 id=\"steam\">Steam<\/h4>\n<p>Using SteamDB, we can keep track of approximately how many Godot games are released on Steam. We use SteamDB to source the header images for our dev release blog posts. It is a very helpful resource for us. The data is approximate, and it can change when SteamDB updates their algorithm, but the overall picture stays the same. The number of Godot games being released on Steam is exhibiting strong signs of exponential growth! For me personally, this has to be the most exciting statistic. It is amazing that many people are adopting the engine and using it, but as a person on the technical side of things, I also want to see that users are successfully using the engine to make their games.<\/p>\n<p><img alt=\"Graph of Godot games released on Steam per year\" src=\"\/storage\/blog\/godot-usage-2026\/steam-games.png\" \/><\/p>\n<p><em>source: https:\/\/steamdb.info\/stats\/releases\/?tech=Engine.Godot<\/em><\/p>\n<h4 id=\"itchio\">Itch.io<\/h4>\n<p>We also monitor itch.io. There is a much lower barrier of entry to releasing games on itch.io than on other platforms. So we see a much higher number of Godot games there. I collect this data manually by going to itch.io and recording the total number of Godot games. So the data isn\u2019t as pretty, but it is still nice to look at.\n<img alt=\"Graph of Godot's growth in various social networks\" src=\"\/storage\/blog\/godot-usage-2026\/games-on-itch.png\" \/><\/p>\n<p><em>source: https:\/\/itch.io\/tags\/tools<\/em><\/p>\n<h2 id=\"game-jams\">Game jams<\/h2>\n<h4 id=\"global-game-jam\">Global Game Jam<\/h4>\n<p><img alt=\"Graph of Godot's growth in the Global Game Jam\" src=\"\/storage\/blog\/godot-usage-2026\/ggj-games.png\" \/><\/p>\n<p>Seeing consistent growth in usage in the Global Game Jam is very rewarding. It tells us that Godot usage is growing consistently in the next generation of developers and especially in educational settings. We hope that this generational growth continues and we see even higher rates in the coming generation of game developers.<\/p>\n<h4 id=\"gmtk-game-jam\">GMTK Game Jam<\/h4>\n<p><img alt=\"Graph of Godot's growth in the GMTK Game Jam\" src=\"\/storage\/blog\/godot-usage-2026\/gmtk-games.png\" \/><\/p>\n<p>The GMTK Game Jam growth chart looks very similar to the Global Game Jam one, especially the jump between 2023 and 2024. However, it consistently features a higher proportion of Godot users. We hope to see Godot hit 50% or more one day!<\/p>\n<p><em>source: https:\/\/bsky.app\/profile\/gamemakerstoolkit.com\/post\/3lvkrymak5s26<\/em><\/p>\n<h3 id=\"donations\">Donations<\/h3>\n<p>Finally, let\u2019s compare the above growth to the growth in donations.<\/p>\n<p>We launched our development fund in September 2023 and have tracked how it has changed since then. As you can see below, the total monthly income from the dev fund hasn\u2019t changed all that much since its inception. We had an initial spike, that slowly dropped. Then in October 2024 we had a sudden spike in donations. In August 2025 we realized that we hadn\u2019t been properly tracking when subscriptions were cancelled through PayPal. When we corrected the tracking information it looked like a sudden drop in subscriptions, but in reality, our data was just artificially high for all the preceding dates.<\/p>\n<p>The final spike in December 2025 was from our latest fundraising campaign. As it turns out, asking for donations is the best way to increase donations. So expect to hear us asking more often.<\/p>\n<p><img alt=\"Graph of Godot's Dev Fund\" src=\"\/storage\/blog\/godot-usage-2026\/dev-fund.png\" \/><\/p>\n<p>Overall, we see our funding as a very healthy and consistent amount. Consistency is the most important thing for us since it makes it easier to budget and means we aren\u2019t constantly laying off and re-hiring contractors.<\/p>\n<p>We are still trying to understand why donations don\u2019t track with the increase in users. We have a few theories:<\/p>\n<ol>\n<li>New users see the Foundation as a well-entrenched player in the market that doesn\u2019t need funding<\/li>\n<li>Users are happy with the pace of development and we aren\u2019t communicating the value\/need of further donations well<\/li>\n<li>New users see Godot as the free alternative to the other big engines<\/li>\n<\/ol>\n<p>Notably this data does not track one-time donations. Most of our corporate sponsorships come through as one-time donations and represent a significant portion of our funding. They are still relatively random and sporadic, so it is difficult to draw any conclusions.<\/p>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in their free time, as well as a handful of part or 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>\n<p>If you\u2019d 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>","category":"News","guid":"https:\/\/godotengine.org\/article\/godot-growth-stats-2026\/","pubDate":"Wed, 06 May 2026 18:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/godot-usage-2026\/stonks.jpg"},{"title":"Dev snapshot: Godot 4.7 beta 1","link":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-1\/","summary":"Godot 4.7 enters beta!","description":"<p>The 4.7 release cycle has finally reached an ever-important milestone: its very first beta snapshot! Our users have done a phenomenal job at squashing bugs nice and early once feature-freeze set in <a href=\"\/article\/dev-snapshot-godot-4-7-dev-5\">last week<\/a>, and we would further encourage those who haven\u2019t already to shift their focus to <a href=\"https:\/\/github.com\/godotengine\/godot\/issues?q=is%3Aopen+is%3Aissue+label%3Aregression+milestone%3A4.7\">regression fixes<\/a> exclusively.<\/p>\n<p>For those interested in aiding us on our quest to squash any bugs that come up during this time, we once again encourage you to join our bug-hunting sprints. Anyone interested should read the <a href=\"https:\/\/github.com\/godotengine\/godot-maintainers-docs\/blob\/main\/bug-triage\/introduction.md\">Bug Triage Introduction<\/a> for more information, and join the <a href=\"https:\/\/chat.godotengine.org\/channel\/bugsquad\"><code class=\"language-plaintext highlighter-rouge\">#bugsquad<\/code><\/a> and <a href=\"https:\/\/chat.godotengine.org\/channel\/bugsquad-sprints\"><code class=\"language-plaintext highlighter-rouge\">#bugsquad-sprints<\/code><\/a> channels on our developer RocketChat to participate.<\/p>\n<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>\n<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.7.beta1\/\"><strong>Web editor<\/strong><\/a>, the <a href=\"https:\/\/www.meta.com\/s\/h9JcJGHfg\"><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>\n<hr \/>\n<p><em>The cover illustration is from<\/em> <a href=\"https:\/\/store.steampowered.com\/app\/4450800\/Idols_of_Ash\/?curator_clanid=41324400\"><strong>Idols of Ash<\/strong><\/a>, <em>a horror climbing game where you delve thousands of meters into a dark and ancient place; your presence is known, and you are not welcome. You can buy the game on <a href=\"https:\/\/store.steampowered.com\/app\/4450800\/Idols_of_Ash\/?curator_clanid=41324400\">Steam<\/a> or <a href=\"https:\/\/leafygames.itch.io\/idols-of-ash\">itch.io<\/a>, and follow the developers on <a href=\"https:\/\/bsky.app\/profile\/leafygames.bsky.social\">Bluesky<\/a>, <a href=\"https:\/\/www.youtube.com\/@leafygamesofficial\">YouTube<\/a>, or <a href=\"https:\/\/leafygames.itch.io\/\">itch.io<\/a>.<\/em><\/p>\n<h2 id=\"highlights\">Highlights<\/h2>\n<p>For those who have been following our development snapshots closely, you may be familiar with a number of the highlights in this post which were already covered in previous articles (<a href=\"\/article\/dev-snapshot-godot-4-7-dev-1\">dev 1<\/a>, <a href=\"\/article\/dev-snapshot-godot-4-7-dev-2\">dev 2<\/a>, <a href=\"\/article\/dev-snapshot-godot-4-7-dev-3\">dev 3<\/a>, <a href=\"\/article\/dev-snapshot-godot-4-7-dev-4\">dev 4<\/a>, and <a href=\"\/article\/dev-snapshot-godot-4-7-dev-5\">dev 5<\/a>).<\/p>\n<p>Because we\u2019re already in feature freeze, there are no new features to cover compared to dev 5. Instead, we\u2019ll focus on a general round-up of what to expect from Godot 4.7 as a whole, as well as expanding on some additions that we didn\u2019t have the chance to highlight in our previous snapshots.<\/p>\n<ul>\n<li><a href=\"#breaking-changes\">Breaking changes<\/a><\/li>\n<li><a href=\"#animation\">Animation<\/a><\/li>\n<li><a href=\"#core-and-buildsystemm\">Core and buildsystem<\/a><\/li>\n<li><a href=\"#editor\">Editor<\/a><\/li>\n<li><a href=\"#gdextension\">GDExtension<\/a><\/li>\n<li><a href=\"#gdscript\">GDScript<\/a><\/li>\n<li><a href=\"#gui\">GUI<\/a><\/li>\n<li><a href=\"#input\">Input<\/a><\/li>\n<li><a href=\"#physics\">Physics<\/a><\/li>\n<li><a href=\"#platforms\">Platforms<\/a><\/li>\n<li><a href=\"#rendering-and-shaders\">Rendering and shaders<\/a><\/li>\n<\/ul>\n<h3 id=\"breaking-changes\">Breaking changes<\/h3>\n<p>We try to minimize breaking changes, but sometimes they are necessary in order to fix high-priority issues. Where we do break compatibility, we do our best to make sure that the changes are minimal and require few changes in user projects.<\/p>\n<p>You can find a list of such issues by filtering the merged PRs in the 4.7 milestone with the <a href=\"https:\/\/github.com\/godotengine\/godot\/issues?q=milestone%3A4.7%20is%3Amerged%20label%3A%22breaks%20compat%22\"><code class=\"language-plaintext highlighter-rouge\">breaks compat<\/code> label<\/a>.<\/p>\n<ul>\n<li>Animation: Display and allow setting name\/index of BlendSpace points (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/110369\">GH-110369<\/a>).<\/li>\n<li>Audio: Fix Spectrum Analyzer effect returning jittered values (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114355\">GH-114355<\/a>).<\/li>\n<li>Audio: Fix volume calculation with multiple viewports in 3D (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114080\">GH-114080<\/a>).<\/li>\n<li>Core: Change <code class=\"language-plaintext highlighter-rouge\">new<\/code> overloads to use a tag instead of a pointer (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112035\">GH-112035<\/a>).\n<ul>\n<li>Should only be relevant for modules relying on unconventional initialization methods.<\/li>\n<\/ul>\n<\/li>\n<li>GDExtension: Bind <code class=\"language-plaintext highlighter-rouge\">Object::ConnectFlags<\/code> as a bitfield, instead of enum (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/109892\">GH-109892<\/a>).<\/li>\n<li>GDScript: Improve evaluation of constant expressions with arrays\/dictionaries (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113228\">GH-113228<\/a>).<\/li>\n<li>GUI: Add option to scale images in RichTextLabel relative to font size (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112617\">GH-112617<\/a>).<\/li>\n<li>Input: Add device IDs to keyboard and mouse input events (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116274\">GH-116274<\/a>).<\/li>\n<li>Jolt Physics: Add ability for Area3D to detect\/influence SoftBody3D (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114198\">GH-114198<\/a>).\n<ul>\n<li>Area3D will now report overlaps with SoftBody3D when using Jolt Physics, so might require re-adjusting collision layers\/masks if undesireable.<\/li>\n<\/ul>\n<\/li>\n<li>Jolt Physics: Make SoftBody3D default mass 1 kg and fix stiffness conversion (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116041\">GH-116041<\/a>).\n<ul>\n<li>Fixes a number of issues, and makes things more consistent with Godot Physics, but will require re-adjusting the parameters of all SoftBody3D instances.<\/li>\n<\/ul>\n<\/li>\n<li>Particles: Fix angular velocity (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117861\">GH-117861<\/a>).\n<ul>\n<li>Bringing the functionality in-line with how it has always been documented.<\/li>\n<\/ul>\n<\/li>\n<li>Platforms: Android: Remove deprecated Google Play OBB support (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118283\">GH-118283<\/a>).<\/li>\n<li>Shaders: Restrict condition parsing in shader preprocessor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117173\">GH-117173<\/a>).<\/li>\n<\/ul>\n<h3 id=\"animation\">Animation<\/h3>\n<p><a href=\"https:\/\/github.com\/KoBeWi\">Tomasz Chabora<\/a> starts our showcase with a feature we actually neglected to mention in the dev 2 blog post: <code class=\"language-plaintext highlighter-rouge\">AwaitTweener<\/code>. Coming from <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/79712\">GH-79712<\/a>, a PR nearly three years in the making, tweeners can now await a specific signal to emit to perform their desired action:<\/p>\n<div class=\"language-gdscript highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"k\">extends<\/span> <span class=\"n\">RigidBody2D<\/span>\n<span class=\"k\">func<\/span> <span class=\"nf\">_ready<\/span><span class=\"p\">()<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"n\">void<\/span><span class=\"p\">:<\/span>\n<span class=\"k\">var<\/span> <span class=\"n\">tween<\/span> <span class=\"p\">:<\/span><span class=\"o\">=<\/span> <span class=\"n\">create_tween<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">set_process_mode<\/span><span class=\"p\">(<\/span><span class=\"n\">Tween<\/span><span class=\"o\">.<\/span><span class=\"n\">TWEEN_PROCESS_PHYSICS<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">tween<\/span><span class=\"o\">.<\/span><span class=\"n\">tween_property<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"o\">^<\/span><span class=\"s2\">\"modulate\"<\/span><span class=\"p\">,<\/span> <span class=\"kt\">Color<\/span><span class=\"o\">.<\/span><span class=\"n\">RED<\/span><span class=\"p\">,<\/span> <span class=\"mf\">1.0<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">tween<\/span><span class=\"o\">.<\/span><span class=\"n\">tween_property<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"o\">^<\/span><span class=\"s2\">\"freeze\"<\/span><span class=\"p\">,<\/span> <span class=\"bp\">false<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">tween<\/span><span class=\"o\">.<\/span><span class=\"n\">tween_await<\/span><span class=\"p\">(<\/span><span class=\"o\">$<\/span><span class=\"s2\">\"..\/Area2D\"<\/span><span class=\"o\">.<\/span><span class=\"n\">body_entered<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">tween<\/span><span class=\"o\">.<\/span><span class=\"n\">tween_callback<\/span><span class=\"p\">(<\/span><span class=\"n\">queue_free<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre><\/div><\/div>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Showcase of `AwaitTweener` implementing above codeblock\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-beta-1\/await-tweener.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p><a href=\"https:\/\/github.com\/Meorge\">Malcolm Anderson<\/a> gave the animation track editor some love in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113479\">GH-113479<\/a>, enabling users to collapse groups. This simple change should immediately resonate with users dealing with the absurd sizes animation trees can reach, though the benefits can be felt at all sizes.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Animation track group collapse showcase\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-2\/animation-group-collapse.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>And more:<\/p>\n<ul>\n<li>Animation: Optimize Animation Resource, Library, Mixer, and Player (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116394\">GH-116394<\/a>).<\/li>\n<li>Animation: Optimize AnimationTree, Improve internals &amp; Editor &amp; <code class=\"language-plaintext highlighter-rouge\">Node::process_thread_group<\/code> safety (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117277\">GH-117277<\/a>).<\/li>\n<\/ul>\n<h3 id=\"core-and-buildsystem\">Core and buildsystem<\/h3>\n<p>A collective effort has been taken towards reducing compilation times across the codebase. Spearheaded by <a href=\"https:\/\/github.com\/Ivorforce\">Lukas Tenbrink<\/a> in <a href=\"https:\/\/github.com\/godotengine\/godot\/issues\/111218\">this tracker<\/a>, the speed at which builds complete has dramatically improved! Special thanks to <a href=\"https:\/\/github.com\/akien-mga\">R\u00e9mi Verschelde<\/a>, <a href=\"https:\/\/github.com\/Repiteo\">Thaddeus Crews<\/a>, and <a href=\"https:\/\/github.com\/StarryWorm\">Enzo Novoselic<\/a> for not only contributing to this cause, but helping improve our tooling and detection methods. While this sort of thing is hard to showcase in a blog post, we hope that anyone who compiles the engine directly has enjoyed these benefits firsthand.<\/p>\n<p>And more:<\/p>\n<ul>\n<li>Buildsystem: SCons: Enable <code class=\"language-plaintext highlighter-rouge\">wasm64<\/code> support on web builds (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/102378\">GH-102378<\/a>).<\/li>\n<li>Improve thread-safety of <code class=\"language-plaintext highlighter-rouge\">Object<\/code> signals (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117511\">GH-117511<\/a>).<\/li>\n<li>PCKPacker: Add method to add files from buffer (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/108830\">GH-108830<\/a>).<\/li>\n<li>Use <code class=\"language-plaintext highlighter-rouge\">TRACY_ON_DEMAND<\/code> by default for Tracy integration (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117583\">GH-117583<\/a>).<\/li>\n<li>Audio: Revamp audio bus UI (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118266\">GH-118266<\/a>).<\/li>\n<\/ul>\n<h3 id=\"editor\">Editor<\/h3>\n<p><a href=\"https:\/\/github.com\/GustJc\">Gustavo Jaruga Cruz<\/a> gave the 3D editor some love in the form of <code class=\"language-plaintext highlighter-rouge\">Path3D<\/code> collider snapping with <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/102085\">GH-102085<\/a>. Now when creating and editing paths, you have the option of snapping those paths to whatever collider the mouse is hovering over, rather than simply dropping a point in space arbitrarily. As demonstrated in the below clip, this behavior is toggleable in the <code class=\"language-plaintext highlighter-rouge\">Path3D<\/code> options menu.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Path3D snapping to collider\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/path3d-collider-snap.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p><a href=\"https:\/\/github.com\/ryevdokimov\">Robert Yevdokimov<\/a> continues the 3D editor streak with vertex snapping support in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117235\">GH-117235<\/a>. This allows you to snap the selection to nearby nodes\u2019 vertices, which is useful for level design and ensuring everything is visually connected to neighboring nodes.<\/p>\n<p>To use vertex snapping, hold <kbd>B<\/kbd> and move the mouse near the selection\u2019s vertices. Once you see a yellow circle, hold the mouse button and move the mouse to the desired location (you can release <kbd>B<\/kbd> at this point). The circle becomes green once a vertex to snap to is detected near the mouse cursor. For better depth perception, the yellow\/green circle appears with reduced opacity if it\u2019s occluded by another surface.<\/p>\n<p>Vertex snapping works differently depending on whether the selected node has a mesh-based representation or not. For example, MeshInstance3D and CSG nodes have a mesh-based representation, while other nodes such as Label3D and Marker3D do not. Nodes without a mesh-based representation will teleport to the highlighted vertex when holding <kbd>B<\/kbd> and clicking on another node\u2019s vertex. Thanks to the follow-up contribution <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117380\">GH-117380<\/a>, you can opt into this behavior for nodes that have a mesh-based representation too.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Vertex snapping in the 3D editor\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/editor-3d-vertex-snapping.webm?1\" type=\"video\/webm\" \/>\n<\/video>\n<p><a href=\"https:\/\/github.com\/Raftatul\">Rapha\u00ebl Daubelcour<\/a>\u2019s work in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111469\">GH-111469<\/a> brought a highly-requested feature for the editor to life: the ability to copy and paste data from entire sections and categories. Now instead of copying the data from individual segments of a given property and pasting them piece-by-piece, this process is now handled in a singular action.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Showcase of copy\/paste functionality on section\/category properties\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-2\/property-copy-paste.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>Malcolm delivered yet another highly-requested feature in the form of monospaced code names (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112219\">GH-112219<\/a>). You\u2019d be surprised by just how much the readability of the UI improves when code-like data (methods, signals, properties, etc.) is represented in a font representing their context, especially when coupled with a standard font for all other information.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-2\/monospace-font-connection.webp\" alt=\"Monospaced fonts in connection\" \/>\n<img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-2\/monospace-font-property.webp\" alt=\"Monospaced fonts in property\" \/>\n<img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-2\/monospace-font-signal.webp\" alt=\"Monospaced fonts in connection\" \/><\/p>\n<div class=\"card card-info\" style=\"margin-top: 1em;\">\n<p>The previous behavior can be restored by toggling <code class=\"language-plaintext highlighter-rouge\">Interface &gt; Theme &gt; Use Monospace Font for Editor Symbols<\/code> in the Editor Settings.<\/p>\n<\/div>\n<p><a href=\"https:\/\/github.com\/jaydensipe\">Jayden Sipe<\/a> improved the remote scene tree view by adding class names in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115738\">GH-115738<\/a>. This means that, instead of anonymous-looking Object IDs, users can now view the objects directly.<\/p>\n<h4 id=\"before\">Before<\/h4>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/editor-class-name-remote-before.webp\" alt=\"Object ID shown in the remote inspector, without class name indication\" \/><\/p>\n<h4 id=\"after\">After<\/h4>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/editor-class-name-remote-after.webp\" alt=\"Class names shown in the remote inspector, with object ID still visible\" \/><\/p>\n<p><a href=\"https:\/\/github.com\/YeldhamDev\">Michael Alexsander<\/a> has been hard at work bringing our asset store updated visuals and API in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112992\">GH-112992<\/a>. Not only will it be easier to parse the asset items themselves, but more metadata and the current rating will be readily visible.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/assetlib-new-api-1.webp\" alt=\"Showcase of the polished asset item display\" \/><\/p>\n<p>When accessing an asset in isolation, you\u2019ll have immediate access to the current description and all existing changelogs. What\u2019s more, the ability to change an asset\u2019s version is now just one click away.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/assetlib-new-api-2.webp\" alt=\"Showcase of an asset item in isolation\" \/><\/p>\n<p>Michael\u2019s work didn\u2019t stop there, as <code class=\"language-plaintext highlighter-rouge\">MeshLibrary<\/code> received a similar QOL update in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117376\">GH-117376<\/a>, in the form of an entirely new bottom editor. Items are now featured on a grid with search and zoom functionality, alongside a separate inspector enabling the customization of individual items. Full undo\/redo support for all actions, as well as previews falling back to an item\u2019s mesh if nothing is specified, makes this a complete package out-of-the-gate.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/editor-gridmap-meshlibrary-new-editor.webp\" alt=\"New GridMap MeshLibrary editor\" \/><\/p>\n<p>For a long time, Godot has been lacking some way to easily place objects in 2D scenes. While scene tiles exist in TileMap, they come with numerous limitations, the most prominent one being no way to change properties of the placed scenes.<\/p>\n<p><a href=\"https:\/\/github.com\/DexterFstone\">Dexter<\/a> with <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/109360\">GH-109360<\/a> introduced the new Scene Paint tool, which allows easily painting scenes. You can quickly paint and erase scene instances, with support for grid snapping. The instances can also be pre-configured in the inspector, so it\u2019s easy to place rotated instances and other similarly complex configurations.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Showcase of new scene painter tool\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-beta-1\/scene-painter.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>Tomasz brings this behemoth of a section to a close with two final QOL goodies. The first is a simple but obvious improvement to how arrays are displayed in the inspector with <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118008\">GH-118008<\/a>, ensuring that whitespace isn\u2019t wasted.<\/p>\n<table>\n<thead>\n<tr>\n<th>Old<\/th>\n<th>New<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/inspector-array-old.webp\" alt=\"Original inspector array display\" \/><\/td>\n<td><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/inspector-array-new.webp\" alt=\"Updated inspector array display\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The second is an improvement to how export templates are received in the editor, as it\u2019s been a long-standing pain point that they must be downloaded in bulk. <a href=\"https:\/\/github.com\/Alex2782\">Alex2782<\/a> discovered a clever workaround to this by retrieving slices of the bulk package itself, which was then ported over to C++ by Tomasz in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117072\">GH-117072<\/a>. With this, the only downloaded export templates are what the developer explicitly requests.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Showcase of the improved export template\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/export-template-showcase.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>And more:<\/p>\n<ul>\n<li>2D: Add a scene painter tool (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/109360\">GH-109360<\/a>).<\/li>\n<li>2D: Rework TileSet editor proxy objects (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117574\">GH-117574<\/a>).<\/li>\n<li>3D: Add \u201cFollow Selection\u201d in the 3D editor by using Center Selection twice (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/99499\">GH-99499<\/a>).<\/li>\n<li>3D: Add automatic smoothing for CSG nodes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116749\">GH-116749<\/a>).<\/li>\n<li>3D: Add vector components to 3D ruler tool (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/106785\">GH-106785<\/a>).<\/li>\n<li>Add <code class=\"language-plaintext highlighter-rouge\">View3DController<\/code> for editor 3D view manipulation (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115957\">GH-115957<\/a>).<\/li>\n<li>Add 3D vertex snap base setting (Vertex\/Origin) (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117380\">GH-117380<\/a>).<\/li>\n<li>Add a script editor keyboard shortcut to show the documentation tooltip for the word the caret is on (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115767\">GH-115767<\/a>).<\/li>\n<li>Add folding to the Visual Profiler tree (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118120\">GH-118120<\/a>).<\/li>\n<li>Add type filters to create dialog (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111518\">GH-111518<\/a>).<\/li>\n<li>Add vertex snap support for subgizmo points (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117922\">GH-117922<\/a>).<\/li>\n<li>Depict version discrepancies in Project Manager (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111528\">GH-111528<\/a>).<\/li>\n<li>Generate and display documentation for the properties generated by <code class=\"language-plaintext highlighter-rouge\">PropertyListHelper<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115253\">GH-115253<\/a>).<\/li>\n<li>Hide renderer selector in main editor window and add editor setting (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117754\">GH-117754<\/a>).<\/li>\n<li>Improve appearance of built-in help (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/107597\">GH-107597<\/a>).<\/li>\n<li>Improve Remote\/Local SceneTreeDock buttons\u2019 appearance (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118192\">GH-118192<\/a>).<\/li>\n<li>Make right-clicking on unfocused scene tabs possible (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112919\">GH-112919<\/a>).<\/li>\n<li>Optimize tree size computation and the scene tree dock filter (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/110759\">GH-110759<\/a>).<\/li>\n<li>Reorganize Output dock (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112690\">GH-112690<\/a>).<\/li>\n<li>Revamp autoload creation (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/91124\">GH-91124<\/a>).<\/li>\n<li>Show custom class name in the remote inspector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/108208\">GH-108208<\/a>).<\/li>\n<li>Stop autocomplete from eating words by default (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117464\">GH-117464<\/a>).<\/li>\n<li>Support folding, groups, and subgroups in remote scene inspector (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117357\">GH-117357<\/a>).<\/li>\n<li>Support navigating to the script in list (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112796\">GH-112796<\/a>).<\/li>\n<li>Take custom type of parent scripts into account when dropping <code class=\"language-plaintext highlighter-rouge\">onready<\/code> variables (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115158\">GH-115158<\/a>).<\/li>\n<\/ul>\n<h3 id=\"gdextension\">GDExtension<\/h3>\n<p>GDextensions can now be viewed in the editor directly. Thanks to <a href=\"https:\/\/github.com\/aaronfranke\">Aaron Franke<\/a> in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118063\">GH-118063<\/a>, users are now able to view any of their installed GDExtensions in a new project setting tab. As an added convenience, users are capable of reloading the extension directly from this window, which should even further streamline workflows.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-beta-1\/gdextension-preview.webp\" alt=\"Showcase of an installed GDExtension in the project settings\" \/><\/p>\n<p>And more:<\/p>\n<ul>\n<li>Add <code class=\"language-plaintext highlighter-rouge\">Variant::get_type_by_name<\/code> to GDExtension Interface (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117160\">GH-117160<\/a>).<\/li>\n<\/ul>\n<h3 id=\"gdscript\">GDScript<\/h3>\n<p><a href=\"https:\/\/github.com\/dalexeev\">Danil Alexeev<\/a> tackled a long-time annoyance of non-exported enums reverting to integers during remote play sessions. Thanks to <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115705\">GH-115705<\/a>, metadata is now fully retained for all declared variables, regardless of their export status.<\/p>\n<table>\n<thead>\n<tr>\n<th>Before<\/th>\n<th>After<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/remote-inspector-before.webp\" alt=\"Remote Tree Inspector enum before\" \/><\/td>\n<td><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/remote-inspector-after.webp\" alt=\"Remote Tree Inspector enum after\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>And more:<\/p>\n<ul>\n<li>GDScript: LSP: Calculate simple string insertions on the server-side (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117710\">GH-117710<\/a>).<\/li>\n<\/ul>\n<h3 id=\"gui\">GUI<\/h3>\n<p>One of the most long-awaited features in Godot\u2019s GUI system was to be able to translate, rotate, or scale a Control node without it affecting the rest of the container. Previously, Godot\u2019s various Container nodes applied the position, rotation, and scale to their children, which meant losing any changes made to the children\u2019s transform when the container is sorted again (which occurs when children are added, removed, or moved in the scene tree). The new transform offset properties implemented by <a href=\"https:\/\/github.com\/timoschwarzer\">Timo Schwarzer<\/a> in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/87081\">GH-87081<\/a> aimed to address this limitation in a self-contained manner, similar to the <code class=\"language-plaintext highlighter-rouge\">transform<\/code> property in <abbr title=\"Cascading Style Sheets\">CSS<\/abbr>.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/render-transform-properties.webp\" alt=\"Render transform properties in the inspector\" \/><\/p>\n<p>You can choose whether the transform offset affects mouse input. By default, the transform offset is purely visual, which means there is no risk of buttons losing their hover status after being transformed. Controls with a transform offset applied show their original bounding box with a gray dotted rectangle:<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Gray selection box for Controls with a render transform set\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/render-transform-selection-box.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>Another longstanding usability quirk was popups with dozens of options to choose from lacking any proper filtering beyond a rudamentary incremental search that lacked visual feedback. <a href=\"https:\/\/github.com\/warriormaster12\">Alexander Streng<\/a> added search bars to <code class=\"language-plaintext highlighter-rouge\">PopupMenu<\/code> in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114236\">GH-114236<\/a>, making searching through massive lists more dicoverable, consequently improving usability. This feature is available in any <code class=\"language-plaintext highlighter-rouge\">PopupMenu<\/code> node, which means it can also be used in projects such as <a href=\"https:\/\/docs.godotengine.org\/en\/latest\/tutorials\/ui\/creating_applications.html\">non-game applications<\/a>.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Search bar in PopupMenu\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/popupmenu-search-bar.webm?1\" type=\"video\/webm\" \/>\n<\/video>\n<p><a href=\"https:\/\/github.com\/vaner-org\">vaner<\/a> spear-headed <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112993\">GH-112993<\/a> in order to improve the overall usability and intuitiveness of <code class=\"language-plaintext highlighter-rouge\">Tree<\/code> drag-and-drop functionality. Now when performing a drag-and-drop operation, there will be an always-present vertical indicator showing the potential parental chain, leveraging a standalone <code class=\"language-plaintext highlighter-rouge\">CanvasItem<\/code> to prevent StyleBox occlusion.<\/p>\n<table>\n<thead>\n<tr>\n<th>Old<\/th>\n<th>New<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/tree-old.webp\" alt=\"Original drag-and-drop behavior\" \/><\/td>\n<td><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/tree-new.webp\" alt=\"Updated drag-and-drop behavior\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>What\u2019s more, this operation will now consider the x-position of the cursor while determining a to-be parent when in indent space (leftmost, empty space), whereas item space largely retains current behavior. This implementation mirrors what one would commonly find in vector design software.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Showcase of new x-position logic in indent space of a sample tree\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/tree-showcase.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>Malcolm closes out this section with <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112617\">GH-112617<\/a>, enabling <code class=\"language-plaintext highlighter-rouge\">RichTextLabel<\/code> images, allowing <code class=\"language-plaintext highlighter-rouge\">width<\/code> and <code class=\"language-plaintext highlighter-rouge\">height<\/code> to specify <a href=\"https:\/\/en.wikipedia.org\/wiki\/Em_(typography)\"><code class=\"language-plaintext highlighter-rouge\">em<\/code><\/a> for their scaling. This would result in the following text\u2026<\/p>\n<div class=\"language-plaintext highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code>Do you have any [img height=1em]coin.png[\/img] coins?\n...I said, [font_size=50]DO YOU HAVE ANY [img height=1em]coin.png[\/img] COINS??[\/font_size]\n<\/code><\/pre><\/div><\/div>\n<p>\u2026displaying like this:<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/richtextlabel-relative-scale.webp\" alt=\"Showcase of the new `em` scaling for `RichTextLabel`\" \/><\/p>\n<p>And more:<\/p>\n<ul>\n<li>Add <code class=\"language-plaintext highlighter-rouge\">custom_maximum_size<\/code> property to <code class=\"language-plaintext highlighter-rouge\">Control<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116640\">GH-116640<\/a>).<\/li>\n<li>Add accessibility region role for landmark navigation (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114449\">GH-114449<\/a>).<\/li>\n<li>Add conic gradient to GradientTexture2D (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115394\">GH-115394<\/a>).<\/li>\n<li>Add script editor <code class=\"language-plaintext highlighter-rouge\">join_lines<\/code> keybind (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111547\">GH-111547<\/a>).<\/li>\n<li>Add triple-click paragraph selection to RichTextLabel (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116868\">GH-116868<\/a>).<\/li>\n<li>Improve the table in <code class=\"language-plaintext highlighter-rouge\">RichTextLabel<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116277\">GH-116277<\/a>).<\/li>\n<li>Support tiling <code class=\"language-plaintext highlighter-rouge\">AtlasTexture<\/code> in <code class=\"language-plaintext highlighter-rouge\">TextureRect<\/code> (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113808\">GH-113808<\/a>).<\/li>\n<\/ul>\n<h3 id=\"input\">Input<\/h3>\n<p>One of the earliest additions to the 4.7 development cycle came from <a href=\"https:\/\/github.com\/Kazox61\">Kazox61<\/a> in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/110933\">GH-110933<\/a>, delivering a built-in solution for handling touchscreen \u201cjoystick\u201d inputs with <code class=\"language-plaintext highlighter-rouge\">VirtualJoystick<\/code>.<\/p>\n<p><strong>JOYSTICK_FIXED<\/strong>: The joystick doesn\u2019t move.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Virtual joystick: fixed\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/virtual-joystick-fixed.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p><strong>JOYSTICK_DYNAMIC<\/strong>: The joystick is moved to the initial touch position as long as it\u2019s within the joystick\u2019s bounds. It moves back to its original position when released.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Virtual joystick: dynamic\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/virtual-joystick-dynamic.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p><strong>JOYSTICK_FOLLOWING<\/strong>: The joystick is moved to the initial touch position as long as it\u2019s within the joystick\u2019s bounds. It will follow the touch input if it goes outside the joystick\u2019s range. It moves back to its original position when released.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Virtual joystick: following\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/virtual-joystick-follow.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>And more:<\/p>\n<ul>\n<li>Add device orientation change signal to DisplayServer (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115434\">GH-115434<\/a>).<\/li>\n<li>Add haptic feedback on long-press right-click in the editor (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117198\">GH-117198<\/a>).<\/li>\n<li>Add project setting to ignore joypad events if the app is unfocused (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115119\">GH-115119<\/a>).<\/li>\n<li>Add support for joypad motion sensors (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111679\">GH-111679<\/a>).<\/li>\n<li>Add support for SDL3 joystick input driver for iOS (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114316\">GH-114316<\/a>).<\/li>\n<li>Wayland: Implement touch support (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/113886\">GH-113886<\/a>).<\/li>\n<\/ul>\n<h3 id=\"physics\">Physics<\/h3>\n<p><a href=\"https:\/\/github.com\/szunami\">Szunami<\/a> gives 2D some love with <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/104736\">GH-104736<\/a>, adding one-way collision direction for <code class=\"language-plaintext highlighter-rouge\">CollisionShape2D<\/code>. While they\u2019ve always technically supported one-way collisions, they\u2019ve been hardcoded to \u201cup\u201d. This has now been changed to resolve across <em>all<\/em> directions, ensuring that more complex logic like rotating platforms are properly accounted for.<\/p>\n<h4 id=\"one-way-collisions-old-behavior\">One-way collisions: old behavior<\/h4>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"One-way collisions; old behavior\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-beta-1\/one-way-collision-old.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<h4 id=\"one-way-collisions-new-behavior\">One-way collisions: new behavior<\/h4>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"One-way collisions; new behavior\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-beta-1\/one-way-collision-new.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<h3 id=\"platforms\">Platforms<\/h3>\n<h4 id=\"android\">Android<\/h4>\n<p>Thanks to the work of <a href=\"https:\/\/github.com\/m4gr3d\">Fredia Huya-Kouadio<\/a> in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114505\">GH-114505<\/a>, Godot now has the ability to run a project and move it to a small window pinned to one of the screen corners. This relies on Android\u2019s native support for picture-in-picture (PiP) display. For example, YouTube on Android uses this functionality to show the currently played video in a corner of the screen.<\/p>\n<div class=\"card card-warning\" style=\"margin-top: 1em;\">\n<p>Applications cannot be interacted with during picture-in-picture mode, so this feature is most useful for applications and games that have sections that don\u2019t require real-time input (idle games, autobattlers, etc.).<\/p>\n<\/div>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Showcase of picture-in-picture functionality on the game Rift Riff\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/android-picture-in-picture.webm?1\" type=\"video\/webm\" \/>\n<\/video>\n<p><a href=\"https:\/\/github.com\/syntaxerror247\">Anish Kumar<\/a> in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117109\">GH-117109<\/a> brought the ability to switch to portrait mode while in the script editor on Android devices. This makes it easier to view code while you\u2019re typing on a virtual keyboard. Note that distraction-free mode must be <strong>enabled<\/strong> for this to be possible (it can be toggled). This restriction has to be in place, since the side docks take a lot of horizontal space and the script editor in portrait mode wouldn\u2019t be practical with the side docks visible.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"Script editor used in portrait mode on Android after enabling distraction-free mode\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-3\/android-script-editor-orientation-change.webm?1\" type=\"video\/webm\" \/>\n<\/video>\n<p>Anish continues with <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118417\">GH-118417<\/a>, bringing support to resize and reposition an embedded game window to Android. The aspect ratio is locked by default, but can be switched to \u201cfree\u201d mode using an on-screen checkbox (demonstrated below).<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"An embedded game window being resized and repositioned in the Android editor\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-beta-1\/android-embedded-window.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<p>And more:<\/p>\n<ul>\n<li>Add support for plugins gradle platform dependencies (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115888\">GH-115888<\/a>).<\/li>\n<li>Allow implementing java interfaces from GDScript (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115498\">GH-115498<\/a>).<\/li>\n<li>Enable native file picker support on all devices (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115257\">GH-115257<\/a>).<\/li>\n<li>Export: Add export options to customize splash screen (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114671\">GH-114671<\/a>).<\/li>\n<\/ul>\n<h4 id=\"windows\">Windows<\/h4>\n<p>We\u2019re about to get into the weeds of HDR, so we need to highlight the bullet we dodged thanks to the efforts of <a href=\"https:\/\/github.com\/bruvzg\">bruvzg<\/a>. To comically oversimplify: the cost of HDR output on Windows would\u2019ve been exorbant, unless we managed to integrate support for the C++\/WinRT interface. However, this integration would\u2019ve only been feasible in C++20, whereas the Godot codebase uses C++17 at time of writing. So similar to what we\u2019ve done for our metal renderer, bruvzg created <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116349\">GH-116349<\/a> to isolate the relevant Windows code to C++20, while keeping the rest of the codebase untouched. Long story short: it worked like a charm!<\/p>\n<p>And more:<\/p>\n<ul>\n<li>Use OneCore\/WinRT emoji picker when available (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/116351\">GH-116351<\/a>).<\/li>\n<\/ul>\n<h3 id=\"rendering-and-shaders\">Rendering and shaders<\/h3>\n<p>Perhaps the posterchild for 4.7 overall: <abbr title=\"High dynamic range\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/High_dynamic_range\">HDR<\/a><\/abbr> support. This was not something highlighted in a single development snapshot; rather, of every 4.7 blog post to date, all but one have showcased incremental support for HDR! Windows support in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/94496\">GH-94496<\/a> by <a href=\"https:\/\/github.com\/DarkKilauea\">Josh Jones<\/a>, <a href=\"https:\/\/github.com\/alvinhochun\">Alvin Wong<\/a>, and <a href=\"https:\/\/github.com\/allenwp\">Allen Pestaluky<\/a>; Apple support in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/106814\">GH-106814<\/a> by <a href=\"https:\/\/github.com\/stuartcarnie\">Stuart Carnie<\/a>; and Linux and BSD support in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/102987\">GH-102987<\/a> by <a href=\"https:\/\/github.com\/ArchercatNEO\">ArchercatNEO<\/a>.<\/p>\n<p>There\u2019s <em>so<\/em> much to cover in fact, that it would warrant a wholly dedicated blog post. So in case you missed it, we would <strong>strongly<\/strong> encourage checking out <a href=\"https:\/\/godotengine.org\/article\/hdr-output-arrives-in-godot-4-7\/\">yesterday\u2019s article highlighting HDR output<\/a>. The following comparison screenshots are lifted from that article directly.<\/p>\n<div class=\"card card-info\" style=\"margin-top: 1em;\">\n<p>These HDR images are best viewed on an HDR-compatible device and browser with brightness set to 50%. As of writing, Firefox does not support HDR images.<\/p>\n<\/div>\n<h4 id=\"standard-dynamic-range-sdr\">Standard dynamic range (SDR)<\/h4>\n<p><img alt=\"SDR screenshot of demo scene\" src=\"\/storage\/blog\/hdr-output-arrives-in-godot-4-7\/screenshot-sdr.avif\" class=\"no-filter\" \/><\/p>\n<h4 id=\"high-dynamic-range-hdr\">High dynamic range (HDR)<\/h4>\n<p><img alt=\"HDR screenshot of demo scene\" src=\"\/storage\/blog\/hdr-output-arrives-in-godot-4-7\/screenshot-hdr.avif\" class=\"no-filter\" \/><\/p>\n<p><a href=\"https:\/\/github.com\/Fahien\">Antonio Caggiano<\/a> laid the groundwork for raytracing with Vulkan in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/99119\">GH-99119<\/a>. The complexity involved with bringing this to life goes well beyond the scope of this blog post (and well over my head for good measure), but users of all skill levels can see the benefits firsthand in his <a href=\"https:\/\/github.com\/Fahien\/godot-raytracing-gdscript-demo\">demo project<\/a> showcasing this new functionality via GDScript.<\/p>\n<p><a href=\"https:\/\/github.com\/ColinSORourke\">Colin O\u2019Rourke<\/a> implemented a long-awaited <code class=\"language-plaintext highlighter-rouge\">DrawableTexture<\/code> implementation in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/105701\">GH-105701<\/a>. With this new class, users now have a simple API layer to abstract away all the technical noise and give users of all skill levels a convenient way to draw on a texture directly.<\/p>\n<video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" title=\"DrawableTexture example\">\n<source src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-1\/drawable-texture-example.mp4?1\" type=\"video\/mp4\" \/>\n<\/video>\n<div class=\"card card-info\" style=\"margin-top: 1em;\">\n<p>The above clip footage was taken from <a href=\"https:\/\/github.com\/BastiaanOlij\/drawable-textures-demo\">this<\/a> demo project by <a href=\"https:\/\/github.com\/BastiaanOlij\">Bastiaan Olij<\/a>.<\/p>\n<\/div>\n<p><a href=\"https:\/\/github.com\/Calinou\">Hugo Locurcio<\/a> has been refining <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/79731\">GH-79731<\/a> over the course of nearly three years to bring one of the most anticipated integrations for our rendering system: nearest-neighbor scaling for 3D viewports. This will ensure that 3D titles with pixel-art aesthetics or lower resolution scaling will still look crisp without any compromise to performance:<\/p>\n<h4 id=\"bilinear\">Bilinear<\/h4>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/rendering-comparison-bilinear.webp\" alt=\"A sample scene with bilinear filtering, results are blurry\" \/><\/p>\n<h4 id=\"nearest-new-behavior\">Nearest (new behavior)<\/h4>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-4\/rendering-comparison-nearest.webp\" alt=\"A sample scene with nearest-neighbor filtering, results are crisp\" \/><\/p>\n<p><a href=\"https:\/\/github.com\/CookieBadger\">Emil Dobetsberger<\/a>\u2019s work in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/108219\">GH-108219<\/a> delivered rectangular area light sources. By leveraging the new <code class=\"language-plaintext highlighter-rouge\">AreaLight3D<\/code>, it\u2019s now possible to render real-time light from a rectangle in 3D space.<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/rectangular-area-light-scource-1.webp\" alt=\"Showcase of rectangular light sources 1\" \/><\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/rectangular-area-light-scource-2.webp\" alt=\"Showcase of rectangular light sources 2\" \/><\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/rectangular-area-light-scource-3.webp\" alt=\"Showcase of rectangular light sources 3\" \/><\/p>\n<p><a href=\"https:\/\/github.com\/Chaosus\">Yuri Rubinsky<\/a> rounds us off with a shader highlight with his work in <a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117726\">GH-117726<\/a> bringing inline previews. This is a C++ implementation and improvement of <a href=\"https:\/\/github.com\/cashew-olddew\/godot-shader-previewer\">Godot Shader Previewer<\/a>, a popular addon written in GDScript by <a href=\"https:\/\/github.com\/cashew-olddew\">Cashew OldDew<\/a>. Much like the addon before it, this aims to reduce the amount of guesswork when constucting text shaders, as now one can readily see the resulting effects within the text editor itself:<\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/shader-inline-preview-1.webp\" alt=\"Showcase of the text shader inline preview on a simple selection\" \/><\/p>\n<p><img src=\"\/storage\/blog\/dev-snapshot-godot-4-7-dev-5\/shader-inline-preview-2.webp\" alt=\"Showcase of the text shader inline preview on a more specialized selection\" \/> \u2013&gt;<\/p>\n<p>And more:<\/p>\n<ul>\n<li>Change embedded window options to use three stacked dots and add HDR info (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118079\">GH-118079<\/a>).<\/li>\n<li>Refactor raytracing pipelines (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/118044\">GH-118044<\/a>).<\/li>\n<li>Rendering: Clearcoat improvements and fixes (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/111464\">GH-111464<\/a>).<\/li>\n<li>Rendering: Give every pass its own unique environment uniform buffer (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/115177\">GH-115177<\/a>).<\/li>\n<li>Rendering: Metal: Refactor; fix dynamic uniforms; acyclic render graph support (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114484\">GH-114484<\/a>).<\/li>\n<li>Rendering: Vulkan: Update all components to Vulkan SDK 1.4.335.0 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/114075\">GH-114075<\/a>).<\/li>\n<li>Rendering: Editor additions for MipMaps and rd_textures (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/109004\">GH-109004<\/a>).<\/li>\n<li>Rendering: Add fast path to Polygon2D (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/117334\">GH-117334<\/a>).<\/li>\n<li>Rendering: Add scale 3D and rotation 3D in particle process (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/112447\">GH-112447<\/a>).<\/li>\n<li>Particles: Fix particles moving when timescale is 0 (<a href=\"https:\/\/github.com\/godotengine\/godot\/pull\/109911\">GH-109911<\/a>).<\/li>\n<\/ul>\n<h2 id=\"changelog\">Changelog<\/h2>\n<p><strong>309 contributors<\/strong> submitted <strong>1265 fixes<\/strong> since the release of 4.6-stable. See our <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7\"><strong>interactive changelog<\/strong><\/a> for the complete list of changes. You can also review <a href=\"https:\/\/godotengine.github.io\/godot-interactive-changelog\/#4.7-beta1\">changes since the 4.7-dev5 snapshot<\/a>, for a more curated selection of <strong>85 fixes<\/strong> from <strong>47 contributors<\/strong>.<\/p>\n<p>This release is built from commit <a href=\"https:\/\/github.com\/godotengine\/godot\/commit\/1c8cc9e7e2c9a083cf726e74193d3824fb38cda4\"><code class=\"language-plaintext highlighter-rouge\">1c8cc9e7e<\/code><\/a>.<\/p>\n<h2 id=\"downloads\">Downloads<\/h2>\n<div class=\"card card-download\">\n<a class=\"card-download-link\" href=\"\/download\/archive\/4.7-beta1\">\nDownload Godot 4.7 beta1\n<\/a>\n<div class=\"card-download-details\">\n<img class=\"lightbox-ignore\" src=\"\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-1.jpg\" \/>\n<div class=\"card-download-platforms\">\n<div class=\"download-platform platform-linux\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/linux.svg\" title=\"Linux\" alt=\"Linux\" class=\"lightbox-ignore\" \/>\nLinux\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta1&amp;slug=linux.x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary platform-linux\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta1&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-linux\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-macos\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/macos.svg\" title=\"macOS\" alt=\"macOS\" class=\"lightbox-ignore\" \/>\nmacOS\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta1&amp;slug=macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary platform-macos\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta1&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-macos\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<div class=\"download-platform platform-windows\">\n<img width=\"24\" height=\"24\" src=\"\/assets\/images\/platforms\/windows.svg\" title=\"Windows\" alt=\"Windows\" class=\"lightbox-ignore\" \/>\nWindows\n<\/div>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta1&amp;slug=win64.exe.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary platform-windows\">\n<div class=\"download-title\">\nStandard\n<\/div>\n<\/a>\n<a href=\"https:\/\/downloads.godotengine.org\/?version=4.7&amp;flavor=beta1&amp;slug=mono_win64.zip&amp;platform=windows.64\" class=\"btn btn-download btn-download-primary btn-download-primary--mono platform-windows\">\n<div class=\"download-title\">\n.NET\n<\/div>\n<\/a>\n<\/div>\n<\/div>\n<div class=\"card-download-sublinks\">\n<a class=\"card-download-other\" href=\"\/download\/archive\/4.7-beta1\">\nExport templates and other downloads\n<\/a>\n<a class=\"card-download-donate\" href=\"https:\/\/fund.godotengine.org\/\">\nMake a Donation\n<\/a>\n<\/div>\n<\/div>\n<style>\n.thankyou-wrapper {\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\nbackground: rgba(0, 0, 0, 0.85);\ndisplay: flex;\nflex-direction: column;\njustify-content: center;\nalign-items: center;\nz-index: 10;\n}\n.thankyou {\nbackground: var(--base-color);\nbox-shadow: var(--more-shadow);\npadding: 30px;\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\ntext-align: center;\nposition: relative;\nborder-radius: 13px;\n}\n.thankyou-reading {\nfont-size: 16px;\n}\n.thankyou-reading-list {\nfont-size: 16px;\nmargin: 0;\nmargin-left: 48px;\npadding-left: 0;\n}\n.thankyou-donate {\nmargin-bottom: 24px;\ntext-align: center;\n}\n.btn.btn-donate {\nbackground-color: var(--primary-color);\ncolor: hsla(0, 0%, 100%, 0.9);\nfont-size: 22px;\nfont-weight: 600;\nmargin-bottom: 26px;\n}\n.thankyou h2 {\ntext-shadow: var(--base-shadow);\nfont-size: 36px;\nfont-weight: 800;\nmargin-bottom: 12px;\n}\n.thankyou h2 .anchored-link {\n\/* Hiding the anchored text automatically added on blogposts *\/\ndisplay: none !important;\n}\n.thankyou p {\nmax-width: 620px;\nfont-size: 25px;\n}\n@media (max-width: 768px) {\n.thankyou-wrapper {\ndisplay: block;\n}\n.thankyou {\nposition: absolute;\ntop: 0;\nleft: 0;\nright: 0;\nbottom: 0;\noverflow: scroll;\npadding: 30px 40px 18px 40px;\n}\n.thankyou-reading-list {\nmargin-left: 24px;\n}\n.btn-close-thankyou-popup {\nwidth: 48px;\nheight: 48px;\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n}\n}\n.btn-close-thankyou-popup {\ncursor: pointer;\nposition: absolute;\ntop: 12px;\nright: 12px;\n}\n.btn-close-thankyou-popup img {\nbackground: transparent !important; \/* for overwriting the style in the blogposts img *\/\n}\n@media (prefers-color-scheme: light) {\n.btn-close-thankyou-popup img {\nfilter: invert(1);\nopacity: 0.75;\n}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded', () => {\nconst thankYouWrapper = document.getElementById('thank-you');\n\/\/ Close itself, when clicked outside of the popup area.\nthankYouWrapper.addEventListener('click', (e) => {\nif (e.target === thankYouWrapper) {\nthankYouWrapper.style.display = 'none';\n}\n});\n\/\/ Close with a close button.\nconst thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');\nthankYouBackButton.addEventListener('click', () => {\nthankYouWrapper.style.display = 'none';\n});\n\/\/ Open from the main download buttons.\nconst downloadButtons = document.querySelectorAll('.btn-download, .download-button');\ndownloadButtons.forEach((it) => {\nif (it.dataset?.external === \"yes\") {\nreturn;\n}\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\ndocument.querySelector('.btn.btn-donate').focus();\n});\n});\n\/\/ Open from the all downloads list.\nconst downloadLinks = document.querySelectorAll('.download-link');\ndownloadLinks.forEach((it) => {\nit.addEventListener('click', () => {\nthankYouWrapper.style.display = '';\n});\n});\n\/\/ Close the dialog when the user presses the escape key.\ndocument.addEventListener('keydown', (e) => {\nif (e.key === 'Escape') {\nthankYouWrapper.style.display = 'none';\n}\n});\n});\n<\/script>\n<div class=\"thankyou-wrapper\" id=\"thank-you\" style=\"display: none;\">\n<div class=\"thankyou\">\n<h2>Godot is downloading...<\/h2>\n<p class=\"thankyou-donate\">\nGodot exists thanks to donations from people like you. Help us continue our work:\n<\/p>\n<a href=\"https:\/\/fund.godotengine.org\" class=\"btn btn-donate\">\nMake a Donation\n<\/a>\n<div class=\"btn-close-thankyou-popup\">\n<img src=\"\/assets\/icons\/cross.svg\" width=\"24\" height=\"24\" alt=\"Close this popup\" class=\"lightbox-ignore\" \/>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Standard build<\/strong> includes support for GDScript and GDExtension.<\/p>\n<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>\n<div class=\"card card-warning\">\n<p>\nWhile 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.\n<\/p>\n<\/div>\n<h2 id=\"known-issues\">Known issues<\/h2>\n<p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. 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.7. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.<\/p>\n<p>With every release, we accept that there are going to be various issues which have already been reported but haven\u2019t 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>\n<ul>\n<li>New AssetStore API fails to load if incorrect url is cached (<a href=\"https:\/\/github.com\/godotengine\/godot\/issues\/118755\">GH-118755<\/a>).<\/li>\n<li>System an hard freeze when opening a project with Vulkan as renderer (<a href=\"https:\/\/github.com\/godotengine\/godot\/issues\/116414\">GH-116414<\/a>).<\/li>\n<li>Android: Crash on startup when <code class=\"language-plaintext highlighter-rouge\">VisualShader<\/code> has <code class=\"language-plaintext highlighter-rouge\">vertex_lighting<\/code> enabled (<a href=\"https:\/\/github.com\/godotengine\/godot\/issues\/116990\">GH-116990<\/a>).<\/li>\n<\/ul>\n<h2 id=\"bug-reports\">Bug reports<\/h2>\n<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>\n<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>\n<h2 id=\"support\">Support<\/h2>\n<p>Godot is a non-profit, open-source game engine developed by hundreds of contributors in 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>\n<p>If you\u2019d 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>\n<p><a class=\"btn\" href=\"https:\/\/fund.godotengine.org\/\">Donate now<\/a><\/p>","category":"Pre-release","guid":"https:\/\/godotengine.org\/article\/dev-snapshot-godot-4-7-beta-1\/","pubDate":"Fri, 24 Apr 2026 12:00:00 +0000","image":"https:\/\/godotengine.org\/storage\/blog\/covers\/dev-snapshot-godot-4-7-beta-1.jpg"}]}}