QuestEngine icon

QuestEngine -----

A simple yet optimized quest plugin



messages.yml
Code (Text):

prefix: "&7[&aQuestEngine&7] "

vault_missing: "&cVault plugin not found. Some features are disabled."
quest_already_active: "&cYou are already on this quest."
quest_started: "&aYou have started the quest '%quest_name%'!"
quest_not_active: "&cYou are not currently on this quest."
quest_canceled: "&eYou have canceled the quest '%quest_name%'."
quest_stopped: "&7The quest '%quest_name%' has been forcibly stopped."
abandon_all_done: "&7All active quests have been abandoned."
list_empty: "&7You have no active quests."
list_header: "&a===== &fActive Quest List &a====="
list_line: "&f- &a%quest_name% &7(&e%value% / %target%&7)"
quest_completed: "&6Quest '%quest_name%' completed! Reward received!"
reload_done: "&aQuest configuration reloaded successfully."
invalid_args: "&cInvalid command arguments."
player_only: "&cThis command can only be used by players."
quest_repeat_ready: "&6Quest '%quest_name%' is available again. Retry with /quest start %quest_id%!"

admin:
  usage: "&7/questadmin <reload|give|complete|stop|reset|list>"
  reloaded: "&aAll quests reloaded successfully!"
  invalid_args: "&cInvalid arguments!"
  offline: "&cThe player is offline!"
  started: "&aStarted the quest: %quest_name%"
  stopped: "&cStopped the quest: %quest_name%"
  completed: "&bManually completed the quest: %quest_name%"
  reset_done: "&eQuest progress reset for: %quest_name%"
  list_header: "&6==== Quests of %player% ===="
  no_active: "&7No active quests."

list:
  empty: "&7You have no active quests."
  header: "&e[Active Quest List]"
  title: "&e%title% &7(%value%/%target%)"
  desc: " &7- %desc%"
  progress: "&fProgress %bar% &7(%percent%%)"
  reward: "&6Reward %reward%"
  points: "&fYour Quest Points: &a%points%"

# ==========================================================
# GUI
# ==========================================================
gui:
  title:
    list: "&aActive Quests"
    public: "&bPublic Quests"
    leaderboard: "&6Leaderboard"
  lore:
    list:
      - "&7%quest_title%"
      - "&aProgress: &f%value%/%target%"
      - "&eReward: &f%reward%"

  # ------------------------------
  # Personal Quest List (QuestListMenu)
  # ------------------------------
  list:
    title: "&bQuest List &7| &fPage %page%"
    search: "&f Search"
    search_lore: "&7Click to enter a search keyword"
    search_prompt: "Enter a keyword (leave blank for all)"
    leaderboard: "&6 Leaderboard"
    leaderboard_lore: "&7Click to view quest rankings"
    public: "&b Public Quests"
    public_lore: "&7Click to open the public quest list"
    sort: "&fSort: &e%order%"
    sort_lore: "&7Click to change the sorting order"
    order_asc: "Ascending"
    order_desc: "Descending"
    prev: "&fPrevious Page"
    next: "&fNext Page"
    page_input: "&fGo to Page"
    page_input_lore: "&7Click and enter a page number"
    page_input_prompt: "Enter the page number to go to"
    left_click_complete: "&aLeft-click: Try to complete quest"
    right_click_cancel: "&cRight-click: Cancel quest"
    quest_completed: "&aQuest completed: &f%quest%"
    quest_cancelled: "&7Quest cancelled: &f%quest%"
    quest_cannot_complete: "&cYou don’t meet the completion conditions."
    quest_complete_error: "&cAn error occurred while completing the quest."
    method_missing: "&cCould not find completion method."

  # ------------------------------
  # Public Quest List (PublicQuestMenu)
  # ------------------------------
  public:
    title: "&bPublic Quests | &fPage %page%"
    back: "&f← Back to My Quests"
    back_lore: "&7Click to return to your quest list"
    search: "&f Search"
    search_lore: "&7Click to enter a keyword for public quests"
    search_prompt: "Enter a keyword (leave blank for all)"
    prev: "&fPrevious Page"
    prev_lore: "&7Click to go to the previous page"
    next: "&fNext Page"
    next_lore: "&7Click to go to the next page"
    accept_lore: "&aLeft-click: Accept quest"
    cancel_lore: "&cRight-click: Cancel quest"
    accepted: "&aAccepted quest '%quest%'!"
    cancelled: "&eCancelled quest '%quest%'."
    error_accept: "&cAn error occurred while accepting the quest."

  # ------------------------------
  # Leaderboard (LeaderboardMenu)
  # ------------------------------
  leaderboard:
    title: "&6Quest Leaderboard"
    back: "&f← Back to My Quests"
    back_lore: "&7Click to return to your personal quest list"
    rank_format: "&e#%rank% &f%player% &7- &a%points% pts"
    rank_points: "&7Points: &f%points%"
    no_data: "&7No data to display."
 
