diff --git a/Assets/Scenes/Orbs.unity b/Assets/Scenes/Orbs.unity
index a23fe8fb2bb571ca5f6f90cb5ff029e2c7d3a1f9..84e0b784470c60d59f09758a6d26b39b6303edbe 100644
--- a/Assets/Scenes/Orbs.unity
+++ b/Assets/Scenes/Orbs.unity
@@ -1552,8 +1552,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   orbPrefab:
-  - {fileID: 0}
-  - {fileID: 0}
+  - {fileID: 244665682372652918, guid: 5b468d7bc77f27141b63444ccee67154, type: 3}
+  - {fileID: 2315383438013165124, guid: 68f3cc2e796b38b4b9ce1a8a149d8b7a, type: 3}
 --- !u!4 &1044198781
 Transform:
   m_ObjectHideFlags: 0
@@ -2419,11 +2419,12 @@ MonoBehaviour:
   playerSpeed: {fileID: 1739364336}
   playerPower: {fileID: 1739364335}
   player: {fileID: 1739364337}
-  orb: {fileID: 0}
+  orb: {fileID: 244665682372652918, guid: 5b468d7bc77f27141b63444ccee67154, type: 3}
   spawnOrb: 0
   spawnTime: 40
   spawnPoints:
   - {fileID: 2099138956}
+  orbAmount: 1
   factory: {fileID: 1044198780}
 --- !u!4 &1572031388
 Transform:
@@ -2454,11 +2455,12 @@ MonoBehaviour:
   playerSpeed: {fileID: 1739364336}
   playerPower: {fileID: 1739364335}
   player: {fileID: 1739364337}
-  orb: {fileID: 0}
+  orb: {fileID: 2315383438013165124, guid: 68f3cc2e796b38b4b9ce1a8a149d8b7a, type: 3}
   spawnOrb: 1
   spawnTime: 40
   spawnPoints:
   - {fileID: 2018607513}
+  orbAmount: 1
   factory: {fileID: 1044198780}
 --- !u!1001 &1687477066
 PrefabInstance:
diff --git a/Assets/Scripts/Managers/OrbManager.cs b/Assets/Scripts/Managers/OrbManager.cs
index 09af5c0d87c41acd5b81860847ca9fe18d23b4a6..68cb5b322e4d66290f39dee5110b4412cf0f933d 100644
--- a/Assets/Scripts/Managers/OrbManager.cs
+++ b/Assets/Scripts/Managers/OrbManager.cs
@@ -12,13 +12,14 @@ public class OrbManager : MonoBehaviour
     public int spawnOrb;
     public float spawnTime = 40f;
     public Transform[] spawnPoints;
+    public int orbAmount = 1;
 
     [SerializeField]
     MonoBehaviour factory;
     IFactory Factory { get { return factory as IFactory; } }
 
     void Start(){
-        //Mengeksekusi fungs Spawn setiap beberapa detik sesui dengan nilai spawnTime
+        //Mengeksekusi fungsi Spawn setiap beberapa detik sesui dengan nilai spawnTime
         InvokeRepeating("Spawn", spawnTime, spawnTime);
     }
 
@@ -28,12 +29,17 @@ public class OrbManager : MonoBehaviour
            return;
         }
 
+        if (orbAmount >= 8)
+        {
+            return;
+        }
+
         // spawn di depan player, can be outside of world
-        float playerPosX = player.transform.position.x;
-        Vector3 playerDirection = player.transform.forward;
-        Quaternion playerRotation = player.transform.rotation;
-        float spawnDistance = 15;
-        Vector3 spawnPos = new Vector3(playerPosX, 1, 0) + playerDirection*spawnDistance;
+        // float playerPosX = player.transform.position.x;
+        // Vector3 playerDirection = player.transform.forward;
+        // Quaternion playerRotation = player.transform.rotation;
+        // float spawnDistance = 15;
+        // Vector3 spawnPos = new Vector3(playerPosX, 1, 0) + playerDirection*spawnDistance;
 
         // spawn randomly di dalem screen bound, masi ada dissolving bug
         // float distFromCamera = 2f;
@@ -41,10 +47,15 @@ public class OrbManager : MonoBehaviour
         // Vector3 spawnPos = Camera.main.ViewportToWorldPoint(pos);
 
         // Menduplikasi orb
-        Instantiate(Factory.FactoryMethod(spawnOrb), spawnPos, Quaternion.identity);
+        // Instantiate(Factory.FactoryMethod(spawnOrb), spawnPos, Quaternion.identity);
 
         // spawn fully random, can be outside of camera bound
         // int spawnPointIndex = Random.Range (0, spawnPoints.Length);
         // Instantiate(Factory.FactoryMethod(spawnOrb), spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
+        Vector3 position = new Vector3(Random.Range(-10.0F, 10.0F), 1, Random.Range(-10.0F, 10.0F));
+        Instantiate (Factory.FactoryMethod(spawnOrb), position, Quaternion.identity);
+
+        orbAmount++;
+
     }
 }