diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java
index 2e195d0bf81b19f9c3f9c8cc32969eef8ca87af1..a659ff049903e02d43ec163b3855d91d2fa01dd4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java
@@ -32,7 +32,8 @@ import com.l2jserver.util.Rnd;
  */
 public class SummonCubic extends L2Effect
 {
-	private final int _npcId;
+	/** Cubic ID. */
+	private final int _cubicId;
 	/** Cubic power. */
 	private final int _cubicPower;
 	/** Cubic duration. */
@@ -47,7 +48,7 @@ public class SummonCubic extends L2Effect
 	public SummonCubic(Env env, EffectTemplate template)
 	{
 		super(env, template);
-		_npcId = template.getParameters().getInteger("npcId", 0);
+		_cubicId = template.getParameters().getInteger("cubicId", -1);
 		// Custom AI data.
 		_cubicPower = template.getParameters().getInteger("cubicPower", 0);
 		_cubicDuration = template.getParameters().getInteger("cubicDuration", 0);
@@ -76,9 +77,9 @@ public class SummonCubic extends L2Effect
 			return false;
 		}
 		
-		if (_npcId <= 0)
+		if (_cubicId < 0)
 		{
-			_log.warning(SummonCubic.class.getSimpleName() + ": Invalid NPC Id:" + _npcId + " in skill Id: " + getSkill().getId());
+			_log.warning(SummonCubic.class.getSimpleName() + ": Invalid Cubic Id:" + _cubicId + " in skill Id: " + getSkill().getId());
 			return false;
 		}
 		
@@ -100,24 +101,32 @@ public class SummonCubic extends L2Effect
 		}
 		
 		// If cubic is already present, it's replaced.
-		final L2CubicInstance cubic = player.getCubicById(_npcId);
+		final L2CubicInstance cubic = player.getCubicById(_cubicId);
 		if (cubic != null)
 		{
 			cubic.stopAction();
 			cubic.cancelDisappear();
-			player.getCubics().remove(cubic);
+			player.getCubics().remove(_cubicId);
 		}
 		else
 		{
 			// If maximum amount is reached, random cubic is removed.
 			final L2Effect cubicMastery = player.getFirstPassiveEffect(L2EffectType.CUBIC_MASTERY);
-			final int cubicCount = (int) (cubicMastery != null ? cubicMastery.calc() : 0);
-			if (player.getCubics().size() > cubicCount)
+			// Players with no mastery can have only one cubic.
+			final int allowedCubicCount = (int) (cubicMastery != null ? cubicMastery.calc() : 1);
+			final int currentCubicCount = player.getCubics().size();
+			// Extra cubics are removed, one by one, randomly.
+			for (int i = 0; i <= (currentCubicCount - allowedCubicCount); i++)
 			{
-				player.getCubics().remove(Rnd.get(player.getCubics().size()));
+				final int removedCubicId = (int) player.getCubics().keySet().toArray()[Rnd.get(currentCubicCount)];
+				final L2CubicInstance removedCubic = player.getCubicById(removedCubicId);
+				removedCubic.stopAction();
+				removedCubic.cancelDisappear();
+				player.getCubics().remove(removedCubic.getId());
 			}
 		}
-		player.addCubic(_npcId, _cubicSkillLevel, _cubicPower, _cubicDelay, _cubicSkillChance, _cubicMaxCount, _cubicDuration, getEffected() != getEffector());
+		// Adding a new cubic.
+		player.addCubic(_cubicId, _cubicSkillLevel, _cubicPower, _cubicDelay, _cubicSkillChance, _cubicMaxCount, _cubicDuration, getEffected() != getEffector());
 		player.broadcastUserInfo();
 		return true;
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
index 3e41deb6c1fb5ca19bb796e355576706762a6537..fff241398621c0c83504b366949c88b8685c517f 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
@@ -392,12 +392,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#cubicPower" />
+				<param cubicId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#ench1Power" />
+				<param cubicId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
@@ -724,12 +724,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="2" cubicDelay="15" cubicDuration="900" cubicMaxCount="20" cubicSkillChance="8" cubicPower="#cubicPower" />
+				<param cubicId="2" cubicDelay="15" cubicDuration="900" cubicMaxCount="20" cubicSkillChance="8" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="2" cubicDelay="15" cubicDuration="900" cubicMaxCount="20" cubicSkillChance="8" cubicPower="#ench1Power" />
+				<param cubicId="2" cubicDelay="15" cubicDuration="900" cubicMaxCount="20" cubicSkillChance="8" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
@@ -975,13 +975,13 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
+				<param cubicId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#ench1Power" />
+				<param cubicId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#ench1Power" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</enchant1for>
@@ -1562,7 +1562,7 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="3" cubicDelay="13" cubicDuration="900" cubicMaxCount="20" cubicSkillChance="0" />
+				<param cubicId="3" cubicDelay="13" cubicDuration="900" cubicMaxCount="20" cubicSkillChance="0" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml
index 0ec7c84ed4d309640f5afe3724d7559dbcfd8868..234a0e3edbd8b0d9b559da36f049a3d9fb08ceb5 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml
@@ -2067,12 +2067,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="4" cubicDelay="20" cubicDuration="900" cubicMaxCount="15" cubicSkillChance="20" cubicPower="#cubicPower" />
+				<param cubicId="4" cubicDelay="20" cubicDuration="900" cubicMaxCount="15" cubicSkillChance="20" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="4" cubicDelay="20" cubicDuration="900" cubicMaxCount="15" cubicSkillChance="20" cubicPower="#ench1Power" />
+				<param cubicId="4" cubicDelay="20" cubicDuration="900" cubicMaxCount="15" cubicSkillChance="20" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml
index 7d4d10c03f087019323dd96837ba7e553116cf88..8b81423f4084e69ffb14a8c688984a87d62a8a2c 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml
@@ -1692,13 +1692,13 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="9" cubicDelay="8" cubicDuration="900" cubicMaxCount="300" cubicSkillChance="50" cubicPower="#cubicPower" />
+				<param cubicId="9" cubicDelay="8" cubicDuration="900" cubicMaxCount="300" cubicSkillChance="50" cubicPower="#cubicPower" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="9" cubicDelay="8" cubicDuration="900" cubicMaxCount="300" cubicSkillChance="50" cubicPower="#ench1Power" />
+				<param cubicId="9" cubicDelay="8" cubicDuration="900" cubicMaxCount="300" cubicSkillChance="50" cubicPower="#ench1Power" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</enchant1for>
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00700-00799.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00700-00799.xml
index 0f5ddbefe695666738cf1dddf4d19fa54c4b0365..c457ae6a821639e33f49057cca2951482266ee8b 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00700-00799.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00700-00799.xml
@@ -1957,7 +1957,7 @@
 		<set name="targetType" val="SELF" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="10" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