Code (Text):

prefix: "&7[&aQuestEngine&7] "

vault_missing: "&cVault 플러그인을 찾을 수 없습니다. 일부 기능이 비활성화됩니다."
quest_already_active: "&c이미 진행 중인 퀘스트입니다."
quest_started: "&a'%quest_name%' 퀘스트를 시작했습니다!"
quest_not_active: "&c해당 퀘스트는 진행 중이 아닙니다."
quest_canceled: "&e'%quest_name%' 퀘스트를 취소했습니다."
quest_stopped: "&7'%quest_name%' 퀘스트를 강제로 중단했습니다."
abandon_all_done: "&7모든 퀘스트를 포기했습니다."
list_empty: "&7진행 중인 퀘스트가 없습니다."
list_header: "&a===== &f진행 중인 퀘스트 목록 &a====="
list_line: "&f- &a%quest_name% &7(&e%value% / %target%&7)"
quest_completed: "&6%quest_name% 퀘스트 완료! 보상 획득!"
reload_done: "&a퀘스트 설정을 다시 불러왔습니다."
invalid_args: "&c잘못된 명령어 인자입니다."
player_only: "&c플레이어만 사용할 수 있습니다."
quest_repeat_ready: "&6%quest_name% 퀘스트를 다시 시작할 수 있습니다. /quest start %quest_id% 로 재도전!"

admin:
  usage: "&7/questadmin <reload|give|complete|stop|reset|list>"
  reloaded: "&a모든 퀘스트를 새로고침했습니다!"
  invalid_args: "&c잘못된 인자입니다!"
  offline: "&c플레이어가 오프라인입니다!"
  started: "&a%quest_name% 퀘스트를 시작했습니다!"
  stopped: "&c%quest_name% 퀘스트를 중단했습니다!"
  completed: "&b%quest_name% 퀘스트를 완료 처리했습니다!"
  reset_done: "&e%quest_name% 퀘스트 진행도가 초기화되었습니다!"
  list_header: "&6==== %player%님의 퀘스트 목록 ===="
  no_active: "&7진행 중인 퀘스트가 없습니다."

list:
  empty: "&7진행 중인 퀘스트가 없습니다."
  header: "&e[진행 중인 퀘스트 목록]"
  title: "&e%title% &7(%value%/%target%)"
  desc: " &7- %desc%"
  progress: "&f진행도 %bar% &7(%percent%%)"
  reward: "&6보상 %reward%"
  points: "&f당신의 퀘스트 포인트: &a%points%"

