Question by 
               Heffalus · Feb 17, 2016 at 02:10 PM · 
                c#unity 5networkingargumentoutofrangeexception  
              
 
              UNET ArgumentOutOfRangeException
So im trying to create an inventory script for multiplayer game, first off i need to be able to equip and change weapons. This is the script im using:
 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine.Networking;
 
 public class Inventory : NetworkBehaviour {
 
     public List<Item> inventoryItems = new List<Item>();
     public List<Gun> weapons = new List<Gun> ();
     public int currentWeaponID = 0;
     public Transform weaponEquipPos;
 
     public CharacterShooting characterShooting;
 
     // Use this for initialization
     public override void OnStartLocalPlayer () {
         characterShooting = GetComponent<CharacterShooting> ();
         SortCategories ();
         NextWeapon ();
     }
     
     // Update is called once per frame
     void Update () {
         if (Input.GetKeyDown (KeyCode.Q)) {
             NextWeapon ();
         }
     }
 
     void SortCategories () {
         for (int i = 0; i < inventoryItems.Count; i++) {
             if (inventoryItems [i].GetComponent<Gun> ()) {
                 weapons.Add (inventoryItems [i].GetComponent<Gun>());
             }
         }
     }
 
     public void AddToInventory (Item item) {
         inventoryItems.Add (item);
         SortCategories ();
     }
 
     public void NextWeapon () {
         if (isLocalPlayer) {
             currentWeaponID += 1;
             if (currentWeaponID > weapons.Count - 1) {
                 currentWeaponID = 0;
             }
 
             CmdEquipNewWeapon ();
         }
     }
         
     [Command]
     void CmdEquipNewWeapon () {
         GameObject wep = Instantiate (weapons [currentWeaponID].gameObject, weaponEquipPos.position, weaponEquipPos.rotation) as GameObject;
         wep.transform.parent = weaponEquipPos;
 
         NetworkServer.Spawn (wep);
         if (characterShooting.gun) {
             Destroy(characterShooting.gun.gameObject);
         }
         characterShooting.gun = wep.GetComponent<Gun>();
     }
 }
 
               As it is, it works for the game host, he can spawn and change weapons and the clients will see it, but the client cant equip a weapon. It throws an ArgumentOutOfRangeException. I checked in hierarchy and the "weapons" list is empty. I have searched for an answer unsuccessfully. Why doesnt it work for the clients?
               Comment
              
 
               
              Your answer