GML+ - Essential Extensions
A downloadable extension
NOTICE: Requires a registered license of GameMaker Studio 2 (GameMaker Studio 1 not supported)
Download the free trial now! |
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
andis_empty
- Universal data functions like
- 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!
Status | Released |
Category | Tool |
Rating | Rated 4.5 out of 5 stars (2 total ratings) |
Author | XGASOFT |
Made with | GameMaker |
Tags | Animation, Game Design, Game engine, GameMaker, Math, sourcecode |
Links | Homepage, Documentation, Twitter/X, Facebook, EULA |
Purchase
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:
Development log
- 1.1.4Dec 17, 2021
- 1.1.3May 04, 2021
- 1.1.2 - "foreach", New and ImprovedDec 30, 2020
- 1.1.0 - The Big GMS 2.3.1 Update!Dec 12, 2020
Comments
Log in with itch.io to leave a comment.
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 [email protected]? 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.
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
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!