# ==========================================================
# GUI
# ==========================================================
gui:
  title:
    list: "&a진행 중인 퀘스트"
    public: "&b공개 퀘스트"
    leaderboard: "&6리더보드"
  lore:
    list:
      - "&7%quest_title%"
      - "&a진행도: &f%value%/%target%"
      - "&e보상: &f%reward%"

  # ------------------------------
  # 개인 퀘스트 목록 (QuestListMenu)
  # ------------------------------
  list:
    title: "&b퀘스트 목록 &7| &f페이지 %page%"
    search: "&f 검색"
    search_lore: "&7클릭하여 검색어를 입력하세요"
    search_prompt: "검색어를 입력하세요 (빈칸=전체보기)"
    leaderboard: "&6 리더보드"
    leaderboard_lore: "&7클릭하여 퀘스트 순위를 확인합니다"
    public: "&b 공개 퀘스트"
    public_lore: "&7클릭하여 공개 퀘스트 목록을 엽니다"
    sort: "&f정렬: &e%order%"
    sort_lore: "&7클릭하여 정렬 순서를 바꿉니다"
    order_asc: "오름차순"
    order_desc: "내림차순"
    prev: "&f이전 페이지"
    next: "&f다음 페이지"
    page_input: "&f페이지 이동"
    page_input_lore: "&7클릭 후 페이지 번호를 입력"
    page_input_prompt: "이동할 페이지 번호를 입력하세요"
    left_click_complete: "&a좌클릭: 퀘스트 완료 시도"
    right_click_cancel: "&c우클릭: 퀘스트 취소"
    quest_completed: "&a퀘스트 완료: &f%quest%"
    quest_cancelled: "&7퀘스트 취소: &f%quest%"
    quest_cannot_complete: "&c조건이 충족되지 않아 완료할 수 없습니다."
    quest_complete_error: "&c퀘스트 완료 처리 중 오류가 발생했습니다."
    method_missing: "&c완료 메서드를 찾지 못했습니다."

  # ------------------------------
  # 공개 퀘스트 목록 (PublicQuestMenu)
  # ------------------------------
  public:
    title: "&b공개 퀘스트 목록 | &f페이지 %page%"
    back: "&f← 내 퀘스트로 돌아가기"
    back_lore: "&7클릭: 개인 퀘스트 목록으로 이동"
    search: "&f 검색"
    search_lore: "&7클릭하여 공개 퀘스트 검색어 입력"
    search_prompt: "검색어를 입력하세요 (빈칸=전체보기)"
    prev: "&f이전 페이지"
    prev_lore: "&7클릭하여 이전 페이지로 이동"
    next: "&f다음 페이지"
    next_lore: "&7클릭하여 다음 페이지로 이동"
    accept_lore: "&a좌클릭: 퀘스트 수락"
    cancel_lore: "&c우클릭: 퀘스트 취소"
    accepted: "&a'%quest%' 퀘스트를 수락했습니다!"
    cancelled: "&e'%quest%' 퀘스트를 취소했습니다."
    error_accept: "&c퀘스트 수락 중 오류가 발생했습니다."

  # ------------------------------
  # 리더보드 (LeaderboardMenu)
  # ------------------------------
  leaderboard:
    title: "&6퀘스트 리더보드"
    back: "&f← 내 퀘스트로 돌아가기"
    back_lore: "&7클릭 시 개인 퀘스트 목록으로 이동"
    rank_format: "&e#%rank% &f%player% &7- &a%points%점"
    rank_points: "&7포인트: &f%points%"
    no_data: "&7표시할 데이터가 없습니다."
 
quests/quest.yml
Code (Text):
name: "Stone Mining"
id: stone_break
event: BLOCK_BREAK
target: STONE
amount: 10
repeat: -1
points: 1
public: true
party: false

reset:
  policy: DAILY
  time: "04:00"

display:
  title: "&aStone Mining"
  description:
    - "&7Mine 10 stones to polish your skills."
    - "&fResets every morning at 4 AM."
  progress: "&a%value%&7/&f%target%"
  reward: "&e100 Coins"

conditions:
  success:
    - "%block_type% == STONE"
  fail:
    - "%block_type% == DIRT"

actions:
  accept:
    - msg{t=&e%player% has accepted '%quest_name%'} @self
  start:
    - msg{t=&7Mine 10 stones} @self
  success:
    - msg{t=&aReward granted for success} @self
  fail:
    - msg{t=&cFailed to meet the conditions} @self
  cancel:
    - msg{t=&eQuest cancelled} @self
  stop:
    - msg{t=&eQuest stopped by admin} @self
  restart:
    - msg{t=&6Repeat quest restarted} @self
  repeat:
    - msg{t=&bRepeat progress started} @self
 
