Hi is there a way to make the skillcodex reset all other skills to 0 instead of getting an error telling you that you cant do it until you lower those skills?Basicall I want to set it to give players 7 skills but it only allows 6 and wont let you lower other skills, can I reset them to 0 then activating the Codex somehow?
 
Try these, should help you figure out the right combinations of settings;

Base classes:
Code:
#region Header
//   Voxpire    _,-'/-'/  SkillCodexBase.cs
//   .      __,-; ,'( '/
//    \.    `-.__`-._`:_,-._       _ , . ``
//     `:-._,------' ` _,`--` -: `_ , ` ,' :
//        `---..__,,--'  (C) 2014  ` -'. -'
//        #  Vita-Nex [http://core.vita-nex.com]  #
//  {o)xxx|===============-   #   -===============|xxx(o}
//        #        The MIT License (MIT)          #
#endregion

#region References
using Server.Mobiles;

using VitaNex.Items;
using VitaNex.SuperGumps;
#endregion

namespace Server.Items
{
    public abstract class SkillCodexBase : SkillCodex
    {
        //	private static readonly SkillName[] DefaultIgnoredSkills = {SkillName.Mysticism, SkillName.Imbuing};

        private static readonly SkillName[] DefaultIgnoredSkills = { };

        public SkillCodexBase(int count, double value, bool deleteWhenEmpty, SkillCodexMode mode, SkillCodexFlags flags)
            : base(count, value, deleteWhenEmpty, mode, flags)
        {
            IgnoredSkills.AddRange(DefaultIgnoredSkills);
            ItemValue = ItemValue.DonationReward;
        }

        public SkillCodexBase(Serial serial)
            : base(serial)
        { }

        public override bool ValidateSkill(Mobile user, Skill skill, bool message)
        {
            if (user is PlayerMobile)
            {
                var pm = (PlayerMobile)user;

                if (skill.SkillName == SkillName.Spellweaving)
                {
                    if (!pm.Spellweaving)
                    {
                        if (message)
                        {
                            pm.SendMessage(
                                SuperGump.DefaultErrorHue,
                                "You must complete the Patience or Discipline quest chains to unlock {0}.",
                                skill.Name);
                        }

                        return false;
                    }
                }
            }

            return base.ValidateSkill(user, skill, message);
        }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            int version = 0;

            writer.Write(version);

            switch (version)
            {
                case 0:
                    { }
                    break;
            }
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 0:
                    { }
                    break;
            }
        }
    }

    public abstract class SkillCodexFixedBase : SkillCodexBase
	{
		private static readonly SkillName[] DefaultIgnoredSkills =
		{
			SkillName.Alchemy, SkillName.Fletching, SkillName.Carpentry, SkillName.Cartography, SkillName.Cooking,
			SkillName.Inscribe, SkillName.Lumberjacking, SkillName.Mining, SkillName.Lockpicking, SkillName.Poisoning,
			SkillName.Spellweaving, SkillName.Tinkering, SkillName.Bushido, SkillName.Ninjitsu, SkillName.Mysticism,
			SkillName.Imbuing, SkillName.Throwing, SkillName.Tailoring, SkillName.Blacksmith, SkillName.Fishing
		};

		private static readonly SkillName[] DefaultIgnoredSkillsT2A =
		{
			SkillName.Alchemy, SkillName.Fletching, SkillName.Carpentry, SkillName.Cartography, SkillName.Cooking,
			SkillName.Inscribe, SkillName.Lumberjacking, SkillName.Mining, SkillName.Lockpicking, SkillName.Poisoning,
			SkillName.Spellweaving, SkillName.Tinkering, SkillName.Bushido, SkillName.Ninjitsu, SkillName.Mysticism,
			SkillName.Imbuing, SkillName.Throwing, SkillName.Tailoring, SkillName.Blacksmith, SkillName.Fishing,
			SkillName.Necromancy, SkillName.Chivalry, SkillName.SpiritSpeak, SkillName.Focus
		};

        public SkillCodexFixedBase(int count, double value)
            : base(count, value, true, SkillCodexMode.Fixed, SkillCodexFlags.Base)
        {
            if (Core.AOS)
            {
                IgnoredSkills.AddRange(DefaultIgnoredSkills);
            }
            else
            {
                IgnoredSkills.AddRange(DefaultIgnoredSkillsT2A);
            }
        }

        public SkillCodexFixedBase(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            int version = 0;

            writer.Write(version);

            switch (version)
            {
                case 0:
                    { }
                    break;
            }
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 0:
                    { }
                    break;
            }
        }
    }

    public abstract class SkillCodexPowerFixedBase : SkillCodexBase
	{
		private static readonly SkillName[] DefaultIgnoredSkills =
		{
			SkillName.Alchemy, SkillName.ArmsLore, SkillName.Begging, SkillName.Fletching, SkillName.Camping,
			SkillName.Carpentry, SkillName.Cartography, SkillName.Cooking, SkillName.DetectHidden, SkillName.Forensics,
			SkillName.Herding, SkillName.Hiding, SkillName.Inscribe, SkillName.ItemID, SkillName.Lumberjacking, SkillName.Mining,
			SkillName.Lockpicking, SkillName.Poisoning, SkillName.RemoveTrap, SkillName.Snooping, SkillName.TasteID,
			SkillName.Tinkering, SkillName.Tracking, SkillName.Bushido, SkillName.Ninjitsu, SkillName.Mysticism
		};

        public SkillCodexPowerFixedBase(int count, double value)
            : base(count, value, true, SkillCodexMode.Fixed, SkillCodexFlags.Base)
        {
            IgnoredSkills.AddRange(DefaultIgnoredSkills);
        }

        public SkillCodexPowerFixedBase(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            int version = 0;

            writer.Write(version);

            switch (version)
            {
                case 0:
                    { }
                    break;
            }
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 0:
                    { }
                    break;
            }
        }
    }
}

