NoahChatNoahChat Docs

상태창

변수 기반의 상태창으로 게임 같은 대화를 만드세요.

상태창은 왜 있을까요?

상태창은 두 가지 역할을 동시에 합니다.

유저에게 보여주기

현재 상태를 한눈에 볼 수 있습니다. 호감도가 얼마인지, 지금 어디에 있는지. 숫자로 보여주니까 직관적입니다.

AI에게 알려주기

여기가 핵심입니다. AI는 기억이 없습니다. 대본에 없으면 모르죠.

상태창도 대본에 들어갑니다.

AI가 이전 응답의 상태창을 읽고, "지금 호감도가 65구나"를 파악해서 다음 응답에 반영하는 것입니다. 상태창은 유저에게 보여주면서, 동시에 AI에게 현재 상태를 알려주는 장치입니다.


출력이 깨지지 않는 이유

일반 플랫폼에서는 AI가 상태창을 직접 출력합니다. 한번 깨지면 다음 턴에도 깨진 채로 출력되는 악순환이 시작되죠.

상태창 출력 방식 비교

일반 플랫폼

  • AI 출력포맷 전체
  • 깨짐 방지
  • 대응재생성/수동 수정

AI가 포맷을 직접 출력

NoahChat

  • AI 출력값만
  • 깨짐 방지
  • 대응필요 없음

시스템이 포맷 렌더링

NoahChat에서는 AI는 값만 출력하고, 시스템이 포맷을 렌더링합니다. 구조적으로 깨질 수 없는 방식입니다.


상태창 만들기

상태창 탭에 처음 들어가면 가져오기새로 만들기 두 가지 방법을 선택할 수 있습니다.

방법 1: 가져오기

다른 플랫폼에서 사용하던 상태창 프롬프트가 있다면, 그대로 붙여넣으면 됩니다.

  1. 기존 메인프롬프트에서 상태창 부분을 복사
  2. 텍스트 영역에 붙여넣기
  3. 상태창 자동 생성하기 버튼 클릭

AI가 기존 프롬프트를 분석해서 스탯과 HTML 상태창을 자동으로 만들어줍니다.

가져오기 후에는 작품 프롬프트에서 상태창 부분을 빼도 됩니다. 상태창 시스템이 자동으로 관리합니다.

방법 2: 새로 만들기

처음부터 만들고 싶다면, 원하는 스탯을 직접 입력합니다.

세 가지 범위(scope)의 스탯을 설정할 수 있습니다:

범위용도추천 예시
월드 스탯세계관 전체에 적용위치, 시간, 모드
유저 스탯플레이어 개인 상태레벨, 직업, 칭호
캐릭터 스탯캐릭터별 개별 관리호감도, 관계, 감정

각 범위 아래에 추천 칩이 표시됩니다. 클릭하면 바로 추가되고, 직접 입력 후 Enter로도 추가할 수 있습니다.

스탯을 입력한 뒤 상태창 자동 생성하기를 누르면, AI가 HTML 상태창을 만들어줍니다.

방법 3: 직접 만들기

HTML과 Handlebars 문법에 익숙하다면 상태창 직접 만들기를 선택해 코드부터 작성할 수도 있습니다.


상태창 편집

상태창이 생성되면 편집 모드로 전환됩니다. 4개 섹션으로 구성되어 있고, 각각 접었다 펼 수 있습니다.

상태창 지침

AI에게 상태창 업데이트 조건을 알려주는 지침입니다. 예를 들어:

  • "호감도는 대화마다 +2, 실망 시 -5"
  • "전투 시 HP 감소"

조건을 입력하고 Enter를 누르면 즉시 저장됩니다.

스탯 편집

월드/유저/캐릭터 세 범위의 스탯을 관리합니다.

  • 각 범위별 최대 10개 스탯
  • 스탯 카드를 클릭하면 편집 모달이 열립니다
  • 추가 버튼으로 새 스탯 생성

스탯 편집 시 설정할 수 있는 항목:

