diff --git a/website/client/src/components/shops/quests/questPopover.vue b/website/client/src/components/shops/quests/questPopover.vue
index 40b4b59e35..b50aaa328a 100644
--- a/website/client/src/components/shops/quests/questPopover.vue
+++ b/website/client/src/components/shops/quests/questPopover.vue
@@ -13,7 +13,7 @@
{{ item.text }}
{{ $t('questUnlockLostMasterclasser') }}
diff --git a/website/common/script/libs/getItemInfo.js b/website/common/script/libs/getItemInfo.js
index e7ffb300b6..4bd5e5fdcf 100644
--- a/website/common/script/libs/getItemInfo.js
+++ b/website/common/script/libs/getItemInfo.js
@@ -8,7 +8,18 @@ import isPinned from './isPinned';
import isFreeRebirth from './isFreeRebirth';
import getOfficialPinnedItems from './getOfficialPinnedItems';
+function userAbleToStartMasterclasser (user) {
+ return user.achievements.quests.dilatoryDistress3
+ && user.achievements.quests.mayhemMistiflying3
+ && user.achievements.quests.stoikalmCalamity3
+ && user.achievements.quests.taskwoodsTerror3;
+}
+
function lockQuest (quest, user) {
+ if (quest.key === 'lostMasterclasser1') return !userAbleToStartMasterclasser(user);
+ if (quest.key === 'lostMasterclasser2' || quest.key === 'lostMasterclasser3' || quest.key === 'lostMasterclasser4') {
+ return !(userAbleToStartMasterclasser(user) && user.achievements.quests[quest.previous]);
+ }
if (quest.key === 'lostMasterclasser1') return !(user.achievements.quests.dilatoryDistress3 && user.achievements.quests.mayhemMistiflying3 && user.achievements.quests.stoikalmCalamity3 && user.achievements.quests.taskwoodsTerror3);
if (quest.lvl && user.stats.lvl < quest.lvl) return true;
if (quest.unlockCondition && (quest.key === 'moon1' || quest.key === 'moon2' || quest.key === 'moon3')) {
diff --git a/website/common/script/ops/buy/buyQuestGold.js b/website/common/script/ops/buy/buyQuestGold.js
index 10a0cfadcb..0fa1ce492b 100644
--- a/website/common/script/ops/buy/buyQuestGold.js
+++ b/website/common/script/ops/buy/buyQuestGold.js
@@ -53,7 +53,7 @@ export class BuyQuestWithGoldOperation extends AbstractGoldItemOperation { // es
checkPrerequisites (user, questKey) {
const item = content.quests[questKey];
- if (questKey === 'lostMasterclasser1' && !this.userAbleToStartMasterClasser(user)) {
+ if (questKey.startsWith('lostMasterclasser') && !this.userAbleToStartMasterClasser(user)) {
throw new NotAuthorized(this.i18n('questUnlockLostMasterclasser'));
}