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_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
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
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
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
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
anditems_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
Library Changes (4.2.0)
- Added Menu Dividers
- Bindings can now be removed from control binding items in menus.
- Added
reset_all_bindings
inControlManagerPlayer
- 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
andglobal.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_width
variable definition to Base Menu that determines the horizontal separation of these two strings
- Added
- 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
'sget_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
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 toset_binding
-
get_control_map
renamed toget_bindings
-
ControlManagerPlayer
s 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
- 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.
DynamicValue
renamed toTween
.DVLimitMode
renamed toTweenLimitMode
accordingly.- Added to new
TweenLimitMode
s:YOYO
andBOUNCE
(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
-
Fixed bug where
DynamicValues
with a limit mode of wrap weren't wrapping its values. -
Fixed bug with
wrap
when dealing with non-integers betweenmax
andmax
+ 1. -
Fixed
add
andsubtract
inVector3
returning wrongVector
type -
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_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 totrue
, theDynamicValue
'sdelta
will be automatically set to 0 when falls outside the range ofmin_v
tomax_v
, before thevalue
is limited. -
Renamed
clamp_mode
parameter in DynamicValue constructor tolimit_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.