General programming question

I want to have properties for an item, like cost. Right now it’s just a list like weapons[1] = sword weapons[2] = axe, ect.

I want it to be able to do weapons[1] = name = sword, price = 50.

so how can I basically have more than 1 property per item in a list but not make it a class?

You make it a class - that’s what they are for. Then you have an array of the classes. E.g.

    public class Weapon {
           public string name;
           public int price;
           public float damage;
           public GameObject prefab;