diff --git a/frontend/src/js/fight_scene.ts b/frontend/src/js/fight_scene.ts
index a3b5c6f7c38141bf54fd3b2ac605f1fedd8c9eb7..5affa321a3d86be0e89c53e5b105b8835ae3f817 100644
--- a/frontend/src/js/fight_scene.ts
+++ b/frontend/src/js/fight_scene.ts
@@ -323,7 +323,7 @@ export default class FightScene extends Phaser.Scene {
   }
 
   initAndBindGuessPreview() {
-    this.typewriter = new Typewriter();
+    this.typewriter ??= new Typewriter();
     this.typewriter.setHidden(this.game.device.os.desktop);
     this.typewriter.onSubmit = (inputStatus) => {
       if (inputStatus.began_at === null) return;
@@ -353,7 +353,7 @@ async function spawn(scene: any) {
   scene.time.now;
   const delay =
     (8 * 1000 * (60 * 1000 - scene.time.now)) / 60 / 1000 + 2 * 1000;
-  setTimeout(() => spawn(scene), 200);
+  setTimeout(() => spawn(scene), Math.min(200, delay));
 }
 
 async function spawnFoe(scene: FightScene) {