Skip to content

Releases: tweenko/tldr-engine

v1.13.2+1

12 Jun 09:34

Choose a tag to compare

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

11 Jun 17:05

Choose a tag to compare

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_move is played
  • changed how option selections function
  • removed snd_ui_cant_select when 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

10 Jun 20:38

Choose a tag to compare

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_bullet to better explain all variables

v1.13.1+1

03 May 18:42
6236b92

Choose a tag to compare

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_create that creates a ripple wherever you'd like with lots of customization
  • new functions lb_ripple_vision_on and lb_ripple_vision_off that enable/disable ripple vision
  • new object o_lb_ripple
  • new object o_lb_ripple_vision for making dark rooms
  • when under ripple vision, leader actor now emits ripples every other footstep

lighting system modifications:

  • o_eff_lighting_controller has three new variables: shadows, darken and highlights that 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

02 May 20:04
5b40b2a

Choose a tag to compare

Climbing and More (v1.13.0)

by @tweenko
update tutorial

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 add o_dev_climb_tile objects 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_into that is just a jump movement without the landing animation
  • added an optional argument to actor_movement and actor_movement_jump called _play_sfx that determines whether corresponding sfx should be played (if applicable)
  • added an optional argument to actor_movement_jump called _time that determines the time the jump animation will take
  • new o_actor variable override_blend that, if not set to undefined, will override the actor blending. for internal usage
  • new o_actor variable alpha_mod that can modify the actor alpha

test zone changes:

  • connected room_test_climbing and room_test_loopback
  • added some more decor to room_test_loopback

misc changes:

  • marker_find_closest was moved to deprecated and renamed to marker_find_closest_id
  • marker_find_closest_inst was renamed to marker_find_closest and marker_find_closest_inst is now deprecated
  • o_eff_generic now has start_alpha and end_alpha
  • o_eff_generic's start_scale was changed to 1
  • o_afterimage now has a scale_mod variable
  • o_camera now 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_typer mini 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_play and cutscene_audio_play called offset that offsets the sound by an x amount of frames
  • cutscene_audio_play now has a new argument called sound_type that determines the target emitter of the sound you want to play
  • added JSDoc for cutscene_audio_play
  • new function audio_get_target_emitter that returns an audio emitter based on the sound type provided
  • added a new argument to item_contains called item_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's win_condition now actually works and the behavior linked to o_enc's win_condition was changed to now be linked to enc_set's method
  • fixed the item_contains function to work correctly (it didn’t work before)

v1.12.2+1

12 Apr 17:02

Choose a tag to compare

v1.12.2+1 (Dev Tools, QOL & Bugfixes)

by @tweenko
update tutorial

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_world and simply made it spawn o_dev_savewipe_prompt instead
  • 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_default and __support_destroy_check that now ignores the support turns

save changes:

  • added a new macro called SAVE_ENCODE in the save script that controls whether to encode a player's save data when saving. set to false by default, but encouraged to be set to true when finishing the game
  • two new functions: save_to_string and save_from_string that 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_H and GAME_W_GUI and GAME_H_GUI (the normal draw scale and the gui draw scale respectively)
  • added a new function called draw_text_highlighted that'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 font hash 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_box was extended from 120 frames to 300
  • o_ex_turn_dentos is now a support turn
  • o_ex_turn_dentos now appropriately uses cutscene_stop instead of instance_destroy
  • o_ex_turn_dentos turn's logic was changed so that it works if its index is higher than 1
  • made spawn bullets animated
  • updated cutscene_lb_music_pitch to work the new cutscene system
  • added enum for SOUL_COLOR instead 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_canmove always set the player instance's moveable variable to false instead of the desired choice
  • enc_enemy_isfighting now 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

10 Apr 16:37

Choose a tag to compare

v1.12.1+1 (Cutscene Updates, Bugfixes)

by @tweenko
update tutorial

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 local that determines whether to destroy the cutscene when leaving the room
  • cutscene_player_canmove now has a new argument called _global that determines whether to make the movement rule global (persists through rooms) or local (only for this room) false by default
  • fixed errors when equipping/unequipping items
  • removed cutscene logic for unique_ids

v1.12.1

09 Apr 17:57
cc3495b

Choose a tag to compare

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_MODE enumerator 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

08 Apr 18:10
3793dcd

Choose a tag to compare

v1.12.0 (Saves, Memories and Localization Overhaul)

by @tweenko
update tutorial

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
  • saves script renamed to simply save
  • all functions in the save system now follow a more concrete naming pattern, thus lots of functions were renamed
  • renamed global.saves to global.save_files to reduce confusion between it and global.save
  • empty save files are now marked by being empty structs ({}) instead of -1
  • new function save_entry_reset_default that 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 category
  • memory_set(_category, _identificator, _value, _locked = false) sets a certain memory identificator to a value. returns whether the target memory was changed or not
  • memory_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 memory
  • memory_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_string that does the same thing as loc does with the functionality of replacing bracketed numbers (e.g. {0}), just like base GML’s string command
  • all uses of loc and string together were adjusted to use loc_string instead
  • new function input_verb_get_name that 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_exists that 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_arguments that 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 new string_to_bool(x)
  • added a new “wave” effect
  • added support for all string_to_color colors to also understand colors without the “c_” prefix

misc changes:

  • emitter_music was renamed to emitter_bgm
  • bus_music was renamed to bus_bgm
  • added a new function struct_empty that checks whether a given struct is empty
  • chapter select now uses the new save_entry_set_default instead 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_bool that 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_intext function 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

05 Apr 16:12

Choose a tag to compare

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_lang variable.
  • if loc cannot find the localized asset in the language requested, it will return the fallback asset as a failsafe
  • changed loc_switch_lang to roll you back to your last save by default
  • improved JSDoc for loc_switch_lang
  • renamed last loc_switch_lang argument to load_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_info renamed to game_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 engine in them were changed to game:
    • ENGINE_VERSION -> GAME_VERSION
    • ENGINE_NAME -> GAME_NAME
    • ENGINE_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