A downloadable extension

Buy Now$2.99 USD or more


NOTICE: Requires a registered license of GameMaker Studio 2 (GameMaker Studio 1 not supported)





Download the free trial now!

Download from the GameMaker Marketplace

Unified. Simplified. Amplified.

With a history now spanning more than 20 years, GML has come a long way. However, organic growth has left many oddities, inconsistencies, and omissions behind.

That's where GML+ comes in: GML+ is a collection of useful functions and built-in variables designed to fill the gaps in vanilla GML and supplement it with quality-of-life enhancements it should've had all along.

Like GML itself, GML+ is not set in stone and will continue to grow with its parent language. What's more, most GML+ functions come with few external dependencies. You can pick-and-choose only the functions you need for your project. Now that's the best of both worlds!

Originally included as separate functions in other XGASOFT products, now you can have them all in one convenient package! Once you go GML+, you won't want to go back!


It features...

  • Automatic integration into your project--just import and start using it!
  • Additional language features, such as:
    • Universal data functions like foreach and is_empty
  • Built-in variables and macros, such as:
    • Extended mouse variables, unifying behavior with instances
    • Extended instance properties, creating new possibilities for game design
    • Frametime constants (easy delta_time)
  • Dozens of useful functions you always wished were part of vanilla GML, such as:
    • Extended array functions, unifying behavior with data structures
    • Extended data structure functions, unifying behavior among different types
    • Extended sprite functions, unifying behavior with new GMS2 features
    • Extended angle functions for trigonometry (robust lengthdir), reflections, and more
    • Interpolation with easing (robust lerp), including custom bezier and user-generated curves
    • Filesystem functions (robust file_find_*)
    • Timer functions (robust alarm)
    • String manipulation functions
    • Recursive struct functions
    • Even/odd number functions
    • Hex color functions
  • ... And more! See the complete documentation for details!

For a complete list of features, visit the online documentation!

Online Documentation

End-user License Agreement (EULA)

StatusReleased
CategoryTool
Rating
Rated 4.5 out of 5 stars
(2 total ratings)
AuthorXGASOFT
Made withGameMaker
TagsAnimation, Game Design, Game engine, GameMaker, Math, sourcecode
LinksHomepage, Documentation, Twitter/X, Facebook, EULA

Purchase

Buy Now$2.99 USD or more

In order to download this extension you must purchase it at or above the minimum price of $2.99 USD. You will get access to the following files:

gmlp-1.1.4.zip 10 MB

Development log

Comments

Log in with itch.io to leave a comment.

Just a heads up, this extension does not work properly right now, having similar issues to the person below me. It just gives the error "Script: 0 at line 1 : Fatal Error while compiling - bailing details below" and nothing else; not what it failed to compile, or anything else, it really is just that one line. I don't even have to use anything, just having the obj_server_gmlp there is enough to cause the whole project to fail to compile. This is a fresh project with 0 other assets apart from me importing the addon. Deleting the object allows the project to compile, but I'm sure that must break things.

Hello! This actually appears to be a bug in the way recent versions of GameMaker interpret gml_pragma commands. However, gml_pragma also is no longer necessary to perform initialization code before a room is loaded. I'll see what I can do!

I know that this extension hasn't been updated in a while, but I am having trouble importing this extension into my project since using any of the frame constants causes it to crash at compile time. it seems that the code in the global gml_pragma is not firing off. Any help would be appreciated.

Hello, and thanks for using GML+! The extension has been tested working in the latest version of GameMaker Studio, including the frame constants feature. Can you please send a copy of your error output to contact@xgasoft.com? I'm certain we can get you up and running!

Great utility asset. saved me time writing a lot of this myself.


BTW. importing the "instance_find_var" script in your project will stop the HTML export from working.

(+2)

Great extension, but I found an issue that stumped me for a few days. in device_mouse_check_region_gui() if you feed it allignment (in my case fa_left and fa_top) it will only check for device 0, not whichever argument it was passed. 

I believe the error is in line 129 & 130.

It's also possble that i'm using an older version of the extension, in which case disregard

(+2)

Nice catch - apologies for that. I've gone ahead and updated the script to fix this issue. Since it's just a typo, there's no version change. You can download version 1.1.1 again and reimport the device_mouse_check_region_ script. Thanks for the report!

~Lucas C.

Excellent! Thank you!