QuizForge
content factory.

Every format we test on the channel lives here: the script (scored), the covers, the render, and a Generate button that queues the video. Built for the 64-second band the winning quiz accounts live in.

Updated 2026-08-28 14:10Source cruzdigitalventures/quizforgeVoice ElevenLabs v3 · BillEpisodes 7
Format 01 · pauselock.py

PAUSE LOCK

Approved88s renderedlatest script v2 · 100/100

A cursor steps down four answers. “Pause on it.” Then silence. Whatever you froze on is your answer.

  • Hooka number and a threat, never the format
  • The stepgold cursor walks the rail ~0.4s/row; answer passes twice, never rigged
  • The lock“Pause on it…” then dead air; rows flip to ? boxes
  • Revealtaunt line, correct row lights, one-line fact
  • Interruptcomment your streak number
  • Bonusnever shown; a thousand comments pins it
InteractionPause
Target64s
Episodes2
Rendered1
episodes_geo_001 · heatDownload
Format 03 · grid.py

GRID

Six things on a board. Five seconds to memorise. Then the tiles become numbers and you answer by position. Last round: what's missing?

  • Hook“Five seconds. Six things. You'll forget one.”
  • Memoriseboard face-up, countdown ring, one tick per second
  • Flipevery tile becomes a numbered bubble; the board is now a coordinate system
  • Rounds“Where is the whisk?” 3s think, reveal flips that tile back face-up so the board gets easier
  • Interrupt + trap statcomment your score, numbers only
  • Missingfull board returns, one thing vanishes; never answered
InteractionRecall
Target64s
Episodes1
Rendered0
No render yet
Format 04 · ears.py

EARS

Approved86s renderedlatest script v2 · 98/100

One sentence spoken in a language you have to name from four flags. Sound on or you lose.

  • Hook“Round three ends you”
  • Clipa second voice says the line; waveform lit from real amplitude; plays twice
  • Railfour flags + countries, 3s
  • Revealtaunt, flag lights, one fact per language
  • Interruptcomment your language
  • Bonusnever named; if it's yours, tell them
InteractionListen
Target64s
Episodes2
Rendered1
episodes_ears_001 · heatDownload
Scripts · what the voice says

Scripts, scored.

Every episode is dry-run through the real format code (no TTS spent) and scored by script_lint.py against the punch-up rules: hook with a number or “you” in ≤9 words, an open loop paid off by the trap stat, second person every 20s, taunting reveals, one-word comment asks, a close that names tomorrow, and the 60–72s band the winning accounts live in. Green = ready to generate. Older versions stay for comparison.

PAUSE LOCK v2 episodes_geo_002.json100/10072.7s dry · not rendered

Lint

  • clean

Generate

or file the issue on GitHub

Queues a render. The poller picks it up within ~5 min; the video appears here when it's done.

tBeatVoice-overOn screen
0.0vo68 percent of you die at round three.68% OF YOU DIE / AT ROUND 3
3.2voAnd no rewinding.NO REWINDING /
4.8voStart easy. Which city is this?
7.3lockPause on it.
11.9revealParis, obviously.
13.2revealBuilt in 1889, and Paris wanted it gone.
16.6voFaster for you now. Which city is this?
19.8lockPause on it.
24.4revealRome, and don't lie.
26.5voWhat's your streak so far? Comment the number.COMMENT / YOUR NUMBER
29.7voRound three, are you ready? Which country is this?
33.2lockPause on it.
37.8revealIndia, you still alive?
39.6revealA tomb for his wife, then his son jailed him.
43.8vo68 percent of you missed that yesterday.68% MISSED IT / YESTERDAY
46.6voThis is the last real one. Which country is this?
50.4lockPause on it.
55.0revealGermany, you're built different.
57.1voBonus round. Which country is this?
59.6lockPause on it.
64.2lockNot showing you this one.
66.4lockA thousand comments and I pin it.
69.2voFour for four? Then follow, because tomorrow's is ugly.4 FOR 4? THEN FOLLOW / TOMORROW'S IS UGLY
PAUSE LOCK v1 episodes_geo_001.json0/10078.5s dry · heat 88s · glitch 88s · sticker 88s

