Version History


  • Improved foreach syntax and behavior


  • GameMaker Studio 2.3.1 support!
    • Completely reorganized code structure, updated to new standards
  • Added foreach function to iterate the contents of a wide variety of data types, including numbers, strings, arrays, and data structures
  • Added is_empty function to check the contents of a wide variety of data types, including numbers, strings, arrays, data structures, surfaces, and buffers
  • Added surface read and surface_write functions for handling surfaces as strings
  • Added draw_get_surface to restore broken surfaces from cached memory
  • Added camera_get_view to complement built-in view_get_camera function
  • Added ds_struct functions for interacting with structs like other data structures
    • Supports struct hierarchies, unlike built-in functions!
  • Added ds_grid_empty function, bringing parity between grids and other data structures
  • Added instance_link function for grouping objects by position, rotation, and scale
  • Added image_angle_previous, image_xscale_previous, and image_yscale_previous built-in variables to all instances via obj_gmlp
  • Added angle_reflect and angle_refract to Angle Functions
    • Includes new demo room!
  • Added support for animation curve assets to interp. Make your own custom curves using the built-in visual editor in GameMaker Studio 2.3!
  • Added string_explode, string_implode, and string_trim functions for converting data between strings and arrays
  • Added string_upper_* and string_lower_* functions for manipulating string case on an individual, per-word, or whole-string basis
    • string_upper_all and string_lower_all are 2x faster than equivalent built-in GML!
  • Multiple changes to array functions:
    • Added array_clear and array_shuffle for greater parity with data structure functions
    • Replaced array_create_2d with array_create_ext, now supporting any number of dimensions!
    • Replaced array_fill_2d with array_fill, now supporting any number of dimensions!
    • Replaced array_width and array_height with array_depth to complement the new built-in array_length function
    • Replaced array_find_col and array_find_row with array_find_index and array_find_dim for better compliance with updated GML behaviors
    • Removed array_sort, array_delete_*, and array_insert_* functions, as they have been replaced by official functions
  • Fixed wait returning true on the first frame of the first cycle
    • Now will wait the specified duration once before first returning true


  • Initial release