In the file races.dfn in the UOX3/DFNDATA/RACE/ folder, it's possible to set up new races that the players can be, as well as define NPC races and relations (allies & enemies) inbetween. By default, races.dfn already has a number of races set up for the various NPCs you'll find in UOX3. The first race definition in the file, however, is "Human", and is by default assigned to all new characters that are created. If you want to set up a system of different playable races, like humans, elves, dwarves, etc, it's adviced to create new sections for all of these (including humans), and use the first entry as a "no-race" - the one used by new characters before they've chosen a new race. 
  The simplest way of creating new races, is by copying & pasting an existing section to the bottom of the file (before the EOF line though!) and then change the race section identifier and any properties that race should have. If you're creating a new race for NPCs, make sure to give said NPCs a new entry in their definition-files; RACE=# where # is the section number of the race you want to assign them. 
  There are however a number of different settings for races, most of which are not used by the default races. Here follows a list: 
        
        [RACE #] //Race Identifier Value, must be unique 
        {
        NAME=Dwarf			// Name of race
        STRCAP=100			// Cap on strength
        DEXCAP=100			// Cap on dexterity
        INTCAP=100			// intelligence cap
        REQUIREBEARD			// Males must have beards, will add if needed
        NOBEARD				// Must have no beard, will delete if they have it
        GENDER=MALE			// Only males can be this race, acceptable values MALE, and FEMALE
        BEARDMIN=0440			// Min beard colour, must have max also, if 0, then disabled
        BEARDMAX=0480			// Max beard colour, must have min also, if 0, then disabled
        SKINMIN=0480			// Skin min colour, must have max also, if 0, then disabled
        SKINMAX=0520			// Skin max colour, must have min also, if 0, then disabled
        HAIRMIN=0440			// Hair min colour, must have max also, if 0, then disabled
        HAIRMAX=0520			// Hair max colour, must have min also, if 0, then disabled
        SKILLNAMEG=2			// Skill name gain and how much (SKILLNAME = MAGERY or whatever skill you want)
        SKILLNAMEL=2			// skill name loss and how much
        RACIALENEMY=1			// Racial enemy number... can be more than one entry
        RACIALAID=2			// Racial aid number... can be more than one entry
        LIGHTDAMAGE=5			// take 5 damage from light
        LIGHTAFFECT			// if here, take damage from light
        LIGHTSECS=5                     '/ take damage from light every 5 secs
        HEATDAMAGE=5			// take 5 damage from heat
        HEATAFFECT			// if here, take damage from heat
        HEATSECS=5			// take damage from heat every 5 secs
        COLDDAMAGE=5			// take 5 damage from cold
        COLDAFFECT			// if here, take damage from cold
        COLDSECS=5			// take damage from cold every 5 secs
        LIGHTNINGDAMAGE=5		// take 5 damage from lightning
        LIGHTNINGAFFECT			// if here, take damage from lightning
        LIGHTNINGSECS=5 		// take damage from lightning every 5 secs
        RAINDAMAGE=5			// take 5 damage from rain
        RAINAFFECT			// if here, take damage from rain
        RAINSECS=5			// take damage from rain every 5 secs
        SNOWDAMAGE=5			// take 5 damage from snow
        SNOWAFFECT			// if here, take damage from snow
        SNOWSECS=5			// take damage from snow every 5 secs
        NIGHTVIS=3			// night vision bonus... the number is the light level bonus you get at ANY time
        PLAYERRACE=0			// 0 is nonplayer race, 1 is player race
        LANGUAGEMIN=500			// skill value(Spirit Speak) needed to interpret that races speech
        }
        
        Skill gain/loss information can be adjusted dynamically now, though it still can default to:
        For skill gain:        
        0=None
        1=Slight
        2=Moderate
        3=Significant
        
        and for skill loss:        
        0=None
        1=Slight
        2=Moderate
        3=Significant
        
        Basically, add a new section called COMBAT MODS like this:
        (If you don't have at least 4 entries, the defaults are used.)
          
          [COMBAT MODS]
          {
          MOD0=0 // % bonus for mod 0
          MOD1= 5 
          MOD2=10
          MOD3=25
          MOD4=50
          }
          
          Then use SKILLNAMEL=0 to 4 or SKILLNAMEG=0 to 4  to define the penalty or bonus added to the specified skills of the race you add these lines to. Example:
          MAGERYL=3
        SWORDSMANSHIPG=2
        The above will give a MOD3 (25%) penalty to a race's Magery-skill, and a MOD2 (10%) bonus to a race's Swordsmanship-skill. This means that the efficient skill-value is lowered or raised by the apropriate amount in skill-checks. It does NOT affect skill-gain or skill-atropy at all.
  Any Racial Enemies will show up as orange to eachother, and NPCs of such opposing races will attack eachother. Any Racial Aids (Allies) will show up as green to eachother, and any allied NPC races will not attack eachother. Murderers still flag red though, no matter what the racial enemy/aid settings are. Race names will show up in the paperdoll as well as above the  animated character when you click on them, as long as the character doesn't belong to the default race (which is RACE 0).
   A simple way of letting players choose which race to become, is to create "Race Gates" at the starting location of new characters, then when the players walk through any given race gate, they'll be turned into that race. Then place a teleporter to that race's starting location behind the gate, so they'll be teleported to that race's starting location (if different per race).
    
    To add a new Race Gate, you need to add a new item-section to the ITEM-DFNs, located in the UOX3/DFNDATA/ITEMS/ folder. You can either add this new section to one of the existing .DFN-files there, or create a new .DFN file to hold your race gates specifically. In this example, we'll create a new file using Notepad, which we'll save as racegates.dfn in the above mentioned folder.
  The contents of the file should be as follows (without the comments, they're not vital for the functionality of the race gates ;): 
      
          [elvish_racegate]
          {
          NAME=Elvish Racegate			// name of the gate
          ID=0x0dda // moongate ID
          COLOR=0x0015 // color of moongate
          TYPE=83 // MUST be type 83, otherwise it won't work
          MOREX=1 // Race to convert to
          MOREY=0 // 0 means it's not reusable by the same player, 1 means it is
          }
  EOF
          
          You can also create "Racial weapons", which do double damage against specific races. To do this, simply give the weapons a new entry in their section of the DFN files, saying RACE=# where # is the Race section ID of the race you want the weapon to do double damage against!