Numbers like these, are they from game files or can they be altered or new ones created? If they can be created or altered, where are they found in ServUO?

C#:
 public override Type ScrollType => typeof(PowerScroll);
        public override int LabelNumber => 1155684;  //  Power Scroll Book
        public override int BadDropMessage => 1155691;  // This book only holds Power Scrolls.
        public override int DropMessage => 1155692;     // You add the scroll to your Power Scroll book.
        public override int RemoveMessage => 1155690;   // You remove a Power Scroll and put it in your pack.
        public override int GumpTitle => 1155689;   // Power Scrolls
 
you can view them using uo Fiddler in the cliloc tab
1634789150300.png

dbl click the text to edit it and save, then naturally you have to distribute the updated file
 
So is there a way to not use them on an item for a shard so people won't have to patch their client?
 
Off the top of my head as an example... yes.

Public moongates i had used to have 'different' locations so i needed STRINGS instead of numbers.
You can see the changes to some of it where the numbering got altered to use strings.

C#:
        // public PMList( int number, int selNumber, Map map, PMEntry[] entries )
        public PMList( string number, string selNumber, Map map, PMEntry[] entries )
        {
            m_Number = number;
            m_SelNumber = selNumber;
            m_Map = map;
            m_Entries = entries;
        }

        public static readonly PMList Trammel =
            // new PMList( 1012000, 1012012, Map.Trammel, new PMEntry[]
            new PMList("<BASEFONT COLOR=#00AA88>Trammel", "<BASEFONT COLOR=#00FF88>Trammel", Map.Trammel, new PMEntry[]
                {
                    // new PMEntry( new Point3D( 5952, 296, 27 ), "<BASEFONT COLOR=#55DD66>Start Room" ),
                    new PMEntry( new Point3D( 4467, 1283, 5 ), "<BASEFONT COLOR=#00FF66>Moonglow" ),    // Moonglow 1012003
                    new PMEntry( new Point3D( 1336, 1997, 5 ), "<BASEFONT COLOR=#00DD66>Britain" ),     // Britain 1012004
                    new PMEntry( new Point3D( 1499, 3771, 5 ), "<BASEFONT COLOR=#00BB66>Jhelom" ),      // Jhelom 1012005
                    new PMEntry( new Point3D(  771,  752, 5 ), "<BASEFONT COLOR=#009966>Yew" ),         // Yew 1012006
                    new PMEntry( new Point3D( 2701,  692, 5 ), "<BASEFONT COLOR=#00BB66>Minoc" ),       // Minoc 1012007
                    new PMEntry( new Point3D( 1828, 2948,-20), "<BASEFONT COLOR=#00DD66>Trinsic" ),     // Trinsic 1012008
                    new PMEntry( new Point3D(  643, 2067, 5 ), "<BASEFONT COLOR=#00FF66>Skara Brae" ),  // Skara Brae 1012009
                    new PMEntry( new Point3D( 3563, 2139, 34), "<BASEFONT COLOR=#00DD66>Magincia" ),    // Magincia 1012010
                    new PMEntry( new Point3D( 3763, 2771, 50), "<BASEFONT COLOR=#00BB66>Haven" )        // Haven 1046259
                } );

It allowed this sort of thing...

C#:
                {
                    new PMEntry( new Point3D( 1215,  467, -13 ), "<BASEFONT COLOR=#FFDD00>Compassion" ),    // Compassion 1012015
                    new PMEntry( new Point3D(  722, 1366, -60 ), "<BASEFONT COLOR=#FFCC00>Honesty" ),       // Honesty 1012016
                    new PMEntry( new Point3D(  744,  724, -28 ), "<BASEFONT COLOR=#FFBB00>Honor" ),         // Honor 1012017
                    new PMEntry( new Point3D(  281, 1016,   0 ), "<BASEFONT COLOR=#FFAA00>Humility" ),      // Humility 1012018
                    new PMEntry( new Point3D(  987, 1011, -32 ), "<BASEFONT COLOR=#FFBB00>Justice" ),       // Justice 1012019
                    new PMEntry( new Point3D( 1174, 1286, -30 ), "<BASEFONT COLOR=#FFCC00>Sacrifice" ),     // Sacrifice 1012020
                    new PMEntry( new Point3D( 1532, 1340, - 3 ), "<BASEFONT COLOR=#FFDD00>Spirituality" ),  // Spirituality 1012021
                    new PMEntry( new Point3D(  528,  216, -45 ), "<BASEFONT COLOR=#FFEE00>Valor" ),         // Valor 1012022
                    new PMEntry( new Point3D( 1721,  218,  96 ), "<BASEFONT COLOR=#FFDD00>Chaos" ),          // Chaos 1019000
                    new PMEntry( new Point3D(  836,  641, -20 ), "<BASEFONT COLOR=#FFCC00>Gargoyle City" ),
                    new PMEntry( new Point3D( 1759,  890, -25 ), "<BASEFONT COLOR=#FFBB00>Forgotten Beach" ),
                    new PMEntry( new Point3D(  847,  613, -40 ), "<BASEFONT COLOR=#FFAA00>Bank" ),
                    new PMEntry( new Point3D( 1306, 1334, -14 ), "<BASEFONT COLOR=#FFBB00>Stable" )
                    // new PMEntry( new Point3D( 1190, 1134, -25 ), "<BASEFONT COLOR=#DDDDDD>Starting Building" )
                } );

Hope that helps ;)
Two quick examples for you...

1st an item using a CLILOC number...

C#:
using System;
using Server;

namespace Server.Items
{
    public class SpiritOfTheTotem : BearMask
    {
        public override int LabelNumber{ get{ return 1061599; } } // Spirit of the Totem

        public override int ArtifactRarity{ get{ return 11; } }

        public override int BasePhysicalResistance{ get{ return 20; } }

        public override int InitMinHits{ get{ return 255; } }
        public override int InitMaxHits{ get{ return 255; } }

        [Constructable]
        public SpiritOfTheTotem()
        {
            Hue = 0x455;

            Attributes.BonusStr = 20;
            Attributes.ReflectPhysical = 15;
            Attributes.AttackChance = 15;
        }

        public SpiritOfTheTotem( Serial serial ) : base( serial )
        {
        }
        
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 1 );
        }
        
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 0:
                {
                    Resistances.Physical = 0;
                    break;
                }
            }
        }
    }
}

2nd item, made using just a Name...

C#:
using System;
using System.Text;
using Server.Items;
using Server.Network;
using System.Collections;
using Server.Mobiles;

namespace Server.Items
{
    public class BalanceStone : Item
    {
        [Constructable]
        public BalanceStone () : base( 0x0EDE )
        {
            Movable = false;
            Hue = 6;
            Name = "Player Balance Stone";
        }

        public override void OnDoubleClick(Mobile from)
        {
            if (!from.InRange(this.GetWorldLocation(), 2))
            {
                from.SendMessage(33, "Step Closer To The Stone, You Are Too Far Away");
                from.PlaySound(0x1F0);
            }
            else
            {
                from.SendMessage(39, "Players Balance is : {0}", Banker.GetBalance(from).ToString() );
                from.PlaySound(0x1ED);
            }
        }

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

        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );
            writer.Write( (int) 0 ); // version
        }

        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );
            int version = reader.ReadInt();
        }
    }
}

Have fun ;)
 
Last edited:
Back