diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java
index 0160dc17d713416d80ae819921ad4a3707af400c..1c38a6e3cea2d6de2327cf02af750f05c79b88c2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java
@@ -23,9 +23,9 @@ import java.util.Map;
 
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
 /**
@@ -42,11 +42,13 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
 	// Misc
 	private static final int MIN_LEVEL = 43;
 	// Monsters
-	private static final Map<Integer, ItemChanceHolder> MONSTERS = new HashMap<>();
+	private static final int ROTTING_TREE = 20558;
+	private static final int SPORE_ZOMBIE = 20562;
+	private static final Map<Integer, Double> MONSTER_DROP_CHANCES = new HashMap<>();
 	static
 	{
-		MONSTERS.put(20558, new ItemChanceHolder(HERBIVOROUS_SPORE, 0.73, 1));
-		MONSTERS.put(20562, new ItemChanceHolder(CARNIVORE_SPORE, 0.94, 1));
+		MONSTER_DROP_CHANCES.put(ROTTING_TREE, 0.73);
+		MONSTER_DROP_CHANCES.put(SPORE_ZOMBIE, 0.94);
 	}
 	
 	public Q00356_DigUpTheSeaOfSpores()
@@ -54,7 +56,7 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
 		super(356, Q00356_DigUpTheSeaOfSpores.class.getSimpleName(), "Dig Up the Sea of Spores!");
 		addStartNpc(GAUEN);
 		addTalkId(GAUEN);
-		addKillId(MONSTERS.keySet());
+		addKillId(ROTTING_TREE, SPORE_ZOMBIE);
 		registerQuestItems(HERBIVOROUS_SPORE, CARNIVORE_SPORE);
 	}
 	
@@ -136,19 +138,25 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
 	@Override
 	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
 	{
-		final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
-		if (qs != null)
+		final QuestState qs = getQuestState(killer, false);
+		
+		if ((qs == null) || !Util.checkIfInRange(1500, npc, killer, true))
 		{
-			final ItemChanceHolder item = MONSTERS.get(npc.getId());
-			if (giveItemRandomly(qs.getPlayer(), npc, item.getId(), item.getCount(), 50, item.getChance(), true) //
-				&& (getQuestItemsCount(qs.getPlayer(), CARNIVORE_SPORE) >= 50) //
-				&& (getQuestItemsCount(qs.getPlayer(), CARNIVORE_SPORE) >= 50))
+			return null;
+		}
+		
+		final int dropItem = ((npc.getId() == ROTTING_TREE) ? HERBIVOROUS_SPORE : CARNIVORE_SPORE);
+		final int otherItem = ((dropItem == HERBIVOROUS_SPORE) ? CARNIVORE_SPORE : HERBIVOROUS_SPORE);
+		
+		if (giveItemRandomly(killer, npc, dropItem, 1, 50, MONSTER_DROP_CHANCES.get(npc.getId()), true))
+		{
+			if (getQuestItemsCount(killer, otherItem) >= 50)
 			{
-				qs.setCond(3, true);
+				qs.setCond(3);
 			}
 			else
 			{
-				qs.setCond(2, true);
+				qs.setCond(2);
 			}
 		}
 		return super.onKill(npc, killer, isSummon);
@@ -165,21 +173,24 @@ public final class Q00356_DigUpTheSeaOfSpores extends Quest
 		}
 		else if (qs.isStarted())
 		{
-			if ((getQuestItemsCount(player, HERBIVOROUS_SPORE) < 50) && (getQuestItemsCount(player, CARNIVORE_SPORE) < 50))
+			final boolean hasAllHerbSpores = (getQuestItemsCount(player, HERBIVOROUS_SPORE) >= 50);
+			final boolean hasAllCarnSpores = (getQuestItemsCount(player, CARNIVORE_SPORE) >= 50);
+			
+			if (hasAllHerbSpores && hasAllCarnSpores)
 			{
-				htmltext = "30717-07.html";
+				htmltext = "30717-13.html";
 			}
-			else if ((getQuestItemsCount(player, HERBIVOROUS_SPORE) >= 50) && (getQuestItemsCount(player, CARNIVORE_SPORE) < 50))
+			else if (hasAllCarnSpores)
 			{
-				htmltext = "30717-08.html";
+				htmltext = "30717-12.html";
 			}
-			else if ((getQuestItemsCount(player, HERBIVOROUS_SPORE) < 50) && (getQuestItemsCount(player, CARNIVORE_SPORE) >= 50))
+			else if (hasAllHerbSpores)
 			{
-				htmltext = "30717-12.html";
+				htmltext = "30717-08.html";
 			}
 			else
 			{
-				htmltext = "30717-13.html";
+				htmltext = "30717-07.html";
 			}
 		}
 		return htmltext;