<<type>> not showing text when button is pressed too quickly

I’m making an interactive fiction game that uses the type macro and click to continue macros like ‘cont’. Most of my usage for type is when the player is in a visual novel-esque situation where characters are talking to the player through small sentences. I’ve had it play-tested a couple of times, and there were times where clicking twice on accident in a rapid motion causes the type dialogue to disappear completely. The only way for it to load back up all together is if the player refreshed the passage. Once the type dialogue breaks, all type dialogue for that passage is broken as well, which is an inconvenience for me personally. I’ve even tried to use buttons and links, and even the skipkey for the type macro for dialogue progression and the problem still arose. I don’t know whether there is a bypass for this issue or if I should scrap using type all together.

Here’s an example of dialogue that I use with the type macro, if that helps.

<<type 15ms none skipkey "Control">>
@@#talk;
Hi, my name is Carlson.
@@
<</type>>
<<cont>>
	<<replace '#talk'>>
		<<type 15ms none skipkey "Control">>
		We both go to the same university.
		<</type>>
	<</replace>>
	<<cont>>
		<<replace '#talk'>>
			<<type 15ms none skipkey "Control">>
			That's cool, right?
			<</type>>
		<</replace>>
	<</cont>>
<</cont>>
1 Like

It almost seems as though you could solve this just taking out the <<replace>> macro so the lines of dialogue stack together and skipping to the next doesn’t replace what’s come before immediately.

That probably negates the style you’re going for. Your other option is to disable the “click to proceed” function which would annoy some people. I personally will bail out of a game if it forces me to watch prose type out one letter at a time on any consistent basis, but I know that’s a specific style for VN.

Another option would be to put a link to “review” previous dialogue (similar to VNs and built into Ren’Py) and pop up a window with all three lines together, but that means you have to build a log of all the conversation for every character.

Have you tried something like the following:

@@#talk;
<<type 15ms none skipkey "Control">>
	Hi, my name is Carlson.
	<<cont>>
		<<replace "#talk">>
			<<type 15ms none skipkey "Control">>
				We both go to the same university.
				<<cont>>
					<<replace "#talk">>
						<<type 15ms none skipkey "Control">>
							That's cool, right?
						<</type>>
					<</replace>>
				<</cont>>
			<</type>>
		<</replace>>
	<</cont>>
<</type>>
@@

Yeah, thanks. I’ve decided to make a review page for all my text. I think it’ll be useful for me and for those that break it on accident. I can plan my text beforehand, lol. As for the click to proceed, I have decided to go for a fade-in type of macro instead, and I made a macro that binds keybindings to reproduce the text.

Thanks Mad, but I was still having the same problem. It’s alright though, I came up with an alternative answer. But I will take note of the efficiency of this code.