Code (Text):
name: "돌 캐기"
id: stone_break
event: BLOCK_BREAK
target: STONE
amount: 10
repeat: -1
points: 1
public: true
party: false

reset:
  policy: DAILY
  time: "04:00"

display:
  title: "&a돌 캐기"
  description:
    - "&7돌 10개를 캐서 연마하세요."
    - "&f매일 아침 4시에 초기화됩니다."
  progress: "&a%value%&7/&f%target%"
  reward: "&e100 코인"

conditions:
  success:
    - "%block_type% == STONE"
  fail:
    - "%block_type% == DIRT"

actions:
  accept:
    - msg{t=&e%player%님이 '%quest_name%'을 수락했습니다} @self
  start:
    - msg{t=&7돌 10개를 캐세요} @self
  success:
    - msg{t=&a성공 보상 지급} @self
  fail:
    - msg{t=&c조건을 만족하지 못해 실패했습니다} @self
  cancel:
    - msg{t=&e퀘스트를 취소했습니다} @self
  stop:
    - msg{t=&e관리자에 의해 중단되었습니다} @self
  restart:
    - msg{t=&6반복 퀘스트 다시 시작} @self
  repeat:
    - msg{t=&b반복 수행 시작} @self
 
Code (Text):
1. 전역 정보
Placeholder    설명
%questengine_active_count%    현재 진행 중인 퀘스트 개수
%questengine_completed_count%    완료한 퀘스트 개수
%questengine_total_points%    누적 퀘스트 포인트 합계
2. 첫 번째 활성 퀘스트 관련
Placeholder    설명
%questengine_first_active_id%    첫 번째 활성 퀘스트의 ID
3. active_{field}_{n} 형식 (n번째 활성 퀘스트 정보)
예시    설명
%questengine_active_id_1%    1번째 활성 퀘스트 ID
%questengine_active_name_1%    1번째 활성 퀘스트 이름
%questengine_active_title_1%    1번째 활성 퀘스트 제목 (표시용)
%questengine_active_reward_1%    보상 설명
%questengine_active_points_1%    포인트 값
%questengine_active_target_1%    목표 수량
%questengine_active_progress_1%    현재 진행량 (예: 3/10)
%questengine_active_percent_1%    진행률 퍼센트 (예: 30%)
%questengine_active_bar_1%    진행률 바 그래픽 (예: §a■■■■§7■■■■)
4. 현재 퀘스트(current_) 관련
Placeholder    설명
%questengine_current_id%    현재(첫 번째 활성) 퀘스트 ID
%questengine_current_name%    현재 퀘스트 이름
%questengine_current_title%    현재 퀘스트 제목
%questengine_current_reward%    보상 설명
%questengine_current_target%    목표 수량
%questengine_current_points%    포인트 값
%questengine_current_progress%    현재 진행량 (예: 4/12)
%questengine_current_percent%    퍼센트 표시 (예: 33%)
%questengine_current_bar%    진행률 바 표시
5. 특정 퀘스트 ID 기반({kind}_{id} 형식)
예시    설명
%questengine_name_<id>%    특정 퀘스트 이름
%questengine_title_<id>%    퀘스트 제목
%questengine_reward_<id>%    보상 설명
%questengine_points_<id>%    포인트 값
%questengine_target_<id>%    목표 수량
%questengine_progress_<id>%    현재 진행량
%questengine_percent_<id>%    진행률 퍼센트
%questengine_bar_<id>%    진행률 바
%questengine_active_<id>%    해당 퀘스트가 활성 상태인지 (true / false)
%questengine_completed_<id>%    완료 여부 (true / false)
6. 퀘스트 리스트
Placeholder    설명
%questengine_active_list_names%    진행 중인 퀘스트 이름들을 ,로 구분한 목록
%questengine_active_list_ids%    진행 중인 퀘스트 ID 목록
%questengine_completed_list_ids%    완료된 퀘스트 ID 목록
Code (Text):
1. Global Stats
Placeholder    Description
%questengine_active_count%    Number of active quests for the player
%questengine_completed_count%    Number of completed quests
%questengine_total_points%    Total accumulated quest points
2. First Active Quest
Placeholder    Description
%questengine_first_active_id%    ID of the first active quest
3. active_{field}_{n} format (Nth active quest)
Example    Description
%questengine_active_id_1%    ID of the 1st active quest
%questengine_active_name_1%    Name of the 1st active quest
%questengine_active_title_1%    Display title of the quest
%questengine_active_reward_1%    Reward description
%questengine_active_points_1%    Quest point value
%questengine_active_target_1%    Target amount
%questengine_active_progress_1%    Progress (e.g., 3/10)
%questengine_active_percent_1%    Progress percentage (e.g., 30%)
%questengine_active_bar_1%    Progress bar (e.g., §a■■■■§7■■■■)
4. Current Quest (current_ prefix)
Placeholder    Description
%questengine_current_id%    ID of the first active quest
%questengine_current_name%    Name of the current quest
%questengine_current_title%    Title of the current quest
%questengine_current_reward%    Reward description
%questengine_current_target%    Target amount
%questengine_current_points%    Quest point value
%questengine_current_progress%    Progress (e.g., 4/12)
%questengine_current_percent%    Progress percentage (e.g., 33%)
%questengine_current_bar%    Visual progress bar
5. Specific Quest by ID ({kind}_{id})
Example    Description
%questengine_name_<id>%    Quest name
%questengine_title_<id>%    Quest title
%questengine_reward_<id>%    Reward description
%questengine_points_<id>%    Quest points
%questengine_target_<id>%    Target amount
%questengine_progress_<id>%    Current progress value
%questengine_percent_<id>%    Progress percentage
%questengine_bar_<id>%    Progress bar
%questengine_active_<id>%    Whether the quest is active (true / false)
%questengine_completed_<id>%    Whether the quest is completed (true / false)
6. Quest Lists
Placeholder    Description
%questengine_active_list_names%    List of active quest names separated by commas
%questengine_active_list_ids%    List of active quest IDs
%questengine_completed_list_ids%    List of completed quest IDs
Code (Text):
 블록 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트 이름    설명
