Ren'Py Pause few seconds a cutscene in Renpy

UncommonRole

Newbie
Jan 4, 2021
39
20
Hello there, I'm just finishing my first chapter of a visual novel, and I have a problem.

The issue is that I have many cutscenes, and I don't want to make them unskippable, but players unconsciously skip these cutscenes by clicking too quickly. Is there an option to avoid this problem? Maybe by adding a 3-second pause at the beginning? I don't know how to do that.

I'm sorry if it's a silly question, but I'm new to the world of programming and visual novels :unsure:

Thanks for the help!
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,978
16,233
[...] but players unconsciously skip these cutscenes by clicking too quickly.
Generally if players skip cutscenes, it's because they don't recognize them as cutscenes, or because the said cutscenes feel boring.
The second can only be fixed by making them better. As for the first, it seem that Desert Stalker's method works relatively well. You warn that what follow will be a cutscene, and you keep a small "cutscene in progress" notice displayed during all the said cutscene.
 
  • Like
Reactions: UncommonRole

_Doux

Member
Game Developer
Jun 20, 2023
110
504
Well, lets say you're showing one (or more) specific image and you want to make it impossible to skip for 5 seconds, then:

scene yourimage
$ renpy.pause(5, Hard=True) #After 5 seconds, clicking or not, it jumps to the label "endgame".
jump endgame

But I need to advise you, use wisely, so you don't bother the players.
In my case, I only use in important moments, like for example, in the moment of show the message: "save your game, end of this chapter..." So that, the "rush players" will not miss the moment to save their game.
 
  • Like
Reactions: UncommonRole

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,611
2,258
There are a couple of answers.

First is rollback. If a player accidently skips a cutscene, they can rollback to see it. If they choose not to rollback, that's on them. No programming required.

Second is to show the cutscene and then normal pause and then some line of dialogue (leaving the cutscene in the background). If the player clicks through the cutscene AND the pause, the text shown on the screen should at least slow them down enough while they are reading it - during which time, they will see the cutscene in the background. Where possible, always use pause {time} and not just pause (because most developers never think about players who play with auto-advance activated and therefore don't think about pause being 0 seconds long). The time would usually be 0.5 second longer than your cutscene length or longer depending on the cutscene).

Something like:

Python:
    scene my_cutscene1 with dissolve
    pause 1.0
    "The door creaked open."

Finally... The answer is hardly ever $renpy.pause(hard=True). It's almost always the wrong solution to a problem. It's been discussed a lot over the years and consensus usually ends up being to not use them or use them VERY sparingly. I'm unconvinced by the sparingly solutions and very much in favor of never.

Ultimately, the player skipping a cutscene is the player's problem. The more you try to interfere as the developer, the more you are taking away player agency. Sorry if that means a small number of players won't see that cutscene you spent a week of blood, sweat and tears crafting... but that's on them... not you.