Skip to main content
Release date: August 19, 2026 The XBOX Godot sample is a public, source-only reference that shows how to build a Godot extension that integrates the Microsoft GDK, XBOX services, and PlayFab, so you can build your title for XBOX on PC. This article summarizes the changes in the v0.3.0 - Compatibility + Community Fixes release. For a complete list of commits, see the full changelog for v0.3.0 on GitHub. To get the release, see v0.3.0 on GitHub.
This release contains a breaking change. Every script-visible type in the godot_gdk addon was renamed, so GDKUser is now XboxUser and GDKResult is now XboxResult, and no deprecated aliases are provided. If you are upgrading an existing project, see Breaking change: GDK addon type rename.

Key highlights

  • Breaking type rename for broader engine compatibility. Script-visible types were renamed, such as GDKUser to XboxUser, so the addon can be dropped into Godot forks that provide an XBOX Series X|S console platform layer without colliding with the types those forks already register.
  • Richer PlayFab Party voice and chat. Party chat indicators, voice controls, text-to-speech, and network diagnostics were added to the PlayFab track.
  • More complete XUser coverage. The missing XUser API wrappers were implemented, which enables XR-112 conformance work.
  • C# export fixes. An “XBOX on PC” export now ships the C# assemblies, and the executable and .pck are delegated to Godot’s own Windows export path.
  • Community-reported fixes. Resolved issues around game-save quota queries, release builds linking the debug godot-cpp, and the GDK Tutorial 3 sample.

Breaking change: GDK addon type rename

In v0.3.0, every script-visible type in the godot_gdk addon was given a new name: GDKUser is now XboxUser, GDKResult is now XboxResult, and so on. No deprecated GDK* aliases are provided, so any project that names these types directly must be updated before it will load.

What changed

  • GDScript types are renamed, for example GDKUser to XboxUser, GDKResult to XboxResult, and GDKAchievement to XboxAchievement.
  • The C# facade moved with them: namespace GodotGdk becomes GodotXbox, and the static entry-point class Gdk is renamed to match, as shown below.
  • The bootstrap autoload is renamed from GDKBootstrap to XboxBootstrap.
  • The MSIXVC packaging forwarder environment variables are renamed from GDKPKG_* to XBOXPKG_*.

Why it changed

Godot registers extension classes in a single flat ClassDB namespace, so two providers that expose the same type name cannot coexist in one project. Godot forks that add XBOX Series X|S console support supply their own platform layer, exports, and types, and the GDK prefix collided with names those forks already use. Renaming the addon’s types keeps them distinct so it can be dropped into such a fork. The same addon build runs on PC and on console. There is no separate console compilation, preset, or conditional define, and godot_gdk.gdextension continues to declare only the windows.*.x86_64 libraries.

What did not change

  • The engine singleton is still registered as GDK. Calls such as GDK.initialize() and GDK.users.add_default_user_async() keep working unchanged.
  • The addons/godot_gdk folder, the godot_gdk.gdextension entry point, and the gdk/runtime/* and gdk/packaging/* Project Settings.
  • The PlayFab* and GameInput* types. The rename is scoped to the GDK addon.
  • The gdk export feature tag, the “XBOX on PC” export platform, and the GodotGdkCSharp project and assembly name.
The ClassDB class name and the singleton name are now different strings. The singleton is still registered as GDK, but the class behind it is not, so a check such as is_class("GDK") no longer matches. Compare against the renamed class instead:

How to migrate

The sample ships a codemod alongside the migration guide. Commit your project first, because the codemod rewrites files in place.
The codemod deliberately does not rewrite a bare GDK token, because in most projects that token is the singleton, which must not change. It reports the ambiguous occurrences it finds so you can review them by hand. For the full old-to-new mapping tables for GDScript and C#, see Migrating to v0.3.0 in the sample repository.

Notable changes

New features

  • Party chat indicators, voice controls, text-to-speech, and network diagnostics in the godot_playfab addon.
  • The missing XUser API wrappers, which enable XR-112 conformance work.
  • A Project Setting that controls the engine singleton name.

Improvements

  • Renamed the script-visible GDK addon types, for example GDKUser to XboxUser, with a migration guide and codemod. This is a breaking change.
  • Improved README discoverability with a quick start, badges, and copy cleanup, plus blog and Discord links.
  • Cleaned up documentation heading structure and fixed broken anchors.

Fixes

  • An “XBOX on PC” export now ships the C# assemblies.
  • The “XBOX on PC” export delegates the executable and .pck to Godot’s Windows export path.
  • The game-save quota query now runs off the main thread.
  • Release builds no longer silently link the debug godot-cpp.
  • Dropped the Title Storage upload from the GDK Tutorial 3 sample.

Engineering and CI

  • PR gates are skipped for documentation-only changes.
Last modified on August 20, 2026