Skip to content

Useful GML Scripts Next 8.0.0

Choose a tag to compare

@mstop4 mstop4 released this 19 Jun 20:52
· 17 commits to main since this release

Library Changes

  • Added Column Flex Menus. This is a reimplementation of the legacy Column Menu system using Flex Panels to layout each item. Some differences between the legacy menu and flex menu:
    • Flex Menu properties are set at instance creation instead of using an *_init function after creation.
    • Flex Menu Spinners hold a copy of the values passed to its constructor, instead of hold a reference to it. Therefore, modifying the passed array later on will not affect the values in the Flex Menu Spinner.
    • Flex Menu Spinners can be locked. Pressing the menu confirm key or button is required before the value can be changed. Pressing the key or button again will re-lock it.
    • Flex Menu Valued Selectables can play a sound effect when its value changes. This was dummied out in legacy Valued Selectables.
    • All Flex menu items take an item_data config parameter. This is a data struct where you can add custom data to each item.
  • Added Compromise Scaler
  • Added Signal Manager component
  • Added Sprite Button component
  • Tweens can run its update function automatically using a built-in time source. New functions start() and stop() can be used to start and stop this ticker.
    • Tweens now need to be destroyed manually using the destroy() function regardless of whether you use the time source or not
  • Tween constructor now accepts an _outside_range_callback_args parameter. This is an array of additional arguments you can pass to the Tween's outside range callback
    • The outside range callback now has the signature function(self, _args)
  • steam_deck_info in Control Manager has been renamed to ugmls_steam_deck_info and is now global variable, so that it can be shared by multiple Control Manager instances
  • init_steam_deck_info is no longer called automatically on Ubuntu platforms. It must now be called manually on all platforms
  • Components that don't draw to the game window have their visible flag set to false by default
  • Added normalize_angle
  • Added is_angle_in_arc
  • Added calculate_distance_travelled
  • Added two new values in return struct from get_edge_position:
    • side: the side of the bounding box the intersection point is on (0 = left, 1 = top, 2 = right, 3 = bottom)
    • angle: the angle to the intersection point. A more descriptive alias for z, which is deprecated but left in for compatibility
  • Added Delta Timeline Plus. The timing of the regular Timeline Plus is tied to the game's frame rate, whereas the timing of Delta Timeline Plus is tied to delta time. It also contains a configurable time step multiplier to allow time dilation
    • There is an issue with sorting floating-point timestamps: YoYoGames/GameMaker-Bugs#185. Because of this, timestamps only have millisecond resolution

Demo Changes

  • Fixed an issue where the quit timer for the main menu would start immediately after quitting a demo if the escape key is still held after quitting the demo
  • Menus have been refactored to use flex menus instead of legacy menus