RPC Flooding

Options
Hi, so I have a bit of a dilemma. Currently, I'm creating a GameObject (very simple, I'm just calling PhotonNetwork.Instantiate), but I also need to use that same object to set it's parent to something, on all clients, once it's spawned. So to set the parent, I'm using an RPC call (that's buffered so that later joiners can receive it) after I instantiate the GameObject. My fear is that if there's a large number of players swapping and removing weapons during the session that later joiners will get blasted with hundreds of RPC's that were buffered trying to parent/unparent weapons that may no longer even exist (of course I could just handle this with a simple if check). I'm afraid that this will cause a lot of performance issues later on.

Does anyone know the best way to handle this? I hope I've given a detailed enough description of the issue.
Regards!

Here's the code if you're curious:

void CreateWeapon(WeaponInfo weaponInfo)
{
    if (weaponInfo == null)
        return;

    if (PhotonNetwork.IsConnected)
    {
        GameObject weaponObject = PhotonNetwork.Instantiate(weaponInfo.GameObject.name, Vector3.zero, Quaternion.identity);
        int id = weaponObject.GetComponent<PhotonView>().ViewID;
        photonView.RPC("SetupWeaponRPC", RpcTarget.AllBuffered, id);
    }
    else
    {
        GameObject weaponObject = Instantiate(weaponInfo.GameObject);
        SetupWeapon(weaponObject);
    }
}

[PunRPC]
[UsedImplicitly]
void SetupWeaponRPC(int viewID)
{
    PhotonView v = PhotonNetwork.GetPhotonView(viewID);
    if (v == null)
    {
        Debug.LogError("For some reason the weapon object is null?");
        return;
    }
    GameObject weaponObject = v.gameObject;
    SetupWeapon(weaponObject);
}
void SetupWeapon(GameObject weaponObject)
{
    SetWeaponParent(weaponObject);
    currentWeapon = weaponObject.GetComponent<Weapon>();
    currentWeapon.Init(photonView.Owner);
}
void SetWeaponParent(GameObject weaponObject)
{
    weaponObject.transform.SetParent(animator.GetBoneTransform(HumanBodyBones.RightHand));
    weaponObject.transform.localPosition = Vector3.zero;
    weaponObject.transform.localEulerAngles = Vector3.zero;
}