Compatibility Notes
Some updates include certain changes which require existing projects to be modified to retain compatibility with updated versions. This section documents those changes as well as the remedies to any incompatibilities they create.
1.0.8#
Added support for rectangular collision masks (bounding boxes) on options and buttons
- Existing button/option sprites may need to have their bounding boxes manually adjusted if hotspots seem inaccurate
- Transparent sprites will not be clickable at all without manual bounding box adjustment!
Updated
vngen_log_addto include support for per-entity lineheight- Existing instances of this function must be updated to match the new syntax
- If no custom lineheight is desired, use
vngen_get_lineheight(all, vngen_type_text) - (Recommended: use global search & replace)
Updated input functions to use clearer nomenclature and support explicit true/false settings, not just toggles
A table of old functions and their new names is listed below. Existing instances of these functions must be renamed to match the new nomenclature and have arguments added to match the new syntax
Old Syntax New Syntax show_debug_vngen([enable])🠺 vngen_do_debug(toggle, [sound])vngen_continue([sound])🠺 vngen_do_continue([sound])vngen_toggle_auto(delay, [sound])🠺 vngen_do_auto(toggle, [delay], [sound])vngen_toggle_pause([sound])🠺 vngen_do_pause(toggle, [sound])vngen_toggle_visible([sound])🠺 vngen_do_ui_display(toggle, [stop], [sound])vngen_toggle_log([sound])🠺 vngen_do_log_display(toggle, [sound])vngen_log_nav(amount)🠺 vngen_do_log_nav(amount)vngen_log_nav_touch()🠺 vngen_do_log_nav_touch()vngen_log_play_audio()🠺 vngen_do_log_play()vngen_log_button_nav(amount)🠺 vngen_do_log_button_nav(amount)vngen_log_button_select([id])🠺 vngen_do_log_button_select([id])vngen_button_nav(amount)🠺 vngen_do_button_nav(amount)vngen_button_select([id])🠺 vngen_do_button_select([id])vngen_option_nav(amount)🠺 vngen_do_option_nav(amount)vngen_option_select([id])🠺 vngen_do_option_select([id])(Recommended: use global search & replace)
Updated
vngen_set_lineheightto support per-entity lineheight multipliers- This required adding two new arguments to
vngen_set_lineheightfor inputting an entity ID and type - Existing instances of this function must be updated to match the new syntax
- (Recommended: use global search & replace)
- This required adding two new arguments to
Updated negative pause values to be interpreted as timed delay while auto mode is enabled (rather than indefinite)
- While no change is generally required, it is important to note that existing events and
[pause]markup will now exhibit different behavior while auto mode is enabled - To revert to the old behavior,
use vngen_set_auto_type - There is no change in behavior when auto mode is disabled
- While no change is generally required, it is important to note that existing events and
Updated easing macros for simplicity
- All
*_in_outmacros have been renamed to their plain counterparts, e.g.ease_quad_in_outis now justease_quad - Existing instances of these macros must be renamed to match the new syntax
- (Recommended: use global search & replace)
- All
Updated auto prompts to match text scale and rotation, not just position
- Any prompt modification actions made to match these properties manually can and should be removed
- (Recommended: use global search & replace)
Renamed
vngen_get_structuretovngen_get_structfor brevity and consistency- Existing instances of this script must be renamed to match the new syntax
- (Recommended: use global search & replace)
Removed legacy animation speed multipliers in favor of GameMaker Studio 2 individual sprite speeds
- All sprite assets must be updated to use the intended framerate, either using the GUI or
sprite_set_speed - Existing instances of
vngen_object_draw,vngen_log_draw,vngen_emote_create, andvngen_emote_create_extmust be updated to remove speed arguments - (Recommended: use global search & replace)
- All sprite assets must be updated to use the intended framerate, either using the GUI or
Replaced individual
vngen_set_vol_*scripts with a singlevngen_set_volscript and audio type macros- Existing instances of the old scripts must be updated to use the new syntax
- See Macros & Keywords for details
- (Recommended: use global search & replace)
1.0.7#
- The
vngen_optionscript now requires an ID to be assigned for the entire option block- This is required so that user choices can be saved and restored later
- Existing instances of this script must be updated to include a real or string ID
- (Recommended: use global search & replace)
1.0.6#
- Renamed
vngen_perspective_modifytovngen_perspective_modify_posfor consistency with other functions- Existing instances of this function must be updated to match the new nomenclature
- (Recommended: use global search & replace)
- Removed
vngen_get_renderlevelfor consistency with othervngen_set_*functions which have no comparablevngen_get_*function- Retrieving the values of these properties is only necessary for advanced usage, and can be handled by addressing the property variable directly; in this case,
vngen_get_renderlevel()can be replaced withglobal.vngen_renderlevel - (Recommended: use global search & replace)
- Retrieving the values of these properties is only necessary for advanced usage, and can be handled by addressing the property variable directly; in this case,
1.0.4#
- Added support for built-in cursor states to
vngen_set_cursor- Previously, -1 could be used to reset cursors to their defaults. This value has now been changed to -4 (or keyword
none) to avoid conflicts with the cursor statecr_none, which is a valid cursor - Existing instances of this function using -1 to reset cursors must be updated to keyword
noneto match the new standard - (Recommended: use global search & replace)
- Previously, -1 could be used to reset cursors to their defaults. This value has now been changed to -4 (or keyword
- Added support for auto text positioning in extended option and button functions
- As
autois also interpreted as -1, text offsets previously at an X or Y coordinate of -1 will need to be changed to other values (e.g. 0 or -2) to avoid enabling auto positioning - (Recommended: use global search & replace)
- As
1.0.3#
- Added
autokeyword support tovngen_text_create_*actions to better facilitate NVL-style presentation- As
autois also interpreted as -1, text entities previously created at an X or Y coordinate of -1 will need to be changed to other values (e.g. 0 or -2) to avoid enabling auto positioning - (Recommended: use global search & replace)
- As
1.0.0#
- Added
vngen_countto replace individual entity*_countfunctions with a universal function- Existing instances of
*_countfunctions (e.g.vngen_option_count) must be replaced with the new function (e.g.vngen_count(vngen_type_option)) - This does NOT include events, which are not entities and therefore still have their own
vngen_event_countfunction - (Recommended: use global search & replace)
- Existing instances of
- Added
previouskeyword support to character face coordinates in character replace actions- As
previousis equivalent to -1, faces positioned at coordinates -1, -1 must be repositioned. - (Recommended: adjust sprite offsets to compensate and use global search & replace)
- As
- Added
fullkeyword support tovngen_audio_modifyloop clip settings- Existing instances of
vngen_audio_modifyusing clip settings must add a new argument to enable or disable playing from the current position before clipping - This does NOT include instances where clip settings are not used, as clip arguments are optional
- (Recommended: use global search & replace)
- Existing instances of
- Added
*_transformedfunctions to VNgen options, replacing the extra color functionality previously added tovngen_option_create_ext- Existing instances of
vngen_option_create_extmust have hover and select color arguments removed - Alternatively, instances of this script may be replaced with either
vngen_option_create_transformedorvngen_option_create_ext_transformed - (Recommended: use global search & replace)
- Existing instances of
- Updated log buttons to match the new button standard
- Existing instances of
vngen_button_createmust be rewritten to match the updated syntax - In order for buttons to scroll the log as before,
vngen_get_log_buttonmust be run in the log object Step event to executevngen_log_navwhen buttons are selected (see included demo objects for examples)
- Existing instances of
- Replaced per-entity text speed with
vngen_set_speed, which sets speed for all text entities.- Existing instances of
vngen_text_create,vngen_text_create_ext, andvngen_text_replace_extmust be modified to remove thespeedargument. - Text speed should now be set with
vngen_set_speedin the Create Event, or in VNgen events withvngen_script_execute_ext. - (Recommended: use global search & replace)
- Existing instances of
- Replaced
vngen_instance_createwithvngen_instance_change- Existing instances of
vngen_instance_createmust be replaced with either the new function or the standardinstance_createfunction coupled withvngen_object_clear(if destroying the current object is desired) - (Recommended: use global search & replace)
- Existing instances of
- Replaced bracket escape character with
^- Existing instances of escaped markup must be replaced with the new syntax, i.e.
\[becomes^[ - This does NOT apply to the newline character, which is still
\n - (Recommended: use global search & replace)
- Existing instances of escaped markup must be replaced with the new syntax, i.e.
- Removed
vngen_option_existsas its functionality has been superseded byvngen_exists- Existing instances of
vngen_option_existsmust be replaced withvngen_exists(any, vngen_type_option) - (Recommended: use global search & replace)
- Existing instances of
- Removed language macros as they have been superseded by
vngen_type_*macros- Existing instances of
lang_textandlang_audiomust be replaced withvngen_type_textandvngen_type_audio - The
lang_allmacro has no replacement, and thetypeargument invngen_set_langcan now be omitted to set both types simultaneously instead - Instances of
vngen_set_langandvngen_get_langusing integers instead of macros to set type do not need to be changed - (Recommended: use global search & replace)
- Existing instances of
- Removed
ef_hap_ramp_downand renamedef_hap_ramp_uptoef_hap_ramp- As effects and animations can now be reversed, bidirectional ramp scripts were no longer necessary
- Existing instances of the old effects must be renamed to
ef_hap_rampand reversed if desired - (Recommended: use global search & replace)
0.9.9 (EA)#
- Added min/max pitch arguments to vox actions. Pitch is now randomized between these two values, rather than being a switch enabled by setting pitch to -1
- Existing instances of
vngen_vox_playandvngen_vox_modifymust be updated to include a second pitch argument. - Pitch must now be written as min/max values. Using -1 or keyword
autofor random pitch is now invalid. - (Recommended: use global search & replace)
- Existing instances of
- Rearranged
vngen_vox_playarguments so that pitch comes before volume for consistency with other audio functions.- Existing instances of this script must be updated to have their argument order switched to match this change.
- (Recommended: use global search & replace)
- Updated effects to use custom variable array
- Existing effect scripts must be updated to reflect this change. Effect variables previously named
ef_var0,ef_var1, and so forth must now be written asef_var[0]andef_var[1]. - More than 16 variables can now be used with this method. Any previous workarounds may be replaced with the built-in system.
- (Recommended: use global search & replace)
- Existing effect scripts must be updated to reflect this change. Effect variables previously named
- Updated deforms to use 2D point arrays
- Existing deform scripts must be updated to reflect this change. Deformation variables previously named
def_xpoint0,def_xpoint1, and so forth must now be written asdef_xpoint[0, 0]anddef_xpoint[1, 0]. - Points are now properly treated as a grid of columns and rows ranging from
[0, 0]to[1, 3], not a linear range of 0-7. - (Recommended: use global search & replace)
- Existing deform scripts must be updated to reflect this change. Deformation variables previously named
0.9.8 (EA)#
- The
make_color_hexfunction has been renamedmake_color_hex_to_rgbfor consistency with its new opposite function,make_color_rgb_to_hex.- Existing instances of
make_color_hexmust be renamed. - (Recommended: use global search & replace)
- Existing instances of
- Audio wrappers have been removed in preparation of v1.0. If you have not updated to the new audio functions yet, you must do so now.
- Existing instances of old audio and vox functions must be renamed
- (Recommended: use global search & replace)
- Fixed incorrect scaling when launched directly in fullscreen by sampling base resolution when vngen_set_scale is run.
- This means unlike previous versions,
vngen_set_scaleshould NOT be run in the Step event or any event where it will be executed repeatedly. Ideally,vngen_set_scaleshould ONLY be run in the Create event instead.
- This means unlike previous versions,
0.9.7 (EA)#
- Updated
vngen_log_drawto allow changing separation between entries.- Existing instances of this script must be updated to include a separation value (default 64).
- (Recommended: use global search & replace)
- Replaced
vngen_set_legacywithvngen_set_renderlevel.- Existing instances of the old function must be replaced with the new one.
- While it is not required to change the values set in the old function, optional new values are also available. It is recommended to see documentation on the new function before updating.
- (Recommended: use global search & replace)
0.9.6 (EA)#
- Externalized transitions as a new category of keyframe animations.
- Transitions are now referenced as scripts, not macros, and any instances of their old numeric equivalents will need to be updated to match the new script names.
- No change is necessary if macros were used as intended.
- The
trans_nonemacro is still valid and can still be used to disable transitions. This is NOT the same as the numeral 0, which can no longer be used to disable transitions. - Transitions out are now reversed from transitions in. For transitions with directional counterparts, this may require switching directions to retain previous behavior.
- (Recommended: use global search & replace)
- Added support for performing animations, deformations, and effects in reverse.
- Existing instances of
vngen_*_anim_start,vngen_*_deform_start, andvngen_effect_startmust be updated to include areverseargument. - (Recommended: use global search & replace)
- Existing instances of
0.9.5 (EA)#
- Updated tiled scenes to behave like standard scenes.
- Adjustments being made to compensate for old tiled scenes can be removed
- Alternatively, the old style of tiled scenes can be kept by running
vngen_set_legacy(true).
- Removed scale from perspective calculations.
- Elements relying on scale for changes to parallax strength must have z-index adjusted to compensate (ratio of z-index to scale is 100:1)
- Fixed character flipping in
vngen_char_replace_extbeing absolute instead of relative- Existing instances of
vngen_char_replace_extmust be updated to set the intended character orientation - (Recommended: use global search & replace)
- Existing instances of
0.9.4 (EA)#
- Added optional easing support to non-extended actions.
- Text and label actions using real numbers as language tags must either have a separate ease argument supplied prior to the language tag, or the language tag must be converted to a string
- All other actions, and text and label actions using string language tags DO NOT require modification
- Added
idleargument tovngen_char_create_extfor consistency withvngen_char_replace_ext.- This argument was originally omitted due to GameMaker Studio's 16-argument limitation, which has now been removed.
- Existing instances of
vngen_char_create_extmust be updated to add anidleargument. - (Recommended: use global search)
- Added
nameargument tovngen_text_create_extandvngen_text_replace_extfor consistency with other functions.- This argument was originally omitted due to GameMaker Studio's 16-argument limitation, which has now been removed.
- Existing instances of
vngen_text_create_extandvngen_text_replace_extmust be updated to add anameargument, or""for none or if name markup is used instead. - (Recommended: use global search & replace)
- Fixed option position being calculated incorrectly.
- Existing options using sprite offsets will need to be repositioned to stop compensating for sprite offset, as this is now properly factored into position automatically.
- (Recommended: use global search & replace)
- Simplified
vngen_option_createin lieu ofvngen_option_create_ext.- Existing instances of
vngen_option_createmust be updated to use the new simplified syntax or be replaced withvngen_option_create_ext. - (Recommended: use global search)
- Existing instances of
- Renamed audio functions for consistency with other VNgen functions.
- Wrappers have been added which allow using the old syntax, which is consistent with standard GameMaker Studio syntax. However, users are encouraged to switch to the new VNgen naming scheme, as wrappers due incur a small performance penalty.
- Exception:
vngen_sound_modifyis wrapped asvngen_modify_sound. Existing instances ofvngen_sound_modifymust be replaced with either the new VNgen syntax or the GameMaker syntax wrapper. - (Recommended: use global search & replace)
- Renamed
vngen_get_option_numbertovngen_option_countfor consistency with other functions.- Existing instances of
vngen_get_option_numbermust be renamed tovngen_option_count. - (Recommended: use global search & replace)
- Existing instances of
- Renamed
vngen_get_option_activetovngen_option_existsfor consistency with other functions.- Existing instances of
vngen_get_option_activemust be renamed tovngen_option_exists. - (Recommended: use global search & replace)
- Existing instances of
0.9.3 (EA)#
- Merged style inheritance data for text and labels, which are now saved and loaded as a single string.
- Save files generated with previous versions of
vngen_file_savewill need to be regenerated for style data to persist. For projects spanning multiple VNgen objects, this may require usingvngen_gototo revisit previous objects in order to rebuild style data.
- Save files generated with previous versions of
- Renamed
vngen_log_get_sizetovngen_log_countfor consistency with other functions.- Existing instances of
vngen_log_get_sizemust be renamed tovngen_log_count - (Recommended: use global search & replace)
- Existing instances of
- Renamed
vngen_get_eventtovngen_event_get_indexfor consistency with other functions.- Existing instances of
vngen_get_eventmust be renamed tovngen_event_get_index - (Recommended: use global search & replace)
- Existing instances of
- Migrated vox audio to its own data structure.
- No change is required to existing instances of
vngen_play_vox. - Existing instances of
vngen_stop_soundto end vox must be renamed tovngen_stop_vox. - (Recommended: use global search & replace)
- No change is required to existing instances of
- Skipping to event IDs greater than or equal to the total number of events now skips past the final event rather than ending the skip operation when the final event begins.
- Any instances of vngen_goto using large values to bruteforce skip to the final event must be edited to skip precisely to the event itself.
- (Recommended: use the new
vngen_event_countfunction to navigate precisely to the final event, minus one)
0.9.1 (EA)#
- Added
vngen_emote_create_ext.- Existing instances of vngen_emote_create must be renamed to
vngen_emote_create_ext. - (Recommended: use global search & replace)
- Existing instances of vngen_emote_create must be renamed to
- Added
trans_zoom_outtransition and replacedtrans_scalewithtrans_zoom_in.- Existing instances of
trans_scalemust be renamed totrans_zoom_into complement the new transition. - (Recommended: use global search & replace)
- Existing instances of
- Reversed argument order in
vngen_set_langfor consistency with other functions.- Existing instances of
vngen_set_langmust have their arguments orderedlanguagefirst, thentype. - (Recommended: use global search & replace)
- Existing instances of

X1