//Note The if statements are to ensure they don't pick
//an invisible appearance.
void main()
{
    object oPC = GetPCSpeaker();
    object oPlayer = oPC;
    int nAppearanceType = GetAppearanceType(oPC) + 1;

   //DMs can choose any appearance!
   if(GetIsDM(oPC))
   {
    SendMessageToPC(oPC, "The previous Index Number = " + IntToString(GetAppearanceType(oPC)));
    SendMessageToPC(oPC, "The current Index Number = " + IntToString(nAppearanceType));

    SetCreatureAppearanceType(oPC, nAppearanceType);

   }

   else
   {

    if (nAppearanceType == 16)
    {
        nAppearanceType = 17;
    }

    else if (nAppearanceType == 24)
    {
        nAppearanceType = 25;
    }
    else if (nAppearanceType == 32)
    {
        nAppearanceType = 34;
    }

    else if (nAppearanceType == 38)
    {
        nAppearanceType = 39;
    }

    else if (nAppearanceType == 41)
    {
        nAppearanceType = 51;
    }
    else if (nAppearanceType == 72)
    {
        nAppearanceType = 73;
    }
    else if (nAppearanceType == 75)
    {
        nAppearanceType = 76;
    }
    else if (nAppearanceType == 78)
    {
        nAppearanceType = 82;
    }
    else if (nAppearanceType == 118)
    {
        nAppearanceType = 119;
    }
    else if (nAppearanceType == 143)
    {
        nAppearanceType = 144;
    }
    else if (nAppearanceType == 149)
    {
        nAppearanceType = 150;
    }
    else if (nAppearanceType == 169)
    {
        nAppearanceType = 170;
    }
    else if (nAppearanceType == 173)
    {
        nAppearanceType = 174;
    }
    else if (nAppearanceType == 178)
    {
        nAppearanceType = 179;
    }
    else if (nAppearanceType == 183)
    {
        nAppearanceType = 184;
    }
    else if (nAppearanceType == 194)
    {
        nAppearanceType = 195;
    }
    else if (nAppearanceType == 200)
    {
        nAppearanceType = 202;
    }
    else if (nAppearanceType == 298)
    {
        nAppearanceType = 300;
    }
    else if (nAppearanceType == 307)
    {
        nAppearanceType = 352;
    }
    else if (nAppearanceType == 366)
    {
        nAppearanceType = 367;
    }
    else if (nAppearanceType == 371)
    {
        nAppearanceType = 374;
    }
    else if (nAppearanceType == 392)
    {
        nAppearanceType = 401;
    }
    else if (nAppearanceType == 404)
    {
        nAppearanceType = 407;
    }
    else if (nAppearanceType == 417)
    {
        nAppearanceType = 419;
    }
    else if (nAppearanceType == 420)
    {
        nAppearanceType = 423;
    }
    else if (nAppearanceType == 425)
    {
        nAppearanceType = 426;
    }
    else if (nAppearanceType == 431)
    {
        nAppearanceType = 446;
    }
    else if (nAppearanceType == 447)
    {
        nAppearanceType = 451;
    }
    else if (nAppearanceType == 455)
    {
        nAppearanceType = 474;
    }
    //Start over...
    else if (nAppearanceType == 481)
    {
         nAppearanceType = 1;  //Set this to 1000 For CEP2
    }


    SetCreatureAppearanceType(oPC, nAppearanceType);
  }

//Clear the reputation of the PC just in case changing appearace changes faction!
if(GetIsPC(oPlayer))
{

    AssignCommand(oPlayer, ClearAllActions());

    //Clear Reputation of PC
    if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oPlayer) <= 10)
    {   SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oPlayer);
    }
    if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oPlayer) <= 10)
    {   SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oPlayer);
    }
    if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oPlayer) <= 10)
    {   SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer);
    }

 }

}