GameMaker Studio 2 Version 2.2.4 Out Now!


2.2.4 introduces a big update of the build toolchain to match the requirements of Android 10 and also macOS/iOS/tvOS following Apple's recent announcements - please update to this version if you're using macOS Catalina. IAP support has been greatly updated - including subscriptions support and receipt verification functionality! Plus, there has been another big push on making HTML5 games work more closely to how they do on other platforms. There have also been some changes to how and when files are created and a clean-up of some redundant game options, which should result in less confusion when working on your projects.

Please be aware there is a change to licensing, so GMS2 will say your licence format is invalid the first time you start the IDE. Simply okay this prompt and log-in again to re-validate your licence. You should only see this once.


  • Updated the Google extension and created new Amazon IAPs and Apple IAPs extensions - you now need to use these for all IAP functionality (these won't work with older runtimes)
  • Added support for subscriptions on all of these platforms
  • Added support for communication with external payment verification servers (note that Amazon requires you to use your own web server for verifying all IAPs)
  • Added support for local verification of receipts on some stores (not Amazon and not for any subscriptions - all stores require a custom web server for subscriptions)
  • Note that whilst verification (local or remote) is technically optional we would recommend you always use this!
  • Removed all functionality from the old iap_...() functions built-in to the runner - these now only debug message to the console that you shouldn't use that function


  • Added support for websockets to allow HTML5 to HTML5 connections and HTML5 to VM/YYC connections
  • Now, you can create your server as a GMS2 desktop app or a NodeJS application and have multiple browsers and other native apps connect to this
  • See the manual for network_create_server() / network_create_server_raw() and network_create_socket() / network_create_socket_ext()


  • This version of GMS2 is compliant with Apple's new "notarization" system - if you're using Catalina then it's important you update to this new version, or you will have issues making/running projects
  • Note: that this change by Apple means when building your games before the package will work on any other machine the packages need to be submitted in Xcode to Apple and notarized
  • Fixed an issue with project files being left open during builds longer than required, which should stop "Too many files open" build errors (all versions of macOS)
  • Changed the "clean" button to confirm if you need elevated permissions in order to clean files in your build folder (e.g., Apple Sign-In information) and then prompt you on the Mac if required


  • General: Changed GPU memory allocation for editor windows, which should result in better performance when moving between workspaces and/or running GMS2 for a while
  • General: Fixed Help > Release Notes / Runtime Release notes link to be https versions, not HTTP, to avoid issues where some users could not see the contents of the notes
  • Extension Editor: Fixed an issue with newline characters in Gradle injection text boxes could cause Android builds to fail in the Mac IDE
  • Game Options: Removed checkboxes to enable Google Play Services and Google Play Licensing on Android. These have worked for a few releases simply via the extension being in the project or not, and so the checkbox was misleading
  • Game Options: UWP now has a "Description" field which is passed into the game binary, stops a submission error from Microsoft
  • Code Editor: Custom code snippets will now override the defaults if you re-use a keybinding, rather than append the duplicate
  • Gamepads: Gamepad functionality is now only bundled-into your app package if you actually use gamepad functions - be aware only having Async events for the pad found/lost events isn't enough to cause pad support to be added
  • Buffers: Fixed a memory leak in buffer_compress() with handling the source buffer
  • Buffers: Fixed various issues where the "usedsize" value of the buffer was not being updated properly or was mistakenly being initialised to the full size of the buffer
  • Buffers: Changed buffer_base64_decode() to return -1 if it can't decode a string, rather than throwing an error




Due to the significant changes in build tools for Android and Apple platforms, it's worth reviewing the Required SDKs page and the associated setup guides

Written by Ross Manthorp
Ross Manthorp handles all things community at the GameMaker team. When he’s not pulling the strings from behind the scenes he’s enjoying Nintendo games, indie games, and getting emotional over cartoons and comics.
Back to blogs