Skip to content

Releases: mstop4/useful-gml-scripts

Useful GML Scripts 5.1.0

27 May 05:35
Compare
Choose a tag to compare

Library Changes

  • Labels and values of menu spinners can now be drawn with two different fonts
  • Fixed softlock issue in key binding menu items
  • Fixed issue with get_keyboard_icon_index returning wrong icon or crashing on macOS and Ubuntu when passed the codes for the single quote (') and backtick (`) keys
  • Fixed incorrect keyboard icon map value for Backspace key
  • Locked key binding menu items are now indicated with a lock icon, instead of shading the binding icon gray
  • Menu items can now be individually enabled or disabled with set_enabled
  • Updated control icons representing "no binding" and "awaiting input to assign as new binding"
  • Fixed Steam Deck gamepad detection

Useful GML Scripts 4.5.0

27 May 05:34
Compare
Choose a tag to compare

Library Changes

  • Labels and values of menu spinners can now be drawn with two different fonts
  • Fixed softlock issue in key binding menu items
  • Fixed issue with get_keyboard_icon_index returning wrong icon or crashing on macOS and Ubuntu when passed the codes for the single quote (') and backtick (`) keys
  • Fixed incorrect keyboard icon map value for Backspace key
  • Locked key binding menu items are now indicated with a lock icon, instead of shading the binding icon gray
  • Menu items can now be individually enabled or disabled with set_enabled
  • Updated control icons representing "no binding" and "awaiting input to assign as new binding"
  • Fixed Steam Deck gamepad detection

Useful GML Scripts 5.0.0

29 Jan 23:00
Compare
Choose a tag to compare

Note: This release is meant for the 2022.11 runtime or newer. If you are using the LTS runtime, please download v4.4.0 instead.

Library Changes

  • Updated runtime to 2022.11
  • Minor optimization of draw_set_alpha calls
  • Fixed alpha issue when the view window of column and grid menus scroll
  • Controllers (keyboard or gamepad) can only select and change the key bindings of their own types. E.g., when controlling a key binding item on a menu with a gamepad, it can only select and change the gamepad key bindings.

Useful GML Scripts 4.4.0

29 Jan 23:01
Compare
Choose a tag to compare

Note: This release is meant for the LTS runtime. If you are using the 2022.11 or a newer runtime, please download v5.0.0 instead.

Library Changes

  • Minor optimization of draw_set_alpha calls
  • Fixed alpha issue when the view window of column and grid menus scroll
  • Controllers (keyboard or gamepad) can only select and change the key bindings of their own types. E.g., when controlling a key binding item on a menu with a gamepad, it can only select and change the gamepad key bindings.

Useful GML Scripts 4.3.0

27 Nov 21:54
Compare
Choose a tag to compare

Library Changes

  • Added scroll arrow indicators on all menus. They only appear if a view window (view_width, view_height) is defined for the menu
  • Added smooth scrolling to all menus with a view window defined
  • Added Nudger
  • Added items_width and items_height properties to Grid Menu
  • Fixed an issue with control configs where their icons weren't fading along with the text labels when the parent menu is faded.
  • Fixed an issue with adding items to Grid Menus

Useful GML Scripts 4.2.0

27 Oct 22:56
1468533
Compare
Choose a tag to compare

Library Changes (4.2.0)

  • Added Menu Dividers
  • Bindings can now be removed from control binding items in menus.
  • Added reset_all_bindings in ControlManagerPlayer
  • Control bindings can only be changed by the same control source.
  • Added the option of displaying control bindings as icons instead of text.

Library Changes (4.1.0-beta)

  • Completely rewrote key config items in the Menu System. They now support multiple bindings and can rebind gamepad controls
    • Added disallowed controls list (global.disallowed_kbm_controls and global.disallowed_gamepad_controls)
    • Added an option to lock control bindings in MenuKeyConfig
    • Added a way to cancel MenuKeyConfig's discovery mode
  • The Menu System is now dependent on the Control Manager
  • Added view windows to column and grid menus
  • Spinner and Key Config items in menus are now drawn as two separate strings
    • Added label_width variable definition to Base Menu that determines the horizontal separation of these two strings
  • Removed get_full_label from MenuKeyConfig
  • Added shuffle_array, duplicate_array, array_find functions
  • Fixed return values from pad_string_length being off by one character in length
  • Fixed a bug in MenuKeyConfig's get_value function

Demo Changes (4.1.0-beta)

  • The demo app now uses a global Control Manager. the control manager in the control manager demo has been removed
  • Added Control Config Menu demo

Useful GML Scripts 3.1.1

07 Aug 21:01
Compare
Choose a tag to compare

Library Changes

  • Multiple keys/buttons can now be bound to a single control

  • Left stick and D-pad are no longer automatically bound to directional controls. They now need to be manually assigned to directional controls

  • CONTROLS enum moved to its own config file

  • set_control_map renamed to set_binding

  • get_control_map renamed to get_bindings

  • ControlManagerPlayers can now be bound to different gamepad slots.

  • Added additional vk_* keycodes (as macros) for keys that don't have them already

  • Added new function group: System

    • Added get_os_type_string, get_os_version_string, get_os_browser_string
    • Added get_steam_deck_info, which detects if the game is running on a Steam Deck and which gamepad slot the controls are mapped to
      • The Control Manager can call get_steam_deck_info and store its results locally

Demo Changes

  • The current gamepad slot used in the Control Manager demo can now be changed
    • If the demo detects that it is running on a Steam Deck, then it will default to the gamepad slot that is mapped to the Deck's controls

Useful GML Scripts 3.0.0

12 Jul 00:05
Compare
Choose a tag to compare
  • Deprecated Delta Time Alarms. Use built-in Time Sources instead.
  • DynamicValue renamed to Tween. DVLimitMode renamed to TweenLimitMode accordingly.
  • Added to new TweenLimitModes: YOYO and BOUNCE (thanks @TayfunTurgut)
  • Added new menu type: Nested Menus
  • Fixed context issues with *_menu_get_item_by_index and *_menu_get_item_by_label functions
  • Added data structure existence checks to in Clean Up events of all menus.
  • Added file_jsonc_parse and array_is_subset functions
  • Renamed pad_string to pad_string_width
  • Added pad_string_length, which pads a string to a desired character length, instead of pixel width as with pad_string_width.

Useful GML Scripts 2.5.1

18 Nov 01:43
Compare
Choose a tag to compare
  • Fixed bug where DynamicValues with a limit mode of wrap weren't wrapping its values.

  • Fixed bug with wrap when dealing with non-integers between max and max + 1.

  • Fixed add and subtract in Vector3 returning wrong Vector type

  • Added new Demos:

    • Math: Blin, Vector operations
    • Strings; Split string, Hide overflow
    • Data Structures: Choose from Array

Useful GML Scripts 2.5.0

13 Nov 04:42
Compare
Choose a tag to compare
  • Added "on confirm" callback support for Menu Spinners.

  • "On change" callbacks now support three addtional parameters:

    • _index - the updated index
    • _value - the updated value
    • _delta - how the index changed (-1 or 1)
  • Functions that add items to menus (e.g. *_menu_add_*) now return the newly added item.

  • References to the parent menu add to all Menu Items.

  • *_menu_get_item_by_index and *_menu_get_item_by_label added to Column and Grid menus.

  • Improved Grid Menu navigation.

  • Fixed "on change" and "cursor move" SFX playing at the same time when moving cursor left or right in a Grid Menu.

  • Adjusted vertical alignment of menu cursor with menu items. Cursor sprites now requires Middle Left origin points instead of Top Left.

  • Add a WIP menu switching system, allowing you to fade one menu out and then fade in another.

  • Added new parameter to DynamicValue constructor: stop_outside_range. If set to true, the DynamicValue's delta will be automatically set to 0 when falls outside the range of min_v to max_v, before the value is limited.

  • Renamed clamp_mode parameter in DynamicValue constructor to limit_mode

  • Added obj_text_object component. Draws text according to the instance's sprite properties, e.g. image_angle, image_scale, etc.

  • Fixed "Y" key in Control Manager demo.