Script on multiple objects not working properly!

So I am making a 3D tower defense game and I have my node script on multiple nodes but when I click on one node to build the tower it builds the tower on the first node I created and it acts as one object.

Here is the script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Nodes : MonoBehaviour {

private Renderer rend;
private Color startColor;
private float time = 2.5f;
private bool textOnScreen;
private MeshRenderer render;

public TowerPlacement tower;
public GameObject node;
public Text cantbuild;
public Shop shop;

void Start ()
{
    rend = node.GetComponent<Renderer>();
    startColor =rend.material.color;
    textOnScreen = false;
    render = node.GetComponent<MeshRenderer>();
}

void Update()
{
    if (shop.selected == true) render.enabled = true;
    else render.enabled = false;
}

void OnMouseDown()
{
    if(tower.canBuild == false)
    {
        cantbuild.gameObject.SetActive(true);
        if (textOnScreen == false)
        {
            StartCoroutine(cantBuild());
        }
    }
    else
    {
        if (shop.selected == true)
        {
            tower.towerBuilding();
            shop.selected = false;
        }
    }
}

void OnMouseEnter()
{
    if (tower.canBuild) rend.material.color = Color.green;
    else
    {
        rend.material.color = Color.red;
    }
}

void OnMouseExit()
{
    rend.material.color = startColor;   
}

private IEnumerator cantBuild()
{
    textOnScreen = true;
    yield return new WaitForSeconds(time);
    cantbuild.gameObject.SetActive(false);
    textOnScreen = false;
}

}

From the comments and the video, i’d say you use the wrong renderer. have you tried placing the first tower, which should appear at the wrong place, then trying to place a tower at another placement, a 3rd one? If you can, then the towers are properly instanciated, but you have the same node reference. Otherwise something in your tower creation is wrong.

Edit : i thought this was addressed in the comments, but where do you set up TowerPlacement tower variable? I see it used, but it’s not set anywhere.