항목설명
이름스탯 표시 이름 (키가 자동 생성됩니다)
종류숫자 또는 텍스트
범위숫자일 때 최소/최대 값
기본값초기 값
설명AI에게 이 스탯의 용도를 알려주는 설명

고급 설정에서 키를 직접 편집하거나, 로어북 매칭을 켤 수 있습니다. 로어북 매칭을 켜면 이 스탯의 값이 로어북 키워드 검색에 포함됩니다.

HTML 직접 편집

상태창의 HTML 코드를 직접 수정할 수 있습니다 (최대 50,000자).

  • 문법 도움말: Handlebars 문법 참조
  • 스니펫 패널: 자주 쓰는 코드 조각
  • 변수 참조 패널: 사용 가능한 변수 목록

AI 수정

AI에게 상태창 수정을 요청할 수 있습니다.

AI에게 요청하기
"체력바 색깔을 빨간색으로 바꿔줘"
"선택지 3개 추가해줘"
"레이아웃을 2열로 변경해줘"

프롬프트를 입력하고 수정 요청 버튼을 누르면 됩니다. 결과가 마음에 들지 않으면 되돌리기로 이전 상태로 복원할 수 있습니다.

AI 수정 1회당 크레딧 5가 소모됩니다.

설정

  • 상태창 사용: ON/OFF 토글로 상태창 기능 자체를 켜고 끌 수 있습니다

편집 모드 하단의 다시 생성하기를 누르면 초기 설정 화면(가져오기/새로 만들기)으로 돌아갑니다.


상태창으로 뭘 할 수 있나요?

정보 표시

캐릭터 체력, 호감도, 소지금 같은 변수를 시각적으로 보여줄 수 있습니다. 게임 UI처럼 꾸미는 것도 가능합니다.

클릭 선택지

미연시 스타일의 선택지를 만들 수 있습니다. 선택지를 클릭하면 해당 텍스트가 채팅으로 전송되어, 직접 타이핑 없이 클릭만으로 진행할 수 있습니다.

선택지 출력 예시
[ 손을 잡는다 ]  [ 그냥 바라본다 ]  [ 자리를 피한다 ]

TRPG나 인터랙티브 소설 느낌을 내고 싶을 때 활용해보세요.

버튼으로 변수 변경

"HP 회복" 버튼을 누르면 체력이 올라가고, "골드 획득" 버튼을 누르면 소지금이 늘어나는 식으로 구현할 수 있습니다.


직접 수정하고 싶다면

AI가 만든 결과물을 직접 다듬고 싶거나, 처음부터 손수 만들고 싶다면 아래 문법을 참고하세요.

변수 출력

{{변수명}} 형식으로 변수 값을 표시합니다.

변수 출력
<p>체력: {{hp}} / 100</p>
<p>호감도: {{affection}}</p>

선택지 (메시지 전송)

data-action="sendMessage"를 사용하면 클릭 시 채팅으로 메시지가 전송됩니다.

선택지 버튼
<div data-action="sendMessage" data-message="손을 잡는다" class="choice-btn">손을 잡는다</div>

변수 변경 버튼

액션설명
data-action="setCharVar"캐릭터 변수 변경
data-action="setUserVar"유저 변수 변경
data-action="setWorkVar"작품 변수 변경
변수 변경 버튼
<div data-action="setUserVar" data-variable="gold" data-value="500">골드 획득</div>

조건부 표시

변수 값에 따라 다른 내용을 보여줄 수 있습니다.

조건부 표시
{{#if (gt hp 50)}}
  <span class="text-green">건강</span>
{{else}}
  <span class="text-red">위험</span>
{{/if}}
연산자의미
gt, gte초과, 이상
lt, lte미만, 이하
eq, ne같음, 다름
and, or, not논리 연산

배열 반복

배열 반복
{{#characters}}
  <div>{{char}}</div>
{{/characters}}

미리보기

상태창 편집 화면 우측에 실시간 미리보기가 표시됩니다. 변수 바인딩과 버튼 액션이 실제로 작동하므로, 채팅 전에 상태창이 의도대로 동작하는지 확인할 수 있습니다.

On this page