# 외부에서 스토리 만들기

1. 플랫폼의 **외부 작성용 JSON 예시**를 내려받아 메모장, VS Code 등 텍스트 편집기에서 엽니다.
2. UTF-8로 저장합니다. 파일 확장자는 `.json`, 최대 크기는 2MB입니다. JSON에는 주석을 넣을 수 없습니다.
3. `meta.title`과 `meta.description`을 쓰고 `nodes`에 장면을 추가합니다. `startNode`는 첫 장면의 ID입니다.
4. 각 장면에는 `type`(`scene` 또는 `ending`), `act`, `title`, `text`, `choices`를 적습니다. `scene`에는 적어도 한 가지 선택지가 필요하고, `ending`의 `choices`는 빈 배열로 둘 수 있습니다.
5. 선택지의 `target`에는 **실제로 존재하는 다음 장면 ID**를 씁니다. 같은 장면으로 돌아오거나 다른 ACT로 건너뛰는 연결도 가능합니다. 예시 파일에는 두 결말로 갈라지는 분기가 들어 있습니다.
6. 플랫폼에서 **스토리 파일 불러오기**를 누르면 연결을 검사한 뒤 별도의 새 시뮬레이션으로 추가됩니다. GLITCH와 CROWN은 덮어쓰지 않습니다.

선택지에 `outcome`을 쓰면 다음 장면 전에 결과 문구가 표시됩니다. `effects.stats`에는 `신체능력`, `관찰력`, `정신력`, `설득력`, `창의력`을 사용할 수 있습니다. 예: `"effects":{"stats":{"관찰력":1}}`.

주사위 굴림을 추가하려면 선택지에 `"check":{"stat":"관찰력","dc":12,"success":"성공 문장","failure":"실패 문장"}`을 넣습니다. 성공과 실패가 다른 장면으로 이어져야 한다면 `successTarget`, `failureTarget`에 장면 ID를 적습니다. `dc`는 2~25 사이의 정수입니다.

이미지 주소를 쓰려면 장면에 `"mediaType":"image","mediaUrl":"https://..."`을, 동영상은 `"mediaType":"video","mediaUrl":"https://..."`을 추가합니다. 이미지 HTTPS 주소와 YouTube/Vimeo 또는 MP4/WebM/Ogg 주소를 사용할 수 있습니다. 장면에 직접 업로드한 이미지 파일은 JSON에 포함되지 않습니다. 다른 사람에게 보낼 때는 이미지 링크를 사용하세요.

배경음악도 JSON으로 전달하려면 `meta.musicUrl`(시뮬레이션 기본 음악) 또는 각 장면의 `musicUrl`에 `https://.../music.mp3`처럼 HTTPS MP3/OGG/WAV 파일 주소를 적습니다. 장면 음악이 기본 음악보다 우선합니다. 에디터에 올린 음악 파일은 브라우저에만 저장되므로 JSON에 포함되지 않습니다. 공유하거나 공개할 음악은 사용 허가를 확인하세요.

플랫폼에 불러온 시뮬레이션은 현재 브라우저에 저장됩니다. 다른 사람에게 전달하려면 JSON 파일을 보내거나 스토리 에디터에서 **JSON 내보내기**로 파일을 내려받으세요. 브라우저 저장 내용은 다른 기기로 자동 동기화되지 않습니다.
