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.
Competition submissions: style="uk"/"fr" (A4, BBC/French layout), dialogue_breaks=true ((MORE)/(CONT'D) on page breaks), cover.anonymous=true (no author on title page) — rendering options, free within the 24h bundle.
Full parameter manual (cover/header/footer/style, 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; anonymous=true renders only title+date (competition blind-review convention — author/version stay off the page) | |
| paper | No | Paper override for us/uk/fr: "letter" / "a4" / "a4_landscape" / "b4" (default follows style: us → letter, uk/fr → a4). Grid and page count are identical across papers. Vertical ja_* styles use a fixed sheet (omit) | |
| style | No | Submission style: "us" (default — US Letter) / "uk" (A4, BBC-style margins, scene numbers on both sides) / "fr" (A4, French-style centered dialogue column) / vertical Japanese manuscript sheets "ja_business" (20×10, A4 landscape), "ja_standard" (20×20 400-character sheet, B4), "ja_kido" (20×40 Kido-style, A4 landscape) — pages = sheets. Rendering option — free to change within the same 24h screenplay bundle | |
| 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. | |
| dialogue_breaks | No | US submission convention for dialogue spanning a page break: (MORE) at the bottom of the page and SPEAKER (CONT'D) at the top of the next. Default false | |
| 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 |