diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-01.htm b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-01.htm
new file mode 100644
index 0000000000..2b5a481ca2
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-01.htm
@@ -0,0 +1,4 @@
+
Priest Vanutu:
+May the glory of Pa'agrio shine upon the brave!
+Go to the Lair of Antharas and collect 360 cave beast teeth and 360 Death Wave Lights. You mustn't attempt this mission alone.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-02.htm b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-02.htm
new file mode 100644
index 0000000000..1b70302983
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-02.htm
@@ -0,0 +1,4 @@
+Priest Vanutu:
+Your inner voice is not yet clear to you. Come back when you have it.
+(This quest may only be undertaken by a character of level 56 and above.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-03.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-03.html
new file mode 100644
index 0000000000..aecd39a749
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-03.html
@@ -0,0 +1,3 @@
+Priest Vanutu:
+You haven't brought enough! You must bring me 360 cave beast teeth and 360 Death Wave Lights. I don't like to repeat myself! Go! Now!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-04.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-04.html
new file mode 100644
index 0000000000..945940241b
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-04.html
@@ -0,0 +1,8 @@
+Priest Vanutu:
+Oh, the sacred flames of Pa'agrio!
+Now I can perform the ritual! Choose your reward!
+1 Scroll Part: Enchant Armor
+2 Refined Scroll Part: Enchant Armor
+1 Scroll: Enchant Armor (B-grade)
+1 Improved Scroll: Enchant Armor (B-grade)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-05.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-05.html
new file mode 100644
index 0000000000..2baf193d88
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-05.html
@@ -0,0 +1,4 @@
+Priest Vanutu:
+Now I can perform the ritual. But, bear in mind, it's almost impossible to foretell the chaotic future with just one ritual. Why don't you stay and help me?
+"I'll stay and help."
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-06.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-06.html
new file mode 100644
index 0000000000..16e3fab612
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-06.html
@@ -0,0 +1,5 @@
+Priest Vanutu:
+May the power of Pa'agrio be with you...
+Now, you need to kill Cave Beast and Death Wave monsters and get the Sealed Mysterious Stone.
+Galman waiting for you!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-07.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-07.html
new file mode 100644
index 0000000000..4188704616
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-07.html
@@ -0,0 +1,3 @@
+Priest Vanutu:
+You still here? Go inside Anthar's Lair and kill Cave Beast and Death Wave monsters in order bring to me the Sealed Mysterious Stone.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-08.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-08.html
new file mode 100644
index 0000000000..7e6f81450f
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938-08.html
@@ -0,0 +1,4 @@
+Priest Vanutu:
+Good work!
+You must meet with the dwarf named Galman. You'll find him in Dragon Valley.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938.htm b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938.htm
new file mode 100644
index 0000000000..8e2917a2bb
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/30938.htm
@@ -0,0 +1,4 @@
+Priest Vanutus:
+Last night I dreamed of my ancestors. They spoke of a great turmoil approaching this world. I must perform a ritual to see what lies ahead. Will you help me to obtain the materials I need?
+"I will help."
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/31044-01.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/31044-01.html
new file mode 100644
index 0000000000..af02c71996
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/31044-01.html
@@ -0,0 +1,4 @@
+Trader Galman:
+It's done!
+After you touch it a few times and your hand starts to feel warm, that means it's done. At least that's what the old orc said. Take this and don't ever come back, you hear?
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/31044.html b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/31044.html
new file mode 100644
index 0000000000..c7c296890d
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/31044.html
@@ -0,0 +1,4 @@
+Trader Galman:
+Well well well! It seems like the old orc has some vinegar left in him yet. My father told me about that old geezer bothering him when I was born, saying that I had the power of Pa'agrio or something... Now he's back. Just give me the stone and I'll do this quickly. Don't bother me again.
+Give him the Mysterious Stone.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/Q00374_WhisperOfDreams_Part1.java b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/Q00374_WhisperOfDreams_Part1.java
new file mode 100644
index 0000000000..d6a783bad1
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/Q00374_WhisperOfDreams_Part1/Q00374_WhisperOfDreams_Part1.java
@@ -0,0 +1,282 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package quests.Q00374_WhisperOfDreams_Part1;
+
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.ItemHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+
+/**
+ * Whisper Of Dreams Part1 (374)
+ * @author Stayway
+ */
+public class Q00374_WhisperOfDreams_Part1 extends Quest
+{
+ // NPCs
+ private static final int VANUTU = 30938;
+ private static final int GALMAN = 31044;
+ private static final int CAVE_BEAST = 20620;
+ private static final int DEATH_WAVE = 20621;
+ // Items
+ private static final ItemHolder CAVE_BEAST_TOOTH = new ItemHolder(5884, 360);
+ private static final ItemHolder DEATH_WAVE_LIGHT = new ItemHolder(5885, 360);
+ private static final ItemHolder SEALED_MYSTERIOUS_STONE = new ItemHolder(5886, 1);
+ private static final int MYSTERIOUS_STONE = 5887;
+ // Rewards
+ private static final int SCROLL_PART_EA = 49475;
+ private static final int REFINED_SCROLL_PART_EA = 49478;
+ private static final int ENCHANT_ARMOR_B = 948;
+ private static final int IMPROVED_ENCHANT_ARMOR_B = 29743;
+ // Misc
+ private static final int MIN_LEVEL = 56;
+ private static final int MAX_LEVEL = 66;
+
+ public Q00374_WhisperOfDreams_Part1()
+ {
+ super(374);
+ addStartNpc(VANUTU);
+ addTalkId(VANUTU, GALMAN);
+ addKillId(CAVE_BEAST, DEATH_WAVE);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30938-02.html");
+ registerQuestItems(SEALED_MYSTERIOUS_STONE.getId());
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ String htmltext = null;
+ if (qs != null)
+ {
+ switch (event)
+ {
+ case "30938-01.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30938-06.html":
+ {
+ qs.setCond(3);
+ htmltext = event;
+ break;
+ }
+ case "reward1":
+ {
+ if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
+ {
+ if (qs.isCond(2))
+ {
+ giveItems(player, SCROLL_PART_EA, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-05.html";
+ }
+ else if (qs.isCond(4))
+ {
+ giveItems(player, SCROLL_PART_EA, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-08.html";
+ }
+ }
+ break;
+ }
+ case "reward2":
+ {
+ if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
+ {
+ if (qs.isCond(2))
+ {
+ giveItems(player, REFINED_SCROLL_PART_EA, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-05.html";
+ }
+ else if (qs.isCond(4))
+ {
+ giveItems(player, REFINED_SCROLL_PART_EA, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-08.html";
+ }
+ }
+ break;
+ }
+ case "reward3":
+ {
+ if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
+ {
+ if (qs.isCond(2))
+ {
+ giveItems(player, ENCHANT_ARMOR_B, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-05.html";
+ }
+ else if (qs.isCond(4))
+ {
+ giveItems(player, ENCHANT_ARMOR_B, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-08.html";
+ }
+ }
+ break;
+ }
+ case "reward4":
+ {
+ if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
+ {
+ if (qs.isCond(2))
+ {
+ giveItems(player, IMPROVED_ENCHANT_ARMOR_B, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-05.html";
+ }
+ else if (qs.isCond(4))
+ {
+ giveItems(player, IMPROVED_ENCHANT_ARMOR_B, 1);
+ takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
+ giveAdena(player, 9000, true);
+ htmltext = "30938-08.html";
+ }
+ }
+ break;
+ }
+ case "31044-01.html":
+ {
+ if (qs.isCond(4))
+ {
+ giveItems(player, MYSTERIOUS_STONE, 1);
+ takeAllItems(player, SEALED_MYSTERIOUS_STONE);
+ qs.exitQuest(true, true);
+ htmltext = event;
+ }
+ break;
+ }
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = getNoQuestMsg(player);
+ final QuestState qs = getQuestState(player, true);
+ switch (npc.getId())
+ {
+ case VANUTU:
+ {
+ if (qs.isCompleted())
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ }
+ else if (qs.isCreated())
+ {
+ htmltext = "30938.htm";
+ }
+ else if (qs.isStarted())
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ htmltext = "30938-03.html";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "30938-04.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "30938-07.html";
+ break;
+ }
+ case 4:
+ {
+ htmltext = "30938-08.html";
+ break;
+ }
+ }
+ }
+ break;
+ }
+ case GALMAN:
+ {
+ if (qs.isCond(4))
+ {
+ htmltext = "31044.html";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
+ if (qs != null)
+ {
+ switch (npc.getId())
+ {
+ case CAVE_BEAST:
+ {
+ if (qs.getCond() < 4)
+ {
+ giveItemRandomly(qs.getPlayer(), npc, CAVE_BEAST_TOOTH.getId(), 1, CAVE_BEAST_TOOTH.getCount(), 0.9, true);
+ if (qs.isCond(3))
+ {
+ giveItemRandomly(qs.getPlayer(), npc, SEALED_MYSTERIOUS_STONE.getId(), 1, SEALED_MYSTERIOUS_STONE.getCount(), 0.2, true);
+ }
+ }
+ break;
+ }
+ case DEATH_WAVE:
+ {
+ if (qs.getCond() < 4)
+ {
+ giveItemRandomly(qs.getPlayer(), npc, DEATH_WAVE_LIGHT.getId(), 1, DEATH_WAVE_LIGHT.getCount(), 0.9, true);
+ if (qs.isCond(3))
+ {
+ giveItemRandomly(qs.getPlayer(), npc, SEALED_MYSTERIOUS_STONE.getId(), 1, SEALED_MYSTERIOUS_STONE.getCount(), 0.2, true);
+ }
+ }
+ break;
+ }
+ }
+ if (qs.isCond(1) && (hasAllItems(qs.getPlayer(), true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH)))
+ {
+ qs.setCond(2);
+ }
+ if (qs.isCond(3) && (hasAllItems(qs.getPlayer(), true, SEALED_MYSTERIOUS_STONE)))
+ {
+ qs.setCond(4);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_Classic/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_Classic/dist/game/data/scripts/quests/QuestMasterHandler.java
index 831da89d5e..b3b65cba58 100644
--- a/L2J_Mobius_Classic/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_Classic/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -158,6 +158,7 @@ import quests.Q00358_IllegitimateChildOfTheGoddess.Q00358_IllegitimateChildOfThe
import quests.Q00360_PlunderTheirSupplies.Q00360_PlunderTheirSupplies;
import quests.Q00369_CollectorOfJewels.Q00369_CollectorOfJewels;
import quests.Q00370_AnElderSowsSeeds.Q00370_AnElderSowsSeeds;
+import quests.Q00374_WhisperOfDreams_Part1.Q00374_WhisperOfDreams_Part1;
import quests.Q00401_PathOfTheWarrior.Q00401_PathOfTheWarrior;
import quests.Q00402_PathOfTheHumanKnight.Q00402_PathOfTheHumanKnight;
import quests.Q00403_PathOfTheRogue.Q00403_PathOfTheRogue;
@@ -317,6 +318,7 @@ public class QuestMasterHandler
Q00329_CuriosityOfADwarf.class,
Q00331_ArrowOfVengeance.class,
Q00333_HuntOfTheBlackLion.class,
+ Q00374_WhisperOfDreams_Part1.class,
Q00344_1000YearsTheEndOfLamentation.class,
Q00348_AnArrogantSearch.class,
Q00354_ConquestOfAlligatorIsland.class,
diff --git a/L2J_Mobius_Classic/dist/game/data/spawns/Others/24_21.xml b/L2J_Mobius_Classic/dist/game/data/spawns/Others/24_21.xml
new file mode 100644
index 0000000000..f506fff5fe
--- /dev/null
+++ b/L2J_Mobius_Classic/dist/game/data/spawns/Others/24_21.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/L2J_Mobius_Classic/dist/game/data/stats/npcs/30900-30999.xml b/L2J_Mobius_Classic/dist/game/data/stats/npcs/30900-30999.xml
index 3185c62344..376a5888d7 100644
--- a/L2J_Mobius_Classic/dist/game/data/stats/npcs/30900-30999.xml
+++ b/L2J_Mobius_Classic/dist/game/data/stats/npcs/30900-30999.xml
@@ -1445,11 +1445,7 @@
-
-
-
-
-
+
HUMANOID
MALE
diff --git a/L2J_Mobius_Classic/readme.txt b/L2J_Mobius_Classic/readme.txt
index ca849b9c5d..333ffe58ce 100644
--- a/L2J_Mobius_Classic/readme.txt
+++ b/L2J_Mobius_Classic/readme.txt
@@ -50,3 +50,5 @@ TODO list
-Moon Knight quest
-Dungeon of Abyss https://www.youtube.com/watch?v=FZEu0hjCAK8
-New Savior class skills https://eu.4game.com/lineage2classic/play/saviors/classes/#newclasskills
+-Provisional Clan Halls
+
\ No newline at end of file