BlockBreakEvent    "BLOCK_BREAK"    플레이어가 블록을 부숨
BlockPlaceEvent    "BLOCK_PLACE"    블록을 설치함
BlockFertilizeEvent    "BLOCK_FERTILIZING", "FARMING"    비료(뼛가루 등) 사용 시
CompostItemEvent (Paper 전용)    "COMPOSTING"    퇴비통에 아이템을 넣을 때 (선택적 등록)
엔티티(생물) 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
EntityDeathEvent    "ENTITY_KILL", "PLAYER_KILL"    플레이어가 몬스터 또는 다른 플레이어를 처치
EntityBreedEvent    "BREEDING", "BREEDNG"    동물 교배 시 (오타 유지된 중복 상수 있음)
PlayerShearEntityEvent    "SHEARING"    양 등 엔티티를 깎을 때
EntityTameEvent    "TAMING"    늑대, 고양이 등 길들임
PlayerInteractEntityEvent    "ENTITY_INTERACT"    엔티티와 상호작용
EntityDamageByEntityEvent    "DEAL_DAMAGE", "PLAYER_ATTACK"    플레이어가 엔티티에게 피해를 입힐 때
⚒ 아이템 / 제작 / 채집 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
PlayerFishEvent    "FISHING"    낚시
CraftItemEvent    "ITEM_CRAFT"    아이템 제작
FurnaceSmeltEvent    "SMELTING"    근처 화로에서 아이템 제련
PrepareSmithingEvent    "SMITHING"    스미스 테이블 사용
EnchantItemEvent    "ENCHANTING", "ITEM_ENCHANT"    아이템 마법 부여
PlayerBucketFillEvent    "BUCKET_FILL"    양동이에 액체 채움
PlayerBucketEmptyEvent    "BUCKET_EMPTY"    액체 비우기
PlayerBucketEntityEvent    "BUCKET_ENTITY"    엔티티 대상 양동이 상호작용 (예: 우유, 물고기)
PlayerDropItemEvent    "ITEM_DROP", "BLOCK_ITEM_DROPPING"    아이템을 버림
EntityPickupItemEvent    "ITEM_PICKUP"    아이템을 줍기
PlayerItemConsumeEvent    "ITEM_CONSUME"    음식/포션 섭취
PlayerItemHeldEvent    "ITEM_SELECT"    손에 든 아이템 변경
PlayerInteractEvent    "ITEM_INTERACT"    클릭 등 아이템 상호작용
PlayerSwapHandItemsEvent    "PLAYER_SWAP_HAND"    양손 교체
PrepareAnvilEvent    "ITEM_REPAIR"    모루 사용 (수리/합성)
InventoryClickEvent    "ITEM_MOVE", "TRADING"    인벤토리 이동 / 거래창 클릭

