MV 플러그인: TemplateEvent.js
TemplateEvent.js (템플릿 이벤트 플러그인) 분석
이 플러그인은 Triacontane 씨가 만든 이벤트 복사·재사용을 극도로 편리하게 해주는 플러그인으로, MV 시절 한국 쯔꾸르 창작마당에서 “같은 이벤트 수십 개 만들 때” 거의 필수로 꼽히는 플러그인 중 하나입니다.
2026년 현재도 MZ로 넘어가지 않은 MV 프로젝트에서는 여전히 매우 유용하게 쓰이고 있어요.
핵심 기능 요약 (한눈에 보기)
기능 | 설명 | 중요도 | 실제 사용 빈도 |
|---|---|---|---|
템플릿 이벤트 복사 | 한 번 만든 이벤트를 여러 맵에서 템플릿 ID만 적으면 복사됨 | ★★★★★ | 매우 높음 |
고유 이벤트로 일부 상속·덮어쓰기 | 템플릿의 설정을 기본으로 쓰되, 이미지·이동·트리거 등은 고유 이벤트로 덮어쓸 수 있음 | ★★★★★ | 최고 |
메모 통합/덮어쓰기 | 템플릿 메모 + 고유 메모를 합치거나 고유 메모가 우선되게 설정 가능 | ★★★★☆ | 높음 |
셀프 변수(Self Variable) 기능 | 각 이벤트마다 독립된 변수(1~n) 사용 가능. \sv[n]으로 표시, 조건 분기 가능 | ★★★★★ | 매우 높음 |
원본 이벤트 호출 | 템플릿에서 고유 이벤트의 특정 페이지 호출 가능 (TE_CALL_ORIGIN_EVENT) | ★★★★☆ | 중간 |
맵 내 다른 이벤트 호출 | 같은 맵 내 다른 이벤트 호출 (TE_CALL_MAP_EVENT) | ★★★★☆ | 중간 |
이벤트 이름으로 템플릿 지정 | ID 대신 이벤트 이름으로도 지정 가능 | ★★★★☆ | 중간 |
가장 많이 쓰이는 실제 사용 패턴 TOP 5
보물상자 템플릿
템플릿 맵에 “상자 열기 → 아이템 획득 → 상자 그래픽 변경” 이벤트 하나 만들기
실제 맵 상자 이벤트 메모에 <TE:1>만 적으면 → 모두 같은 상자 이벤트로 대체됨 → 상자 50개 만들 때 1개만 수정하면 전부 적용
NPC 대화 템플릿
템플릿에 “말풍선 + 대화 선택지 + 애니메이션” 공통 부분 넣기
실제 NPC는 고유 이벤트로 “특정 대사 + 조건 분기”만 작성 → 나머지는 템플릿이 처리
셀프 변수로 상태 관리
한 NPC가 여러 번 대화할 때마다 다른 말 하게 하고 싶을 때
\sv[1]로 대화 횟수 저장 → 조건 분기에서 \TE{\sv[1] >= 3} 사용
문·계단·포털 템플릿
템플릿에 “SE 재생 + 페이드 + 장소 이동” 공통 처리
실제 이벤트는 <TE:문템플릿> + 고유 이동 목적지만 지정
원본 이벤트 일부만 호출
템플릿에서 공통 연출 후 고유 이벤트의 특정 페이지(예: 아이템 지급)만 호출 → TE_CALL_ORIGIN_EVENT 2 (2페이지 호출)
주요 메모 태그 정리 (자주 쓰이는 것만)
text
<TE:5> → 템플릿 맵의 이벤트 ID 5번 복사
<TE:상점NPC> → 템플릿 맵의 이벤트 이름 "상점NPC" 복사
<TE:\v[10]> → 변수 10번 값의 이벤트 ID 복사
<TEOverRide> → 이 이벤트는 템플릿보다 고유 설정 우선 (이미지·이동·트리거 등)
<TE상위> → 한글 버전
<HMInitialHalfX:+> → (HalfMove.js와 조합 시) 처음부터 반칸 위치에 배치셀프 변수 사용법 (가장 강력한 기능 중 하나)
표시: \sv[1] → 셀프 변수 1번 값 표시
조건 분기: 주석으로 \TE{\sv[1] >= 3} → 셀프 변수 1번이 3 이상일 때만 이 페이지 실행
조작 (플러그인 명령):text
TE_SET_SELF_VARIABLE 1 0 100 → 셀프 변수 1번에 100 대입 TE_SET_SELF_VARIABLE 2 1 \sv[1] → 셀프 변수 2번에 셀프 변수 1번 값 더하기
장점 vs 단점 (현실 평가)
장점
이벤트 복붙 작업량 70~90% 감소
수정 한 번으로 모든 같은 이벤트 일괄 변경 가능
셀프 변수 덕분에 각 이벤트별 상태 관리가 매우 편함
다른 플러그인과 충돌 적음 (SAN_MapGenerator 등 일부 제외)
단점
템플릿 맵을 별도로 관리해야 함
처음 설정할 때 약간 헷갈림 (특히 상속·덮어쓰기 규칙)
MZ로 넘어갈 때는 VisuStella MZ의 Event Core로 대체 필요
결론
“같은 이벤트(상자, NPC, 문, 포털 등)를 맵마다 수십 개씩 배치해야 하는 프로젝트” → 이 플러그인 하나만 있으면 작업 시간이 절반 이하로 줄어듭니다.
한국 창작마당에서 템플릿 이벤트 = TemplateEvent.js라고 하면 거의 다 알아듣는 수준이에요.
필요하시면
“상자 템플릿 + 셀프 변수로 열림 상태 저장” 예시 이벤트
“NPC 대화 횟수에 따라 다른 말 하는 방법” 구체적으로 만들어드릴 수 있어요. 말씀해주세요!
//
aHR0cHM6Ly9raW8uYWMvYy9hWGswYTNSbEt2SUI1NnRlNGcwalNi