+				<param cubicId="10" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
@@ -1977,7 +1977,7 @@
 		<set name="targetType" val="SELF" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="11" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
+				<param cubicId="11" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
@@ -1997,7 +1997,7 @@
 		<set name="targetType" val="SELF" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="12" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
+				<param cubicId="12" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
@@ -2017,7 +2017,7 @@
 		<set name="targetType" val="SELF" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="13" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
+				<param cubicId="13" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
@@ -2037,7 +2037,7 @@
 		<set name="targetType" val="SELF" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="14" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
+				<param cubicId="14" cubicDelay="10" cubicDuration="900" cubicMaxCount="50" cubicSkillChance="30" cubicPower="2106" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/01200-01299.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/01200-01299.xml
index 20004a3cc5ed6aa509e0e378d2678171ccce4c72..cd5f186c78664f0e76caaa61ec089cab5685db02 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/01200-01299.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/01200-01299.xml
@@ -2641,12 +2641,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="6" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#cubicPower" />
+				<param cubicId="6" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="6" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#ench1Power" />
+				<param cubicId="6" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
@@ -2673,12 +2673,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#cubicPower" />
+				<param cubicId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#ench1Power" />
+				<param cubicId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
@@ -2705,12 +2705,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="8" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#cubicPower" />
+				<param cubicId="8" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="8" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#ench1Power" />
+				<param cubicId="8" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="12" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml
index cfb1e887515abbf0e51efa152627f70e5689b18a..0e525c6bf96e65bce78cb7781f9894f4281dc081 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml
@@ -657,12 +657,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#cubicPower" />
+				<param cubicId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#ench1Power" />
+				<param cubicId="1" cubicDelay="10" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="12" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
@@ -690,12 +690,12 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#cubicPower" />
+				<param cubicId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#cubicPower" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#ench1Power" />
+				<param cubicId="7" cubicDelay="30" cubicDuration="900" cubicMaxCount="10" cubicSkillChance="30" cubicPower="#ench1Power" />
 			</effect>
 		</enchant1for>
 	</skill>
@@ -723,13 +723,13 @@
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
+				<param cubicId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#cubicPower" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</for>
 		<enchant1for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#ench1Power" />
+				<param cubicId="5" cubicDelay="8" cubicDuration="900" cubicMaxCount="30" cubicSkillChance="30" cubicPower="#ench1Power" />
 				<param cubicSkill1Chance="33" cubicSkill2Chance="33" cubicSkill3Chance="33" />
 			</effect>
 		</enchant1for>
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/04300-04399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/04300-04399.xml
index 373e525bf347d352f7313cd1153c550f63599169..3d3d708caf549ff00543f9845a78fec3f51540e2 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/04300-04399.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/04300-04399.xml
@@ -562,7 +562,7 @@
 		<set name="targetType" val="SELF" />
 		<for>
 			<effect name="SummonCubic" noicon="1" val="0">
-				<param npcId="3" cubicDelay="13" cubicDuration="3600" cubicMaxCount="20" />
+				<param cubicId="3" cubicDelay="13" cubicDuration="3600" cubicMaxCount="20" />
 				<param cubicSkill1Chance="13" cubicSkill2Chance="33" cubicSkill3Chance="53" />
 			</effect>
 		</for>