Paper 전용

이벤트    QuestEngine 이벤트
PlayerItemDamageEvent    "ITEM_DAMAGE"
‍♂️ MythicMobs 연동 (선택적)
MythicMobs 이벤트    QuestEngine 이벤트    설명
MythicMobSpawnEvent    "MYTHICMOBS_ENTITY_SPAWN"    MythicMob이 근처에서 소환됨
MythicMobDeathEvent    "MYTHICMOBS_KILL"    MythicMob이 플레이어 또는 근처에서 사망

MythicMobs가 서버에 설치되어 있지 않아도 리플렉션을 통해 안전하게 무시됨.

플레이어 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
PlayerJoinEvent    "PLAYER_PRE_JOIN"    플레이어 접속
PlayerQuitEvent    "PLAYER_LEAVE"    플레이어 퇴장
PlayerRespawnEvent    "PLAYER_RESPAWN"    리스폰
PlayerDeathEvent    "PLAYER_DEATH"    사망
PlayerChangedWorldEvent    "PLAYER_WORLD_CHANGE"    다른 월드로 이동
PlayerTeleportEvent    "PLAYER_TELEPORT"    텔레포트
PlayerBedEnterEvent    "PLAYER_BED_ENTER"    침대에 들어감
PlayerExpChangeEvent    "PLAYER_EXP_GAIN"    경험치 획득
PlayerLevelChangeEvent    "PLAYER_LEVELUP"    레벨 상승
PlayerCommandPreprocessEvent    "PLAYER_COMMAND"    명령어 입력
AsyncPlayerChatEvent    "PLAYER_CHAT"    채팅 입력
PlayerMoveEvent    "PLAYER_WALK", "DISTANCE_FROM"    일정 거리 이상 이동 (기본 0.8블록 이상)
월드 / 청크 관련 이벤트
Bukkit 이벤트    QuestEngine 이벤트    설명
CreatureSpawnEvent    "ENTITY_SPAWN"    생물이 근처에 소환됨
ChunkLoadEvent    "CHUNK_LOAD"    청크 로드
Code (Text):
 Block-Related Events
