Visual Novel Auto Mode: When to Wait for Text, Voice, and Staging
Before a line can advance automatically, check text display, reading time, voice playback, and required staging separately, then confirm that the reader has not taken control. Three fictional lines in a greenhouse show how to build a waiting-rules table for the staging and implementation teams.

Introduction
Auto mode should allow the next line only when the current text is fully displayed, its allotted reading time has elapsed, its voice playback has ended naturally, all required staging is complete, and the reader has not paused to take control. Only when all these conditions hold is the line eligible to advance automatically. No single signal should trigger advancement on its own.
The greenhouse passage below is an original fictional teaching example. It is not a real user case, a measured result, a hands-on test, or a DramaFork product feature. A gardener gives a voiced warning, followed by unvoiced narration, and finally a line that waits for the curtains to open. We will use it to define rules for each line without assuming any particular engine.
1. Separate observable completion from unverified understanding
We can observe when text has finished appearing. A timer alone cannot tell us whether the reader has finished reading it. Designers should therefore turn the latter into an executable reading-time rule, with controls that let readers adjust and pause it. A finished countdown must not be treated as proof of understanding.
This example uses one explicit approach: accumulate reading time from the moment the last character of the current line is fully displayed. The required duration depends on the line’s visible text length and the waiting-speed setting selected by the reader. The project rules must also specify how punctuation is counted, using the same convention for voiced and unvoiced lines. This article does not prescribe a fixed speed suitable for everyone.
Voice playback and reading time can run in parallel. If the voice lasts longer, keep waiting for it; if the reading time lasts longer, keep the text on screen. Under this approach, a second full reading interval is not added after the voice ends. Another valid approach starts the timer after playback, giving readers dedicated time to look back over the text, though short lines may feel more stop-start. Either approach can work, but they must not be mixed within a passage without explanation.
2. Put all five conditions in a waiting-rules table
First record whether each line has voice audio and any staging that must block advancement, then fill in the table below. A line configured without voice audio is a known case; playback failure is an error. They must not share a flag that simply means “finished.”
| Check | Rule used in this example | Observable basis for allowing advancement |
|---|---|---|
| Text display complete | All text in the current line has appeared | A full-display signal for the current line has arrived |
| Reading time | After all text is displayed, accumulate time according to line length and the user’s setting | The reading time counted for the current line reaches the required duration |
| Voice ended | Voiced lines wait for a natural end; unvoiced lines are explicitly exempt | An end signal for the current line, or the line is registered in advance as unvoiced |
| Blocking staging | Wait only for staging on the current line’s blocking list | Every listed item reaches its specified completion state |
| Pause and reader control | Auto mode is enabled and the reader has not taken control | The reader has not paused or opened the backlog or a menu |
The user’s waiting-speed setting supplies the required reading duration; it is not another independent countdown. In this example, the setting is read when a line begins. If the reader opens settings and changes it mid-line, pause first. Once the reader explicitly resumes, recalculate the current line’s required duration using the new setting and start counting from zero. This means waiting again, but avoids advancing immediately after the reader selects a slower speed.
“Staging complete” must refer to a specific state. Here, we write “the curtains reach the fully open position,” not “the scene looks about ready.” The greenhouse’s looping light-and-dust effect is excluded from the blocking list; otherwise, a decorative effect with no endpoint would prevent the line from ever advancing.
3. Check eligibility across the three lines
The first line is the gardener’s voiced warning: “Don’t touch that pot of seedlings yet. Wait until I open the curtains.” This line delivers only the warning; it does not start opening the curtains. Reading time begins once the text is fully displayed, while the voice continues. Even if the reading time is satisfied first, the line cannot advance. After the voice ends naturally, check auto mode and the pause state again. Proceed to the narration only when all conditions are met.
If the voice ends first while characters are still appearing, keep waiting for the full text, then complete the reading interval. The end of the voice releases only the voice constraint; it does not prove the text has remained on screen long enough. If pauses need to be removed from the voice recording, work through the order of completion again rather than assuming the old timing still holds.
The second line is unvoiced narration: “He sets his gloves on the bench. Only the soft rustle of leaves remains in the greenhouse.” This line is registered in advance as unvoiced and has no staging that must be awaited. Accumulate reading time after the full text appears. Once that requirement is met, the line becomes eligible to advance. There is no need to fabricate an audio-ended event, and the absence of audio must not cause the line to be skipped immediately.
The third line is also unvoiced: “The curtains draw apart, and the first shaft of light falls across the seedling tray.” Start opening the curtains when this line begins, and register “curtains fully open” as a blocking condition. If the reading time has elapsed but the curtains are still moving, stay on this line. If the curtains open fully first, finish the text’s reading interval. Only after both requirements are met may the scene proceed to the gardener’s next explanation.
These three lines cover voice waiting, unvoiced reading time, and staging waits respectively. For handoff, record each line’s entry state, the order in which its conditions complete, the last constraint released, and whether advancement occurs. You can check the logic for consistency without inventing durations in seconds.
4. Resuming after reader control must be explicit
In this example, clicking the main text, opening the backlog, entering a menu, or actively turning off auto mode first pauses automatic advancement. If the reader clicks the text before it has fully appeared, that input only reveals the rest of the current line. If the text is already complete, it only pauses. Subsequent manual advancement follows separate manual-control rules; the same input must not also advance to the next line.
Stop accumulating reading time while paused. Whether voice and staging continue needs a separate rule. Here, taking control through an ordinary click on the text lets them continue, while opening a menu pauses any playback that supports pausing. Whatever playback policy is chosen, completion signals received during a pause may update state only; they must not trigger advancement.
Closing the backlog or menu does not resume auto mode. Once the reader explicitly chooses to continue automatically, keep the current line’s text fully displayed and restart its reading time from zero. Do not replay voice that has already ended naturally or reopen curtains whose movement has already completed. Continue waiting for unfinished items. The cost is a potentially longer stay on the line after resuming; the benefit is that returning to the text does not immediately send the reader past it.
If the reader has already advanced manually to the next line, the old line’s waiting record becomes invalid. A late end signal from the old voice playback must not release a constraint on the new line. Each completion signal therefore needs to be recorded with the identity of the line it belongs to.
5. Provide a way out of errors and define the scope
Voice audio that fails to load, is interrupted, or is stopped manually has not ended naturally. In this example, these cases pause auto mode and offer either a retry or an explicit switch to unvoiced reading for the current line. After switching to unvoiced reading, complete the reading interval again. Do not use a hidden timeout to quietly treat every error as success.
The curtains also remain a blocking condition until they reach the fully open state. If the design allows skipping, define a separate rule that immediately displays the fully open state after a skip. Simply stopping the animation with the curtains half open does not count as completed staging.
Before handoff, use the three lines to check different event orders: voice ending first, reading time being satisfied first, curtains opening fully first, an end signal arriving during a pause, and a signal from an old line arriving late. In every case, you should be able to name the exact condition that remains unmet, rather than recording only “stuck” or “advances too fast.”
These rules apply to linear reading passages that advance one line at a time. When reaching a choice, a scene requiring continuous input, or staging with no defined endpoint, leave this automatic-advancement flow and use the relevant interaction rules. The waiting table can explain when advancement is allowed; it cannot prove that every reader has understood the text.