Lint

  • hook has no number and no 'you': 'Four answers. Pause on the right one.'
  • hook describes the format instead of challenging: 'Four answers. Pause on the right one.'
  • AI-slip staccato (two short sentences back to back): 'Rome. Come on.'
  • AI-slip staccato (two short sentences back to back): 'Screenshot your streak. Comment it.'
  • AI-slip staccato (two short sentences back to back): 'Harder. Which country?'
  • AI-slip staccato (two short sentences back to back): 'Round 4. Good luck. Which country?'
  • AI-slip staccato (two short sentences back to back): 'India. Told you.'
  • AI-slip staccato (two short sentences back to back): 'Five. Which country?'
  • AI-slip staccato (two short sentences back to back): "Germany. You're good."
  • AI-slip staccato (two short sentences back to back): 'Bonus. Which country?'
  • AI-slip staccato (two short sentences back to back): "Perfect streak? Follow. Tomorrow's harder."
  • AI-slip staccato on screen: 'PERFECT STREAK? FOLLOW.'
  • runtime 78.5s over the 60–72s band (8s/round; cut a round)

Generate

or file the issue on GitHub

Queues a render. The poller picks it up within ~5 min; the video appears here when it's done.

tBeatVoice-overOn screen
0.0voFour answers. Pause on the right one.4 ANSWERS. / PAUSE ON THE RIGHT ONE.
2.8voNobody survives round 4.NOBODY SURVIVES / ROUND 4.
4.6voFirst. Which city is this?
6.8lockPause on it.
11.4revealParis.
12.7revealBuilt in 1889. Meant to be torn down.
16.2voNext. Which city is this?
18.3lockPause on it.
22.9revealRome. Come on.
24.4revealTwo thousand years old. Held fifty thousand.
27.5voScreenshot your streak. Comment it.SCREENSHOT / YOUR STREAK.
29.7voHarder. Which country?
31.1lockPause on it.
35.7revealAustralia.
37.0revealTook fourteen years to build.
39.5voRound 4. Good luck. Which country?
42.0lockPause on it.
46.6revealIndia. Told you.
48.0revealA tomb. An emperor built it for his wife.
51.9vo68 percent of you got that wrong yesterday.68% GOT IT WRONG / YESTERDAY.
55.0voFive. Which country?
56.5lockPause on it.
61.1revealGermany. You're good.
62.6revealThe king went bankrupt building it.
65.3voBonus. Which country?
66.8lockPause on it.
71.4lockNot showing this one.
73.2lockAnswer gets pinned at a thousand comments.
76.1voPerfect streak? Follow. Tomorrow's harder.PERFECT STREAK? / FOLLOW.
GRID v1 episodes_grid_001.json94/10068.7s dry · not rendered

Lint

  • longest stretch without 'you' is 25s (max 20)

Generate

or file the issue on GitHub

Queues a render. The poller picks it up within ~5 min; the video appears here when it's done.

tBeatVoice-overOn screen
0.0hookFive seconds, six things, and you'll forget one.5 SECONDS, 6 THINGS / YOU'LL FORGET ONE
3.2hookRound 4 is where everybody goes down.ROUND 4 IS WHERE / EVERYBODY GOES DOWN
6.0memoLook carefully.
11.0flipNumbers now, so where was it?
13.5questionWhere is the corkscrew?
18.3revealOne.
19.9questionWhere is the whisk?
24.7revealThree, that was easy for you.
27.2questionComment your score so far, numbers only.COMMENT YOUR SCORE / NUMBERS ONLY
30.0questionWhere is the peeler?
34.8revealFour, and don't lie.
36.6questionThis is the one that gets people. Where is the grater?
43.8revealSix, told you.
45.4question71 percent of you missed that one yesterday.71% MISSED IT / YESTERDAY
48.6questionWhere is the ladle?
53.4revealFive, are you still in?
55.6missingLast one, and something's gone.
61.7bonusI'm not telling you, so comment the number.
64.9bonusSix for six? Then follow, because tomorrow's board is bigger.6 FOR 6? THEN FOLLOW / TOMORROW'S BOARD IS BIGGER
EARS v2 episodes_ears_002.json98/10069.7s dry · not rendered

Lint

  • sentence over 11 words: "Shares most of its words with Spanish, yet they can't follow each other."

Generate

or file the issue on GitHub

Queues a render. The poller picks it up within ~5 min; the video appears here when it's done.

tBeatVoice-overOn screen
0.0voRound three ends you, four languages and one sentence.ROUND 3 ENDS YOU / 4 LANGUAGES, 1 SENTENCE
3.5voSound on, no subtitles, trust your ears.SOUND ON / NO SUBTITLES
6.3leadRound one.
7.5clip(language clip ×1)
9.4clip(language clip ×1)
13.5revealSpanish, too easy for you.
15.7revealThe second most spoken native language on Earth, ahead of English.
19.9leadRound two.
21.0clip(language clip ×1)
22.9clip(language clip ×1)
26.9revealPortuguese, and don't lie.
28.7revealShares most of its words with Spanish, yet they can't follow each other.
33.6voHas your language shown up yet? Comment it.HAS YOUR LANGUAGE SHOWN UP? / COMMENT IT
36.7leadRound three, and nobody gets three.
39.2clip(language clip ×1)
40.7clip(language clip ×1)
44.3revealKorean, did you hear that?
46.5revealIts alphabet dates from 1443 and takes an afternoon to learn.
50.7vo74 percent of you missed that one yesterday.74% MISSED IT / YESTERDAY
53.8leadBonus round.
55.0clip(language clip ×1)
57.4clip(language clip ×1)
62.0bonusNot telling you this one, so tell them if it's yours.
66.2voFour for four? Then follow, because tomorrow's is harder.4 FOR 4? THEN FOLLOW / TOMORROW'S IS HARDER
EARS v1 episodes_ears_001.json37/10076.8s dry · heat 86s

Lint

  • hook has no number and no 'you': 'Same sentence. Five languages. Sound on.'
  • longest stretch without 'you' is 29s (max 20)
  • 4 bare one-word reveals (taunt or dare instead): ['Spanish.', 'Portuguese.', 'Korean.']
  • AI-slip staccato (two short sentences back to back): 'Same sentence. Five languages. Sound on.'
  • AI-slip staccato on screen: 'SAME SENTENCE. 5 LANGUAGES. SOUND ON.'
  • AI-slip staccato on screen: 'YOUR LANGUAGE? COMMENT.'
  • AI-slip staccato (two short sentences back to back): "Five for five? Follow. Tomorrow's harder."
  • AI-slip staccato on screen: "5 FOR 5? FOLLOW. TOMORROW'S HARDER."
  • runtime 76.8s over the 60–72s band (8s/round; cut a round)

Generate

or file the issue on GitHub

Queues a render. The poller picks it up within ~5 min; the video appears here when it's done.

tBeatVoice-overOn screen
0.0voSame sentence. Five languages. Sound on.SAME SENTENCE. / 5 LANGUAGES. SOUND ON.
2.5voRound 4 ends most people.ROUND 4 ENDS / MOST PEOPLE.
4.6leadOne.
5.5clip(language clip ×1)
7.5clip(language clip ×1)
11.6revealSpanish.
12.8revealSecond most spoken native language on Earth. Ahead of English.
16.6leadTwo.
17.5clip(language clip ×1)
19.4clip(language clip ×1)
23.4revealPortuguese.
24.6revealShares most of its words with Spanish. The two still can't always follow each other.
30.2voYour language in here? Comment. I want to know.YOUR LANGUAGE? / COMMENT.
33.7leadThree.
34.6clip(language clip ×1)
36.1clip(language clip ×1)
39.7revealKorean.
40.9revealIts alphabet was invented in 1443. You can learn it in an afternoon.
45.8leadFour. This is the one.
47.9clip(language clip ×1)
49.7clip(language clip ×1)
53.6revealFinnish.
54.9revealNot related to Swedish at all. Its cousins are Estonian and, distantly, Hungarian.
59.7voYesterday 74 percent got that wrong.74% GOT IT WRONG / YESTERDAY.
62.2leadBonus.
63.1clip(language clip ×1)
65.6clip(language clip ×1)
70.1bonusNot telling you this one. If it's your language, tell them.
74.3voFive for five? Follow. Tomorrow's harder.5 FOR 5? FOLLOW. / TOMORROW'S HARDER.
Covers · cover.py

