Releases: tweenko/tldr-engine
v1.13.2+1
Accuracy Improvements 2: Electric Boogaloo (v1.13.2+1)
damage display tweaks:
- changed damage animation to be more accurate
- removed align from the damage display entirely
- improved the damage writer's ability to stretch
misc changes:
- implemented pity spare percentage turning enemies yellow
v1.13.2
Accuracy Improvements (v1.13.2)
by @tweenko, @ReiRingo and @krisgrant
climbing tweaks: (by @ReiRingo)
- implemented dash boosting (the climbing dash now applies an instantaneous forward boost when acting as the leader. this fixes the static post-dash speed issue from the previous build)
- cleaned up
o_dev_climb_controller
LW menu tweaks: (by @krisgrant)
- changed the logic behind when
snd_ui_moveis played - changed how option selections function
- removed
snd_ui_cant_selectwhen pressing select on the item option if it's disabled - changed how having no phone numbers is handled
- read explanations here (#39)
running changes: (by @tweenko)
- change base LW speed to 3 for better accuracy
- removed run speed due to the way deltarune handles it
- changed run speed logic to accumulate like in deltarune instead of increasing by 0.2 every frame
v1.13.1+2
Bullet Improvements (v1.13.1+2)
by @tweenko
- change grazing behavior completely to be more accurate to DR (i call it "lingering" grazing)
- added enum BULLET_COLOR which contains three options: SOLID, BLUE and ORANGE
- adjusted grazing points for bullets
- implemented individual time points system for bullets
- added comments in
o_enc_bulletto better explain all variables
v1.13.1+1
Ripple (v1.13.1)
by @tweenko
ripple effects library:
- library by techncolour with some polish by me
- added Clean Shapes by Juju Adams and others as an external library
- new function
lb_ripple_createthat creates a ripple wherever you'd like with lots of customization - new functions
lb_ripple_vision_onandlb_ripple_vision_offthat enable/disable ripple vision - new object
o_lb_ripple - new object
o_lb_ripple_visionfor making dark rooms - when under ripple vision, leader actor now emits ripples every other footstep
lighting system modifications:
o_eff_lighting_controllerhas three new variables:shadows,darkenandhighlightsthat determine whether actors have these drawn when under lighting globally
bugfixes:
- soul sprite was changed to be accurate with DR
Climbing Adjustments (v1.13.1+1)
by @Notrealb
Tweaks to climbing:
- Climb camera moves faster.
- Multi-Key direction behavior: Holding multiple keys in a general direction will alternate between the two directions, allowing diagonal-like movement. You'll also no longer constantly bump while holding multiple keys against the climbable boundaries.
- Charge animation sync.
- Allowed some support for jump_reach_max values above 50 by clamping it where needed.
v1.13.0
Climbing and More (v1.13.0)
IDE Version: v2024.14.4.222
Runtime Version: v2024.14.4.268
climbing system:
- added a climbing system. you can add tiles on a layer with a name that starts with
climb, and the system will register them. aside from tiles, you can simply addo_dev_climb_tileobjects as well - you can see an example of its usage in
room_test_climbing - camera switches into a smoother following mode when climbing to look like deltarune
actor changes:
- a slight touch-up of the actor mover system (it still sucks though)
- new
actor_movement_jump_intothat is just a jump movement without the landing animation - added an optional argument to
actor_movementandactor_movement_jumpcalled_play_sfxthat determines whether corresponding sfx should be played (if applicable) - added an optional argument to
actor_movement_jumpcalled_timethat determines the time the jump animation will take - new
o_actorvariableoverride_blendthat, if not set to undefined, will override the actor blending. for internal usage - new
o_actorvariablealpha_modthat can modify the actor alpha
test zone changes:
- connected
room_test_climbingandroom_test_loopback - added some more decor to
room_test_loopback
misc changes:
marker_find_closestwas moved to deprecated and renamed tomarker_find_closest_idmarker_find_closest_instwas renamed tomarker_find_closestandmarker_find_closest_instis now deprecatedo_eff_genericnow hasstart_alphaandend_alphao_eff_generic'sstart_scalewas changed to 1o_afterimagenow has ascale_modvariableo_cameranow resets most variables when changing rooms- extended game over screen light transition by 10 frames
- game overs now can happen outside dodge events
- added support for
o_text_typermini text not having any faces associated with it via using not a valid face (e.g. -1 or nil) - removed
o_ui_fuse - added a new argument to
audio_playandcutscene_audio_playcalledoffsetthat offsets the sound by an x amount of frames cutscene_audio_playnow has a new argument calledsound_typethat determines the target emitter of the sound you want to play- added JSDoc for
cutscene_audio_play - new function
audio_get_target_emitterthat returns an audio emitter based on the sound type provided - added a new argument to
item_containscalleditem_type - implemented magical glass from deltarune as
o_ow_magicalglass
bugfixes:
party_contains's usage was adjusted in the party selector to account for passive party members (above limit)enc_set'swin_conditionnow actually works and the behavior linked too_enc'swin_conditionwas changed to now be linked toenc_set's method- fixed the
item_containsfunction to work correctly (it didn’t work before)
v1.12.2+1
v1.12.2+1 (Dev Tools, QOL & Bugfixes)
IDE Version: v2024.14.4.222
Runtime Version: v2024.14.4.268
dev tool changes:
- revamped dev tool UI
- removed save deletion logic from
o_worldand simply made it spawno_dev_savewipe_promptinstead - added support for dev tools to react to different game widths and heights
turn changes:
o_turn's user event 0 is now called once all the turns were spawned in, not 1 frame after its creation- fixed logic for
__support_init_defaultand__support_destroy_checkthat now ignores the support turns
save changes:
- added a new macro called
SAVE_ENCODEin thesavescript that controls whether to encode a player's save data when saving. set tofalseby default, but encouraged to be set to true when finishing the game - two new functions:
save_to_stringandsave_from_stringthat convert save data to/from strings - added JSDoc for
save_reload - saves are no longer saved as .json files, instead saved with no format at all
misc changes:
- the game's width and height is now controlled by four new macros:
GAME_W,GAME_HandGAME_W_GUIandGAME_H_GUI(the normal draw scale and the gui draw scale respectively) - added a new function called
draw_text_highlightedthat's used in most dev tools now - all main party member collision boxes are identical to kris' one for consistent gameplay among the main party members
- text typers now have a new
fonthash that determines the font that their text will use. can be a loc ID for a font or a reference to an asset (undefined will just not change the font) o_ex_turn_complex_boxwas extended from 120 frames to 300o_ex_turn_dentosis now a support turno_ex_turn_dentosnow appropriately usescutscene_stopinstead ofinstance_destroyo_ex_turn_dentosturn's logic was changed so that it works if its index is higher than 1- made spawn bullets animated
- updated
cutscene_lb_music_pitchto work the new cutscene system - added enum for
SOUL_COLORinstead of real numbers - added the documeation link in the setup note
- removed unused variables in
o_world
bugfixes:
- fixed a bug where previously, i accidentally made local
cutscene_player_canmovealways set the player instance'smoveablevariable tofalseinstead of the desired choice enc_enemy_isfightingnow correctly checks for whether an enemy is still fighting and can be hurt- fixed a bug where shadow guys shoot act would crash the game if any of the enemies was not fighting anymore
v1.12.1+1
v1.12.1+1 (Cutscene Updates, Bugfixes)
IDE Version: v2024.14.4.222
Runtime Version: v2024.14.4.268
- added a new function called
cutscene_stop - added a new property for cutscenes called
localthat determines whether to destroy the cutscene when leaving the room cutscene_player_canmovenow has a new argument called_globalthat determines whether to make the movement rule global (persists through rooms) or local (only for this room)falseby default- fixed errors when equipping/unequipping items
- removed cutscene logic for unique_ids
v1.12.1
v1.12.1 (More Localized Sprites)
by @Leftory and @tweenko
update tutorial
IDE Version: v2024.14.4.222
Runtime Version: v2024.14.4.268
localization changes:
- localized Damage text in battle (and added Japanese variant of RECRUIT text)
- localized TP caption in battle and overworld power menu
- localized "PRESS" hint when fighting in battle
- localized "HP" text in battle and overworld menu
- localized "GAMEOVER" text
Target box in battle - added a new loc file called "damage.json" that contains all damage localization IDs
- changed logic for localizing damage sprites
- applied the
TEXT_HPCHANGE_MODEenumerator in source code when possible - added support for light world menu localization
misc changes:
- added the "bandage" armor
- the default weapon & armor are now the bandage and pencil instead of being undefined
v1.12.0
v1.12.0 (Saves, Memories and Localization Overhaul)
IDE Version: v2024.14.4.222
Runtime Version: v2024.14.4.268
be careful when updating your project! this update changes a lot of things!
save system changes:
- the whole save system was rewritten from the ground up
- the new save system is a lot more reliable and fixes lots of issues and bugs related to saving/loading that the engine had before
- settings now support
save_entries - all save_entry related things were moved to their own script called
save_entries savesscript renamed to simplysave- all functions in the save system now follow a more concrete naming pattern, thus lots of functions were renamed
- renamed
global.savestoglobal.save_filesto reduce confusion between it andglobal.save - empty save files are now marked by being empty structs (
{}) instead of-1 - new function
save_entry_reset_defaultthat resets the default value of a save entry to its original definition. could be useful in certain scenarios
memory changes:
- if you remember anything about states, please feel free to forget about everything you've known. now they're called memories and they're completely different
- the memory' predecessor, states, is now considered deprecated and is simply imitating a behavior simillar to the one achieved by the new memories. their use of id is also a bit broken due to some things not having an id. if you want to keep using states, which i don't recommend you do, you must add an identificator to all of them!
memory_get(_category, _identificator)returns a certain memory identifier in a certain memory categorymemory_set(_category, _identificator, _value, _locked = false)sets a certain memory identificator to a value. returns whether the target memory was changed or notmemory_flick(_category, _identificator, _locked = false)flicks a memory. if the memory doesn't exist, it will be flicked to true. returns the new value of the memorymemory_remove(_category, _identificator)flicks a memory. if the memory doesn't exist, it will be flicked to true. returns the new value of the memory- example of how you'd use memories:
var evil = memory_get("choices", "test_evil"); // first, we get a memory from an arbitrary category. if the memory doesn't exist, undefined will be returned
if !evil && choose("A", "B") == "A" // if we aren't evil yet, we choose between "A" and "B" in a 50% chance to become evil
memory_flick("choices", "test_evil", true); // if fate so decides, the "test_evil" memory is flicked true. the last argument here locks the memory from changing back to false if it's true already.localization changes:
- new function
loc_stringthat does the same thing aslocdoes with the functionality of replacing bracketed numbers (e.g. {0}), just like base GML’sstringcommand - all uses of
locandstringtogether were adjusted to useloc_stringinstead - new function
input_verb_get_namethat returns the name of an input verb and localizes it. applied it where it’s applicable - fixed fallback languages to actually work by checking whether a localization entry exists with that name before adding it to the localization data
- added new localization IDs in the form of localized bind names (e.g. “menu_bind_down”). you may add your own bind names you’d like to localize if you want to! just make sure they fit the
menu_bind_{x}naming scheme (where the {x} is your bind name) - added a new function
loc_existsthat returns whether a localization entry exists or not
text_typer changes:
- first of all, don’t get too attached. i’ll probably rewrite it sometime later in 2026 in my unrelated project
- the effect command, while still accepting real numbers, now counts this behavior as deprecated and should instead use strings to refer to their target effect
- the effect command now has bonus arguments called
effect_argumentsthat will change the effects’ behavior - the command recognition system should recognize boolean statements more reliably now because all
bool(x)calls were replaced with the newstring_to_bool(x) - added a new “wave” effect
- added support for all
string_to_colorcolors to also understand colors without the “c_” prefix
misc changes:
emitter_musicwas renamed toemitter_bgmbus_musicwas renamed tobus_bgm- added a new function
struct_emptythat checks whether a given struct is empty - chapter select now uses the new
save_entry_set_defaultinstead of simply changing the empty save that the engine was using - rewrote diagonal collision logic that better accounts for possible interferences once landing into the target zone
- added a new command called
string_to_boolthat reliably converts strings into boolean, while also accounting for the possibility that the string may simply equal to “true” or “false”
bugfixes:
- collision bugs are a lot less likely to occur due to a few rewrites
- the save system is a lot more consistent thanks to the rewrite and eliminates most of the bugs that can be found in versions before v1.12.0
- fixed an issue where the
input_binding_intextfunction would add one too many slashes (“/”) - fixed an issue where the current save's room name wouldn't be localized when overwriting a save
v1.11.2
v1.11.2
by @tweenko with contributions from @Leftory
update tutorial
IDE Version: v2024.14.4.222
Runtime Version: v2024.14.4.268
localization system changes:
- added a feature of a fallback language for localization that you can configure by changing the
global.loc_fallback_langvariable. - if
loccannot find the localized asset in the language requested, it will return the fallback asset as a failsafe - changed
loc_switch_langto roll you back to your last save by default - improved JSDoc for
loc_switch_lang - renamed last
loc_switch_langargument toload_save(whether to load the last available save, true by default) - changed the console's language_switch command accordingly
- added a failsafe for when a charset doesn't exist for the partyname font
chapter select changes:
- chapter names are now localized in the draw event in real time instead of being localized when the object is created
- added an option to not restart the chapter select screen when switching languages that's set to true by default. that's not how it is in deltarune, so you can set it to false in
o_chapter_select's create event - changed certain code formatting choices to look more alike to the rest of the engine's code
- the "Quit" option is now localized based on
chapter_select_quit - "Chapter X" labels are now localized based on
chapter_select_chapter - stars' x position was changed to account for the chapter label width (written by @Leftory) (feature request)
misc changes:
- revivemint is no longer a default item
engine_inforenamed togame_info- game over screen was fixed to actually spawn in dialogue and skip waiting altogether if there is no dialogue to show
- all macros and functions with
enginein them were changed togame:ENGINE_VERSION->GAME_VERSIONENGINE_NAME->GAME_NAMEENGINE_LAST_COMPATIBLE_VERSION->GAME_LAST_COMPATIBLE_VERSION__engine_version_to_real->__game_version_to_real__engine_versions_compare->__game_versions_compare
known issues:
- if you switch the language in the save_select menu, when loading a save the items will be localized incorrectly. will be solved after the save system rewrite