Bukkit Event    QuestEngine Event Name    Description
BlockBreakEvent    "BLOCK_BREAK"    Fired when a player breaks a block.
BlockPlaceEvent    "BLOCK_PLACE"    Fired when a block is placed.
BlockFertilizeEvent    "BLOCK_FERTILIZING", "FARMING"    When using bone meal or similar fertilizer.
CompostItemEvent (Paper only)    "COMPOSTING"    When composting items. Registered dynamically.
Entity-Related Events
Bukkit Event    QuestEngine Event    Description
EntityDeathEvent    "ENTITY_KILL", "PLAYER_KILL"    When a player kills an entity or another player.
EntityBreedEvent    "BREEDING", "BREEDNG"    When animals are bred by a player.
PlayerShearEntityEvent    "SHEARING"    When a player shears an entity (like a sheep).
EntityTameEvent    "TAMING"    When a player tames an animal (like a wolf or cat).
EntityInteractEvent    "ENTITY_INTERACT"    When a player interacts with an entity (right-click, etc.).
EntityDamageByEntityEvent    "DEAL_DAMAGE", "PLAYER_ATTACK"    When the player damages an entity.
Crafting, Gathering, and Item Handling
Bukkit Event    QuestEngine Event    Description
PlayerFishEvent    "FISHING"    When fishing.
CraftItemEvent    "ITEM_CRAFT"    Crafting an item.
FurnaceSmeltEvent    "SMELTING"    Smelting items in a furnace nearby.
PrepareSmithingEvent    "SMITHING"    Using a smithing table.
EnchantItemEvent    "ENCHANTING", "ITEM_ENCHANT"    When enchanting an item.
PlayerBucketFillEvent    "BUCKET_FILL"    When filling a bucket.
PlayerBucketEmptyEvent    "BUCKET_EMPTY"    When emptying a bucket.
PlayerBucketEntityEvent    "BUCKET_ENTITY"    When interacting with an entity using a bucket (like milking or capturing).
PlayerDropItemEvent    "ITEM_DROP", "BLOCK_ITEM_DROPPING"    Dropping an item.
EntityPickupItemEvent    "ITEM_PICKUP"    Picking up an item.
PlayerItemConsumeEvent    "ITEM_CONSUME"    Eating or drinking an item.
PlayerItemHeldEvent    "ITEM_SELECT"    Switching held item slot.
PlayerInteractEvent    "ITEM_INTERACT"    Interacting (e.g., right-clicking).
PlayerSwapHandItemsEvent    "PLAYER_SWAP_HAND"    Swapping main/off-hand items.
PrepareAnvilEvent    "ITEM_REPAIR"    Repairing or combining items in an anvil.
InventoryClickEvent    "ITEM_MOVE", "TRADING"    Moving items in inventory or trading with villagers.

Optional Paper-specific:

Event    QuestEngine Event
PlayerItemDamageEvent    "ITEM_DAMAGE"
‍♂️ MythicMobs Integration
MythicMobs Event    QuestEngine Event    Description
MythicMobSpawnEvent    "MYTHICMOBS_ENTITY_SPAWN"    When a MythicMob spawns near the player.
MythicMobDeathEvent    "MYTHICMOBS_KILL"    When a MythicMob is killed, either by the player or nearby.

These are dynamically hooked using reflection to remain compatible even if MythicMobs isn’t installed.

Player-Related Events
Bukkit Event    QuestEngine Event    Description
PlayerJoinEvent    "PLAYER_PRE_JOIN"    When a player joins.
PlayerQuitEvent    "PLAYER_LEAVE"    When a player leaves.
PlayerRespawnEvent    "PLAYER_RESPAWN"    When a player respawns.
PlayerDeathEvent    "PLAYER_DEATH"    When a player dies.
PlayerChangedWorldEvent    "PLAYER_WORLD_CHANGE"    When a player switches worlds.
PlayerTeleportEvent    "PLAYER_TELEPORT"    When a player teleports.
PlayerBedEnterEvent    "PLAYER_BED_ENTER"    When entering a bed.
PlayerExpChangeEvent    "PLAYER_EXP_GAIN"    When gaining XP.
PlayerLevelChangeEvent    "PLAYER_LEVELUP"    When leveling up.
PlayerCommandPreprocessEvent    "PLAYER_COMMAND"    When executing a command.
AsyncPlayerChatEvent    "PLAYER_CHAT"    When sending chat messages.
PlayerMoveEvent    "PLAYER_WALK", "DISTANCE_FROM"    When walking a certain minimum distance (configurable).
World / Chunk Events
Bukkit Event    QuestEngine Event    Description
CreatureSpawnEvent    "ENTITY_SPAWN"    When a creature spawns near a player.
ChunkLoadEvent    "CHUNK_LOAD"    When a chunk loads.
Resource Information
Author:
----------
Total Downloads: 35
First Release: Nov 8, 2025
Last Update: Nov 13, 2025
Category: ---------------
All-Time Rating:
2 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings