Releases: mstop4/useful-gml-scripts
Useful GML Scripts 5.1.0
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_indexreturning 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
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_indexreturning 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
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_alphacalls - 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
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_alphacalls - 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
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_widthanditems_heightproperties 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
Library Changes (4.2.0)
- Added Menu Dividers
- Bindings can now be removed from control binding items in menus.
- Added
reset_all_bindingsinControlManagerPlayer - 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_controlsandglobal.disallowed_gamepad_controls) - Added an option to lock control bindings in
MenuKeyConfig - Added a way to cancel
MenuKeyConfig's discovery mode
- Added disallowed controls list (
- 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_widthvariable definition to Base Menu that determines the horizontal separation of these two strings
- Added
- Removed
get_full_labelfrom MenuKeyConfig - Added
shuffle_array,duplicate_array,array_findfunctions - Fixed return values from
pad_string_lengthbeing off by one character in length - Fixed a bug in
MenuKeyConfig'sget_valuefunction
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
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
-
CONTROLSenum moved to its own config file -
set_control_maprenamed toset_binding -
get_control_maprenamed toget_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_infoand store its results locally
- The Control Manager can call
- Added
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
- Deprecated Delta Time Alarms. Use built-in Time Sources instead.
DynamicValuerenamed toTween.DVLimitModerenamed toTweenLimitModeaccordingly.- Added to new
TweenLimitModes:YOYOandBOUNCE(thanks @TayfunTurgut) - Added new menu type: Nested Menus
- Fixed context issues with
*_menu_get_item_by_indexand*_menu_get_item_by_labelfunctions - 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
-
Fixed bug where
DynamicValueswith a limit mode of wrap weren't wrapping its values. -
Fixed bug with
wrapwhen dealing with non-integers betweenmaxandmax+ 1. -
Fixed
addandsubtractinVector3returning wrongVectortype -
Added new Demos:
- Math: Blin, Vector operations
- Strings; Split string, Hide overflow
- Data Structures: Choose from Array
Useful GML Scripts 2.5.0
-
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_indexand*_menu_get_item_by_labeladded 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 totrue, theDynamicValue'sdeltawill be automatically set to 0 when falls outside the range ofmin_vtomax_v, before thevalueis limited. -
Renamed
clamp_modeparameter in DynamicValue constructor tolimit_mode -
Added
obj_text_objectcomponent. Draws text according to the instance's sprite properties, e.g.image_angle,image_scale, etc. -
Fixed "Y" key in Control Manager demo.