LVNAuth version 1.1 is out and includes some important changes in the way it handles animations.
Frame rate independence
Prior to version 1.1, all animations were tied to the frame rate. The frame rate is set to a fixed 60 frames per second. However, if a visual novel is played on a slow computer, it may not reach 60 frames per second (just like it won't in a video game) and the animation would run slower. Now with version 1.1, if there's a slow down, the next frame will try to catch-up where the animation should be, had it not been slowed down in the previous frame. This is important because if you're syncing music with what's being displayed in the visual novel, events need to be synced with the music as closely as possible.
With this change, all animation speeds will be affected in your visual novels. You'll need to review and probably revise the speed of the animations because the range of animation speeds have been changed.
For example, letter by letter fade in effects used to only have a speed between 1 and 10. Now it's been changed to allow a speed between 1 and 1200, which allows for finer speed adjustments. So continuing with this example, if you currently have a letter by letter fade-in speed set to 5 (on a scale between 1 to 10), well 10 has a different meaning now. It will now mean a speed of 10 out of 1200, which will be much slower. This breaking change is necessary for animation accuracy, regardless of the frame rate, going forward in LVNAuth. So if you've started a visual novel in LVNAuth, please review it thoroughly after upgrading to LVNAuth version 1.1.
Animation commands are easier to use.
Starting an animation now just requires one command. It's easier to start animations.
This is what a fade animation used to look like, prior to version 1.1. Let's assume the character alias is theo.
Prior to version 1.1 - starting a fade out animation
<character_fade_speed: theo, 11, fade in>
<character_fade_until: theo, 0>
<character_start_fading: theo>
Version 1.1 - starting a fade out animation, just one line!
<character_start_fading: theo, 753, 0>
theo is the character's alias
753 is the fade out speed
0 is the destination fade value. Zero means fully transparent.
There is no need to memorize the commands and parameters. Clicking on a value will show you what that value is for and editing the command is as easy as right-clicking on the command and choosing 'Edit'.
No more delay commands
Most delay commands have been removed and no longer work, because there is no need for them anymore.
For example, these commands have been deprecated:
<character_fade_delay>
<character_rotate_delay>
<character_move_delay>
<character_scale_delay>
<object_fade_delay>
<object_rotate_delay>
<object_scale_delay>
<object_move_delay>
<dialog_sprite_fade_delay>
<dialog_sprite_scale_delay>
<dialog_sprite_move_delay>
<dialog_sprite_rotate_delay>
The reason is: animations now offer finer speed adjustments, so there's no need to delay an animation anymore.
Full release notes - Version 1.1
Here are the full release notes:
LVNAuth 1.1
December 31, 2025
-
Animation speed is no longer directly dependent on a visual novel's FPS (Frames Per Second). In previous versions, low frame rates slowed down all animations. Now, animations are time-based, meaning they will complete on time even on older hardware. This ensures consistent timing of visual events with your sound design. Due to this change, existing visual novels will need to be updated! The speed of all animations will likely need to be revised and re-timed to work correctly with the new, consistent timing system. Please test your current projects thoroughly after upgrading.
-
Added much finer speed control over effects such as fading, rotating, scaling, moving.
-
Removed the following commands:
| Removed | Replacement |
|---|---|
<_move> |
Now part of <_start_moving> |
<_fade_speed> |
Now part of <_start_fading> |
<_fade_until> |
Now part of <_start_fading> |
<_rotate_speed> |
Now part of <_start_rotating> |
<_rotate_until> |
Now part of <_start_rotating> |
<_scale_by> |
Now part of <_start_scaling> |
<_scale_until> |
Now part of <_start_scaling> |
For example: prior to this update, if you wanted to fade a sprite, you would have to use 3 commands: fade_speed, fade_until, start_fading. Now it just requires 1 command: start_fading. That single command takes the fade speed and the stop instructions. This makes scripts shorter and easier to edit.
- The gradual letter fade-in effect on dialogue text is now smoother and more consistent. Previously, the animation would stall on space characters until prior letters were fully faded in; this issue has been resolved.
<font_text_fade_speed> and <sprite_font_fade_speed> have been removed.
The commands that have replaced them are:
<font_text_fade_letter_speed>
<font_text_fade_all_speed>
<sprite_font_fade_letter_speed>
<sprite_font_fade_all_speed>
The reason for two commands instead of one is because a letter by letter fade-in effect accepts different speed settings compared to a complete-text fade-in effect. A complete fade-in text effect has a max speed value of 10, whereas a letter-by-letter fade-in has a max speed value of 1200.
-
The fade effect no longer uses 'fade out' or 'fade in' as part of the command. A destination fade value is now required for any fade animation to occur. Based on the destination fade value, LVNAuth will automatically determine whether a fade-in effect should be applied or a fade-out.
-
Replaced
<font_text_delay>with<font_text_letter_delay>. This new command is only for letter-by-letter gradual text animations (non-fading) and can accept a decimal value in seconds, such as 0.5 (which means a delay of half a second for each letter). The range is 0 seconds (fast) to 10 seconds (slow). -
Movement settings now use a speed setting range between 1 and 1500.
-
Removed the following delay commands (these commands are no longer supported):
<character_fade_delay>
<character_rotate_delay>
<character_move_delay>
<character_scale_delay>
<object_fade_delay>
<object_rotate_delay>
<object_scale_delay>
<object_move_delay>
<dialog_sprite_fade_delay>
<dialog_sprite_scale_delay>
<dialog_sprite_move_delay>
<dialog_sprite_rotate_delay>
-
Renamed the following sprite_font commands:
<sprite_font_delay>renamed to<sprite_font_text_letter_delay>
<sprite_font_delay_punc>renamed to<sprite_font_text_delay_punc> -
<font_text_delay_punc>and<sprite_font_text_delay_punc>commands now take delays in seconds instead of frames. Delay values in fractions of a second (like 0.25 or 0.5) can now be used. -
'after' related commands, such as
<character_after_fading_stop>,<character_after_rotating_stop>, etc, now have the ability to send optional arguments to a reusable script. -
Added a new versatile tinting effect for characters, objects, and dialog sprites. Sprites can be darkened or brightened depending on your needs. New commands:
<character_start_tinting>,<object_start_tinting>, and<dialog_sprite_start_tinting>. -
Introduced "Focus" variant commands—
<character_focus>,<object_focus>, and<dialog_sprite_focus>. These commands automatically tint all other sprites in a category while leaving a single sprite untinted. This is ideal for highlighting the active speaker in a scene. -
Added the tint effect to
<wait_for_animation>so that the main script can wait while a tint effect is occurring. -
Fixed a critical bug: when a scene that was not in the first chapter, was set as the startup scene, saving the visual novel and re-opening the project would cause some chapters to not load anymore. This has been fixed.
-
Fixed a bug where the last frame of a fade-out effect wasn't applied when the opacity reached zero. This caused a slight visibility of the sprite when it should have been completely transparent.
-
Fixed bug: a rotating/scaling sprite would flicker when the sprite was not fully opaque.
-
Fixed bug: right-clicking on the command
<font_intro_animation>and editing it would not select the right animation from the drop-down menu in the Wizard window. -
Fixed bug: mouse-related commands, such as,
<character_on_mouse_click>, showed a list of sprite names in the Wizard window's drop-down menu instead of reusable scripts. Now the drop-down menu correctly shows a list of reusable script names. -
Fixed bug: right-clicking on the command
<_stop_movement_condition>and editing it would not show the right stop location sometimes. For example, if you tried to edit this command:<object_stop_movement_condition: flower, top, below bottom of display>, it would not show 'below bottom of display'. Instead, it would have shown a pixel coordinate selection box. This has been fixed. -
Corrected the command
<object_after_fading_stop>showing in the wrong command category ('Flip' instead of 'Fade').