-
Latest Version
-
Operating System
Windows 7 64 / Windows 8 64 / Windows 10 64 / Windows 11
-
User Rating
Click to vote -
Author / Product
-
Filename
GameMaker-Installer-2024.13.0.190.exe
Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.
Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of GameMaker Studio 2024.13.0.190.
For those interested in downloading the most recent release of GameMaker Studio or reading our review, simply click here.
All old versions distributed on our website are completely virus-free and available for download at no cost.
We would love to hear from you
If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!
What's new in this version:
IDE Features And Changes:
UI Layers:
- Building on the flexpanels feature introduced in 2024.11 runtimes, you can now create dedicated UI layers inside the Room Editor and lay out all of your assets in a visual manner
- These layers are global and persist throughout rooms, so you only need to set up a layer once and then you can use it in whichever rooms require it
- The layers scale to fit your game windows and because they are in UI space they will be shown above any black bar areas surrounding your game’s application_surface
- Assets on UI Layers can then be manipulated in-game using the existing runtime functions - and a new function has been added so that you can query if a given asset is present on a UI Layer or not
- Note that the issue above also has downloadable examples for a range of different UIs you might wish to make in your own game (front end with highlighted text, linked pause menus, settings menus, level-select screens, and more), so do check out these sample projects and see how this powerful new feature can be used
Marketplace Integration Has Been Removed:
- Be aware that there is now no way of managing your Marketplace library and instead the Marketplace website will simply allow you to download the files for the assets you have aceess to
- Similarly, uploading new versions of assets you have published is all now done via your web browser, not inside GameMaker itself
- Accordingly, you will find that all relevant menu options are either removed or now simply open the correct URL in your OS’s default browser
Also be aware of these “extra” bits that are to do with Marketplace functionality, but appear elsewhere in the IDE:
- Startup: GM no longer downloads your asset manifest, which stops a Mac IDE crash when a VPN blocks traffic to the Marketplace and causes a “403 Forbidden” error
- Asset Browser: Removed “Add Existing from My Library”
- “Project Health” Checks For Missing Sprites In Your Project:
- Added a dialog to warn when GameMaker finds a Sprite’s source images have been removed on disk, but the Sprite is still in the Asset Browser and part of your project
- This has always appeared as a red X image inside GameMaker, but this quiet warning could lead to confusion where in-game you might not easily realise why a sprite is not being drawn - now, you will be much more clearly advised when opening the project exactly which files are missing
- Note that it’s only Sprites which are checked in this way
Prefab Library:
- You can now enable the new Prefab Library and import our intitial batch of Prefabs into your projects. This feature was previously only avalable in the Beta releases
- Prefabs are complete, standalone projects which help you quickly add more content into your games (like characters, sound packs, or gameplay mechanics/libraries, etc.)
- You can drag prefabs from your library and drop them into the Room/Sequence/Object Editor to link them to your project and use them right away - using this method the source files for the prefab are not added to your project’s own source, but instead are pulled in during builds and added into your game packages
- Or you can right-click the item and duplicate something from a prefab collection into your project - using this method copies the prefab source into your own project’s source and breaks the link to the original prefab, stopping it from using any later versions, but allowing you to now edit the files in your project
- Open the Library inside your project by clicking “Windows > Prefab Library” and this will open the new bottom dock panel
- Prefabs are then downloaded (once) using its Package Manager integration and then added to any of your projects thereafter from your library
- For more on this feature, see
- SVG Support Introduced:
- This release now supports SVG graphics in the IDE and in-game. This feature was previously only available in the Beta releases
- You can now import and preview some SVG images, then this will carry through to your game at build time
- See these issues for details -
Game Options Default Value Changes:
- Currently all product/display names are set as “Created in Gamemaker” which, while true, is not a great name for your game.
- This also leads to issues if you do not update this value in Game Options before releasing your content - for example, GX.Games uploads will fail as the name is already taken
- Now, it’s the initial name of your project that is used when creating your Game Options the first time (so if you later rename your project you should still edit these values yourself)
- Also, be aware that the default value of Windows’ “Interpolate colours between pixels” setting is now ON, so it matches what the manual has long said and is the same as all the other targets
- Code Editor 2 and Feather Fixes:
- This is just a small and not-sorted-at-all sample of the bigger changes or most-commonly-reported issues - there are a lot of other fixes for CE2 listed in the changelist, so please see the link higher up if you need information on a specific issue
- Added a Preference for Ctrl+K to always add comment characters at the start of the top line, not at current selection location
- New files are now highlighted when creating them inside large projects
- Renaming a shader makes it not save until closed and reopened
- Auto-indent no longer adds unwanted indents to user-made snippets containing newlines
- Snippets now convert any tabs in their whitespace according to your Preferences setting for the tab character
- Sticky headers no longer disappear when scrolling up in the editor
- Keyword.Operator colour value in Preferences is now applied correctly in the editor (note that you do need to click “Reset To Defaults” to pick up this fix)
- Can now open GML Visual events from the Inspector panel
- “Automatically reload changed files” setting now works correctly
- Fixed issues with ncorrect syntax highlighting and no autocomplete after converting from visual to GML
- Jumping to a code line via bookmark, ctrl + z, or feather message now accounts for sticky headers
- Bookmark visuals are no longer lost when closing and opening a script or event
- Enabling ligatures no longer makes code wider
- Markdown in tooltips has now been made much more functional
- Stopped GM going unstable when scrolling the events for certain Objects in the Scrolling Shooter template
- Changes are now auto-saved when you switch to another Object
- Important: If you have changed your Code Editor 2 theme Preferences in previous versions, be aware you may encounter
- Startup Changes To When The Matching Runtime Is Required When Newer Runtimes Are Installed Also:
- Going forward, GameMaker will no longer force installing the matching runtime for an IDE release if a newer runtime is active and which matches at least the first 2 parts of the version number, but has a higher third/fourth part
- This means if you install this GameMaker IDE and allow it to get its matching runtime 730, whenever we release a newer 2024.1300.0.731+ runtime you could install that one and set it active instead, then (if you wished) delete runtime 730 manually to save disk space
- Again, to be clear, the newer runtime must be from the same “family” as the IDE version - having a “2024.1400” runtime (or whatever) will still not be accepted by this 2024.1300 IDE and it would download its matching runtime again for you
- Inspector Support For The “Extension Options” Panel In Extensions:
- You can now inspect the options for your extensions
- Only the options have been implemented, as these are the per-project settings that the users of an extension will need to set quickly and easily
- If you’re the developer of an extension, this also means your own values are safely still in the Extension Editor and less likely to be accidentally modified
Bug Reporter Tweaks:
- Made the private attachments section an actual boxed/grouped section, so we can avoid misinterpretations
- If you’re at all unsure how GameMaker sends reports to us, what’s private and what’s public, and how to find the known issues and other information that can help you fix any install issues straight away, please click the link on how to report a bug at the top of the bug-reporter window, as this FAQ has everything you need
- Also now sends the GMRT package version when submitting a GMRT Bug report, rather than sending the GMS2 runtime version
- Note: If you’re seeing ‘Unauthorised’ errors, please sign out and in again inside GameMaker and this will likely fix straight away -
“Default Audio Device” Preference Has Been Removed:
- The preference to pick a default audio device in GameMaker has been removed
- The IDE follows the system’s preference
Debugger Fixes:
- If an event only has a single line of code, “step into function” no longer occasionally steps through multiple instances at once
- “layer” Locals variable now shows its correct value, rather than always showing as 0
- Flexpanel node references can now be expanded as a struct (this will display non-default values only)
- Macros cause the wrong line to be selected when stepping into/over lines which use them
- Hotkeys are now separate plugins:
- Hotkeys/Keyboard Shortcuts are now being delivered as individual plugins
- Your Hotkeys are now also localised to the language you set in GameMaker
- There are no other changes to the user experience and the plugins are still getting installed during GameMaker’s installation process
Other IDE Changes To Be Aware Of:
- Asset Browser: Now immediately shows the expected new assets even if Prefab Library “Duplicate to project” operation or “Add Existing” needed to create a new group to put those assets in
- Building Projects: [GX.games] Fixed that uploading a game to the GXC could fail with an “Incorrect Data” message if your session token had not refreshed correctly - now, GM detects if the token failed to refresh properly and will show a message that you need to sign out and in again to fix
- Code Editor: [Mac/Ubu IDE] Keyboard shortcuts now work reliably when using specific non-Roman language keyboard layouts
- Code Editor: Deprecated the constants for unsupported devices “os_uwp”, “os_psvita”, “os_ps3”, “os_win8native”, “os_winphone”, “os_xboxone”
- Configurations: GPU Texture Compression options are now saved and compiled correctly even when using any config other than “Default”
- Code Editor 1: Now prioritises existing code workspaces when reopening a Script in the Asset Browser, rather than opening a chained window
- Device Manager: [HTML5] Now able to detect new versions of Opera GX
- File Watcher: Deleting a recently-pasted instance which has creation code no longer triggers the watcher
- Game Options: [iOS] Removed the check that icons need an alpha channel, as Apple no longer requires this
- Go To: GM no longer crashes when pressing Ctrl+T if CE2 is also enabled
- Image Editor: Added the current/total frame numbers to the status bar text
- Image Editor: Grid controls no longer allow clickthrough and affecting things underneath
- Inspector: [Fonts] Fixed regenerating fonts from the Inspector
- Inspector: Audio group values are now changed when changing type to “Compressed - Streamed” for multiple assets at once
- Licensing: GM no longer crashes when Legacy dialog attempts to sign-in using a blank password field
- Local Package Integration: Can now create working packages again
- Package Manager: No longer forgets the JavaScript package is installed each time the IDE is restarted
- Project Import: GM no longer crashes when extracting a .zip with non-ascii characters in the filename
- Project Load: Fixed an issue with importing projects could cause GM to lock up, revealed when importing some .yyzs made with 2024.1300 Betas into 2024.11 (note that the fix here is to prevent the situation happening in 2024.13 and future versions - 2024.11 will not be fixed)
- Project Load: If one project fails and then a second one loads correctly, the menu/tool bars disable lots of items
- Project Save: Deleting an Object used as a “following” in a viewport no longer corrupts the project, making it give compile and load errors
- ProjectTool: Exports now take the current IDE’s resource versioning into consideration and so can no longer generate an export which is too new for that IDE to load in again
- Redefine Keys: [Mac IDE] Mapping “Start/End of Document” to Command-Up/Down keys now works
- Room Editor: Asset/Background layers correctly show their content if using a custom skin and there is a Path layer in that room
- Room Editor: Fix to “Don’t show it next time” Preference when deleting a room layer
- Room Editor: GM no longer goes unstable when copy/pasting or duplicating instances and then pressing Ctrl-Z to undo the changes
- Sound Editor: GameMaker doesn’t play an audio file from Audacity
- Source Control: Fixed creating and committing to projects using the word “commit” in the comment
- Sprite Editor: ToggleCollisionTypeOptions() errors can cause the editor window to fail to open
- Stability: GM no longer locks some inputs after installing runtimes from Target Manager if focus was changed to a different IDE window during the install process
- Tile Set Editor: GM no longer crashes when using an external editor to enlarge a sprite used by a tileset
- UI/UX: [Mac IDE] Option+Right Arrow now positions the caret at the end of the current word, not at the start of the next word, so it’s more consistent with macOS norms
Runtime Features And Changes:
- Important: GMRT Users: Please be aware 2024.13 is incompatible with GMRT 0.15.0 and older - you will need to install newer 0.16.0+ packages in Package Manager before any projects will build using GMRT
Android - Change To Minimum Game Options Values During Builds:
- Important: The ‘Compile SDK’ minimum value is now 34 - anything lower than this will cause your build to fail with a suitable message why
- Please do check this is correct when opening/building existing projects created in older IDEs!
- Android - Support For Controlling Gradle Versions And New Graphics Settings:
- The Gradle Version and Gradle Plugin Version required during a build are now editable by you and can be set per-project - there are new text fields in Game Options-> Android-> General for this
- You can now enable Edge-to-Edge display and also allow control of the display layout via new settings in Game Options-> Android-> Graphics
- For more (including a sample project showing this functionality), see
- Building Projects: Add support for calling batch files during a Clean operation
- You can now create your own batch and shell scripts for pre_clean_step.bat (or pre_clean_step.sh) AND post_clean_step.bat (or post_clean_step.sh)
- These pre-post scripts can also be added to your extensions to add similar functionality there
Optimised Calling Of Functions:
- The compiler will now optimise function calls when the script can be resolved directly
- Note that this does require a change in how you need to code your functions which use inheritance and then later get overridden inside child objects (e.g, functionA calls functionB, and in your child object you override functionB before calling functionA) as you now need to add “self.” before functionA calls functionB
- A small project which shows the code changes required before-and-after can be found attached to this comment on
- Also be aware of this other optimisation change:
- Building Projects: [YYC] Calls to any function that returns the current “self”, “other” and “global” are now optimised out
Changes To Noone Being Returned By Some Functions:
- When reviewing the below bug report we found several other places where “noone” was being passed back as the number -4 rather than an instance handle
- In-Game: layer_instance_get_instance() returns “-4” when the element is not an instance, should be an invalid instance handle (“ref instance -4”)
- These have all been changed to return an instance reference of -4
- This may affect any code you have in your projects where you are checking for is_number() or is_handle() rather then looking for “noone”
- Note that most of the locations changed were to do with collision code - where noone is passed back when nothing is found
- Strings for handles to an asset now use the name of the asset rather than the number:
- This is a change primarily because the name is stable between versions, when the ID number is not; however, it is also now much easier to read the strings and know which asset is being referred-to
- handle_parse() Changes/Fixes:
- This function now allows passing in your asset/function names (and) as part of the string rather than typing numbers in
- It also now supports GameMaker’s built-in function names
- For invalid handles, it also now returns either “undefined” or “ref -1”, depending on how/why the handle is invalid
Create Physics Shapes At Runtime:
- sprite_get_convex_hull() can now be used to generate the points of a convex hull for the given sprite
- You supply a sprite index (which can be an asset added through the Asset Browser or a sprite added at runtime) and a precision value, and the function returns an array of reals defining the points of the convex hull
Added Functions For Automating Debug Inputs:
- Added debug_input_record(), debug_input_save(), and debug_input_playback() functions to allow for developer test-automation
- Note that these are only intended for use when testing your own games - not as part of released games
Using keywords as variables:
- It is now possible to use keywords (e.g., “then”, “do”) as variable names
- Please note that both Feather and the Code Editors will still mark those as errors, but the project will build and run with no problems
[GX.games] Added Tilt Support:
- Device gyro functionality is now supported on Android and iOS mobile devices
- Be aware this is a permission you must request from the player, and so the previously Android-only os_request_permission() has now been extended to work on more platforms
- For more (including a sample project showing this functionality), see
- [GX.games] Added Camera Support
- You can now capture the feed from a camera and open it with video_open() in your games
- Same as the change above, be aware this is a permission you must request from the player
- For more (including a sample project showing this functionality), see
- Android & iOS - New Async Event When Layout Changes:
- A new Async System message is sent when the display layout changes
- This event is of type “DisplayLayoutInfo” and contains “safeinsettop”, “safeinsetbottom”, “safeinsetleft” and “safeinsetright” - which return the distance from that edge that it is safe to display in (i.e. where no system UI will cover it)
- On Android only, the event also returns a “boundrects” entry that contains information on rectangles within those areas that are non-functional (Display Cutout)
- If the display layout has a waterfall display, then this is also returned as “waterfallinsetbottom”/”waterfallinsettop”/”waterfallinsetleft”/”waterfallinsetright”
- For more (including a sample project showing this functionality), see the same
tvOS - Better Support For Siri Remotes:
You can now use newer remote versions and also get their gyro inputs - see the following two issues for a little more info:
- Support for Siri Remote 2+
- Support for the motion controls in the Siri Remote
physics_debug() Added:
- Enablesdisables physics errors which were previously being silently ignored
- For more (including a sample project showing this functionality), see
- buffer_get_used_size() Added
- Returns the actual usage size of the specified buffer, so you can see how much space is left in your buffer, etc.
“GM_runtime_type” added:
- Added a new constant for determining if a game was built with the GMS2 runtimes or GMRT
gml_pragma() Support For Always Compiling Assets With Your Specified Tags:
- Added a new “MarkTagAsUsed” command to say certain tags already added to your assets in the IDE denote that these assets must always be built, even when the Game Option for removing unused assets is ON
- As an example, if I have an IDE tag called “AlwaysCompileMe” and I have assigned that to some assets, I could type : gml_pragma("MarkTagAsUsed", "AlwaysCompileMe");
Add Sprites via URL:
- You can now use data URLs in sprite_add() and sprite_replace() to add and replace your sprites in game
“Remove Unused Assets” Fixes For When Building Projects:
- Lots of fixes for incorrect checks when something is still required, plus a number of ways in which debug runs (specifically) would give a silent crash or close rather than showing you a suitable code error first.
- See the changelist for all the details, as there are too many reports fixed already to list individually here
Other Runtime Changes To Be Aware Of:
- Building Projects: Particle Systems no longer get stuck on their “remove unused assets” check and cause builds to fail
- Building Projects: [GX.games] WASM zip packages no longer duplicate the audio files into a redundant “runner” folder
- Building Projects: [iOS] The version of Ruby used by Igor during builds is no longer out-of-date, fixes “file not found” errors for some extensions
- Building Projects: [Ubuntu ARM] Non-Steam builds no longer rely on libssl1.1, which is now obsolete on newer Raspberry Pi OS installs and accordingly caused a build fail
- Command Line Builds: [HTML5] Custom runtime path value is no longer ignored
- In-Game: Video playback is now always at the correct framerate
- In-Game: Video playback no longer starts a few seconds ahead of expected
- In-Game: Debug runs no longer crash in the attached project
- In-Game: Fixed a silent crash due to “b2ParticleSystem::DestroyParticle(int, bool)” after destroying a particle
- In-Game: SDF support no longer draws text incorrectly if using small point size font glyphs
- In-Game: [YYC] Methods which return “self”, when called directly after constructor instantiation, no longer cause the constructor to be re-instantiated
- In-Game: [YYC] Null-coalescing operator on a struct variable that does not exist no longer causes a crash in 2024.11 runtimes
- In-Game: [Android] Fixed a crash in SET_RValue_Property(RValue, RValue, YYObjectBase*, int)+256)
- In-Game: [Android] Non-gamepad devices are now filtered from the list of gamepad devices
- In-Game: [Android] Manually using newer SDL community gamepad database no longer breaks D-pad inputs
- In-Game: [Desktops] Wacom tablets are now filtered from the list of gamepad devices
- In-Game: [Desktops] Nintendo Switch gamepads connected via USB are now filtered from the list of gamepad devices
- In-Game: [GX.games] WASM games now correctly register inputs when hosted on Itch.io/others
- In Game: [Windows] MP4 videos now play on Steam Deck
- In-Game: [Windows] DInput versions of gamepads which support XInput are now filtered from the list of gamepad devices
- In-Game: [HTML5] array_find_index() no longer errors due to using incorrect argument values internally
- In-Game: asset_…_tags() variants no longer silently ignore the request when an asset ref is passed as an argument (note that these functions all now also throw a code error in the case of invalid arguments, rather than silently ignoring)
- In-Game: audio_play_sound() (and various other audio functions) now works when the target sound assets are referenced exclusively by macros and “remove unused assets” is enabled
- In-Game: [HTML5] audio_sound_loop_start() is now obeyed even when no end point has been defined
- In-Game: date_compare_date() no longer thinks Dec 26th 2025 is the same as Jan 1st 2026 (and similar incorrect results comparing neighbouring dates)
- In-Game: debug_event(“ResourceCounts”) now includes vertex buffers also
- In-Game: debug_mode in-built variable was incorrectly marked as deprecated
- In-Game: ds_exists() with argument “undefined” no longer causes a crash
- In-Game: flexpanel_create_node() instances created from flexpanel_node_get_struct() now perform their Create events
- In-Game: frac() results are now correct for compile-time constants with very small float values
- In-Game: [Windows] game_change() and then Alt+Enter no longer causes the original game to be fullscreen but only show a Taskbar button
- In-Game: get_open/save_filename() could still return a non-empty string in 2024.11 runtimes, so this has been fixed
- In-Game: [Android] GM_version now returns the correct value, rather than the value of “Gradle Plugin Version”
- In-Game: instance_create_layer() being passed an invalid layer ID now gives an exception
- In-Game: [HTML5] instance_place() and other related collision functions do not return “noone” when no collisions are found for their array argument
- In-Game: layer_get_id_at_depth() for a depth with no associated layers now returns an array handle “[ref layer -1]”
- In-Game: layer_get_script_begin() and layer_get_script_end() now return a ref instead of a number
- In-Game: object_get_mask() now returns a ref instead of a number
- In-Game: object_get_sprite() now returns a ref instead of a number
- In-Game: os_request_permission() has now been extended to work on more platforms as a result of the GX.games features mentioned higher up this page
- In-Game: os_request_permission()’s DeviceMotion “response” values are too similarly-worded and should be clarified
- In-Game: particle_get_info()’s particle type struct “sprite” member now contains “ref sprite -1” if the type doesn’t use a sprite
- In-Game: particle_get_info() now provides the correct ID for using with functions such as part_emitter_region()
- In-Game: part_particles_create_colour() now applies the new colour immediately
- In-Game: room_instance_add() instance’s “Create” event is now executed even if it is created in a global-scope script
- In-Game: room_next() and room_previous() return “-1” for invalid destination rooms instead of the handle “ref room -1”
- In-Game: shader_current() now returns a ref instead of a number
- In-Game: show_debug_message() now supports “ and “ for escaping the brace characters
- In-Game: string() no longer returns some assets as their name, now it’s always as their ref handle
- In-Game: string() now supports “ and “ for escaping the brace characters
- In-Game: [iOS] url_open() now works on iOS 18 if built with Xcode 16
- In-Game: window_get_visible_rects() now returns the correct results when using 3 monitors as of 2023.4 runtimes
- In-Game: [GX.games] window_set_fullscreen() now works when running the game on mobiles
OperaOpera 119.0 Build 5497.110 (64-bit)
SiyanoAVSiyanoAV 2.0
PhotoshopAdobe Photoshop CC 2025 26.8 (64-bit)
BlueStacksBlueStacks 10.42.80.1002
CapCutCapCut 6.4.0
Premiere ProAdobe Premiere Pro CC 2025 25.3
PC RepairPC Repair Tool 2025
Hero WarsHero Wars - Online Action Game
SemrushSemrush - Keyword Research Tool
LockWiperiMyFone LockWiper (Android) 5.7.2
Comments and User Reviews