Copyright © 2025-2026 Candy ArtsJML Effects
JML effects (Join, Move, Leave) are animations played automatically on a bust node when an Actor arrives, moves or leaves: a fade-in, a slide from the side, a bounce...
| Effect | Played |
| Join | On the Actor's bust node, when VN_Play places an Actor new to the scene on it. |
| Move From | On the bust node an Actor leaves, with VN_Move or VN_Swap. |
| Move To | On the bust node an Actor arrives at, with VN_Move or VN_Swap, after Move From. |
| Leave | On the Actor's bust node, before it's emptied: by VN_Remove, and when every Actor is removed at once (see Leaving All at Once below). |
JML (set by the VN Scene's jml_player_name). Add the animations your effects use to that AnimationPlayer. A bust node without one plays no JML effects.
After a JML effect, a RESET animation plays, if there is one, so the bust node is restored for the next one. For an animation from a library (such as "JML/Fade_In"), that library's RESET is played; otherwise, the AnimationPlayer's own.
The libraries that ship in Candy_DE/Media/Actors/Busts/Animation_Libraries, such as JML, are 'safe' files: updates never overwrite the animations you add to them.
Choosing Effects
Each effect is written as a pair, ["Method", "Value"]:
["Animation", "Fade_In"]plays the animationFade_Inof the bust node's JML AnimationPlayer.["", ""]sets nothing: the next level decides.
- The Line's own effect (see VN_Play, VN_Move, VN_Swap and VN_Remove). A Line can also request no effect at all.
- The Actor's property: VNJoinEffect, VNMoveFromEffect, VNMoveToEffect or VNLeaveEffect (see Actor Properties).
- The VN Scene's setting: vn_join_effect, vn_move_from_effect, vn_move_to_effect or vn_leave_effect.
- The Engine's setting of the same name.
"Animation" is the only method built in. Other methods, such as "Tween" (to animate with a Tween rather than an AnimationPlayer), require your own code: add them to the match statement that plays JML effects in VN_UI.gd.
Order
When a Line places several Actors on screen, moves them or removes them, it can choose whether their JML effects play together or one after another. Each Actor on the Line receives an order number:
- Actors with the same number play their effects at the same time.
- Groups play in ascending order: the next group starts once the previous one is done.
1 to Alice and 2 to the others.
With VN_Swap, both Actors play their Move From effects together, trade bust nodes, then play their Move To effects together.
Leaving All at Once
Every Actor can be removed at once: when the Dialogue ends, by the UI_Clear command, or by clear_busts_ood() (see Visual Novels). Each of them can either play the Actors' Leave effects first, or remove them silently:
- At the end of the Dialogue: the Engine's jml_on_end setting.
- UI_Clear and clear_busts_ood(): their own option.