No worries. I've not used arraymaker (I'm still new to playmaker) but I did a game for a course of study (using c#) with spawn points exceeding the number of items I had. I used a bool & a while loop to spawn the items (every square in the unity play area had a spawn point on it that could have an object spawned on it up to the number required. Not all spawnpoints had an item spawned into it). Of those objects (trees in my case) some could then be assigned an answer to a maths problem but the answers had to be a minimum distance apart so that they could be read & could only be calculated (canCalc was true) after the correct number of trees were in the gamespace.
I had an empty gameobject that had all the spawn points attached to it. The below script was attached to the empty gameobject & all the spawn points were assigned in the inspector to the list.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class TreeSpawn : MonoBehaviour
{
public List<Transform>spawnSpots = new List<Transform> ();
// set the number of trees on screen & list of trees
public GameObject treePrefab;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
// manage spawning of trees
if (TreeScript.trees.Count < Manager.instance.treeNum) {
// find a random spawn spot
int spawnPos;
bool spotFree;
do {
spotFree = true;
spawnPos = Random.Range (0, spawnSpots.Count - 1);
// check for trees on top of each other
foreach (TreeScript t in TreeScript.trees) {
if(t.transform.position == spawnSpots [spawnPos].position)
spotFree = false;
}
}
while(spotFree==false);
// instantiate the tree in this spot
Instantiate (treePrefab, spawnSpots [spawnPos].position, spawnSpots [spawnPos].rotation);
}
else if (TreeScript.trees.Count == Manager.instance.treeNum) {
Manager.instance.canCalc = true;
}
}
}
Hopefully something like that might prevent items spawning on the same spawnpoint, If you looped through each item, assigning it to a random spawnpoint like above while checking that the bool for being a free spot was true it might work. You could maybe do it for each object in the object list find a random spot, check it is free & if it is instantiate the object.
Sorry, clutching at straws here. Hope it sort of makes sense & wasn't to long winded.