エンカウンター API(リテール — パッチ 12.0.0)
エンカウンタージャーナル、ミシック+、インスタンス、シナリオ、レイドのロックアウト、シーズンに関する包括的なリファレンスです。
情報源: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API
2026 年 1 月 28 日時点: パッチ 12.0.0(ビルド 65655)
対象範囲: リテールのみ。
対象範囲
- エンカウンタージャーナル — ボスのデータベース、戦利品テーブル、アビリティ
- C_ChallengeMode — M+ のキーストーン、アフィックス、タイマー
- C_MythicPlus — 週間 M+ ラン、レーティング、シーズン関連
- ScenarioInfo — シナリオ、デルブ、ステージ
- InstanceLeaverInfo — 離脱者に関する情報
- レイドのロックアウト — 保存済みインスタンスのロックアウト
- C_SeasonInfo — シーズンコンテンツ
エンカウンタージャーナル
インスタンスの移動
| 関数 | 戻り値 | 説明 |
|---|
EJ_GetNumTiers() | numTiers | 拡張ティアの数 |
EJ_GetTierInfo(tierIndex) | name, link | ティア名とリンク |
EJ_SelectTier(tierIndex) | — | 拡張ティアを選択 |
EJ_GetCurrentTier() | tierIndex | 現在選択されているティア |
EJ_GetInstanceByIndex(index, isRaid) | instanceID, name, description, bgImage, buttonImage1, loreImage, buttonImage2, dungeonAreaMapID, link, shouldDisplayDifficulty | インデックスで指定したインスタンス |
EJ_GetNumInstances() | — | 関数ではありません。EJ_GetInstanceByIndex を nil が返るまで繰り返し呼び出します |
EJ_SelectInstance(instanceID) | — | インスタンスを選択 |
EJ_GetInstanceInfo(instanceID) | name, description, bgImage, ... | インスタンス情報 |
EJ_InstanceIsRaid() | isRaid | 選択中のインスタンスはレイドか? |
エンカウンター(ボス)データ
| 関数 | 戻り値 | 説明 |
|---|
EJ_GetEncounterInfoByIndex(index) | name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, instanceID | インデックスで指定したボス |
EJ_GetEncounterInfo(encounterID) | name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, instanceID | ボス情報 |
EJ_SelectEncounter(encounterID) | — | エンカウンターを選択 |
EJ_GetNumEncountersForLootByIndex(index) | numEncounters | 戦利品があるボスの数 |
EJ_GetCreatureInfo(index, encounterID) | id, name, description, displayInfo, iconImage, ... | クリーチャー情報 |
セクション(アビリティ)データ
| 関数 | 戻り値 | 説明 |
|---|
EJ_GetSectionInfo(sectionID) | info | セクション/アビリティ情報 |
EJ_GetNumSectionsForEncounter(encounterID) | numSections | セクションの数 |
セクション情報のフィールド
title — セクションのタイトル
description — セクションのテキスト
headerType — ヘッダーの種類を示す列挙型
abilityIcon — アイコンのテクスチャ
creatureDisplayID — 表示 ID
siblingSectionID — 次の兄弟セクション
firstChildSectionID — 最初の子セクション
filteredByDifficulty — 難易度フィルターによって非表示か?
link — ジャーナルリンク
startsOpen — デフォルトで展開されるか?
戦利品
| 関数 | 戻り値 | 説明 |
|---|
EJ_GetLootInfoByIndex(index) | name, icon, slotFilter, armorType, itemID, link, encounterID | インデックスで指定した戦利品 |
EJ_GetNumLoot() | numLoot | 戦利品アイテムの数 |
EJ_SetLootFilter(classID, specID) | — | クラス/特化で絞り込む |
EJ_GetLootFilter() | classID, specID | 現在のフィルター |
EJ_SetSlotFilter(slotFilter) | — | スロットで絞り込む |
EJ_GetSlotFilter() | slotFilter | 現在のスロットフィルター |
EJ_ResetLootFilter() | — | すべてのフィルターを解除 |
EJ_IsLootListOutOfDate() | isOutOfDate | 更新が必要か? |
難易度
| 関数 | 戻り値 | 説明 |
|---|
EJ_SetDifficulty(difficultyID) | — | EJ の難易度を設定 |
EJ_GetDifficulty() | difficultyID | 現在の EJ の難易度 |
EJ_GetNumEncountersByDifficulty(difficultyID) | numEncounters | 指定した難易度のボスの数 |
検索
| 関数 | 戻り値 | 説明 |
|---|
EJ_SetSearch(text) | — | 検索テキストを設定 |
EJ_GetSearchResult(index) | resultInfo | 検索結果 |
EJ_GetNumSearchResults() | numResults | 結果の数 |
EJ_IsSearchFinished() | isFinished | 検索完了? |
EJ_ClearSearch() | — | 検索をクリア |
C_ChallengeMode — ミシック+のキーストーン
キーストーン情報
| 関数 | 戻り値 | 説明 |
|---|
C_ChallengeMode.GetActiveKeystoneInfo() | activeKeystoneLevel, activeAffixIDs, wasActiveKeystoneCharged | 有効なキーストーン |
C_ChallengeMode.GetActiveChallengeMapID() | mapID | 有効なM+マップ |
C_ChallengeMode.GetActiveKeystoneLink() | link | キーストーンのハイパーリンク |
C_ChallengeMode.GetSlottedKeystoneInfo() | mapID, affixIDs, keystoneLevel | スロット済みキーストーン |
C_ChallengeMode.HasSlottedKeystone() | hasKeystone | キーストーンがスロット済み? |
C_ChallengeMode.SlotKeystone() | slotted | キーストーンをスロット |
C_ChallengeMode.RemoveKeystone() | removed | キーストーンを取り外す |
マップとアフィックスのデータ
| 関数 | 戻り値 | 説明 |
|---|
C_ChallengeMode.GetMapTable() | mapIDs | すべてのM+マップ |
C_ChallengeMode.GetMapUIInfo(mapID) | name, id, timeLimit, texture, backgroundTexture | マップ情報 |
C_ChallengeMode.GetAffixInfo(affixID) | name, description, filedataid | アフィックス情報 |
C_ChallengeMode.GetCurrentAffixes() | affixes | 今週のアフィックス |
完了と記録
| 関数 | 戻り値 | 説明 |
|---|
C_ChallengeMode.GetMapPlayerStats(mapID) | durationSec, ... | 自己ベスト |
C_ChallengeMode.GetGuildLeaders() | guildLeaders | ギルドのベストラン |
C_ChallengeMode.GetCompletionInfo() | mapID, level, time, onTime, keystoneUpgradeLevels, practiceRun, oldOverallDungeonScore, newOverallDungeonScore, IsMapRecord, IsAffixRecord, PrimaryAffix, isEligibleForScore, members | ランの完了データ |
C_ChallengeMode.IsChallengeModeActive() | isActive | M+が進行中? |
C_ChallengeMode.GetDeathCount() | numDeaths, timeLost | 死亡数とペナルティ |
C_ChallengeMode.GetActiveChallengeModeLevel() | level | 現在のキーレベル |
報酬
| 関数 | 戻り値 | 説明 |
|---|
C_ChallengeMode.GetChallengeMapInfo(mapID, keystoneLevel) | rewardInfo | キーレベルごとの報酬 |
C_MythicPlus — シーズンM+データ
| 関数 | 戻り値 | 説明 |
|---|
C_MythicPlus.GetCurrentSeason() | seasonID | 現在のシーズン |
C_MythicPlus.GetRunHistory(includePreviousWeeks, includeIncompleteRuns) | runs | ラン履歴 |
C_MythicPlus.GetRewardLevelFromKeystoneLevel(keystoneLevel) | rewardLevel | 報酬アイテムレベル |
C_MythicPlus.GetOwnedKeystoneLevel() | level | 所持キーレベル |
C_MythicPlus.GetOwnedKeystoneChallengeMapID() | mapID | 所持キーのダンジョン |
C_MythicPlus.GetOwnedKeystoneMapID() | mapID | 所持キーのマップ |
C_MythicPlus.GetCurrentAffixes() | affixIDs | 現在のアフィックス |
C_MythicPlus.GetWeeklyChestRewardLevel() | rewardLevel | 保管庫の報酬レベル |
C_MythicPlus.GetSeasonBestAffixScoreInfoForMap(mapID) | bestScoreInfo | アフィックスごとのベストスコア |
C_MythicPlus.GetSeasonBestForMap(mapID) | intimeInfo, overtimeInfo | シーズン中のベストラン |
C_MythicPlus.GetOverallDungeonScore() | score | M+の総合レーティング |
C_MythicPlus.RequestCurrentAffixes() | — | アフィックスデータをリクエスト |
C_MythicPlus.RequestMapInfo() | — | マップデータをリクエスト |
C_MythicPlus.RequestRewards() | — | 報酬データをリクエスト |
C_MythicPlus.IsDungeonScorable(mapID) | isScorable | スコアを獲得できる? |
ScenarioInfo — シナリオとデルヴ
| 関数 | 戻り値 | 説明 |
|---|
C_ScenarioInfo.GetScenarioInfo() | scenarioInfo | 現在のシナリオ |
C_ScenarioInfo.GetScenarioStepInfo() | stepInfo | 現在のステップ |
C_ScenarioInfo.GetCriteriaInfo(criteriaIndex) | criteriaInfo | インデックスで指定した条件 |
C_ScenarioInfo.GetCriteriaInfoByStep(stepIndex, criteriaIndex) | criteriaInfo | ステップの条件 |
C_ScenarioInfo.GetScenarioStepByIndex(index) | stepInfo | インデックスで指定したステップ |
シナリオ情報のフィールド
name — シナリオ名
currentStage — 現在のステージ
numStages — ステージの合計数
flags — シナリオのフラグ
isComplete — 完了済みか
xp — XP報酬
money — ゴールド報酬
type — シナリオの種類
area — エリア名
uiTextureKit — UIテクスチャキット
ステップ情報のフィールド
title — ステップのタイトル
description — ステップの説明
numCriteria — 条件の数
isComplete — ステップが完了しているか
isBonusObjective — ボーナス目標か
isFinal — 最終ステップか
weightedProgress — 進捗率
レイドロック(保存済みインスタンス)
| 関数 | 戻り値 | 説明 |
|---|
GetNumSavedInstances() | numInstances | 保存済みインスタンスの数 |
GetSavedInstanceInfo(index) | name, id, reset, difficulty, locked, extended, instanceIDMostSig, isRaid, maxPlayers, difficultyName, numEncounters, encounterProgress, extendDisabled | 保存済みインスタンス情報 |
GetSavedInstanceEncounterInfo(index, encounterIndex) | bossName, fileDataID, isKilled, isIneligible | ボスの討伐状況 |
SetSavedInstanceExtend(index, extend) | — | ロックアウトを延長 |
GetNumSavedWorldBosses() | count | ワールドボスのロック数 |
GetSavedWorldBossInfo(index) | name, id, reset | ワールドボス情報 |
RequestRaidInfo() | — | ロック情報を要求 |
InstanceLeaverInfo — 離脱者
| 関数 | 戻り値 | 説明 |
|---|
C_InstanceLeaverInfo.GetLeaverInfo() | leaverInfo | 離脱者情報 |
C_InstanceLeaverInfo.HasLeaverPenalty() | hasPenalty | 離脱ペナルティがあるか |
C_InstanceLeaverInfo.GetLeaverPenaltyTimeRemaining() | seconds | 残り時間 |
C_SeasonInfo — シーズンコンテンツ
| 関数 | 戻り値 | 説明 |
|---|
C_SeasonInfo.GetCurrentDisplaySeasonID() | seasonID | 現在の表示シーズン |
C_SeasonInfo.GetCurrentSeason() | seasonID | 現在のシーズン |
C_SeasonInfo.GetSeasonInfo(seasonID) | seasonInfo | シーズンデータ |
よく使われるパターン
エンカウントジャーナルのボスを一覧表示する
-- Select an instance and list its bosses
EJ_SelectTier(EJ_GetCurrentTier())
EJ_SelectInstance(instanceID)
local index = 1
while true do
local name, description, encounterID, rootSectionID = EJ_GetEncounterInfoByIndex(index)
if not name then break end
print(index, name, "- EncounterID:", encounterID)
index = index + 1
end
M+のキーストーン情報を表示する
local function ShowKeystoneInfo()
local level = C_MythicPlus.GetOwnedKeystoneLevel()
local mapID = C_MythicPlus.GetOwnedKeystoneChallengeMapID()
if level and mapID then
local name = C_ChallengeMode.GetMapUIInfo(mapID)
print("Keystone:", name, "+", level)
else
print("No keystone")
end
local score = C_MythicPlus.GetOverallDungeonScore()
print("M+ Rating:", score or 0)
end
アクティブなM+の進行状況を確認する
local function ShowMythicPlusProgress()
if not C_ChallengeMode.IsChallengeModeActive() then
print("Not in an active M+")
return
end
local level = C_ChallengeMode.GetActiveChallengeModeLevel()
local mapID = C_ChallengeMode.GetActiveChallengeMapID()
local name = C_ChallengeMode.GetMapUIInfo(mapID)
local deaths, timeLost = C_ChallengeMode.GetDeathCount()
print(name, "+", level)
print("Deaths:", deaths, "Time lost:", timeLost, "sec")
end
保存済みインスタンスを一覧表示する
RequestRaidInfo()
-- Wait for UPDATE_INSTANCE_INFO event, then:
local numSaved = GetNumSavedInstances()
for i = 1, numSaved do
local name, id, reset, difficulty, locked, extended,
_, isRaid, maxPlayers, diffName, numEncounters, progress =
GetSavedInstanceInfo(i)
if locked then
print(name, diffName, progress .. "/" .. numEncounters,
"Reset:", SecondsToTime(reset))
end
end
主なイベント
| イベント | ペイロード | 説明 |
|---|
EJ_LOOT_DATA_RECIEVED | itemID | 戦利品データが読み込まれた |
EJ_DIFFICULTY_UPDATE | difficultyID | EJの難易度が変更された |
CHALLENGE_MODE_START | mapID | M+が開始された |
CHALLENGE_MODE_COMPLETED | mapID | M+が完了した |
CHALLENGE_MODE_RESET | mapID | M+がリセットされた |
CHALLENGE_MODE_DEATH_COUNT_UPDATED | — | 死亡回数が変更された |
CHALLENGE_MODE_KEYSTONE_RECEPTABLE_OPEN | — | 力の泉が開かれた |
CHALLENGE_MODE_KEYSTONE_SLOTTED | — | キーストーンがセットされた |
MYTHIC_PLUS_CURRENT_AFFIX_UPDATE | — | アフィックスが更新された |
MYTHIC_PLUS_NEW_WEEKLY_RECORD | mapID | 週間の新記録 |
MYTHIC_PLUS_NEW_SEASON_RECORD | mapID | シーズンの新記録 |
SCENARIO_UPDATE | — | シナリオの状態が変更された |
SCENARIO_CRITERIA_UPDATE | — | 条件が更新された |
SCENARIO_COMPLETED | — | シナリオが完了した |
UPDATE_INSTANCE_INFO | — | 保存済みインスタンスのデータ |
INSTANCE_LOCK_START | — | ロックアウトが取得された |
INSTANCE_LOCK_STOP | — | ロックアウトが解除された |
INSTANCE_LOCK_WARNING | — | ロックアウトの警告 |
注意点と制限事項
- EJ データは非同期です — 戦利品データは非同期で読み込まれます。戦利品を読み取る前に、
EJ_LOOT_DATA_RECIEVED を待ってください。
- ティアの選択が重要です — EJ 関数は現在選択されているティアに対して動作します。必ず先にティアを設定してください。
- M+ の完了データは一時的です —
GetCompletionInfo() がデータを返すのは、ランの直後のみです。
- キーストーンのスロットへの装着にはハードウェアイベントが必要です — プレイヤーは力の源に手動で触れる必要があります。
- レイドロックの延長 —
SetSavedInstanceExtend() はロックの有効期間中に呼び出す必要があります。
- シナリオの種類はさまざまです — デルヴ、島の遠征、シナリオはいずれも ScenarioInfo を使用しますが、タイプフラグは異なります。
- M+ レーティングはシーズンごとです —
GetOverallDungeonScore() はシーズンごとにリセットされます。
- RequestRaidInfo() は非同期です — 保存済みインスタンスを読み取る前に、
UPDATE_INSTANCE_INFO を待ってください。