> ## Documentation Index
> Fetch the complete documentation index at: https://docs.highailabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The Script Room

> Production-ready Professor High scripts for TikTok. Every episode written beat-by-beat with hook variants, on-screen text, voiceover, and Cantina shot prompts.

## What This Section Is

The [Show Bible](/social/overview) answers **what** to make. The Script Room answers **what to say, second by second**.

Every page in this section is a **script pack**: ready-to-shoot episodes written to a show's documented format, each with competing hooks, full voiceover, on-screen text, and a **copy-paste [Cantina](/social/scripts/production-spec#the-cantina-prompt-block) prompt** that generates the video.

These are not outlines. A script pack is meant to be handed to production and shot without a second drafting pass.

<Warning>
  **Read [Compliance](/social/compliance) and the [Video Teardowns](/social/teardowns) before writing anything new.**

  Compliance is account-critical: TikTok's current guidelines contain an explicit *"Fiction or art"* allowance, but **unlabeled AI video runs a four-step path to a permanent ban** and **no script may enable real-world access** to product. Both are enforced in the [production checklist](/social/scripts/production-spec#continuity-checklist).

  The teardowns define the [two grammars](/social/scripts/production-spec#the-two-grammars) — comedy and education are different visual languages, and mixing them is what the first draft got wrong.
</Warning>

<Note>
  Scripts are written to be **tested, not treasured**. Every script carries a tracking ID and a stated test variable. The [Testing Framework](/social/scripts/testing-framework) explains how a script earns a second season or gets cut.
</Note>

## The Script Packs

<CardGroup cols={2}>
  <Card title="The Comedy Engine" icon="masks-theater" href="/social/scripts/comedy-engine">
    `CE-001` to `CE-008`. Cold-open on cast dialogue, 15-30s, minimal text. The growth bet.
  </Card>

  <Card title="15s Hook Tests" icon="flask-vial" href="/social/scripts/hook-tests-15s">
    `HT-001` to `HT-008`. Eight 15-second scripts as a controlled hook-family experiment. Run this first.
  </Card>

  <Card title="TIWIH Receipts" icon="receipt" href="/social/scripts/tiwih-receipts">
    `TR-001` to `TR-005`. Decode a dispensary receipt into a terpene forecast. UGC engine.
  </Card>

  <Card title="Why You're Really High" icon="microscope" href="/social/scripts/why-youre-really-high">
    `WRH-001` to `WRH-005`. Reverse-diagnose a described high back to its chemistry.
  </Card>

  <Card title="High IQ Test" icon="graduation-cap" href="/social/scripts/high-iq-test">
    `HIQ-001` to `HIQ-005`. Daily one-question quiz. Cheapest views in the library.
  </Card>

  <Card title="The Entourage" icon="users" href="/social/scripts/the-entourage">
    `ENT-001` to `ENT-005`. The terpenes as a character cast. The long-term IP bet.
  </Card>

  <Card title="Spotify = Your Strain" icon="music" href="/social/scripts/spotify-equals-strain">
    `SPT-001` to `SPT-005`. Music taste in, strain plus AI soundtrack out.
  </Card>

  <Card title="That's Why You're High" icon="quote-left" href="/social/scripts/thats-why-youre-high">
    `TWH-001` to `TWH-005`. Stitch someone's "idk why I'm so high" and answer it.
  </Card>

  <Card title="Budtender Court" icon="gavel" href="/social/scripts/budtender-court">
    `BC-001` to `BC-005`. Bad counter advice goes on trial. Comedy wrapper, serious ruling.
  </Card>

  <Card title="Roast My Stash" icon="fire" href="/social/scripts/roast-my-stash">
    `RMS-001` to `RMS-005`. Score a stash 1-100 on terpene diversity. Status game.
  </Card>

  <Card title="Lab Logs" icon="moon" href="/social/scripts/lab-logs">
    `LAB-001` to `LAB-005`. 3 AM research diaries. Serial texture, standalone episodes.
  </Card>

  <Card title="If Labels Told The Truth" icon="tag" href="/social/scripts/if-labels-told-truth">
    `LBL-001` to `LBL-005`. Parody labels. Screenshot bait carrying the brand thesis.
  </Card>
</CardGroup>

## Supporting Docs

<CardGroup cols={3}>
  <Card title="Cantina Production Spec" icon="video" href="/social/scripts/production-spec">
    The character-lock prompt, shot prompt grammar, and voice direction that keep Professor High identical across every video.
  </Card>

  <Card title="Hook Library" icon="bolt" href="/social/scripts/hook-library">
    Every hook, ID'd and categorized, so we can measure which hook families actually hold.
  </Card>

  <Card title="Testing Framework" icon="chart-line" href="/social/scripts/testing-framework">
    What we track, what "good" looks like, and the rules for killing or scaling a show.
  </Card>

  <Card title="Verified Data Sheet" icon="database" href="/social/scripts/verified-data">
    The real numbers Professor High is allowed to say on camera. Refresh before every batch.
  </Card>

  <Card title="Platform Research" icon="magnifying-glass-chart" href="/social/scripts/platform-research">
    What TikTok actually rewards and bans — hook data, AI-content rules, and the cannabis compliance lane.
  </Card>
</CardGroup>

## Anatomy Of A Script

Every episode in every pack uses the same block structure.

| Block              | What It Contains                                                                                                                                                                                   |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Header**         | Script ID, runtime, show, pillar, test variable, and the data the script needs before it can be shot.                                                                                              |
| **Hooks (A/B/C)**  | Three competing opening lines, each tagged with a [hook ID](/social/scripts/hook-library). Shoot the A hook first; B and C exist so a flop can be re-cut instead of re-written.                    |
| **Beat table**     | `TIME` / `VOICEOVER` / `ON-SCREEN TEXT` / `SHOT`. The shot column is written as a Cantina prompt fragment.                                                                                         |
| **Caption**        | The posted caption, written to earn a comment rather than describe the video.                                                                                                                      |
| **Hashtags**       | Platform-specific. Never more than five on TikTok.                                                                                                                                                 |
| **Test note**      | The one variable this script isolates, so the result means something.                                                                                                                              |
| **Cantina Prompt** | A fenced block you copy whole and paste straight into Cantina. Assumes the character is already loaded — it carries the script, tone, environment, shots, text style, audio, and hard constraints. |

## The Three Runtimes

We write to three lengths and almost nothing in between.

<CardGroup cols={3}>
  <Card title="15 seconds" icon="bolt">
    One hook, one payoff, no body. Highest completion rate on the platform and the only length where the hook is unambiguously the variable. Used by the [15s Hook Tests](/social/scripts/hook-tests-15s) pack.
  </Card>

  <Card title="30 seconds" icon="stopwatch">
    One idea, one payoff, no digression. Used for quizzes, stitches, label parodies, and receipt decodes. Highest completion rate, which is the metric TikTok rewards hardest.
  </Card>

  <Card title="60 seconds" icon="clock">
    A setup, a turn, and a payoff. Used when the science needs a mechanism, not just a fact. Buys watch time at the cost of completion rate.
  </Card>
</CardGroup>

Below 15 seconds there is not enough watch time to earn reach even at full completion. Anything over 75 seconds needs a story reason, not a content reason.

<Warning>
  **The 1.5 second rule.** The hook must land a complete idea before the 1.5 second mark, spoken *and* on screen. Not a wind-up, not a greeting, not a logo. If the first frame is a brand asset, the script is wrong.
</Warning>

## The Data Token Rule

Professor High's authority is the whole product. A single fabricated statistic on camera costs more than a hundred views gain.

So scripts never hardcode a number that has to come from the database. They carry a token instead:

```
[DATA: dominant terpene % for Blue Dream — GET /api/v1/strains/slug/blue-dream/complete]
```

Production fills the token from the live API or the [Verified Data Sheet](/social/scripts/verified-data) at shoot time. A script with an unfilled token does not get rendered.

Numbers that are already verified and stable — the terpene distribution, the THC percentiles — are written inline and sourced to the data sheet.

<Warning>
  **Inventory is not a story.** Do not build a hook, caption, or on-screen line around how many strains we have. A database count is a fact about us; nobody shares a video because a company had a big table.

  Say **proportions**, which are claims about cannabis: "half of all cannabis is the same terpene," not "I analyzed N strains." When scale genuinely has to be stated, the framing is coverage plus on-demand research — "over 20,000 strains, research any of them on demand" — because that is the actual product. See [Rule One](/social/scripts/verified-data#rule-one-inventory-is-not-a-story).
</Warning>

## Voice Rules That Override Everything

Pulled from the [Professor High character bible](/social/strategy/brand-voice) and hard-enforced in every script here.

<CardGroup cols={2}>
  <Card title="Never say" icon="ban">
    "Cures," "treats," "heals." No medical claims, ever. No stoner-cliché voice — no "dude," no "blaze it." No dispensary or product endorsements.
  </Card>

  <Card title="Always say" icon="check">
    High Families instead of indica/sativa. "Research suggests" when the science is soft. A specific number instead of an adjective, whenever one exists.
  </Card>
</CardGroup>

The comedy comes from Professor High being **completely sincere in an absurd situation** — a pineapple in a lab coat running a courtroom, scoring a stranger's jars, doing his best work at 3 AM. He never winks at the camera. The moment he acknowledges the bit is funny, it stops being funny.

## How To Use A Script Pack

<Steps>
  <Step title="Refresh the data sheet">
    Run the queries on the [Verified Data Sheet](/social/scripts/verified-data). Numbers move as the pipeline researches more strains.
  </Step>

  <Step title="Pick a pack and fill the tokens">
    Every `[DATA: ...]` token gets a real value. Unfilled token means the script is not shootable.
  </Step>

  <Step title="Lock the character">
    Paste the character-lock block from the [Production Spec](/social/scripts/production-spec) into Cantina before generating any shot. Same block, every video, every time.
  </Step>

  <Step title="Shoot hook A">
    Generate the full episode with the A hook. Keep the B and C hook text with the project files — re-cutting a hook is cheap, re-shooting an episode is not.
  </Step>

  <Step title="Log it before posting">
    Add the row to the [performance log](/social/scripts/testing-framework#the-performance-log) with the script ID, hook ID, and post time. A video posted without a log row is a wasted test.
  </Step>

  <Step title="Read the result at 48 hours and 7 days">
    Apply the [decision rules](/social/scripts/testing-framework#decision-rules). Scale, iterate, or cut.
  </Step>
</Steps>

## Related

<CardGroup cols={3}>
  <Card title="Show Bible" icon="tv" href="/social/overview">
    The show concepts these scripts are written against.
  </Card>

  <Card title="Video Pipeline" icon="film" href="/social/video-pipeline">
    Render paths, runtimes, and draft-first guardrails.
  </Card>

  <Card title="Status Board" icon="table-list" href="/social/show-status-board">
    Which shows are scripted, piloting, or in production.
  </Card>
</CardGroup>