Thumbnails, three treatments.

Rendered from the episode JSON in its skin — no credits. Variant 0 = stacked type on the photo, 1 = blurred photo, 2 = sticker slabs. The TikTok cover and the Shorts thumbnail are the same file.

BLINK v2 · heat · v0
BLINK v2 · heat · v1
BLINK v2 · heat · v2
BLINK v1 · heat · v0
BLINK v1 · heat · v1
BLINK v1 · heat · v2
EARS v2 · heat · v0
EARS v2 · heat · v1
EARS v2 · heat · v2
EARS v1 · heat · v0
EARS v1 · heat · v1
EARS v1 · heat · v2
GRID v1 · heat · v0
GRID v1 · heat · v1
GRID v1 · heat · v2
PAUSE LOCK v2 · heat · v0
PAUSE LOCK v2 · heat · v1
PAUSE LOCK v2 · heat · v2
PAUSE LOCK v1 · heat · v0
PAUSE LOCK v1 · heat · v1
PAUSE LOCK v1 · heat · v2
Factory · ~/quizforge/factory.py

The pipeline.

  1. Scriptepisode JSON → PL_DRY=1 dry run → script_lint.py. Skill: quiz-script-punchup. Costs nothing.
  2. Covercover.py three variants per skin. Skill: quiz-cover. Costs nothing.
  3. Generatea Generate button above files a GitHub issue; the launchd poller renders (ElevenLabs VO is md5-cached, so re-renders of unchanged lines are free), then publishes here and closes the issue.
  4. Publish720p web copy + poster + covers → this repo → Cloudflare Pages (push = deploy).
  5. Postmaster from ~/Downloads via Higgsfield tiktok_publish; cover uploaded as the thumbnail. Next to wire.
  6. Learnpull_stats.py feeds yesterday's wrong-% back into prior_stat, and outliers decide which mechanic gets more episodes. Next to wire.
Episodes7
Script-ready4
Rendered3
Formats live4

What a billion views in six months actually requires

The arithmetic

  • 5.6M views / day average, for 180 days.
  • Quiz accounts are lottery-shaped: the top 10% of posts carry 73–86% of all views (measured on @thequizcontest, @quiz__pro).
  • The two winners' best posts were 16.4M and 42.2M. You need ~40 posts at 16M, or 300 at 2M — plus a long tail.
  • At a 100k median and one 5M+ outlier per 50 posts, that's ~1,200 posts: 6–7 a day across formats and accounts.

What the factory has to do

  • Volume without touching code — every episode is JSON; six photos is an episode.
  • Mechanic rotation, not polish — both winners collapsed 91–99% posting the seventh variation of one template.
  • Language-free answers travel to every feed (a number, a position). GRID and CLOSEST first.
  • 64s, shape-flip at ~59s — the round count is set by the runtime.
  • Multi-account — one account cannot absorb 7 posts a day; run lanes as accounts.

Format roadmap

  • Live — PAUSE LOCK · BLINK · EARS · GRID (memory board, position answer, the 16.4M mechanic)
  • Build next — GUT (unfalsifiable, share-gesture round, 42M mechanic) · CLOSEST WINS (number answer, highest comment density)
  • Then — SHRINK · SUDDEN DEATH · THE LIAR · REAL OR RENDERED · TWO THUMBS
  • All eight build as a new frame_fn on the same Show / plfx spine and inherit the frame tokens.
Design system · PL_SKIN

Three skins, same spine.

Every format renders in any skin from an env var — mechanic, timing and sound untouched.

episodes_geo_001 · heatDownload

Heat

Orange on near-black. Default. The most TikTok-native.

PL_SKIN=heat
episodes_geo_001 · glitchDownload

Glitch

Violet ground, cyan accent, magenta correct-state, heavier grain.

PL_SKIN=glitch
episodes_geo_001 · stickerDownload

Sticker

White paper, black type, acid-lime sticker. Reads brightest in-feed.

PL_SKIN=sticker