Skip to main content
On XBOX consoles, the GameInput runtime is part of the Microsoft Game Development Kit (GDK). It’s included in the Game OS file (GameOs.xvd) from the GDK that’s bundled with your title. The GameInput API versions that your game can use at runtime depend on the GDK release, the GameInput header and library that you compile with, and whether you deploy a GameInput runtime with your game. There are two ways to use a newer GameInput API version on XBOX:
  • Update the GDK. Each GDK release includes a GameInput runtime that supports a specific set of API versions.
  • Sideload the GameInput runtime. Deploy the GameInput runtime from the Microsoft.GameInput NuGet package with your game to use a newer API version than your GDK supports.
In both cases, you must compile with the headers and library from the NuGet package to use API v1 or later.

Supported API versions

The following table shows the API versions that are available for each GDK release. The GDK headers and library provide only the v0 API, regardless of the GDK release. The NuGet package isn’t supported with GDK releases earlier than the October 2025 GDK.

Use API v1 or later

To use API v1 or later, add the Microsoft.GameInput NuGet package to your project, and compile and link with its headers and GameInput.lib instead of the ones in the GDK. The major version of the NuGet package matches the highest API version that its headers define. For example, the 4.x package includes the v4 API. For more information, see GameInput for PC and console with NuGet. You don’t need to install anything else on the console. If you only link with GameInput.lib from the NuGet package, your game uses the GameInput runtime that’s included with the GDK, and the API versions that the runtime supports are limited by the GDK release, as shown in the Supported API versions table.

Use API v4 with an earlier GDK

To use API v4 with a GDK release from the October 2025 GDK up to, but not including, the October 2026 GDK, sideload the GameInput runtime:
  1. Add version 4.0 or later of the Microsoft.GameInput NuGet package to your project, and compile and link with its headers and GameInput.lib.
  2. Deploy GameInputRedist.dll from the native\bin\xbox\ directory of the package in the same directory as your game’s executable.
Linking with GameInput.lib from the NuGet package isn’t enough by itself. Without the sideloaded runtime, your game uses the runtime from the GDK, which doesn’t support API v4 before the October 2026 GDK. In that case, requests for the v4 API fail with E_NOINTERFACE, and API versions v0 through v3 continue to work.
The NuGet package contains separate copies of GameInputRedist.dll for PC and XBOX. Deploy only the copy from native\bin\xbox\ with your XBOX game. For more information, see GameInput sideloading.

How the runtime is chosen

Sideloading the GameInput runtime is supported on XBOX consoles as well as on PC. On XBOX, when your game creates GameInput for the first time, GameInput.lib from the NuGet package compares the GameInput runtime in the Game OS that’s bundled with your title with the sideloaded runtime, if one is deployed, and uses the runtime that has the higher version. As a result:
  • A sideloaded runtime that’s newer than the GDK runtime makes newer API versions and fixes available to your game.
  • When your game moves to a GDK release that includes a newer runtime than the sideloaded one, your game uses the GDK runtime. You can keep deploying the sideloaded runtime, or remove it when it’s no longer newer than the GDK runtime.
The PC-specific sideloading limitations, such as those for background input and input focus, don’t apply on XBOX consoles. For more information about sideloading on both platforms, see GameInput sideloading.

Check which API version is available

If your game requests an API version that the runtime doesn’t support, GameInput fails with E_NOINTERFACE. This applies to both GameInputCreate and QueryInterface. If your game can run without the newest API version, check for this error and fall back to the features of an earlier version.
To use more than one API version in your game, such as v0 code together with v4 code, see Using multiple GameInput API versions in one application.

See also

GameInput for PC and console with NuGet
GameInput sideloading
GameInput API versioning
Using multiple GameInput API versions in one application
GameInputInitialize
Last modified on November 5, 2026