가이드

Minecraft 퀘스트 플러그인 만드는 법

2026년 10월 18일 업데이트

퀘스트는 플레이어에게 플레이할 이유를 줘요. 좀비 20마리 처치, 철 64개 채굴, 주민에게 빵 10개 가져다주기. 퀘스트 플러그인은 세 가지로 이루어져요: 게임 이벤트를 감지하는 목표, 플레이어마다 저장되는 진행도, 그리고 보상. 퀘스트를 설정 파일에 정의하면 코드를 건드리지 않고 새 퀘스트를 추가할 수 있어요.

퀘스트와 보상을 내 것으로 바꿔 보세요.

Codexe로 이걸 생성하기

단계별 안내

  1. 1.목표 유형 고르기

    몇 가지로 시작하세요: 특정 몹 처치, 블록 부수기나 놓기, 아이템 수집, 조합, 특정 장소 도달, NPC와 대화. 모든 퀘스트는 이것들로 만들어져요.

  2. 2.파일에 퀘스트 정의하기

    quests.yml의 퀘스트마다: ID, 이름, 설명, 수량이 있는 목표, 보상, 요구 조건(먼저 끝내야 할 다른 퀘스트, 권한, 레벨).

  3. 3.플레이어별 진행도 추적하기

    목표마다 그 뒤에 있는 이벤트를 감지해서 플레이어의 진행도에 더하세요. 로그아웃과 재시작 후에도 남도록 SQLite나 파일에 저장하세요.

  4. 4.진행도 보여 주기

    진행 중인 퀘스트와 완료한 퀘스트를 보여 주는 /quests 메뉴, 그리고 진행도가 바뀔 때 메시지, 타이틀, 보스 바.

  5. 5.보상 주기

    아이템, 경험치, Vault를 통한 돈, 그 밖의 모든 것은 lp user %player% permission set ... 같은 콘솔 명령어로.

  6. 6.빌드하고 게임 안에서 퀘스트 완료해 보기

    Codexe가 컴파일하게 하고, 테스트 서버에 접속해서 퀘스트를 받고 끝내 보세요. 그런 다음 재시작하고 진행도와 보상이 저장됐는지 확인하세요.

목표와 그 뒤의 이벤트

목표이벤트정해야 할 세부 사항
몹 처치EntityDeathEvent플레이어가 직접 처치한 것만 셀지, 펫과 화살로 처치한 것도 셀지
블록 부수기BlockBreakEvent플레이어가 놓은 블록은 무시하세요. 그렇지 않으면 같은 블록을 놓고 부수기를 반복해요
아이템 수집인벤토리 확인 또는 줍기 이벤트퀘스트를 제출할 때 아이템을 가져갈지
아이템 조합CraftItemEventShift 클릭으로 조합하면 한 번에 여러 개가 만들어져요
특정 장소 도달PlayerMoveEvent움직일 때마다가 아니라 플레이어가 다른 블록으로 옮겨 갔을 때만 확인
NPC와 대화PlayerInteractEntityEvent어떤 엔티티가 퀘스트를 주는지

퀘스트 제공자

가장 간단한 퀘스트 제공자는 명령어나 메뉴예요. 월드 안의 캐릭터가 필요하면 커스텀 이름과 PersistentDataContainer 태그가 붙은 주민이나 갑옷 거치대로 다른 플러그인 없이도 돼요. 플레이어가 우클릭하면 플러그인이 알아봐요. 서버에서 이미 Citizens 같은 NPC 플러그인을 쓰고 있다면 요청에 적어서 플러그인이 그것과 연동되게 하세요.

설명 예시

"Quests라는 Paper 1.21.4 퀘스트 플러그인. 목표 유형: 몹 처치, 블록 부수기(플레이어가 놓은 것 제외), 아이템 수집, 퀘스트 제공자로 태그된 주민과 대화. 퀘스트는 quests.yml에 이름, 목표, 선행 퀘스트, 보상(아이템, 경험치, Vault 돈, 콘솔 명령어)과 함께 정의. /quests를 입력하면 받을 수 있는 퀘스트, 진행 중인 퀘스트, 완료한 퀘스트가 있는 메뉴가 열려요. 진행도는 액션 바에 표시. 동시에 진행할 수 있는 퀘스트는 최대 3개. 일일 퀘스트는 서버 시간 자정에 초기화. 진행도는 SQLite에 저장."

일일 퀘스트와 반복 퀘스트

  • 언제 초기화되는지 적으세요: 매일 정해진 시각인지, 플레이어가 끝낸 지 24시간 뒤인지.
  • 일일 퀘스트가 플레이어마다 무작위인지, 모두에게 같은지 적으세요.
  • 플래그가 아니라 마지막 완료 시각을 저장하세요. 그래야 서버가 꺼져 있는 동안에도 초기화가 제대로 돼요.

질문

퀘스트에서 PlaceholderAPI를 쓸 수 있나요?

네. 진행 중인 퀘스트와 진행도 같은 플레이스홀더를 요청하면 스코어보드와 탭 목록에 표시할 수 있어요. 의존성으로 추가되도록 요청에 PlaceholderAPI를 적어 주세요.

Skript로 퀘스트를 만들 수 있나요?

작은 퀘스트 시스템은 변수를 쓰는 Skript로 충분해요. 목표 유형이 많고, 메뉴가 있고, 수백 명의 진행도를 저장해야 한다면 플러그인이 빠르고 깔끔하게 유지하기 더 쉬워요.

퀘스트가 작동하는지 어떻게 확인하나요?

Codexe 테스트 서버에서 직접 플레이하고, "일반 플레이어가 /quests를 실행하면 메뉴가 열린다"처럼 내 말로 테스트를 추가하세요. 테스트는 메시지, 아이템, 메뉴를 확인하고, 월드의 몹이나 블록은 확인하지 않아요.

내 퀘스트 플러그인 만들기

이 프롬프트는 바로 보낼 수 있는 상태로 열려요:

“Paper 1.21.4 퀘스트 플러그인: 목표 유형은 몹 처치, 플레이어가 놓지 않은 블록 부수기, 아이템 수집, 태그된 주민과 대화. 퀘스트는 quests.yml에 목표, 선행 퀘스트, 보상(아이템, 경험치, Vault 돈, 콘솔 명령어)과 함께. 받을 수 있는/진행 중/완료한 퀘스트가 있는 /quests 메뉴. 진행도는 액션 바에. 진행 중인 퀘스트 최대 3개. 일일 퀘스트는 자정에 초기화. 진행도는 SQLite에 저장.”

Codexe로 이걸 생성하기
Minecraft 퀘스트 플러그인 만드는 법 | Codexe