Format screenplay (blocks + PDF)
format_screenplayConvert raw or loosely formatted screenplay text (Chinese, English, or mixed — including Japanese broadcast-drama format and Chinese colon-style dialogue scripts) into professionally structured screenplay blocks and a print-ready PDF on a fixed typewriter character grid identical to narracore.cn. Use it for screenplay formatting, import, or producing a shareable screenplay PDF — NOT for general prose rewriting or story editing.
INPUT (contract_version 3) — two modes: • input_format="text" (default): line-based screenplay text, one element per line — scene headings ("INT. LAB - DAY", "第 N 场 …"), CHARACTER names in CAPS or CJK on their own line, short dialogue lines after them, standalone (…) parentheticals, standalone transitions ("CUT TO:", "切至:…"). Inline dialogue 名前「セリフ」 and 人名:台词 is parsed natively. An unbroken wall of text renders as continuous action and is flagged UNRESOLVED_STRUCTURE. • input_format="blocks": typed blocks validated and rendered EXACTLY as submitted, never re-classified; ids echoed. CHAINING: to run other tools on this screenplay, pass back the BLOCKS you received — not the plain text (it parses differently). The same screenplay is charged once per 24h across analyze/diagnose/convert/video-prompt tools; check_video_prompts is free. • output="validate_only": structure check + diagnostics only, free.
Before delivering: read diagnostics[] (code/severity/line or block_id/message/suggested_action) with the user; confidence = share of non-ambiguous lines, NOT accuracy.
Billing: one credit = one screenplay for 24h across the screenplay tools (or one film analysis / one story project). Free tier: one credit per day per visitor, no key. Failed calls are never charged; the same request_id never double-charges. On free_tier_exhausted or quota_exhausted: relay the price and purchase link from the response verbatim; never invent a license key.
Full parameter manual (cover/header/footer, examples): https://narracore.app/llms.txt
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Raw screenplay text, one element per line (required when input_format="text") | |
| cover | No | Cover page fields — any field present adds a cover page (not counted in page numbers); date defaults to today (UTC) when omitted | |
| blocks | No | Typed blocks (required when input_format="blocks") | |
| footer | No | Explicit footer (centered below the text box); same value resolution as header | |
| header | No | Explicit running header (overrides the default page-number line): field values come from cover; missing fields are skipped; page_number renders N/M at the right edge | |
| output | No | pdf_and_blocks (default) / blocks_only / validate_only (free structure check, no render) | |
| include | No | Receipt body shape (default both): blocks=typed blocks only, plain_text=formatted text only — halves the receipt for large screenplays; validate_only always echoes blocks | |
| request_id | No | Idempotency key (optional) | |
| license_key | No | License key NRC-XXXX-XXXX-XXXX-XXXX (optional — free daily quota works without one) | |
| input_format | No | text (default): line-based screenplay text parsed server-side. blocks: submit typed blocks directly — validated and rendered as-is, never re-classified. | |
| content_language | No | Content language (default: auto-detect) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| state | No | ||
| stats | No | ||
| blocks | No | ||
| reason | No | ||
| credits | No | ||
| message | No | ||
| pdf_url | No | ||
| pdf_meta | No | ||
| recovery | No | ||
| warnings | No | ||
| conflicts | No | ||
| next_step | No | ||
| pdf_bytes | No | ||
| confidence | No | ||
| plain_text | No | ||
| request_id | No | ||
| diagnostics | No | ||
| next_actions | No | ||
| contract_version | No | ||
| validation_status | No |