The following changes are required to change levelable items from version 2.x to the new version 3.0. All changes are made in the levelable weapon/armor/clothing/jewel scripts 1. After private int m_Points; Add private int m_MaxLevel; 2. After public LevelKryss() : base() { Add MaxLevel = LevelItems.DefaultMaxLevel; 3. In the Serialize override, increase the version by 1. For example, Change writer.Write((int)0); To writer.Write((int)1); Now, after the line you just changed, Add writer.Write(m_MaxLevel); 4. In the Deserialize override... Change // DONT FORGET TO DESERIALIZE LEVEL, EXPERIENCE, AND POINTS m_Experience = reader.ReadInt(); m_Level = reader.ReadInt(); m_Points = reader.ReadInt(); To switch (version) { case 1: { m_MaxLevel = reader.ReadInt(); goto case 0; } case 0: { // DONT FORGET TO DESERIALIZE LEVEL, EXPERIENCE, AND POINTS m_Experience = reader.ReadInt(); m_Level = reader.ReadInt(); m_Points = reader.ReadInt(); break; } } This is assuming that you had no previous version cases, if you did then modify the version case numbers appropriately. 5. In the GetProperties override, Change if ( LevelItemManager.DisplayExpProp ) To if ( LevelItems.DisplayExpProp ) 6. In the ILevelable Members Region, add the following (I added right after the line "#region ILevelable Members" // This one will return our private m_MaxLevel variable. [CommandProperty(AccessLevel.GameMaster)] public int MaxLevel { get { return m_MaxLevel; } set { // This keeps gms from setting the level to an outrageous value if (value > LevelItems.MaxLevelsCap) value = LevelItems.MaxLevelsCap; // This keeps gms from setting the level to 0 or a negative value if (value < 1) value = 1; // Sets new level. if (m_MaxLevel != value) { m_MaxLevel = value; } } } 7. Within the Experience ILevelable Member declaration, Change if ( m_Experience > LevelItemManager.ExpTable[LevelItemManager.Levels - 1] ) m_Experience = LevelItemManager.ExpTable[LevelItemManager.Levels - 1]; To if ( m_Experience > LevelItemManager.ExpTable[LevelItems.MaxLevelsCap - 1] ) m_Experience = LevelItemManager.ExpTable[LevelItems.MaxLevelsCap - 1]; Finally... 8. Within the Level ILevelable Member declaration, Change if ( value > LevelItemManager.Levels ) value = LevelItemManager.Levels; To if ( value > LevelItems.MaxLevelsCap ) value = LevelItems.MaxLevelsCap;