Custom implementations;
Code:
#region Header
//   Voxpire    _,-'/-'/  SkillCodexCustom.cs
//   .      __,-; ,'( '/
//    \.    `-.__`-._`:_,-._       _ , . ``
//     `:-._,------' ` _,`--` -: `_ , ` ,' :
//        `---..__,,--'  (C) 2014  ` -'. -'
//        #  Vita-Nex [http://core.vita-nex.com]  #
//  {o)xxx|===============-   #   -===============|xxx(o}
//        #        The MIT License (MIT)          #
#endregion

#region References
using VitaNex.Items;
#endregion

namespace Server.Items
{
    public sealed class SkillCodexFixedBase1At100 : SkillCodexFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase1At100()
            : base(1, 100.0)
        { }

        public SkillCodexFixedBase1At100(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase3At100 : SkillCodexFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase3At100()
            : base(3, 100.0)
        { }

        public SkillCodexFixedBase3At100(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase5At100 : SkillCodexFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase5At100()
            : base(5, 100.0)
        { }

        public SkillCodexFixedBase5At100(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase6At100 : SkillCodexFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase6At100()
            : base(6, 100.0)
        { }

        public SkillCodexFixedBase6At100(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase7At100 : SkillCodexFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase7At100()
            : base(7, 100.0)
        { }

        public SkillCodexFixedBase7At100(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase2At33 : SkillCodexFixedBase
    {
        public override bool Nontransferable { get { return false; } }

        [Constructable]
        public SkillCodexFixedBase2At33()
            : base(2, 33.0)
        { }

        public SkillCodexFixedBase2At33(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }


    #region Power Codex - Base & Cap to 120.0
    /// <summary>
    ///     Power Codex - Sets Base & Cap to 120.0 for 1 selected Skill
    /// </summary>
    public sealed class SkillCodexFixedBase1At120 : SkillCodexPowerFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase1At120()
            : base(1, 120.0)
        {
            Flags = SkillCodexFlags.Both;
        }

        public SkillCodexFixedBase1At120(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase3At120 : SkillCodexPowerFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase3At120()
            : base(3, 120.0)
        {
            Flags = SkillCodexFlags.Both;
        }

        public SkillCodexFixedBase3At120(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase5At120 : SkillCodexPowerFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase5At120()
            : base(5, 120.0)
        {
            Flags = SkillCodexFlags.Both;
        }

        public SkillCodexFixedBase5At120(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }

    public sealed class SkillCodexFixedBase6At120 : SkillCodexPowerFixedBase
    {
        [Constructable]
        public SkillCodexFixedBase6At120()
            : base(6, 120.0)
        {
            Flags = SkillCodexFlags.Both;
        }

        public SkillCodexFixedBase6At120(Serial serial)
            : base(serial)
        { }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            reader.GetVersion();
        }
    }
    #endregion
}
 
Back