Skip to content

Releases: tweenko/tldr-engine

v1.13.3+1

13 Jun 06:44

Choose a tag to compare

Accuracy Improvements 3: Bugfixes & Cleanup (v1.13.3)

by @tweenko

encounter changes:

  • act enemy selection now returns to the button selection instead of the enemy selection
  • clicking the item button in an encounter with no items now plays snd_ui_select instead of snd_ui_cant_select for better deltarune accuracy
  • adjusted the battle (damage) messages animations further
  • a miss' color will now be dependent on the party member that missed the attack
  • added the special action mode to enemy selector
  • added an example of a special action for killer car
  • added actual support for custom party actions

misc chnages:

  • added support for border animation being instant and having configurable border crossfade animation length
  • switching borders will now be instant
  • you can no longer enter a climbing state when not moveable
  • fixed second sanctuary fog
  • you can now interact with items from further away (15 pixels) for better DR accuracy
  • window size is now accurate to DR

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