@@ this code creates a whole White Wolf chargen system. it @@ is as userfriendly as I could make it but because it saves @@ all the stats on separate attributes it can take a lot @@ of database space and memory if you have a very big @@ playerbase. It has a beginners and veteran chargen, and @@ it comes with a +stats command, a way for staff to set @@ sheets, and +roll code. @@ go and stand in the room you want both the step by step @@ and the veteran character generation to be dug from. Then @@ make the object mentioned below. @create Character Data Lists @@ now that you have created 'Character Data Lists' remember @@ it's number and in this file search and replace ~~~ with @@ #. Don't forget the # before the number! If @@ it's allright it should replace 538 times. Then move to @@ stand in the room where you want both the veteran and step @@ by step chargen dug from and give the commands in in the @@ order you find them here. You don't need to think how to @@ dig yourself or move through the rooms the code does all @@ that for you. @@ IMPORTANT Give in the code no further then the @@ next @@ IMPORTANT information. Do what it says, @@ then continue. @dig General Character Generation Room 1=Step by Step Chargen ;sbs;step by step,Back ;b;back sbs @dig Super Character Generation Room 2=Super ;s;super,Back ;b;back @Desc here=[u(std)] @set here=commands &COMMANDLIST here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%crbegin%cn' to start going though character generation **%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+concept%cn' for instructions on setting your concept **%r%b%b%b** Type '%ch%cr+nature%cn' for instructions on setting your nature **%r%b%b%b** Type '%ch%cr+demeanor%cn' for instructions on setting your demeanor **%r%b%b%b** Type '%ch%cr+race%cn' for instructions on setting your race **%R &BEGIN here=$begin:@pemit %#=%R%B%BYou start character creation. Each of your attributes has been set to 1, and you can start working out your character by first giving in your concept. For more information on how to do this type '%ch%cr+concept%cn'.%R;&strength %#=1;&dexterity %#=1;&stamina %#=1;&charisma %#=1;&manipulation %#=1;&appearance %#=1;&perception %#=1;&intelligence %#=1;&wits %#=1;&temp1 %#=1;&temp2 %#=1;&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp6 %#=1;&temp7 %#=1 &CONCEPT-INFO here=$+concept:@switch [gte(get(%#/temp7),1)]=0,{@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.%R},@pemit %#={%R%B%BYour concept should be brief. A couple of words that sum up your character for staff.%R%R%B%BExamples include (but are not limited to): Casino Owner, Mafia Hitman, Social Worker, Eccentric Artiste, Police Detective, Bored Socialite, Destined Apprentice, Swinger, Pro Wrestler, Lost Child, Gothic Freak, Tour Guide, Federal Agent, Thief, Reluctant Noble, Irish Waitress, Bodyguard, Student, Street Dancer, Homicide Detective or whatever you can come up with on your own!%r%R%B%BTo set your concept type '%ch%cr+set concept=%cn'.%R} &CONCEPTSET here=$+set concept=*:&concept %#=%0;@pemit %#=%R%B%BYou have set your concept to '%0'. Now type '%ch%cr+nature%cn' to continue.%R;@switch [lt(get(%#/temp7),25)][gt(get(%#/temp7),2)]=10,&temp7 %#=2 &NATUREINFO here=$+nature:@switch [add([gte(get(%#/temp7),25)],[lt(get(%#/temp7),2)])]=1,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step or are allready setting your freebie points. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,@pemit %#=%R%B%BChoose your nature (what you are like) from one of the following:%r%R[columns([get(~~~/types)],15,|)]%r%R%B%BTo set your nature type '%ch%cr+set nature=%cn'.%R &NATURESET here=$+set nature=*:@switch [match([get(~~~/types)],%0,|)]=0,@pemit %#=%R%B%BThat is not a valid nature. Type '%ch%cr+nature%cn' and choose a nature from the given list.%R,{@pemit %#=%R%B%BYou have set your nature to %0. Now type '%ch%cr+demeanor%cn'.%R;&nature %#=%0;@switch [add([gte(get(%#/temp7),25)],[lte(get(%#/temp7),2)])]=1,&temp7 %#=3} &DEMEANORINFO here=$+demeanor:@switch [add([gte(get(%#/temp7),25)],[lt(get(%#/temp7),3)])]=1,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step or are allready setting your freebie points. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,@pemit %#=%R%B%BChoose your demeanor (what you show to others of yourself) from one of the following:%r%R[columns([get(~~~/types)],15,|)]%r%R%B%BTo set your demeanor type '%ch%cr+set demeanor=%cn'.%R &DEMEANORSET here=$+set demeanor=*:@switch [match([get(~~~/types)],%0,|)]=0,@pemit %#=%R%B%BThat is not a valid demeanor. Type '%ch%cr+demeanor%cn' and choose a demeanor from the given list.%r,{@pemit %#=%R%B%BYou have set your demeanor to %0. Now type '%ch%cr+race%cn'.%R;&demeanor %#=%0;[lte(get(%#/temp7),3)]=1,&temp7 %#=4} &RACESET here=$+race=*:@switch [match([get(~~~/racelist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid race. Type '%ch%cr+race%cn' and choose a race from the given list.%r,{@switch %0=nuwisha,@trig me/racenuwisha=%#,ratkin,@trig me/raceratkin=%#,nunnehi,@trig me/racenunnehi=%#,changeling,@trig me/racechangeling=%#,vampire,@trig me/racevampire=%#,garou,@trig me/racegarou=%#,bastet,@trig me/racebastet=%#,corax,@trig me/racecorax=%#,mage,@trig me/racemage=%#,mortal+,@trig me/racemortal+=%#,{@pemit %#={%R%B%BYou have set your race to %0. Now go through the proper door for your race (Mortal only if you will not have any special gifts or powers, otherwise super), and there type '%ch%cr+attributes%cn'}.%R;&race %#=%0;&temp7 %#=4.5}} &RACEINFO here=$+race:@switch [add([lt(get(%#/temp7),25)],[gt(get(%#/temp7,4.5)])]=2,@pemit %#=%R%B%BYou are allowed to reset your race, but you will not be allowed to return to where you had been at chargen. You will have to do all of chargen anew. If you still wish to play another race, then choose from this list:%R%R%B%B[get(~~~/racelist)]%R%R%B%Band type '%ch%cr+race=%cn' and your marker of progress will be reset.%R,@pemit %#={%R%B%BNow you choose what race you wish to play. The races you can choose from for now are:%R%R%B%B[get(~~~/racelist)].%R%r%B%BNunnehi are Native American Changelings. %r%r%B%BRealise that the number of your super characters is limited, and that you are not allowed to play supers in opposing spheres. If you have chosen your race type '%ch%cr+race=%cn'.%R} &RACECHANGELING here=@pemit %0=%R%B%BYou wish to be a changeling. Now it is time to set your seeming, kith, and house. If you have no idea what is meant by any of these please read a changeling sourcebook first, or ask your local wizard.%R%R%B%BYour seeming is one of the following:%R%B%B[get(~~~/seeminglist)].%R%R%B%BYour kith can be any of the following:%R%B%B[get(~~~/kithlist)].%R%R%B%BAnd the following is a list of Houses to choose from:%R%B%B[get(~~~/houselist)].%R%R%B%BNow to set your race information type '%ch%cr+changelinginfo= of House %cn'.%R &CHANGELINGINFO here=$+changelinginfo=* * of House *:@switch [gt(match(get(~~~/seeminglist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your seeming from this list:%R%B%B[get(~~~/seeminglist)].%R%R%B%BYour kith can be any of the following:%R%B%B[get(~~~/kithlist)].%R%R%B%BAnd the following is a list of Houses to choose from:%R%B%B[get(~~~/houselist)].%R%R%B%BPlease try the command again with '%ch%cr+changelinginfo= of House %cn'.%R,{@switch [gt(match(get(~~~/kithlist),%1),0)]=0,@pemit %#={%R%B%BYour seeming is right, but your kith was not in the list.%R%R%B%BYour kith can be any of the following:%R%B%B[get(~~~/kithlist)].%R%R%B%BAnd the following is a list of Houses to choose from:%R%B%B[get(~~~/houselist)].%R%R%B%BPlease try the command again with '%ch%cr+changelinginfo= of House %cn'.%R},{@switch [gt(match(get(~~~/houselist),%2),0)]=0,@pemit %#={%r%B%BYour seeming and kith were right, but your house was not in the list.%R%R%B%BThis is the list of Houses to choose from:%R%B%B[get(~~~/houselist)].%R%R%B%BPlease try the command again with '%ch%cr+changelinginfo= of House %cn'.%R},{&race %#=changeling %0 %1 of House %2;@pemit %#=%R%B%BYour race is set to changeling. You are an %0 %1 of House %2.%R%R%B%BNow to set your Legacies please type '%ch%cr+changelinglegacies%cn'.}}} &RACENUNNEHI here=@pemit %0=%R%B%BYou wish to be a Nunnehi (a Native American changeling). Now it is time to set your seeming and kith. If you have no idea what is meant by any of these please read a changeling sourcebook first, or ask your local wizard.%R%R%B%BYour seeming is one of the following:%R%B%B[get(~~~/nunseeminglist)].%R%R%B%BYour kith can be any of the following:%R%B%BMay-May-gwya-shi (rock fishers), rock-giants, nanehi, Yunwi-Amai'yine'hi (water people), Yunwi-tsundsi (little people), canotili (tree dwellers), tunghat (greendwarves, owners), kaghinas, surems (yaqui little people), water-babies, numuzo'ho (crushers of people), pu'gwis, inuas (spirit helpers).%R%R%B%BNow to set your race information type '%ch%cr+nunnehiinfo= %cn'. Type the kith name -exactly- as you find it here, and leave out any remarks between (brackets).%R &RACEMAGE here=@pemit %0={%R%B%BYou wish to play a mage. Now it is time to first choose your Sect. Then, according to sect you set your Clan, Craft or Convention. Then you will be asked to choose your Faction/Methodology and Essence/Eidolon.%R%R%B%BNow first you set your sect, from the following list:%R%B%B[get(~~~/magesectlist)]%R%R%B%BTo set your sect type '%ch%cr+magesect=%cn'.%R} &MAGESECTSET here=$+magesect=*:@switch [gt(match(get(~~~/magesectlist),%0),0)]=0,@pemit %#=%R%B%BThe name of the sect you have chosen is not in the list.%R%R%B%BPlease choose from the following list:%R%B%B[get(~~~/magesectlist)]%R%R%B%BType '%ch%cr+magesect=%cn'.%R,@pemit %#=%R%B%BYou will play a %0.%R%R%B%BNow you choose your [switch(%0,Tradition,Tradition,Technocracy,Convention,Craft)] from the following list:%R%B%B[get(~~~/listmageclan[extract(get(%#/race),2,1)])]%R%R%B%BTo set your clan type '%ch%cr+mageclan=%cn'.%R;&race %#=Mage %0 &MAGECLANSET here=$+mageclan=*:@switch [gt(match(get(~~~/listmageclan[extract(get(%#/race),2,1)]),%0),0)]=0,@pemit %#=%R%B%BYou have chosen a [switch([extract(get(%#/race),2,1)],Tradition,Tradition,Technocracy,Convention,Craft)] that is not a part of your group.%R%R%B%BPlease choose from the following list:%R%B%B[get(~~~/listmageclan[extract(get(%#/race),2,1)])]%R%R%B%BPlease try again with '%ch%cr+mageclan=%cn'.%R,{&race %#=[extract(get(%#/race),1,2)];&race %#=[get(%#/race)] of %0;@pemit %#=%R%B%BYou have set your race to: [get(%#/race)]. Now it is time to set your [switch([extract(get(%#/race),2,1)],Technocracy,Methodology,Faction)].%R%R%B%BChoose this from the following list:%R%B%B[get(~~~/listmagefaction[extract(get(%#/race),4,1)])]%R%R%B%BType '%ch%cr+magefaction=%cn'.%R} &MAGEFACTIONSET here=$+magefaction=*:@switch [gt(match(get(~~~/listmagefaction[extract(get(%#/race),4,1)]),%0),0)]=0,@pemit %#=%R%B%BYou have chosen a [switch([extract(get(%#/race),2,1)],Technocracy,Methodology,Faction)] that is not a part of your group.%R%R%B%BPlease choose from the following list:%R%B%B[get(~~~/listmagefaction[extract(get(%#/race),4,1)])]%R%R%B%BPlease try again with '%ch%cr+magefaction=%cn'.%R,{&race %#=[extract(get(%#/race),1,4)];&race %#=[get(%#/race)] from [switch([extract(get(%#/race),2,1)],Technocracy,Methodology,Faction)] %0;@pemit %#=%R%B%BYou have set your race to: [get(%#/race)]. Now it is time to set your [switch([extract(get(%#/race),2,1)],Technocracy,Eidolon,Essence)].%R%R%B%BChoose this from the following list:%R%B%B[get(~~~/listmageessence)]%R%R%B%BNow type '%ch%cr+mageessence=%cn'.%R} &NUNNEHIINFO here=$+nunnehiinfo=* *:@switch [gt(match(get(~~~/nunseeminglist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your seeming from this list:%R%B%B[get(~~~/nunseeminglist)].%R%R%B%BYour kith can be any of the following:%R%B%B[get(~~~/nunkithlist)].%R%R%B%BPlease try the command again with '%ch%cr+nunnehiinfo= %cn'.%R,{@switch [gt(match(get(~~~/nunkithlist),%1),0)]=0,@pemit %#={%R%B%BYour seeming is right, but your kith was not in the list. Your kith can be any of the following:%R%B%B[get(~~~/nunkithlist)].%R%R%B%BPlease try the command again with '%ch%cr+nunnehiinfo= %cn'.%R},{&race %#=nunnehi %0 %1;@pemit %#=%R%B%BYour race is set to nunnehi. You are an %0 %1. Now to set your Legacies please type '%ch%cr+nunnehilegacies%cn'.%R}} &SETMAGEESSENCE here=$+mageessence=*:@switch [gt(match(get(~~~/listmageessence),%0),0)]=0,@pemit %#=%R%B%BThat essence is no part of the list of essences.%R%R%B%BPlease try again with the following list:%R%B%B[get(~~~/listmageessence)]%R%R%B%BType '%ch%cr+mageessence=%cn'.%R,{&race %#=[extract(get(%#/race),1,8)];&race %#=[get(%#/race)] with [switch([extract(get(%#/race),2,1)],Technocracy,Eidolon,Essence)] %0;@pemit %#=%R%B%BYou have set your essence to %0. Your race is now set as: [get(%#/race)]. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5} &RACEVAMPIRE here=@pemit %0={%R%B%BYou wish to play a Vampire. Now it is time to first choose your Sect, and then to set your Clan. First, set your sect from the following list:%R%B%B[get(~~~/vampiresectlist)].%R%R%B%BTo set your sect type '%ch%cr+vampiresect=%cn'.%R} &VAMPIRESECTSET here=$+vampiresect=*:@switch [gt(match(get(~~~/vampiresectlist),%0),0)]=0,@pemit %#=%R%B%BThe name of the sect you have chosen is not in the list.%R%R%B%BPlease choose from the following list:%R%B%B[get(~~~/vampiresectlist)]%R%R%B%BType '%ch%cr+vampiresect=%cn'.%R,@pemit %#=%R%B%BYou will play a %0.%R%R%B%BChoose your Clan from the following list:%R%B%B[get(~~~/listvampireclan%0)]%R%R%B%BTo set your clan type '%ch%cr+vampireclan=%cn'.%R;&race %#=Vampire %0 &VAMPIRECLANSET here=$+vampireclan=*:@switch [gt(match(get(~~~/listvampireclan[extract(get(%#/race),2,1)]),%0),0)]=0,@pemit %#=%R%B%BYou have chosen a Clan that is not a part of your group.%R%R%B%BPlease choose from the following list:%R%B%B[get(~~~/listvampireclan[extract(get(%#/race),2,1)])].%R%R%B%BPlease try again with '%ch%cr+vampireclan=%cn'.%R,{&race %#=[extract(get(%#/race),1,2)];&race %#=[get(%#/race)] %0;@pemit %#=%R%B%BYour race is now set as: [get(%#/race)]. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5} &RACEGAROU here=@pemit %0=%R%B%BYou wish to be a Garou. Now it is time to set your breed, auspice, and tribe. If you have no idea what is meant by any of these please read a werewolf sourcebook first, or ask your local wizard.%R%R%B%BYour breed is one of the following:%R%B%B[get(~~~/breedlist)]%R%R%B%BYour auspice can be any of the following:%R%B%B[get(~~~/auspicelist)]%R%R%B%BAnd the following is a list of Tribes to choose from:%R%B%B[get(~~~/garoutribelist)]%R%R%B%BTo set race information, type '%ch%cr+garouinfo= of tribe %cn'.%R &GAROUINFO here=$+garouinfo=* * of tribe *:@switch [gt(match(get(~~~/breedlist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your breed from this list:%R%B%B[get(~~~/breedlist)]%R%R%B%BYour auspice can be any of the following:%R%B%B[get(~~~/auspicelist)]%R%R%B%BAnd the following is a list of tribes to choose from:%R%B%B[get(~~~/garoutribelist)]%R%R%B%BPlease try again with '%ch%cr+garouinfo= of tribe %cn'.%R,{@switch [gt(match(get(~~~/auspicelist),%1),0)]=0,@pemit %#={%R%B%BYour breed is right, but your auspice was not in the list.%R%R%B%BYour auspice can be any of the following:%R%B%B[get(~~~/auspicelist)]%R%R%B%BAnd the following is a list of tribes to choose from:%R%B%B[get(~~~/garoutribelist)]%R%R%B%BPlease try again with '%ch%cr+garouinfo= of tribe %cn'.%R},{@switch [gt(match(get(~~~/garoutribelist),%2),0)]=0,@pemit %#={%R%B%BYour breed and auspice were right, but your tribe was not in the list.%R%R%B%BThis is the list of tribes to choose from:%R%B%B[get(~~~/garoutribelist)]%R%R%B%BPlease try again with '%ch%cr+garouinfo= of tribe %cn'.%R},{&race %#=Garou %0 %1 of tribe %2;@pemit %#=%R%B%BYour race is set to garou. You are an %0 %1 of tribe %2. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5}}} &RACEBASTET here=@pemit %0=%R%B%BYou wish to be a Bastet. Now it is time to set your breed, auspice, and tribe. If you have no idea what is meant by any of these please read a bastet sourcebook first, or ask your local wizard.%R%R%B%BYour breed is one of the following:%R%B%B[get(~~~/bastetbreedlist)]%R%R%B%BYour pryio can be any of the following:%R%B%B[get(~~~/pryiolist)]%R%R%B%BAnd the following is a list of Tribes to choose from:%R%B%B[get(~~~/Bastettribelist)]%R%R%B%BTo set race information type '%ch%cr+Bastetinfo= of tribe %cn'.%R &BASTETINFO here=$+Bastetinfo=* * of tribe *:@switch [gt(match(get(~~~/bastetbreedlist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your breed from this list:%R%B%B[get(~~~/bastetbreedlist)]%R%R%B%BYour pryio can be any of the following:%R%B%B[get(~~~/pryiolist)]%R%R%B%BAnd the following is a list of tribes to choose from:%R%B%B[get(~~~/Bastettribelist)]%R%R%B%BPlease try again with '%ch%cr+Bastetinfo= of tribe %cn'.%R,{@switch [gt(match(get(~~~/pryiolist),%1),0)]=0,@pemit %#={%R%B%BYour breed is right, but your pryio was not in the list.%R%R%B%BYour pryio can be any of the following:%R%B%B[get(~~~/pryiolist)]%R%R%B%BAnd the following is a list of tribes to choose from:%R%B%B[get(~~~/Bastettribelist)]%R%R%B%BPlease try again with '%ch%cr+Bastetinfo= of tribe %cn'.%R},{@switch [gt(match(get(~~~/Bastettribelist),%2),0)]=0,@pemit %#={%R%B%BYour breed and pryio were right, but your tribe was not in the list.%R%R%B%BThis is the list of tribes to choose from:%R%B%B[get(~~~/Bastettribelist)]%R%R%B%BPlease try again with '%ch%cr+Bastetinfo= of tribe %cn'.%R},{&race %#=Bastet %0 %1 of tribe %2;@pemit %#=%R%B%BYour race is set to Bastet. You are an %0 %1 of tribe %2. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5}}} &RACECORAX here=@pemit %0=%R%B%BYou wish to be a Corax. Now it is time to set your and geographical region. If you have no idea what is meant by any of these please read a Corax sourcebook first, or ask your local wizard.%R%R%B%BYour breed is one of the following:%R%B%B[get(~~~/coraxbreedlist)]%R%R%B%BYour geographic region can be any of the following:%R%B%B[get(~~~/geolist)]%R%R%B%BTo set race information type '%ch%cr+coraxinfo= of region %cn'.%R &CORAXINFO here=$+coraxinfo=* of region *:@switch [gt(match(get(~~~/coraxbreedlist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your breed from this list:%R%B%B[get(~~~/coraxbreedlist)]%R%R%B%BYour region should come from the following list:%R%B%B[get(~~~/geolist)]%R%R%B%BPlease try again with '%ch%cr+Coraxinfo= of region %cn'.%R,{@switch [gt(match(get(~~~/geolist),%1),0)]=0,@pemit %#={%R%B%BYour breed is right, but your geographic region was not in the list.%R%R%B%BThat region can be any of the following:%R%B%B[get(~~~/geolist)]%R%R%B%BPlease try again with '%ch%cr+coraxinfo= of region %cn'.%R},{&race %#=Corax %0 of region %1;@pemit %#=%R%B%BYour race is set to Corax. You are an %0 of region %1. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5}}} &RACENUWISHA here=@pemit %0=%R%B%BYou wish to be a nuwisha. Now it is time to set your breed. If you have no idea what is meant by any of these please read a nuwisha sourcebook first, or ask your local wizard.%R%R%B%BYour breed is one of the following:%R%B%B[get(~~~/nuwishabreedlist)]%R%R%B%BYour auspice is Ragabash because you are Nuwisha.%R%R%B%BTo set your race information type '%ch%cr+nuwishainfo=%cn'.%R &NUWISHAINFO here=$+nuwishainfo=*:@switch [gt(match(get(~~~/nuwishabreedlist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your breed from this list:%R%B%B[get(~~~/nuwishabreedlist)]%R%R%B%BPlease try again with '%ch%cr+nuwishainfo=%cn'.%R,{&race %#=nuwisha %0 Ragabash;@pemit %#=%R%B%BYour race is set to Nuwisha. You are a %0 Ragabash. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5} &CHANGELINGLEGACIES here=$+changelinglegacies:@pemit %#=%R%B%BChangelings have their own legacies, which are set in the place of nature and demeanor.%r%R%B%BVThe Seelie court legacies are:%R%B%B[get(~~~/seelielegacies)]%r%R%B%BThe Unseelie court legacies are:%R%B%B[get(~~~/unseelielegacies)]%r%R%B%BPlease choose both a seelie and an unseelie legacy for your character. %rDo this by typing '%ch%cr+legacy seelie/ unseelie/%cn'.%R &NUNNEHILEGACIES here=$+nunnehilegacies:@pemit %#=%R%B%BNunnehi have their own legacies, which are set in the place of nature and demeanor.%r%R%B%BThe Summer legacies are:%R%B%B[get(~~~/summerlegacies)]%r%R%B%BThe Winter legacies are:%R%B%B[get(~~~/winterlegacies)]%r%R%B%BTrickster is in both lists since it's a midseason legacy. Please choose both a summer and a winter legacy for your character. Do this by typing '%ch%cr+legacy summer/ winter/%cn'.%R &CHANGELINGLEGACYSET here=$+legacy seelie/* unseelie/*:@switch [capstr(first(get(%#/race)))]=Changeling,{@switch [gt(match(get(~~~/seelielegacies),%0),0)]=0,@pemit %#=%R%B%BI do not know that seelie legacy. Please type '%ch%cr+changelinglegacies%cn' and try again.%R,{@switch [gt(match(get(~~~/unseelielegacies),%1),0)]=0,@pemit %#=%R%B%BI do not know that unseelie legacy. Please type '%ch%cr+changelinglegacies%cn' and try again.%R,{&nature %#=%1;&demeanor %#=%0;@pemit %#=%R%B%BYou set your seelie legacy to %0 and your unseelie legacy to %1. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5}}},@pemit %#=%R%B%BYou are not a changeling so have no legacies to set.%R &NUNNEHILEGACYSET here=$+legacy summer/* winter/*:@switch [capstr(first(get(%#/race)))]=Nunnehi,{@switch [gt(match(get(~~~/summerlegacies),%0),0)]=0,@pemit %#=%R%B%BI do not know that summer legacy. Please type '%ch%cr+nunnehilegacies%cn' and try again.%R,{@switch [gt(match(get(~~~/winterlegacies),%1),0)]=0,@pemit %#=%R%B%BI do not know that winter legacy. Please type '%ch%cr+nunnehilegacies%cn' and try again.%R,{&nature %#=%1;&demeanor %#=%0;@pemit %#=%R%B%BYou set your summer legacy to %0 and your winter legacy to %1. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'%R.;&temp7 %#=4.5}}},@pemit %#=%R%B%BYou are not a nunnehi so have no legacies to set.%R &MORTALPLUSSET here=$+mortal+=*:@switch [match(capstr(lcstr(first(%0))),Mortal+)]=1,{@pemit %#={%R%B%BYou have set your race to %0. Now go through the super door and there type '%ch%cr+attributes%cn'}.%R;&race %#=%0;&temp7 %#=4.5},@pemit %#=%R%B%BYou have not set the first word of your race as Mortal+. Please type '%ch%cr+race%cn' and try again.%R &RACEMORTAL+ here=@pemit %0={%R%B%BYou wish to be a Mortal+ character. Mortal+ has no set order for your groups, but please give us your full race again with Mortal+ as first word and any group, affiliation or such you belong to in the order that fits for you.%R%R%B%BDo this with '%ch%cr+mortal+=%cn'.%R%R%B%BFor example if you're a gypsy of Phuri Dae, you would type '%ch%cr+mortal+=Mortal+ Gypsy of the Family Phuri Dae%cn'.%R} &RACERATKIN here=@pemit %0={%R%B%BYou wish to be a Ratkin. Now it is time to set your breed and geographical region. If you have no idea what is meant by any of these please read a Ratkin sourcebook first, or ask your local wizard.%R%R%B%BYour breed is one of the following:%R%B%B[get(~~~/Ratkinbreedlist)]%R%R%B%BYour geographic region can be any of the following:%R%B%B[get(~~~/geolist)]%R%R%B%BTo set your race information type '%ch%cr+Ratkininfo= of region %cn'.%R} &RATKININFO here=$+Ratkininfo=* of region *:@switch [gt(match(get(~~~/Ratkinbreedlist),%0),0)]=0,@pemit %#=%R%B%BYou need to choose your breed from this list:%R%B%B[get(~~~/Ratkinbreedlist)]%R%R%B%BAnd your region should come from the following list:%R%B%B[get(~~~/geolist)] %R%R%B%BPlease try again with '%ch%cr+Ratkininfo= of region %cn'.%R,{@switch [gt(match(get(~~~/geolist),%1),0)]=0,@pemit %#={%R%B%BYour breed is right, but your geographic region was not in the list.%R%R%B%BThat region can be any of the following:%R%B%B[get(~~~/geolist)]%R%R%B%BPlease try again with '%ch%cr+Ratkininfo= of region %cn'.%R},{&race %#=Ratkin %0 of region %1;@pemit %#=%R%B%BYour race is set to Ratkin. You are an %0 of region %1. You can now continue through the door named '%ch%cySuper%cn' and there type '%ch%cr+attributes%cn'.%R;&temp7 %#=4.5}}} &STD here=%R%B%BThis is the place where each person begins making their character. Here you can set your concept, race, nature and demeanor. You can leave in between your chargen, none of your settings will be lost.%R%R%B%BIf you have a character already that you are happy with, do NOT type 'begin' here for it will erase all your settings! If you are anything but a normal mortal without gifts and powers, you need to take the 'super' door after you have set your concept, nature, demeanor and race. If you have already gone through here but wish to reset your nature, demeanor, or concept you are welcome to do so and will not have to move through the whole of chargen again (except if you were setting freebies, once you start on freebies you are not allowed to return to any of the earlier commands).%r%R%B%BDo not reset nature or demeanor here if you are Fae, you will not be able to choose from the list specific to your race. If you are Fae and wish to change nature or demeanor, then it's best to ask a staffer. Or you can reset your race but you will have to do the whole chargen again. This is because you will not be allowed to reset your race, unless you do not mind going through the whole chargen once more.%R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room **%R &STD1 here=%R%B%BThis is the place where each person begins making their character. Here you can set your concept, race, nature and demeanor. You can leave in between your chargen, none of your settings will be lost. To know what is your next command type '+progress' and you will be given where to go on, even if you're not in this room. And for an overview of commands in this room type '+commands'. To begin with character generation type 'begin'. If you have a character allready that you are happy with, do NOT type 'begin' here for it will erase all your settings! There are two doors that you can choose to go on with chargen, one is for 'mortal' characters, the other is for 'super' characters. If you are anything but a normal mortal without gifts and powers, you need to take the 'super' door after you have set your concept, nature, demeanor and race.. If you have already gone through here but wish to reset your nature, demeanor, or concept you are welcome to do so and will not have to move through the whole of chargen again (except if you were setting freebies, once you start on freebies you are not allowed to return to any of the earlier commands). You will be able to return to the furthest of your commands down the line, as you can see in +progress. To reset your concept here type '+concept'. For your nature +nature and for your demeanor +demeanor. Do not reset nature or demeanor here if you are Fae, you will not be able to choose from the list specific to your race. If you are Fae and wish to change nature or demeanor, then it's best to ask a staffer. Or you can reset your race but you will have to do the whole chargen again. This is because you will not be allowed to reset your race, unless you do not mind going through the whole chargen once more.%R @set here=INHERIT @lock Super =CHECKLOCK/1 &CHECKLOCK Super =[gte(add(orflags(%#,wWZ),mul(0.5,gt(member(get(~~~/racelist),capstr(first(get(%#/race)))),1)),mul(0.5,gte(get(%#/temp7),4.5))),1)] @Fail Super =You either are not a super but a mortal, have not chosen your race yet or have not even started chargen. Please type '+progress' to find out where you are supposed to be, or try the 'mortal' door. @set Super =INHERIT s @dig Supers Character Generation Room3=Continue ;c;continue,Back ;b;back @set here=commands &ATTRIBUTESINFO here=$+attributes:@switch [add([gte(get(%#/temp7),25)],[lt(get(%#/temp7,4.5)])]=1,{@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step or were allready setting your freebies. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R},{@pemit %#=%R%B%BNow it is time to set your attributes. You can see what they are if you type '%ch%cr+stats%cn' which contains your sheet and which will be updated after each step has been finished. Now you have to choose if you will wish your character to be better in the social side of things, the mental side, or the physical side. To choose this put the letters S(ocial) M(ental) P(hysical) in the order of importance to you, most important letter first, and place a +order= before that. So type in '%ch%cr+order=MSP%cn' or '%ch%cr+order=PMS%cn'. And before you go on, a warning is given: remember that though you will not be restricted in the amounts of attributes set at 4 or 5 you will need to explain them in your background!%R} &ORDER here=$+order=*:&temp1 %#=%0;@switch [add([lt(get(%#/temp7),25)],[gt(get(%#/temp7),11)])]=2,{&temp8 %#=[get(%#/temp7)];&temp7 %#=5;@pemit %#=%R%B%BYour progress marker has been reset to let you run through the settings of mental social and physical. It will be reset to the original value once you type '+%ch%crphysical set%cn'.%R},&temp7 %#=5;@switch/first %0=pms,@pemit %#={%R%B%BYou will have 7 points to spend in Physical, 5 in Mental and 3 in Social. Now type '%ch%cr+mental%cn' to see how to divide your points.%R},psm,@pemit %#={%R%B%BYou will have 7 points to spend in Physical, 5 in Social and 3 in Mental.Now type '%ch%cr+mental%cn' to see how to divide your points.%R},smp,@pemit %#={%R%B%BYou will have 7 points to spend in Social, 5 in Mental and 3 in Physical. Now type '%ch%cr+mental%cn' to see how to divide your points.%R},spm,@pemit %#={%R%B%BYou will have 7 points to spend in Social, 5 in Physical and 3 in Mental. Now type '%ch%cr+mental%cn' to see how to divide your points.%R},mps,@pemit %#={%R%B%BYou will have 7 points to spend in Mental, 5 in Physical and 3 in Social. Now type '%ch%cr+mental%cn' to see how to divide your points.%R},msp,@pemit %#={%R%B%BYou will have 7 points to spend in Mental, 5 in Social and 3 in Physical. Now type '%ch%cr+mental%cn' to see how to divide your points.%R},{&temp7 %#=5;@pemit %#={%R%B%BYou have not given the right letters. Please type '%ch%cr+attributes%cn' again and use only the letters M, P and S once.%R}} &MENTAL here=$+mental:@switch add(eq(get(%#/temp7),6),eq(get(%#/temp7),5))=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '$ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{&temp2 %#=[switch([get(%#/temp1)],m**,7,**m,3,5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp6 %#=0;@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BSomething has gone wrong. Please type '%ch%cr+attributes%cn' again to set your order once more and then go to '%ch%cr+mental%cn'. Thank you for your patience.%r,{&temp7 %#=6;@pemit %#={%R%B%BYou have [get(%#/temp2)] points to spend on the Mental stats. These mental attributes are Wits, Perception and Intelligence.%R%R%B%BTo add points to either type '%ch%cr+mental add =%cn'.%R%R%B%BTo subtract type '%ch%cr+mental subtract =%cn'.%R}}} &MENTALADD here=$+mental add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +mental subtract,{@switch eq(get(%#/temp7),6)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot add more then that.%R,{@switch %0=Perception,{@switch [gt([add([get(%#/temp3)],%1)],5)][gte([add([get(%#/temp3)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}}},{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}}},Intelligence,{@switch [gt([add([get(%#/temp4)],%1)],5)][gte([add([get(%#/temp4)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}}},{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}}},Wits,{@switch [gt([add([get(%#/temp5)],%1)],5)][gte([add([get(%#/temp5)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you will end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}}},{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}}},@pemit %#=%R%B%B%0 is not a skill that I know. Please try again.%R};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BYou have no more points left to divide. If you wish to set these mental skills and continue with social skills type '%ch%cr+mental set%cn'.%R}} &MENTALSET here=$+mental set:@switch eq(get(%#/temp7),6)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@pemit %#=%R%B%BYou have set your mental attributes and now your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)]. If you want to check this type '%ch%cr+stats%cn'. You can continue with your Social stats by typing '%ch%cr+social%cn'.%R;&perception %#=[get(%#/temp3)];&Intelligence %#=[get(%#/temp4)];&Wits %#=[get(%#/temp5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp2=mentalset;&temp7 %#=7} &SOCIALADD here=$+social add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +social subtract,{@switch eq(get(%#/temp7),8)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot add more then that.%R,{@switch %0=charisma,{@switch [gt([add([get(%#/temp3)],%1)],5)][gte([add([get(%#/temp3)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}}},{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}}},manipulation,{@switch [gt([add([get(%#/temp4)],%1)],5)][gte([add([get(%#/temp4)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}}},{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}}},appearance,{@switch [gt([add([get(%#/temp5)],%1)],5)][gte([add([get(%#/temp5)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Realize this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}}},{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}}},@pemit %#=%R%B%B%0 is not a skill that I know. Please try again.%R}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BYou have no more points left to divide. If you wish to set these social skills and continue with physical skills type '%ch%cr+social set%cn'.%R} &SOCIALSET here=$+social set:@switch eq(get(%#/temp7),8)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@pemit %#=%R%B%BYou have set your social attributes and now your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)]. If you want to check this type '%ch%cr+stats%cn'. You can continue with your physical stats by typing '%ch%cr+physical%cn'.%R;&charisma %#=[get(%#/temp3)];&manipulation %#=[get(%#/temp4)];&appearance %#=[get(%#/temp5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp2 %#=socialset;&temp7 %#=9} &PHYSICALADD here=$+physical add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +physical subtract,{@switch eq(get(%#/temp7),10)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot add more then that.%R,{@switch %0=strength,{@switch [gt([add([get(%#/temp3)],%1)],5)][gte([add([get(%#/temp3)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}}},{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}}},dexterity,{@switch [gt([add([get(%#/temp4)],%1)],5)][gte([add([get(%#/temp4)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Realize this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}}},{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}}},stamina,{@switch [gt([add([get(%#/temp5)],%1)],5)][gte([add([get(%#/temp5)],%1)],5)]=11,@pemit %#={%R%B%BIf you add %1 to your %0 you wil end up with an attribute over 5, which is not allowed. Please try again.%R},01,{@switch [get(%#/temp6)]=1,@pemit %#=%R%B%BYou cannot have a second attribute at level 6.%R,{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}}},{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={%R%B%BYou add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}}},@pemit %#=%R%B%B%0 is not a skill that I know. Please try again.%R};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BYou have no more points left to divide. If you wish to set these physical skills and continue with abilities skills type '%ch%cr+physical set%cn'.%R}} &PHYSICALSET here=$+physical set:@switch eq(get(%#/temp7),10)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@pemit %#=%R%B%BYou have set your physical attributes and now your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)]. If you want to check this type '%ch%cr+stats%cn'. You can continue with your abilities now by typing '%ch%crcontinue%cn' and then type '%ch%cr+abilities%cn'.%R;&strength %#=[get(%#/temp3)];&dexterity %#=[get(%#/temp4)];&stamina %#=[get(%#/temp5)];&temp1 %#=;&temp2 %#=;&temp3 %#=;&temp4 %#=;&temp5 %#=;&temp6 %#=;@switch [gt(get(%#/temp8),11)]=1,{&temp7 %#=[get(%#/temp8)];@pemit %#=%R%B%BYour progress marker has been reset once more. Type '%ch%cr+progress%cn' to find out where you were.%R;&temp8 %#=},&temp7 %#=11} &SOCIAL here=$+social:@switch add(eq(get(%#/temp7),8),eq(get(%#/temp7),7))=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{&temp2 %#=[switch([get(%#/temp1)],s**,7,**s,3,5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp7 %#=8;@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BSomething has gone wrong. Please type '%ch%cr+attributes%cn' again and follow the commands there.%R,@pemit %#={%R%B%BYou have [get(%#/temp2)] points to spend on the Social stats. These social attributes are Charisma, Manipulation and Appearance.%R%R%B%BTo add a point to either type '%ch%cr+social add =%cn'.%R%R%B%BTo subtract type '%ch%cr+social subtract =%cn'.%R}} &PHYSICAL here=$+physical:@switch add(eq(get(%#/temp7),10),eq(get(%#/temp7),9))=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{&temp2 %#=[switch([get(%#/temp1)],p**,7,**p,3,5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp7 %#=10;@switch [get(%/temp2)]=0,@pemit %#=%R%B%BSomething has gone wrong. Please type '%ch%cr+attributes%cn' again and follow the commands there.%R,@pemit %#={%R%B%BYou have [get(%#/temp2)] points to spend on the physical stats. These physical attributes are strength, dexterity and stamina.%R%R%B%BTo add a point to either type '%ch%cr+physical add =%cn'%R%R%B%BTo subtract type '%ch%cr+physical subtract =%cn%R}} &COMMANDLIST here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+attributes%cn' for instructions on setting attributes **%r%b%b%b** Type '%ch%cr+mental%cn' for setting mental attributes (first) **%r%b%b%b** Type '%ch%cr+social%cn' for setting social attributes (second) **%r%b%b%b** Type '%ch%cr+physical%cn' for setting physical attributes (third) **%r%b%b%b** Type '%ch%crcontinue%cn' to move on to the abilities room **%R &MENTALSUBTRACT here=$+mental subtract *=*:@switch eq(get(%#/temp7),6)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch %0=perception,{@switch [lte([get(%#/temp3)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp3)]=4,&temp6 %#=0;&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}},{@switch %0=intelligence,{@switch [lte([get(%#/temp4)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp4)]=4,&temp6 %#=0;&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}},{@switch %0=wits,{@switch [lte([get(%#/temp5)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp5)]=4,&temp6 %#=0;&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].%R}},{@pemit %#=%R%B%BI do not know a skill called %0. Please try again.%R}}} &SOCIALSUBTRACT here=$+social subtract *=*:@switch eq(get(%#/temp7),8)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch %0=charisma,{@switch [lte([get(%#/temp3)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp3)]=4,&temp6 %#=0;&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}},{@switch %0=manipulation,{@switch [lte([get(%#/temp4)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp4)]=4,&temp6 %#=0;&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}},{@switch %0=appearance,{@switch [lte([get(%#/temp5)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp5)]=4,&temp6 %#=0;&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].%R}},{@pemit %#=%R%B%BI do not know a skill called %0. Please try again.%R}}}} &PHYSICALSUBTRACT here=$+physical subtract *=*:@switch eq(get(%#/temp7),10)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch %0=strength,{@switch [lte([get(%#/temp3)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp3)]=4,&temp6 %#=0;&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}},{@switch %0=dexterity,{@switch [lte([get(%#/temp4)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp4)]=4,&temp6 %#=0;&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}},{@switch %0=stamina,{@switch [lte([get(%#/temp5)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again.%R,{@switch [get(%#/temp5)]=4,&temp6 %#=0;&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].%R}},{@pemit %#=%R%B%BI do not know a skill called %0. Please try again.%R}}}} @lock/TeloutLock here=CHECKLOCK/1 @Desc here=[u(std)] &STD here=%R%B%BIn this room you can set your stats and then you will be sent onwards. You can leave in between your chargen and none of your settings will be lost. If you are not content with your attributes after they have already been set, you can set them anew, even if you have progressed with chargen far beyond this point. You can start attributes again, but will not be allowed to do it in another order than mental, social and physical. Your original progress marker will be reset once you start with attributes.%R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room **%R @set here=INHERIT @lock Continue =CHECKLOCK/1 @Succ Continue =You have set your attributes and continue with chargen. @Osucc Continue =set %p attributes and continues with chargen. @Odrop Continue =set %p attributes and comes to set %p abilities. &CHECKLOCK Continue =[gt(add(gt(get(%#/temp7),10),orflags(%#,wWZ)),0)] @Fail Continue =You cannot leave the room yet because you have not run through the whole of chargen yet. To see where you are with the character creation process type +progress. @set Continue =INHERIT c @dig General Character Generation Room 4=Continue ;c;continue,Back for Supers ;bs;back for supers @set here=commands &ABILITIESORDER here=$+order=*:@switch [add([gte(get(%#/temp7),25)],[lt(get(%#/temp7),11)])]=1,{@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step or are allready working on freebie points. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R},{@dolist lattr(%#/abil*)=&## %#=;@switch [add([lt(get(%#/temp7),25)],[gt(get(%#/temp7),18)])]=2,{&temp8 %#=[get(%#/temp7)];@pemit %#=%R%B%BYour progress marker has been reset to the setting of abilities and will be reset back to the original value once you have typed '%ch%cr+knowledges set%cn'.%R};@wait 1=&temp7 %#=12;&temp2 %#=0;&temp3 %#=0;&temp4 %#=0;&temp5 %#=0;&temp1 %#=%0;@switch/first %0=tks,@pemit %#={%R%B%BYou will have nine points to spend in Knowledges, thirteen in Talents and five in Skills. Now type '%ch%cr+Talents%cn' to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.%R},tsk,@pemit %#={%R%B%BYou will have five points to spend in Knowledges, nine in Skills and thirteen in Talents. Now type '%ch%cr+Talents%cn' to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.%R},skt,@pemit %#={%R%B%BYou will have thirteen points to spend in Skills, five in Talents and nine in Knowledges. Now type '%ch%cr+Talents%cn' to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.%R},stk,@pemit %#={%R%B%BYou will have thirteen points to spend in Skills, five in Knowledges and nine in Talents. Now type '%ch%cr+Talents%cn' to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.%R},kts,@pemit %#={%R%B%BYou will have nine points to spend in Talents, thirteen in Knowledges and five in Skills. Now type '%ch%cr+Talents%cn' to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.%R},kst,@pemit %#={%R%B%BYou will have five points to spend in Talents, nine in Skills and thirteen in Knowledges. Now type '%ch%cr+Talents%cn' to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.%R},@pemit %#={%R%B%BYou have not given the right letters. Please type '%ch%cr+attributes%cn' again and use only the letters K, T and S once.%R}} &TALENTS here=$+talents:@switch add(eq(get(%#/temp7),12),eq(get(%#/temp7),13))=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@dolist lattr(%#/abiltal*)=&## %#=;&temp7 %#=13;&temp3=0;&temp2 %#=[switch([get(%#/temp1)],t**,13,**t,5,9)];@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BSomething has gone wrong. Please type '%ch%cr+abilities%cn' again and follow the commands there.%R,@pemit %#={%R%B%BYou have [get(%#/temp2)] points to spend on the Talents stats. Primary talents (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. These Talents attributes can be found by typing '%ch%cr+talentslist%cn'%r%R%B%BTo add a point to either type '%ch%cr+Talents add =%cn'%R%R%B%BTo subtract type '%ch%cr+Talents subtract =%cn'%r%r%B%BFor secondary abilities do not take the ~ from in front of the name.%R}} &TALENTSADD here=$+Talents add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +talents subtract,{@switch eq(get(%#/temp7),13)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot add more then that. Or twice that number in secondary talents.%R,{@switch/first [gt([add([get(%#/abiltal%0)],%1)],4)][gt([add([get(%#/abiltal%0)],%1)],3)]=11,@pemit %#=%R%B%BYou are not allowed an ability of five or higher.%R,01,{@switch [get(%#/temp3)]=2,@pemit %#=%R%B%BYou cannot have a third ability at level 4.%R,{@switch [match([get(~~~/talentlist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid talent. Type '%ch%cr+talentslist%cn' and choose a talent from the given list.%R,{&abiltal%0 %#=[add([get(%#/abiltal%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],[mul(switch(u(~~~/left,%0,1),~,0.5,1),%1)])];&temp3 %#=[add([get(%#/temp3)],1)];@pemit %#=%R%B%BYou have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the talents you now have type '%ch%cr+stats%cn'. Please realise this ability of 4 is number [get(%#/temp3)] of two you will be allowed!%R}}},{@switch [match([get(~~~/talentlist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid talent. Type '%ch%cr+talentslist%cn' and choose a talent from the given list.%R,{&abiltal%0 %#=[add([get(%#/abiltal%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],[mul(switch(u(~~~/left,%0,1),~,0.5,1),%1)])];@pemit %#=%R%B%BYou have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the talents you now have type '%ch%cr+stats%cn'.%R}}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BIf you wish to use your talents as they are now type '%ch%cr+talents set%cn'.%R}} &LISTINGTALENTS here=$+talentslist:@pemit %#=%R%B%BTalent abilities are:%r%R[columns([get(~~~/talentlist)],19)]%r%r%B%BPrimary talents (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. If this list is too long and rolls off your screen type '%ch%cr+talentslist1%cn' and you will get the list in parts.%R &TALENTSSUBTRACT here=$+talents subtract *=*:@switch eq(get(%#/temp7),13)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [match([get(~~~/talentlist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid talent. Type '%ch%cr+talentlist%cn' and choose a talent from the given list.%R,{@switch [lt([get(%#/abiltal%0)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 0 which is not allowed. Please try again.%R,{@switch [get(%#/abiltal%0)]=4,&temp3 %#=[sub([get(%#/temp3)],1)];&abiltal%0 %#=[sub([get(%#/abiltal%0)],%1)];&temp2 %#=[add([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the talents you have chosen type '%ch%cr+stats%cn'.%R}}} &TALENTSSET here=$+talents set:@switch eq(get(%#/temp7),13)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@dolist [lnum([words([lattr(%#/abiltal*)])])]=@pemit %#=%B%BYou have set your [ljust([mid([elements([lattr(%#/abiltal*)],[add(##,1)])],7,[sub([strlen([elements([lattr(%#/abiltal*)],[add(##,1)])])],7)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/abiltal*)],[add(##,1)])])],2)];&temp7 %#=14;@pemit %#=%R%B%BYou have set your talents. To continue with Skills please type '%ch%cr+skills%cn'.%R} &SKILLS here=$+Skills:@switch add(eq(get(%#/temp7),14),eq(get(%#/temp7),15))=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{&temp2 %#=[switch([get(%#/temp1)],s**,13,**s,5,9)];@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BSomething has gone wrong. Please type '%ch%cr+attributes%cn' again and follow the commands there.%R,{@dolist lattr(%#/abilski*)=&## %#=;&temp7 %#=15;@pemit %#={%R%B%BYou have [get(%#/temp2)] points to spend on the Skills stats. Primary skills (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. For the list of skills type '%ch%cr+skillslist%cn'.%r%R%B%BTo add a point to either type '%ch%cr+Skills add =%cn'%R%R%B%BTo subtract type '%ch%cr+Skills subtract =%cn'%r%r%B%BIf you buy secondary skills do not take the ~ from before the name.%R}}} &SKILLSADD here=$+Skills add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +skills subtract,{@switch eq(get(%#/temp7),15)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot add more then that.%R,{@switch/first [gt([add([get(%#/abilski%0)],%1)],4)][gt([add([get(%#/abilski%0)],%1)],3)]=11,@pemit %#=%R%B%BYou are not allowed an ability of five or higher.%R,01,{@switch [get(%#/temp3)]=2,@pemit %#=%R%B%BYou cannot have a third ability at level 4.%R,{@switch [match([get(~~~/skilllist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid skill. Type '%ch%cr+skillslist%cn' and choose a skill from the given list.%R,{&abilski%0 %#=[add([get(%#/abilski%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];&temp3 %#=[add([get(%#/temp3)],1)];@pemit %#=%R%B%BYou have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the Skills you now have type '%ch%cr+stats%cn'. Please realise this ability of 4 is number [get(%#/temp3)] of two you will be allowed!%R}}},{@switch [match([get(~~~/skilllist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid skill. Type '%ch%cr+skillslist%cn' and choose a skill from the given list.%R,{&abilski%0 %#=[add([get(%#/abilski%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];@pemit %#=%R%B%BYou have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the Skills you now have type '%ch%cr+stats%cn'.%R}}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BIf you wish to use your Skills as they are now type '%ch%cr+Skills set%cn'.%R}} &LISTINGSKILLS here=$+Skillslist:@pemit %#=%R%B%BSkill abilities are:%r%R[columns([get(~~~/skilllist)],19)]%r%r%B%BPrimary skills (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. If this list is too long and long and rolls off your screen type '%ch%cr+skillslist1%cn' and you will get the list in parts.%R &SKILLSSUBTRACT here=$+Skills subtract *=*:@switch eq(get(%#/temp7),15)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [match([get(~~~/skilllist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid skill. Type '%ch%cr+skilllist%cn' and choose a skill from the given list.%R,{@switch [lt([get(%#/abilski%0)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 0 which is not allowed. Please try again.%R,{@switch [get(%#/abilski%0)]=4,&temp3 %#=[sub([get(%#/temp3)],1)];&abilski%0 %#=[sub([get(%#/abilski%0)],%1)];&temp2 %#=[add([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the Skills you have chosen type '%ch%cr+stats%cn'.%R}}} &SKILLSSET here=$+skills set:@switch eq(get(%#/temp7),15)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [get(%#/temp2)]=0,{@dolist [lnum([words([lattr(%#/abilski*)])])]=@pemit %#=%B%BYou have set your [ljust([mid([elements([lattr(%#/abilski*)],[add(##,1)])],7,[sub([strlen([elements([lattr(%#/abilski*)],[add(##,1)])])],7)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/abilski*)],[add(##,1)])])],2)];&temp7 %#=16;@pemit %#=%R%B%BYou have set your skills. To continue with Knowledges please type '%ch%cr+knowledges%cn'.%R},@pemit %#=%R%B%BYou cannot set your stats yet for you have [get(%#/temp2)] points left to spend. Type '%ch%cr+skills set%cn' once that has been brought down to zero.%R} &KNOWLEDGES here=$+knowledges:@switch add(eq(get(%#/temp7),16),eq(get(%#/temp7),17))=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%ch' to find out which command should be your next. Thank you.%R,{&temp2 %#=[switch([get(%#/temp1)],k**,13,**k,5,9)];@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BSomething has gone wrong. Please type '%ch%cr+attributes%cn' again and follow the commands there.%R,{@dolist lattr(%#/abilkno*)=&## %#=;&temp7 %#=17;@pemit %#={%R%B%BYou have [get(%#/temp2)] points to spend on the knowledges stats. Primary knowledges (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. The list of knowledges you can find in '%ch%cr+knowledgeslist%cn'.%r%R%B%BTo add a point to either type '%ch%cr+knowledges add =%cn'%R%R%B%BTo subtract type '%ch%cr+knowledges subtract =%cn'%r%r%B%BIf you buy secondary knowledges do not take the ~ from before the name.%R}}} &KNOWLEDGESADD here=$+knowledges add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +knowledges subtract,{@switch eq(get(%#/temp7),17)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot add more then that.%R,{@switch/first [gt([add([get(%#/abilkno%0)],%1)],4)][gt([add([get(%#/abilkno%0)],%1)],3)]=11,@pemit %#=%R%B%BYou are not allowed an ability of five or higher.%R,01,{@switch [get(%#/temp3)]=2,@pemit %#=%R%B%BYou cannot have a third ability at level 4.%R,{@switch [match([get(~~~/knowledgelist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid knowledge. Type '%ch%cr+knowledgeslist%cn' and choose a knowledge from the given list.%R,{&abilkno%0 %#=[add([get(%#/abilkno%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];&temp3 %#=[add([get(%#/temp3)],1)];@pemit %#=%R%B%BYou have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the knowledges you now have type '%ch%cr+stats%cn'. Please realize this ability of 4 is number [get(%#/temp3)] of two you will be allowed!%R}}},{@switch [match([get(~~~/knowledgelist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid knowledge. Type '%ch%cr+knowledgeslist%cn' and choose a knowledge from the given list.%R,{&abilkno%0 %#=[add([get(%#/abilkno%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];@pemit %#=%R%B%BYou have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the knowledges you now have type '%ch%cr+stats%cn'.%R}}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BIf you wish to use your knowledges as they are now type '%ch%cr+knowledges set%cn'.%R}} &LISTINGKNOWLEDGES here=$+knowledgeslist:@pemit %#=%R%B%BKnowledge abilities are:%r%R[columns([get(~~~/knowledgelist)],19)]%r%r%B%BPrimary knowledges (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. If this list is too long and long and rolls off your screen type '%ch%cr+knowledgeslist1%cn' and you will get the list in parts.%R &KNOWLEDGESSUBTRACT here=$+knowledges subtract *=*:@switch eq(get(%#/temp7),17)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [match([get(~~~/knowledgelist)],%0)]=0,@pemit %#=%R%B%BThat is not a valid knowledge. Type '%ch%cr+knowledgelist%cn' and choose a knowledge from the given list.%R,{@switch [lt([get(%#/abilkno%0)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with an attribute below 0 which is not allowed. Please try again.%R,{@switch [get(%#/abilkno%0)]=4,&temp3 %#=[sub([get(%#/temp3)],1)];&abilkno%0 %#=[sub([get(%#/abilkno%0)],%1)];&temp2 %#=[add([get(%#/temp2)],mul(switch(u(~~~/left,%0,1),~,0.5,1),%1))];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the knowledges you have chosen type '%ch%cr+stats%cn'.%R}}} &KNOWLEDGESSET here=$+knowledges set:@switch eq(get(%#/temp7),17)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [get(%#/temp2)]=0,{@dolist [lnum([words([lattr(%#/abilkno*)])])]=@pemit %#=%B%BYou have set your [ljust([mid([elements([lattr(%#/abilkno*)],[add(##,1)])],7,[sub([strlen([elements([lattr(%#/abilkno*)],[add(##,1)])])],7)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/abilkno*)],[add(##,1)])])],2)];@switch [gt(get(%#/temp8),11)]=1,{&temp7 %#=[get(%#/temp8)];@pemit %#=%R%B%BYour progress marker has been reset to the original value.%R;&temp8 %#=},&temp7 %#=18;@pemit %#=%R%B%BYou have set your knowledges. To continue to the next room take the exit '%ch%crcontinue%cn' and there type '%ch%cr+backgrounds%cn'.%R},@pemit %#=%R%B%BYou cannot set your stats yet for you have [get(%#/temp2)] points left to spend. Type '%ch%cr+set knowledges%cn' once that has been brought down to zero.%R} &PLUSCOMMANDS here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+abilities%cn' for instructions on setting your abilities **%r%b%b%b** Type '%ch%cr+talents%cn' for instructions on setting your talents **%r%b%b%b** Type '%ch%cr+talentslist%cn' for a list of available talents **%r%b%b%b** Type '%ch%cr+skills%cn' for instructions on setting your skills **%r%b%b%b** Type '%ch%cr+skillslist%cn' for a list of available skills **%r%b%b%b** Type '%ch%cr+knowledges%cn' for instructions on setting your knowledges **%r%b%b%b** Type '%ch%cr+knowledgeslist%cn' for a list of available skills **%R%b%b%b** Type '%ch%crcontinue%cn' to move on to the abilities room **%R &ABILITIES here=$+abilities:@pemit %#=%R%B%BNow you need to set the order of importance of the abilities you choose. There are three kinds of abillities, Talents, Skills and Knowledges. For the list of these type: '%ch%cr+talentslist%cn', '%ch%cr+skillslist%cn' or '%ch%cr+knowledgeslist%cn'. To set your preferences put the letters T(alents) S(kills) and K(nowledges) in the order of importance to you, most important letter first, and place a +order= before that. So type '%ch%cr+order=TSK%cn' or '%ch%cr+order=SKT%cn'. And before you go on a warning is given: remember that you will not be allowed more then two abilities at level 4 and no abilities of 5!%R &GENFLAWS1LIST here=$+knowledgeslist1:@pemit %#=%R%B%BThis is the first half of the knowledges all characters can choose. Please don't choose anything you do not know or understand.%r%R[columns(extract(get(~~~/knowledgelist),1,div(words(get(~~~/knowledgelist)),2)),19)]%r%R%B%BPlease type '%ch%cr+knowledgeslist2%cn' for the rest.%R &GENFLAWS2LIST here=$+knowledgeslist2:@pemit %#=%R%B%BThis is the second half of the knowledges all characters can choose. Please don't choose anything you do not know or understand.%r%R[columns(extract(get(~~~/knowledgelist),div(words(get(~~~/knowledgelist)),2),words(get(~~~/knowledgelist))),19)]%R &SKILLS1LIST here=$+skillslist1:@pemit %#=%R%B%BThis is the first half of the skills all characters can choose. Please don't choose anything you do not know or understand.%r%R[columns(extract(get(~~~/skilllist),1,div(words(get(~~~/skilllist)),2)),19)]%r%R%B%BPlease type '%ch%cr+skillslist2%cn' for the rest.%R &SKILLS2LIST here=$+skillslist2:@pemit %#=%R%B%BThis is the second half of the skills all characters can choose. Please don't choose anything you do not know or understand.%r%R[columns(extract(get(~~~/skilllist),div(words(get(~~~/skilllist)),2),words(get(~~~/skilllist))),19)]%R &TALENTS1LIST here=$+talentslist1:@pemit %#=%R%B%BThis is the first half of the talents all characters can choose. Please don't choose anything you do not know or understand.%r%R[columns(extract(get(~~~/talentlist),1,div(words(get(~~~/talentlist)),2)),19)]%r%R%B%BPlease type '%ch%cr+talentslist2%cn' for the rest.%R &TALENTS2LIST here=$+talentslist2:@pemit %#=%R%B%BThis is the second half of the talents all characters can choose. Please don't choose anything you do not know or understand.%r%R[columns(extract(get(~~~/talentlist),div(words(get(~~~/talentlist)),2),words(get(~~~/talentlist))),19)]%R @Desc here=[u(std)] &STD here=%R%B%BThis is the room where abilities and secondary abilities are set. If you are not content with your abilities after they have already been set, you can set them anew. Even if you have progressed beyond this point you can reset your abilities without losing your progress marker. But you will not be allowed to do it in another order then knowledges, talents and skills. %R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room **%R @set here=INHERIT @lock Continue =CHECKLOCK/1 @Succ Continue =You have set your backgrounds and virtues and continue with chargen. @Osucc Continue =set %p backgrounds and virtues and continues with chargen. @Odrop Continue =set %p backgrounds and virtues and comes to set %p gifts. &CHECKLOCK Continue =[gte(add(gte(get(%#/temp7),20),hasflag(%#,W),hasflag(%#,w)),1)] @Fail Continue =You cannot leave the room yet because you have not run through the whole of chargen yet. To see where you are with the character creation process type +progress. @set Continue =INHERIT b b @dig Mortal Character Generation Room 2=Mortal ;m;mortal,Back ;b;back @lock Mortal =CHECKLOCK/1 @force me=&CHECKLOCK Mortal =%[gte%(add%(hasflag%(%%#,W),hasflag%(%%#,w),mul%(0.5,match%(get%(%%#/race),mortal)),mul%(0.5,gte%(get%(%%#/temp7),4.5))),1)] @Fail Mortal =You either are not a mortal but a super, have not chosen your race yet or have not even started chargen. Please type '+progress' to find out where you are supposed to be, or try the 'super' door. @set Mortal =INHERIT m @dig Mortal Character Generation Room 3=Continue ;c;continue,Back ;b;back @Desc here=[u(std)] @set here=commands &COMMANDLIST here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+attributes%cn' for instructions on setting attributes **%r%b%b%b** Type '%ch%cr+mental%cn' for setting mental attributes (first) **%r%b%b%b** Type '%ch%cr+social%cn' for setting social attributes (second) **%r%b%b%b** Type '%ch%cr+physical%cn' for setting physical attributes (third) **%r%b%b%b** Type '%ch%crcontinue%cn' to move on to the abilities room **%R &ATTRIBUTESINFO here=$+attributes:@switch [add([gte(get(%#/temp7),25)],[lt(get(%#/temp7,4.5)])]==1,{@pemit %#=You have not proceeded with chargen far enough for this step or were allready setting your freebies. Please type +progress to find out which command should be your next. Thank you.},{@pemit %#=Now it is time to set your attributes. You can see what they are if you type '+stats' which contains your sheet and which will be updated after each step has been finished. Now you have to choose if you will wish your character to be better in the social side of things, the mental side, or the physical side. To choose this put the letters S(ocial) M(ental) P(hysical) in the order of importance to you, most important letter first, and place a +order= before that. So give in '+order=MSP' or '+order=PMS'. And before you go on a warning is given: remember that you will not be allowed more then one attribute of 4 and no attributes of 5!} &ORDER here=$+order=*:&temp1 %#=%0;@switch [add([lt(get(%#/temp7),25)],[gt(get(%#/temp7),11)])]=2,{&temp8 %#=[get(%#/temp7)];&temp7 %#=5;@pemit %#=Your progress marker has been reset to let you run through the settings of mental social and physical. It will be reset to the original value once you type '+physical set'.},&temp7 %#=5;@switch/first %0=pms,@pemit %#={You will have 6 points to spend in Physical, 4 in Mental and 3 in Social. Now type +mental to see how to divide your points.},psm,@pemit %#={You will have 6 points to spend in Physical, 4 in Social and 3 in Mental.Now type +mental to see how to divide your points.},smp,@pemit %#={You will have 6 points to spend in Social, 4 in Mental and 3 in Physical. Now type +mental to see how to divide your points.},spm,@pemit %#={You will have 6 points to spend in Social, 4 in Physical and 3 in Mental. Now type +mental to see how to divide your points.},mps,@pemit %#={You will have 6 points to spend in Mental, 4 in Physical and 3 in Social. Now type +mental to see how to divide your points.},msp,@pemit %#={You will have 6 points to spend in Mental, 4 in Social and 3 in Physical. Now type +mental to see how to divide your points.},{&temp7 %#=4;@pemit %#={You have not given the right letters. Please type +attributes again and use only the letters M, P and S once.}} &MENTAL here=$+mental:@switch add(eq(get(%#/temp7),6),eq(get(%#/temp7),5))=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{&temp2 %#=[switch([get(%#/temp1)],m**,6,**m,3,4)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp6 %#=0;@switch [get(%#/temp2)]=0,@pemit %#=Something has gone wrong. Please type +attributes again to set your order once more and then go to +mental. Thank you for your patience.,{&temp7 %#=6;@pemit %#={You have [get(%#/temp2)] points to spend on the Mental stats. These mental attributes are Wits, Perception and Intelligence. To add points to either type +mental add =. To subtract type +mental subtract =.}} &MENTALADD here=$+mental add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +mental subtract,{@switch eq(get(%#/temp7),6)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=You only have [get(%#/temp2)] points left and cannot add more then that.,{@switch %0=Perception,{@switch [gt([add([get(%#/temp3)],%1)],4)][gte([add([get(%#/temp3)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)]}}},{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)]}}},Intelligence,{@switch [gt([add([get(%#/temp4)],%1)],4)][gte([add([get(%#/temp4)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)]}}},{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].}}},Wits,{@switch [gt([add([get(%#/temp5)],%1)],4)][gte([add([get(%#/temp5)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)]}}},{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].}}},@pemit %#=%0 is not a skill that I know. Please try again.};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=You have no more points left to divide. If you wish to set these mental skills and continue with social skills type '+mental set'.}} &MENTALSUBTRACT here=$+mental subtract *=*:@switch eq(get(%#/temp7),6)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch %0=perception,{@switch [lte([get(%#/temp3)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp3)]=4,&temp6 %#=0;&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].}},{@switch %0=intelligence,{@switch [lte([get(%#/temp4)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp4)]=4,&temp6 %#=0;&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].}},{@switch %0=wits,{@switch [lte([get(%#/temp5)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp5)]=4,&temp6 %#=0;&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].}},{@pemit %#=I do not know a skill called %0. Please try again.}}} &MS here=$+ms *=*:@switch %0=perception,{&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)]},intelligence,{&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)]},{&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)]};@pemit %#=You subtract %1 from your %0 , and now your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)].} &MENTALSET here=$+mental set:@switch eq(get(%#/temp7),6)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@pemit %#=You have set your mental atttributes and now your Perception is [get(%#/temp3)], your Intelligence is [get(%#/temp4)] and your Wits is at [get(%#/temp5)]. If you want to check this type '+stats'. You can continue with your Social stats by typing '+social';&perception %#=[get(%#/temp3)];&Intelligence %#=[get(%#/temp4)];&Wits %#=[get(%#/temp5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp2=mentalset;&temp7 %#=7} &SOCIAL here=$+social:@switch add(eq(get(%#/temp7),8),eq(get(%#/temp7),7))=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{&temp2 %#=[switch([get(%#/temp1)],s**,6,**s,3,4)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp7 %#=8;@switch [get(%#/temp2)]=0,@pemit %#=Something has gone wrong. Please type +attributes again and follow the commands there,@pemit %#={You have [get(%#/temp2)] points to spend on the Social stats. These social attributes are Charisma, Manipulation and Appearance. To add a point to either type +social add =. To subtract type +social subtract =.}} &SOCIALADD here=$+social add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +social subtract,{@switch eq(get(%#/temp7),8)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=You only have [get(%#/temp2)] points left and cannot add more then that.,{@switch %0=charisma,{@switch [gt([add([get(%#/temp3)],%1)],4)][gte([add([get(%#/temp3)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)]}}},{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)]}}},manipulation,{@switch [gt([add([get(%#/temp4)],%1)],4)][gte([add([get(%#/temp4)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)]}}},{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].}}},appearance,{@switch [gt([add([get(%#/temp5)],%1)],4)][gte([add([get(%#/temp5)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)]}}},{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].}}},@pemit %#=%0 is not a skill that I know. Please try again.}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=You have no more points left to divide. If you wish to set these social skills and continue with physical skills type '+social set'.} &SOCIALSUBTRACT here=$+social subtract *=*:@switch eq(get(%#/temp7),8)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch %0=charisma,{@switch [lte([get(%#/temp3)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp3)]=4,&temp6 %#=0;&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].}},{@switch %0=manipulation,{@switch [lte([get(%#/temp4)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp4)]=4,&temp6 %#=0;&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].}},{@switch %0=appearance,{@switch [lte([get(%#/temp5)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp5)]=4,&temp6 %#=0;&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)].}},{@pemit %#=I do not know a skill called %0. Please try again.}}}} &SOCIALSET here=$+social set:@switch eq(get(%#/temp7),8)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@pemit %#=You have set your social atttributes and now your charisma is [get(%#/temp3)], your manipulation is [get(%#/temp4)] and your appearance is at [get(%#/temp5)]. If you want to check this type '+stats'. You can continue with your physical stats by typing '+physical';&charisma %#=[get(%#/temp3)];&manipulation %#=[get(%#/temp4)];&appearance %#=[get(%#/temp5)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp2 %#=socialset;&temp7 %#=9} &PHYSICAL here=$+physical:@switch add(eq(get(%#/temp7),10),eq(get(%#/temp7),9))=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{&temp2 %#=[switch([get(%#/temp1)],p**,6,**p,3,4)];&temp3 %#=1;&temp4 %#=1;&temp5 %#=1;&temp7 %#=10;@switch [get(%/temp2)]=0,@pemit %#=Something has gone wrong. Please type +attributes again and follow the commands there,@pemit %#={You have [get(%#/temp2)] points to spend on the physical stats. These physical attributes are strength, dexterity and stamina. To add a point to either type +physical add =. To subtract type +physical subtract =.}} &PHYSICALADD here=$+physical add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +physical subtract,{@switch eq(get(%#/temp7),10)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=You only have [get(%#/temp2)] points left and cannot add more then that.,{@switch %0=strength,{@switch [gt([add([get(%#/temp3)],%1)],4)][gte([add([get(%#/temp3)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)]}}},{&temp3 %#=[add([get(%#/temp3)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)]}}},dexterity,{@switch [gt([add([get(%#/temp4)],%1)],4)][gte([add([get(%#/temp4)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)]}}},{&temp4 %#=[add([get(%#/temp4)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].}}},stamina,{@switch [gt([add([get(%#/temp5)],%1)],4)][gte([add([get(%#/temp5)],%1)],4)]=11,@pemit %#={If you add %1 to your %0 you wil end up with an attribute over 4, which is not allowed. Please try again.},01,{@switch [get(%#/temp6)]=1,@pemit %#=You cannot have a second attribute at level 4.,{&temp6 %#=1;&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 . Realise this is the only attribute you will be allowed on 4! If you do not wish that, then subtract it again. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)]}}},{&temp5 %#=[add([get(%#/temp5)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#={You add %1 to your %0 , and now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].}}},@pemit %#=%0 is not a skill that I know. Please try again.};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=You have no more points left to divide. If you wish to set these physical skills and continue with abilities skills type '+physical set'.}} &PHYSICALSUBTRACT here=$+physical subtract *=*:@switch eq(get(%#/temp7),10)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch %0=strength,{@switch [lte([get(%#/temp3)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp3)]=4,&temp6 %#=0;&temp3 %#=[sub([get(%#/temp3)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].}},{@switch %0=dexterity,{@switch [lte([get(%#/temp4)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp4)]=4,&temp6 %#=0;&temp4 %#=[sub([get(%#/temp4)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].}},{@switch %0=stamina,{@switch [lte([get(%#/temp5)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 1 which is not allowed. Please try again,{@switch [get(%#/temp5)]=4,&temp6 %#=0;&temp5 %#=[sub([get(%#/temp5)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide and your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)].}},{@pemit %#=I do not know a skill called %0. Please try again.}}}} &PHYSICALSET here=$+physical set:@switch eq(get(%#/temp7),10)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@pemit %#=You have set your physical atttributes and now your strength is [get(%#/temp3)], your dexterity is [get(%#/temp4)] and your stamina is at [get(%#/temp5)]. If you want to check this type '+stats'. You can continue with your abilities now by typing 'continue' and then type '+abilities'.;&strength %#=[get(%#/temp3)];&dexterity %#=[get(%#/temp4)];&stamina %#=[get(%#/temp5)];&temp1 %#=;&temp2 %#=;&temp3 %#=;&temp4 %#=;&temp5 %#=;&temp6 %#=;@switch [gt(get(%#/temp8),11)]=1,{&temp7 %#=[get(%#/temp8)];@pemit %#=Your progress marker has been reset once more. Type '+progress' to find out where you were.;&temp8 %#=},&temp7 %#=11} @lock/TeloutLock here=CHECKLOCK/1 &STD here=%R%B%BIn this room you can set your stats and then you will be sent onwards. You can leave in between your chargen and none of your settings will be lost. If you are not content with your attributes after they have already been set, you can set them anew, even if you have progressed with chargen far beyond this point. You can start attributes again, but will not be allowed to do it in another order than mental, social and physical. Your original progress marker will be reset once you start with attributes.%R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room **%R @set here=INHERIT @lock Continue =CHECKLOCK/1 @Succ Continue =You have set your attributes and continue with chargen. @Osucc Continue =set %p attributes and continues with chargen. @Odrop Continue =set %p attributes and comes to set %p abilities. &CHECKLOCK Continue =[gt(add(gt(get(%#/temp7),10),orflags(%#,wWZ)),0)] @Fail Continue =You cannot leave the room yet because you have not run through the whole of chargen yet. To see where you are with the character creation process type +progress. @set Continue =INHERIT c @Desc here=[u(std)] @set here=commands &PLUSCOMMANDS here=$+commands:@pemit %#=Commands in this room are:%r%r+progress%t%tTells you where in chargen you left off.%r+abilities%t%tHelps you order your ability choices.%r+talents%t%thelps you set your talents%r+talentslist%t%tlist of available talents%r+skills%t%t%tHelps you set skills%r+skillslist%t%tlist of available skills%r+knowledges%t%thelps you set knowledges.%r+knowledgeslist%t%tlist of available knowledges%r+talents/skills/knowledges add/subtract =%r%thelps you set your abilities. &ABILITIES here=$+abilities:@pemit %#=Now you need to set the order of importance of the abilities you choose. There are three kinds of abillities, Talents, Skills and Knowledges. For the list of these type: +talentslist or +skillslist or +knowledgeslist. To set your preferences put the letters T(alents) S(kills) and K(nowledges) in the order of importance to you, most important letter first, and place a +order= before that. So give in '+order=TSK' or '+order=SKT'. And before you go on a warning is given: remember that you will not be allowed more then two abilities at level 4 and no abilities of 5! &ABILITIESORDER here=$+order=*:@switch [add([gte(get(%#/temp7),25)],[lt(get(%#/temp7),11)])]=1,{@pemit %#=You have not proceeded with chargen far enough for this step or are allready working on freebie points. Please type +progress to find out which command should be your next. Thank you.},{@dolist lattr(%#/abil*)=&## %#=;@switch [add([lt(get(%#/temp7),25)],[gt(get(%#/temp7),18)])]=2,{&temp8 %#=[get(%#/temp7)];@pemit %#=Your progress marker has been reset to the setting of abilities and will be reset back to the original value once you have typed '+knowledges set'.};@wait 1=&temp7 %#=12;&temp 2%#=0;&temp3 %#=0;&temp4 %#=0;&temp5 %#=0;&temp1 %#=%0;@switch/first %0=tks,@pemit %#={You will have seven points to spend in Knowledges, eleven in Talents and four in Skills. Now type +Talents to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.},tsk,@pemit %#={You will have four points to spend in Knowledges, seven in Skills and eleven in Talents.Now type +Talents to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.},skt,@pemit %#={You will have eleven points to spend in Skills, four in Talents and seven in Knowledges. Now type +Talents to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.},stk,@pemit %#={You will have eleven points to spend in Skills, four in Knowledges and seven in Talents. Now type +Talents to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.},kts,@pemit %#={You will have seven points to spend in Talents, eleven in Knowledges and four in Skills. Now type +Talents to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.},kst,@pemit %#={You will have four points to spend in Talents, seven in Skills and eleven in Knowledges. Now type +Talents to see how to divide your points. Primary abilities (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.},@pemit %#={You have not given the right letters. Please type +attributes again and use only the letters K, T and S once.}} &TALENTS here=$+Talents:@switch add(eq(get(%#/temp7),12),eq(get(%#/temp7),13))=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{&temp7 %#=13;&temp3=0;&temp2 %#=[switch([get(%#/temp1)],t**,11,**t,4,7)];@switch [get(%#/temp2)]=0,@pemit %#=Something has gone wrong. Please type +abilities again and follow the commands there,@pemit %#={You have [get(%#/temp2)] points to spend on the Talents stats. Primary talents (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. These Talents attributes can be found by typing +talentslist%rTo add a point to either type +Talents add =. To subtract type +Talents subtract =.%r%rFor secondary abilities do not take the ~ from in front of the name.}} &TALENTSADD here=$+Talents add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +talents subtract,{@switch eq(get(%#/temp7),13)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [lt([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))]=1,@pemit %#=You only have [get(%#/temp2)] points left and cannot add more then that. Or twice that number in secundary talents.,{@switch/first [gt([add([get(%#/abiltal%0)],%1)],4)][gt([add([get(%#/abiltal%0)],%1)],3)]=11,@pemit %#=You are not allowed an ability of four or higher,01,{@switch [get(%#/temp3)]=2,@pemit %#=You cannot have a third ability at level 4.,{@switch [match([get(~~~/talentlist)],%0)]=0,@pemit %#=That is not a valid talent. Type '+talentslist' and choose a talent from the given list.,{&abiltal%0 %#=[add([get(%#/abiltal%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],[mul(switch(left(%0,1),~,0.5,1),%1)])];&temp3 %#=[add([get(%#/temp3)],1)];@pemit %#=You have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the talents you now have type '+stats'. Please realise this ability of 4 is number [get(%#/temp3)] of two you will be allowed!}}},{@switch [match([get(~~~/talentlist)],%0)]=0,@pemit %#=That is not a valid talent. Type '+talentslist' and choose a talent from the given list.,{&abiltal%0 %#=[add([get(%#/abiltal%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],[mul(switch(left(%0,1),~,0.5,1),%1)])];@pemit %#=You have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the talents you now have type '+stats'.}}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=If you wish to use your talents as they are now type '+set talents'.}} &LISTINGTALENTS here=$+talentslist:@pemit %#=Talents attributes are %r[columns([get(~~~/talentlist)],19)]%r%rPrimary talents (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. .If this list is too long and rolls off your screen type '+talentslist1' and you will get the list in parts. &TALENTSSUBTRACT here=$+talents subtract *=*:@switch eq(get(%#/temp7),13)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [match([get(~~~/talentlist)],%0)]=0,@pemit %#=That is not a valid talent. Type '+talentlist' and choose a talent from the given list.,{@switch [lt([get(%#/abiltal%0)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 0 which is not allowed. Please try again,{@switch [get(%#/abiltal%0)]=4,&temp3 %#=[sub([get(%#/temp3)],1)];&abiltal%0 %#=[sub([get(%#/abiltal%0)],%1)];&temp2 %#=[add([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the talents you have chosen type +stats.}}} &TALENTSSET here=$+set talents:@switch eq(get(%#/temp7),13)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@dolist [lnum([words([lattr(%#/abiltal*)])])]=@pemit %#=You have set your [ljust([mid([elements([lattr(%#/abiltal*)],[add(##,1)])],7,[sub([strlen([elements([lattr(%#/abiltal*)],[add(##,1)])])],7)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/abiltal*)],[add(##,1)])])],2)];&temp7 %#=14;@pemit %#=You have set your talents. To continue with Skills please type +skills.} &SKILLS here=$+Skills:@switch add(eq(get(%#/temp7),14),eq(get(%#/temp7),15))=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{&temp2 %#=[switch([get(%#/temp1)],s**,11,**s,4,7)];@switch [get(%#/temp2)]=0,@pemit %#=Something has gone wrong. Please type +attributes again and follow the commands there,{&temp7 %#=15;@pemit %#={You have [get(%#/temp2)] points to spend on the Skills stats. Primary skills (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. For the list of skills type '+skillslist'.%rTo add a point to either type +Skills add =. To subtract type +Skills subtract =.%r%rIf you buy secundary skills do not take the ~ from before the name.}}} &SKILLSADD here=$+Skills add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +skills subtract,{@switch eq(get(%#/temp7),15)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [lt([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))]=1,@pemit %#=You only have [get(%#/temp2)] points left and cannot add more then that.,{@switch/first [gt([add([get(%#/abilski%0)],%1)],4)][gt([add([get(%#/abilski%0)],%1)],3)]=11,@pemit %#=You are not allowed an ability of four or higher,01,{@switch [get(%#/temp3)]=2,@pemit %#=You cannot have a third ability at level 4.,{@switch [match([get(~~~/skilllist)],%0)]=0,@pemit %#=That is not a valid skill. Type '+skillslist' and choose a skill from the given list.,{&abilski%0 %#=[add([get(%#/abilski%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];&temp3 %#=[add([get(%#/temp3)],1)];@pemit %#=You have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the Skills you now have type '+stats'. Please realise this ability of 4 is number [get(%#/temp3)] of two you will be allowed!}}},{@switch [match([get(~~~/skilllist)],%0)]=0,@pemit %#=That is not a valid skill. Type '+skillslist' and choose a skill from the given list.,{&abilski%0 %#=[add([get(%#/abilski%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];@pemit %#=You have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the Skills you now have type '+stats'.}}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=If you wish to use your Skills as they are now type '+set Skills'.}} &LISTINGSKILLS here=$+Skillslist:@pemit %#=Skills attributes are %r[columns([get(~~~/skilllist)],19)]%r%rPrimary skills (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level.If this list is too long and long and rolls off your screen type '+skillslist1' and you will get the list in parts. &SKILLSSUBTRACT here=$+Skills subtract *=*:@switch eq(get(%#/temp7),15)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [match([get(~~~/skilllist)],%0)]=0,@pemit %#=That is not a valid skill. Type '+skilllist' and choose a skill from the given list.,{@switch [lt([get(%#/abilski%0)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 0 which is not allowed. Please try again,{@switch [get(%#/abilski%0)]=4,&temp3 %#=[sub([get(%#/temp3)],1)];&abilski%0 %#=[sub([get(%#/abilski%0)],%1)];&temp2 %#=[add([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the Skills you have chosen type +stats.}}} &SKILLSSET here=$+set skills:@switch eq(get(%#/temp7),15)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [get(%#/temp2)]=0,{@dolist [lnum([words([lattr(%#/abilski*)])])]=@pemit %#=You have set your [ljust([mid([elements([lattr(%#/abilski*)],[add(##,1)])],7,[sub([strlen([elements([lattr(%#/abilski*)],[add(##,1)])])],7)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/abilski*)],[add(##,1)])])],2)];&temp7 %#=16;@pemit %#=You have set your skills. To continue with Knowledges please type +knowledges.},@pemit %#=You cannot set your stats yet for you have [get(%#/temp2)] points left to spend. Type '+set skills' once that has been brought down to zero.} &KNOWLEDGES here=$+knowledges:@switch add(eq(get(%#/temp7),16),eq(get(%#/temp7),17))=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{&temp2 %#=[switch([get(%#/temp1)],k**,11,**k,4,7)];@switch [get(%#/temp2)]=0,@pemit %#=Something has gone wrong. Please type +attributes again and follow the commands there,{&temp7 %#=17;@pemit %#={You have [get(%#/temp2)] points to spend on the knowledges stats. Primary knowledges (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. The list of knowledges you can find in '+knowledgeslist'.%rTo add a point to either type +knowledges add =. To subtract type +knowledges subtract =.%r%rIf you buy secondary knowledges do not take the ~ from before the name.}}} &KNOWLEDGESADD here=$+knowledges add *=*:@switch [sign(%1)]=-1,@pemit %#=You cannot add a negative value please use +knowledges subtract,{@switch eq(get(%#/temp7),17)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [lt([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))]=1,@pemit %#=You only have [get(%#/temp2)] points left and cannot add more then that.,{@switch/first [gt([add([get(%#/abilkno%0)],%1)],4)][gt([add([get(%#/abilkno%0)],%1)],3)]=11,@pemit %#=You are not allowed an ability of four or higher,01,{@switch [get(%#/temp3)]=2,@pemit %#=You cannot have a third ability at level 4.,{@switch [match([get(~~~/knowledgelist)],%0)]=0,@pemit %#=That is not a valid knowledge. Type '+knowledgeslist' and choose a knowledge from the given list.,{&abilkno%0 %#=[add([get(%#/abilkno%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];&temp3 %#=[add([get(%#/temp3)],1)];@pemit %#=You have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the knowledges you now have type '+stats'. Please realise this ability of 4 is number [get(%#/temp3)] of two you will be allowed!}}},{@switch [match([get(~~~/knowledgelist)],%0)]=0,@pemit %#=That is not a valid knowledge. Type '+knowledgeslist' and c@decompile herehoose a knowledge from the given list.,{&abilkno%0 %#=[add([get(%#/abilkno%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];@pemit %#=You have set your %0 to %1. You now have [get(%#/temp2)] points left. For a full overview of the knowledges you now have type '+stats'.}}};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=If you wish to use your knowledges as they are now type '+set knowledges'.}} &LISTINGKNOWLEDGES here=$+knowledgeslist:@pemit %#=knowledges attributes are %r[columns([get(~~~/knowledgelist)],19)]%r%rPrimary knowledges (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. If this list is too long and long and rolls off your screen type '+knowledgeslist1' and you will get the list in parts. &KNOWLEDGESSUBTRACT here=$+knowledges subtract *=*:@switch eq(get(%#/temp7),17)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [match([get(me/knowledgelist)],%0)]=0,@pemit %#=That is not a valid knowledge. Type '+knowledgelist' and choose a knowledge from the given list.,{@switch [lt([get(%#/abilkno%0)],%1)]=1,@pemit %#=If you subtract that much of your %0 you will end up with an attribute below 0 which is not allowed. Please try again,{@switch [get(%#/abilkno%0)]=4,&temp3 %#=[sub([get(%#/temp3)],1)];&abilkno%0 %#=[sub([get(%#/abilkno%0)],%1)];&temp2 %#=[add([get(%#/temp2)],mul(switch(left(%0,1),~,0.5,1),%1))];@pemit %#=You subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the knowledges you have chosen type +stats.}}} &KNOWLEDGESSET here=$+set knowledges:@switch eq(get(%#/temp7),17)=0,@pemit %#=You have not proceeded with chargen far enough for this step. Please type +progress to find out which command should be your next. Thank you.,{@switch [get(%#/temp2)]=0,{@dolist [lnum([words([lattr(%#/abilkno*)])])]=@pemit %#=You have set your [ljust([mid([elements([lattr(%#/abilkno*)],[add(##,1)])],7,[sub([strlen([elements([lattr(%#/abilkno*)],[add(##,1)])])],7)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/abilkno*)],[add(##,1)])])],2)];@switch [gt(get(%#/temp8),18)]=1,{&temp7 %#=[get(%#/temp8)];@pemit %#=Your progress marker has been reset to the original value.},&temp7 %#=18;@pemit %#=You have set your knowledges. To continue to the next room take the exit 'continue' and there type +backgrounds.},@pemit %#=You cannot set your stats yet for you have [get(%#/temp2)] points left to spend. Type '+set knowledges' once that has been brought down to zero.} &GENFLAWS1LIST here=$+knowledgeslist1:@pemit %#=These are the first half of the knowledges all characters can choose. Please don't choose anything you do not know or understand.%r[columns(extract(get(~~~/knowledgelist),1,div(words(get(~~~/knowledgelist)),2)),19)]%rPlease type '+knowledgeslist2' for the rest. &GENFLAWS2LIST here=$+knowledgeslist2:@pemit %#=These are the second half of the knowledges all characters can choose. Please don't choose anything you do not know or understand.%r[columns(extract(get(~~~/knowledgelist),div(words(get(~~~/knowledgelist)),2),words(get(~~~/knowledgelist))),19)] &SKILLS1LIST here=$+skillslist1:@pemit %#=These are the first half of the skills all characters can choose. Please don't choose anything you do not know or understand.%r[columns(extract(get(~~~/skilllist),1,div(words(get(~~~/skilllist)),2)),19)]%rPlease type '+skillslist2' for the rest. &SKILLS2LIST here=$+skillslist2:@pemit %#=These are the second half of the skills all characters can choose. Please don't choose anything you do not know or understand.%r[columns(extract(get(~~~/skilllist),div(words(get(~~~/skilllist)),2),words(get(~~~/skilllist))),19)] &TALENTS1LIST here=$+talentslist1:@pemit %#=These are the first half of the talents all characters can choose. Please don't choose anything you do not know or understand.%r[columns(extract(get(~~~/talentlist),1,div(words(get(~~~/talentlist)),2)),19)]%rPlease type '+talentslist2' for the rest. &TALENTS2LIST here=$+talentslist2:@pemit %#=These are the second half of the talents all characters can choose. Please don't choose anything you do not know or understand.%r[columns(extract(get(~~~/talentlist),div(words(get(~~~/talentlist)),2),words(get(~~~/talentlist))),19)] @lock/TeloutLock here=CHECKLOCK/1 &STD here=%R%B%BThis is the room where abilities and secondary abilities are set. If you don't remember your next command type '+progress' and you will be given where to go on, even if you're not in this room. And for an overview of commands in this room type '+commands'. If you are not content with your abilities after they have already been set, you can set them anew. Even if you have progressed beyond this point you can reset your abilities without losing your progress marker. But you will not be allowed to do it in another order then knowledges, talents and skills. To do that you will need to start again from '+abilities'. After you have typed '+set knowledges' you will have your original marker returned to you if it was higher then the knowledges marker.%R @set here=INHERIT @force me=@pemit me={{Please give in the next command:%%r@open Continue ;c;continue=[search(room=General Character Generation Room 4)],Back for Mortals ;bm;back for mortals}} @@ IMPORTANT! please first give in the command that you see on @@ your screen. then continue @lock Continue =CHECKLOCK/1 @Succ Continue =You have set your abilities and continue with chargen. @Osucc Continue =set %p abilities and continues with chargen. @Odrop Continue =set %p abilities and comes to set %p backgrounds. &CHECKLOCK Continue =[gte(add(gte(get(%#/temp7),18),hasflag(%#,W),hasflag(%#,w)),1)] @Fail Continue =You cannot leave the room yet because you have not run through the whole of chargen yet. To see where you are with the character creation process type +progress. @set Continue =INHERIT c @lock Back for Mortals =CHECKLOCK/1 &CHECKLOCK Back for Mortals =[gte(add(hasflag(%#,W),hasflag(%#,w),mul(0.5,match(get(%#/race),mortal)),mul(0.5,gte(get(%#/temp7),4.5))),1)] @Fail Back for Mortals =You either are not a mortal but a super, or do not belong in this room. Please type '+progress' to find out where you are supposed to be, or try the 'back for supers' door. @set Back for Mortals =INHERIT @lock Back for Supers =CHECKLOCK/1 &CHECKLOCK Back for Supers =[gte(add(orflags(%#,wWZ),mul(0.5,gt(member(get(~~~/racelist),capstr(first(get(%#/race)))),1)),mul(0.5,gte(get(%#/temp7),4.5))),1)] @Fail Back for Supers =You either are not a super but a mortal, or should not be in this room. Please type '+progress' to find out where you are supposed to be, or try the 'back for mortals' door. @set Back for Supers =INHERIT @dig General Character Generation Room 5=Continue ;c;continue,Back ;b;back @lock/TeloutLock here=CHECKLOCK/1 @set here=commands &PLUSCOMMANDS here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+backgrounds%cn' for instructions on setting your backgrounds **%r%b%b%b** Type '%ch%cr+virtues%cn' for instructions on setting your virtues **%R%b%b%b** Type '%ch%crcontinue%cn' to move on to the next room **%R &BACKGROUNDINFO here=$+backgrounds:@pemit %#=%R%B%BYou have 5 points of backgrounds. You can choose these from the following list:%R%R%B%B[get(~~~/backgrounds[first(get(%#/race))])].%r%r%B%BTo add a background type '%ch%cr+background add =%cn'%r%R%B%BTo subtract a background type '%ch%cr+background subtract =%cn'%R;@switch [gte(add([lt(get(%#/temp7),25)],[gt(get(%#/temp7),18)]),2)]=1,&temp8 %#=[get(%#/temp7)];@wait 1=&temp7 %#=18;&temp2 %#=5;@dolist lattr(%#/backg*)=&## %#= &BACKGROUNDSADD here=$+background add *=*:@switch eq(get(%#/temp7),18)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot take more then that in backgrounds.%R,{@switch [match([get(~~~/backgrounds[first(get(%#/race))])],%0)]=0,@pemit %#=%R%B%BThat is not a valid background. Type '%ch%cr+backgrounds%cn'' and choose a background from the given list.%R,{&backg%0 %#=[add([get(%#/backg%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou have set your %0 background to [get(%#/backg%0)]. You now have [get(%#/temp2)] points left. For a full overview of the backgrounds you now have type '%ch%cr+stats%cn'.%R }};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BIf you wish to use your backgrounds as they are now type '%ch%cr+backgrounds set%cn'.%R} &BACKGROUNDSSUBTRACT here=$+background subtract *=*:@switch eq(get(%#/temp7),18)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [match([get(~~~/backgrounds[first(get(%#/race))])],%0)]=0,@pemit %#=%R%B%BThat is not a valid background. Type '%ch%cr+backgrounds%cn' and choose a background from the given list.%R,{@switch [lt([get(%#/backg%0)],%1)]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with a background below 0 which is not allowed. Please try again.%R,{&backg%0 %#=[sub([get(%#/backg%0)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the backgrounds you have chosen type '%ch%cr+stats%cn'.%R}}} &BACKGROUNDSSET here=$+backgrounds set:@switch eq(get(%#/temp7),18)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%crprogress%cn' to find out which command should be your next. Thank you.%R,{@dolist [lnum([words([lattr(%#/backg*)])])]=@pemit %#=%B%BYou have set your [ljust([mid([elements([lattr(%#/backg*)],[add(##,1)])],5,[sub([strlen([elements([lattr(%#/backg*)],[add(##,1)])])],5)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/backg*)],[add(##,1)])])],2)];@switch [gt(get(%#/temp8),18)]=1,{&temp7 %#=[get(%#/temp8)];&temp8 %#=},&temp7 %#=19;@pemit %#=%R%B%BYou have set your backgrounds. To continue with your virtues please type '%ch%cr+virtues%cn'.%R} &VIRTUEINFO here=$+virtues:@dolist lattr(%#/virt*)=&## %#=;@switch [gt(match(Changeling Nunnehi Mage,[capstr(first(get(%#/race)))]),0)]=1,{@switch [gt(get(%#/temp7),20)]=0,&temp7 %#=20;@pemit %#=%R%B%BYour race has no virtues to set. To continue with your Gifts type '%ch%crcontinue%cn' and go to the next room. There type '%ch%cr+gifts%cn'.%R},{@switch [capstr(first(get(%#/race)))]=Garou,{@switch [capstr(extract(get(%#/race),3,1))]=Theurge,&virtuWisdom %#=3,Philodox,&virtuHonor %#=3,Galliard,{&virtuglory %#=2;&virtuwisdom %#=1},Ahroun,{&virtuglory %#=2;&virtuhonor %#=1},{&virtuglory %#=1;&virtuwisdom %#=1;&virtuhonor %#=1};@pemit %#=%R%B%BYour virtues are set according to your Auspice. Look at '%ch%cr+stats%cn' to see them.%R;@switch [gt(get(%#/temp7),20)]=0,&temp7 %#=20},Nuwisha,{&virtuglory %#=1;&virtuwisdom %#=1;&virtuhumor %#=1;@pemit %#=%R%B%BYour virtues are set according to your Auspice. Look at '%ch%cr+stats%cn' to see them.%R;@switch [gt(get(%#/temp7),20)]=0,&temp7 %#=20},Bastet,{@pemit %#=%R%B%BYou recieve one point in Ferocity one in Cleverness and one in Honor.%R;&virtuferocity %#=1;&virtucleverness %#=1;&virtuhonor %#=1;@switch [gt(get(%#/temp7),20)]=0,&temp7 %#=20},Corax,{@pemit %#=%R%B%BVirtues for your race have not been set up yet. Please ask your wizard to set them.%R;@switch [gt(get(%#/temp7),20)]=0,&temp7 %#=20},Ratkin,{@pemit %#=%R%B%BVirtues for your race have not been set up yet. Please ask your wizard to set them.%R;@switch [gt(get(%#/temp7),20)]=0,&temp7 %#=20},{@pemit %#=%R%B%BYou have 7 points to spend on virtues. Each will start with a base of 1. You can choose from the following list:%R%R%B%B[get(~~~/virtuelist[first(get(%#/race))])]%R%R%B%BTo add a virtue type '%ch%cr+virtues add =%cn'%R%r%B%BTo subtract a virtue type '%ch%cr+virtues subtract =%cn'%R;&temp2 %#=10;@dolist lattr(%#/virt*)=&## %#=;@switch [gt(get(%#/temp7),20)]=1,{&temp8 %#=[get(%#/temp7)];&temp7 %#=19}}} &VIRTUESADD here=$+virtues add *=*:@switch eq(get(%#/temp7),19)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [lt([get(%#/temp2)],%1)]=1,@pemit %#=%R%B%BYou only have [get(%#/temp2)] points left and cannot take more then that in virtues.%R,{@switch [match([get(~~~/virtuelist[first(get(%#/race))])],%0)]=0,@pemit %#=%R%B%BThat is not a valid virtue. Type '%ch%cr+virtues%cn' and choose a virtue from the given list.%R,{&virtu%0 %#=[add([get(%#/virtu%0)],%1)];&temp2 %#=[sub([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou have set your %0 virtue to [get(%#/virtu%0)]. You now have [get(%#/temp2)] points left. For a full overview of the virtues you now have type '%ch%cr+stats%cn'.%R }};@wait 2=@switch [get(%#/temp2)]=0,@pemit %#=%R%B%BIf you wish to use your virtues as they are now type '%ch%cr+virtues set%cn'.%R} &VIRTUESSUBTRACT here=$+virtues subtract *=*:@switch eq(get(%#/temp7),19)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@switch [match([get(~~~/virtuelist[first(get(%#/race))])],%0)]=0,@pemit %#=%R%B%BThat is not a valid virtue. Type '%ch%cr+virtues%cn' and choose a virtue from the given list.%R,{@switch [lt([get(%#/virtu%0)],add(%1,1))]=1,@pemit %#=%R%B%BIf you subtract that much of your %0 you will end up with a virtue below 1 which is not allowed. Please try again.%R,{&virtu%0 %#=[sub([get(%#/virtu%0)],%1)];&temp2 %#=[add([get(%#/temp2)],%1)];@pemit %#=%R%B%BYou subtract %1 from your %0. Now you have [get(%#/temp2)] points to divide. For a full overview on the virtues you have chosen type '%ch%cr+stats%cn'.%R}}} &VIRTUESSET here=$+virtues set:@switch eq(get(%#/temp7),19)=0,@pemit %#=%R%B%BYou have not proceeded with chargen far enough for this step. Please type '%ch%cr+progress%cn' to find out which command should be your next. Thank you.%R,{@dolist [lnum([words([lattr(%#/virtu*)])])]=@pemit %#=%B%BYou have set your [ljust([mid([elements([lattr(%#/virtu*)],[add(##,1)])],5,[sub([strlen([elements([lattr(%#/virtu*)],[add(##,1)])])],4)])],23,.)] to [ljust([get(%#/[elements([lattr(%#/virtu*)],[add(##,1)])])],2)];@switch [gt(get(%#/temp8),20)]=1,{&temp7 %#=[get(%#/temp8)];&temp8 %#=},&temp7 %#=20;@pemit %#=%R%B%BYou have set your virtues. To continue with your Gifts type '%ch%crcontinue%cn' and go to the next room. There type '%ch%cr+gifts%cn'.%R} &LISTINGSYSTEMS here=$+list sys*:@pemit %#={With 'system' settings the following gamesystem values are meant: [get(~~~/systemlist)]. How much of each of these a character can have is dependant on Houserules. Here starting characters are not allowed values over 5 in willpower (for all races), 10 points in Humanity (for Vampire, and mortal and mortal+), 6 rage or totem (totem is for Nuwisha, rage for Garou), nothing over 7 in gnosis (which is for shifters), nothing over 20 in Quintessence (which is for all Mages, not just the starting ones), nothing over 5 in Arete and preferably not over 3 for starting chars (arete is for mages), and 10 dots in glamour (for Fae).%r%rPlease make sure these values are adhered to, because the code will not limit these to allow setting of more advanced characters as well. The command to set any of these to any value (you can also wipe them by setting a value of 0) is '+system ==} &SETSYSTEM here=$+sys** *=*=*:@switch [gt(match(type(*%2),PLAYER),0)]=0,@pemit %#=I"m sorry but %2 does not seem to be a player.,{@switch [gt(match(get(~~~/racelist),first(get(*%2/race))),0)]=0,@pemit %#=I'm sorry but [name(*%2)] does not seem to have a valid race set.,{@switch [isnum(%4)]=0,@pemit %#=I"m sorry but the value of %3 needs to be a number.,{@switch [gt(match(get(~~~/systemlist),%3),0)]=0,@pemit %#=I'm sorry but I do not know %3 as a systemvalue.,{@switch %4=0,&syst%3 *%2=,&syst%3 *%2=%4;@pemit %#=You have set %3 for [name(*%2)] to a value of %4.}}}} @Desc here=[u(std)] &BACKGROUNDSRACELIST here=$+list * b*g*:@switch [gt(match(get(~~~/racelist),%0),0)]=0,@pemit %#=I'm sorry but I do not know that race.,@pemit %#=All backgrounds for race %0 are:%r[columns(get(~~~/backgrounds%0),19)]]Please remember that if you wish to give a player's background a value with '+background == that the race for that player has been set correctly for the code will not allow backgrounds that are not suited for that race (like no Past Life for a Vampire. To remove a certain background from the sheet just set it's value to 0.) &STD here=%R%B%BNow it is time to choose your backgrounds. You can set your backgrounds here, followed by your virtues. After that you will be sent to the next room for your merits, flaws and racial gifts. You can also reset your backgrounds or virtues here if you've already progressed to the next room. Just type '%ch%cr+backgrounds%cn' or '%ch%cr+virtues%cn' and you will be allowed to reset these without losing your progress marker.%R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room **%R @set here=INHERIT @lock Continue =CHECKLOCK/1 @Succ Continue =You have set your backgrounds and virtues and continue with chargen. @Osucc Continue =set %p backgrounds and virtues and continues with chargen. @Odrop Continue =set %p backgrounds and virtues and comes to set %p gifts. &CHECKLOCK Continue =[gte(add(gte(get(%#/temp7),20),hasflag(%#,W),hasflag(%#,w)),1)] @Fail Continue =You cannot leave the room yet because you have not run through the whole of chargen yet. To see where you are with the character creation process type +progress. @set Continue =INHERIT c &COMMANDLIST here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+gifts%cn' for instructions on setting your gifts **%r%b%b%b** Type '%ch%cr+gifts%cn' for for an overview of gifts for that race **%R%R%B%BFor Mortal+, changeling, nunnehi, mage and vampire:%r%b%b%b** Type '%ch%cr+gift add=%cn' to add a gift **%r%b%b%b** Type '%ch%cr+gift remove=%cn' to remove a gift **%R%R%B%BFor Garou and Bastet and other Shifters:%r%b%b%b** Type '%ch%cr+breedgift=%cn' to add your breedgift **%r%b%b%b** Type '%ch%cr+garouauspicegift=%cn' to add your auspice gift **%r%b%b%b** Type '%ch%cr+bastetpryiogift=%cn' to add your pryio gift **%r%b%b%b** Type '%ch%cr+tribegift=%cn' to add your tribe gift **%R%R%B%BFor all characters:%R%b%b%b** Type '%ch%cr+merits-flaws%cn' to begin setting your merits and flaws **%R%b%b%b** Type '%ch%cr+merits add/remove %cn' to add or remove merits **%R%b%b%b** Type '%ch%cr+flaws add/remove %cn' to add or remove flaws **%R%b%b%b** Type '%ch%cr+merits-flaws set%cn' to confirm your merits and flaws **%R%b%b%b** Type '%ch%crcontinue%cn' to move on to the next room **%R &MORTALGIFTS here=$+mortalgifts:@pemit %#=%R%B%BMortals do not have gifts.%R &GIFTSINFO here=$+gifts:@switch [gte(add([gt(get(%#/temp7),22)],[lt(get(%#/temp7),25)]),2)]=1,&temp8 %#=[get(%#/temp7)];@wait 1=&temp7 %#=21;@dolist lattr(%#/spec*)=&## %#=;@trig me/gifts[first(get(%#/race))]=%# &GIFTSMORTAL here=@pemit %0=%R%B%BSince you are a mortal you will have no gifts. You can type '%ch%cr+gifts set%cn' to continue to the next step.%R;@switch [gt(get(*%0/temp8),22)]=1,{@wait 2=&temp7 *%0=[get(*%0/temp8)];@wait 3=&temp8 *%0=},&temp7 *%0=22 &GIFTSMORTAL+ here=@pemit %0=%R%B%BYou have three points to spend on Gifts. Each of these gifts is an area where you can have an expertise between one to three dots. Each special group of Mortal+ has it's own gifts. For Gypsy or Inquisition Gifts you need to be part of that group. Numinae gifts can be given to everyone. To take Thaumaturgy spells you need to have had a teacher in these. For the gifts for your race type '+mortal+gifts'.%r%r%B%BTo take a dot in a gift please type '%ch%cr+mortal+gift add=%cn%r%R%B%BTo remove a dot in a gift please type '%ch%cr+mortal+gift remove=%cn'.%R;&temp3 %0=3 @set here=commands &MORTAL+GIFTS here=$+mortal+gifts:@switch [capstr(first(get(%#/race)))]=Mortal+,{@pemit %#=%R%B%BNow to the lists of Gifts:%r%R%B%BFor Kinain (and ONLY for Kinain) there is:%R%B%BFaeBlood%r%R%B%BFor Kinfolk (and ONLY for Kinfolk) there is:%R%B%BPureBreed%r%R%B%BFor Gypsy:%R%B%B[extract(get(~~~/giftlistmortal+),1,14)]%r%R%B%BFor Sorceror:%R%B%B[extract(get(~~~/giftlistmortal+),15,18)]%rFor Inquisition:%R%B%B[extract(get(~~~/giftlistmortal+),33,8)]%r%R%B%BNuminae gifts that people are born with are:%R%B%B[extract(get(~~~/giftlistmortal+),41,4)]%r%R%B%BThaumaturgy spells consist of the following groups:%R%B%BIntelligence, Perception and Wits%R%R%B%BFor each of these words the right spell will later be inserted if you chose it as gift (for example perception1 stands for the spell Scent-of-the-Vampyre but that will happen once you have spent your freebies.%r%r%B%BThe command to use is: '%ch%cr+add/rem mortal+gift %cn'},@pemit %#=%R%B%BYou are not Mortal+ so cannot use this command.%R &MORTAL+GIFTADD here=$+mortal+gift add=*:@switch [get(%#/temp3)]=0,@pemit %#=%R%B%BYou have no more points left to spend. If you are happy with your choices please type '%ch%cr+gifts set%cn'.%R,{@switch [gt(match(get(~~~/giftlistmortal+),%0),0)]=0,@pemit %#=%R%B%BI'm sorry but I do not know that Gift. If you wish to know what choices you have type '%ch%cr+mortal+gifts%cn'. Please try again.%R,{&spec%0 %#=[add([get(%#/spec%0)],1)];&temp3 %#=[sub([get(%#/temp3)],1)];@pemit %#=%R%B%BYou have chosen the Gift %0 and now have [get(%#/spec%0)] dots in it. You have [get(%#/temp3)] points left to spend.%R} &MORTAL+GIFTREM here=$+mortal+gift remove=*:@switch [gt(match(capstr(first(get(%#/race))),mortal+),0)]=0,@pemit %#=%R%B%BI fear you are not a mortal+ and cannot use this command. Look at '%ch%cr+stats%cn' to know what race you are.%R,{@switch [gt(get(%#/spec%0),0)]=0,@pemit %#=%R%B%BYou do not have that gift. Please type '%ch%cr+stats%cn' and make sure you write the gift you wish to remove exactly as you see it on your sheet.%R,{&spec%0 %#=[sub(get(%#/spec%0),1)];&temp3 %#=[add(get(%#/temp3),1)];@pemit %#=%R%B%BYou have removed one dot of %0 and so have [switch([get(%#/spec%0)],0,none,[get(%#/spec%0)] dots)] in it left. You now have [get(%#/temp3)] points to spend once more.%R}} &GIFTSSET here=$+gifts set:@switch [gt(get(%#/temp3),0)]=1,@pemit %#=%R%B%BYou have not chosen all of your gifts yet. First spend all your points and then set your gifts.%R,{@pemit %#=%R%B%BYou set your gifts and can now type '%ch%cr+merits-flaws%cn' to set your merits and flaws.%R;@switch [gt(get(%#/temp8),22)]=1,{&temp7 %#=[get(%#/temp8)];@wait 1=&temp8 %#=},&temp7 %#=22} &GIFTSBASTET here=&temp3 *%0=3;@pemit *%0={%R%B%BYou will have three points to spend on gifts. One gift comes from your breed, one from your pryio, and one from your tribe. For information on which gifts you can choose type '%ch%cr+bastetgifts%cn'. For these gifts we have not made options to remove them, so if you run into trouble because you have chosen the wrong gifts, just type '%ch%cr+gifts%cn' in this room again and you can start choosing them once more.%r%r%B%BTo add your breedgift type '%ch%cr+bastetbreedgift=%cn'%R%B%BTo add your pryiogift type '%ch%cr+bastetpryiogift=%cn'%R%B%BTo add your tribegift type '%ch%cr+bastettribegift=%cn'%R%R%B%BPlease make sure you write the name of the gift exactly as it is shown in the list, including the - instead of spaces.%R} &BASTETGIFTS here=$+bastetgifts:@switch [capstr(first(get(%#/race)))]=Bastet,@pemit %#={%R%B%BSince you are a [capstr(rest(get(%#/race)))] you will have the choice from the following gifts:%rF%R%B%Bor [extract(get(%#/race),2,1)]:%R%B%B[extract(get(~~~/bastetgifts[extract(get(%#/race),2,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),3,1)]:%R%B%B[extract(get(~~~/bastetgifts[extract(get(%#/race),3,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),6,1)]:%R%B%B[extract(get(~~~/bastetgifts[extract(get(%#/race),6,1)]),1,3)]%r%R%B%BIf there is a Level-2 in your last list do not chose it for Gift, that means your tribe has 2 gifts for first level chars, not 3.%R%R%B%BTo set your breedgift type '%ch%cr+bastetbreedgift=%cn%R}.,@pemit %#={%R%B%BBastet have many Gifts, and since you are not a bastet it would be a little too complex to give an overview of all existing gifts here. It would be best if you look in a WW sourcebook.%R} &BASTETBREEDGIFT here=$+bastetbreedgift=*:@switch [gt(match(capstr(first(get(%#/race))),Bastet),0)]=0,@pemit %#=%R%B%BYou are not a bastet so cannot choose a breedgift.%R,{@switch [lt(get(%#/temp3),3)]=1,@pemit %#=%R%B%BYou have already chosen a breedgift. Please try your pryiogift or tribegift ('%ch%cr+commands%cn' for more help).%r,{@switch [gt(match([extract(get(~~~/bastetgifts[extract(get(%#/race),2,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that breedgift. Please type '%ch%cr+bastetgifts%cn' and choose from that list.%R,{&temp3 %#=2;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your breedgift. Now choose your pryiogift. ('%ch%cr+bastetpryiogift=%cn').%R}}} &BASTETPRYIOGIFT here=$+bastetpryiogift=*:@switch [gt(match(capstr(first(get(%#/race))),Bastet),0)]=0,@pemit %#=%R%B%BYou are not a bastet so cannot choose an pryiogift.%R,{@switch [get(%#/temp3)]=1,@pemit %#=%R%B%BYou have already chosen an pryiogift. Please try your tribegift ('%ch%cr+commands%cn' for more help).%R,{@switch [get(%#/temp3)]=3,@pemit %#=%R%B%BYou still need to choose a breedgift. Type '%ch%cr+bastetgifts%cn' for your list.%R,{@switch [gt(match([extract(get(~~~/bastetgifts[extract(get(%#/race),3,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that pryiogift. Please type '%ch%cr+bastetgifts%cn' and choose from that list.%R,{&temp3 %#=1;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your pryiogift. Now choose your tribegift. ('%ch%cr+bastettribegift=%cn')%R.}}}} &BASTETTRIBEGIFT here=$+bastettribegift=*:@switch [gt(match(capstr(first(get(%#/race))),Bastet),0)]=0,@pemit %#=%R%B%BYou are not a bastet so cannot choose a tribegift.%R,{@switch [get(%#/temp3)]=0,@pemit %#=%R%B%BYou have already chosen a tribegift. Please type '%ch%cr+gifts set' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R,{@switch [gt(get(%#/temp3),1)]=1,@pemit %#=%R%B%BYou have not set your breed- or pryiogift. Type '%ch%cr+bastetgifts%cn' for more help.%R,{@switch [gt(match([extract(get(~~~/bastetgifts[extract(get(%#/race),6,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that breedgift. Please type '%ch%cr+bastetgifts%cn' and choose from that list.%R,{&temp3 %#=0;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your tribegift. Please type '%ch%cr+gifts set%cn' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R}}}} &GIFTSCORAX here=&temp3 *%0=3;@pemit *%0={%R%B%BYou will have three points to spend on gifts. Since this code is set up without the full information it will be assumed you can choose 3 gifts from the Corax list. For information on which gifts you can choose type '%ch%cr+coraxgifts%cn'. For these gifts we have not made options to remove them, so if you run into trouble because you have chosen the wrong gifts, just type '%ch%cr+gifts%cn' in this room again and you can start choosing them once more.%r%r%B%BTo add your three gifts please type '%ch%cr+coraxgifts //%cn'. Please make sure you write the name of the gift exactly as it is shown in the list, including the '-' instead of spaces. Also do not take the same gift twice, for you will not get it double and you will lose a point that way.%R} &CORAXGIFTSSET here=$+coraxgifts */*/*:@switch [capstr(first(get(%#/race)))]=Corax,{@switch [lt(add([gt(match([extract(get(~~~/coraxgifts),2,8)],%0),0)],[gt(match([extract(get(~~~/coraxgifts),2,8)],%1),0)],[gt(match([extract(get(~~~/coraxgifts),2,8)],%2),0)]),3)]=1,@pemit %#=%R%B%BAt least one of your gifts is incorrect. Please type '%ch%cr+coraxgifts%cn' and try again.%R,{&temp3 %#=0;&spec%0 %#=1;&spec%1 %#=1;&spec%2 %#=1;@pemit %#=%R%B%BYou choose the gifts %0 %1 and %2. Please type '%ch%cr+gifts set%cn' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R}},@pemit %#=%R%B%BSince you are not a Corax you cannot choose a corax gift.%R &CORAXGIFTLIST here=$+coraxgifts:@pemit %#={%R%B%BAs a Corax you will have the choice from the following gifts:%r[extract(get(~~~/coraxgifts),2,8)]%r%RSet your gifts by typing '%ch%cr+coraxgifts //%cn'.%R} &GIFTSGAROU here=&temp3 *%0=3;@pemit *%0={%R%B%BYou will have three points to spend on gifts. One gift comes from your breed, one from your auspice, and one from your tribe. For information on which gifts you can choose type '%ch%cr+garougifts%cn'. For these gifts we have not made options to remove them, so if you run into trouble because you have chosen the wrong gifts, just type '%ch%cr+gifts%cn' in this room again and you can start choosing them once more.%r%r%B%BTo add your breedgift type '%ch%cr+garoubreedgift=%cn'%R%B%BTo add your auspicegift type '%ch%cr+garouauspicegift=%cn'%R%B%BTo add your tribegift type '%ch%cr+garoutribegift=%cn'. Please make sure you write the name of the gift exactly as it is shown in the list, including the - instead of spaces.%R} &GAROUGIFTS here=$+garougifts:@switch [capstr(first(get(%#/race)))]=Garou,@pemit %#={%R%B%BSince you are a [capstr(rest(get(%#/race)))] you will have the choice from the following gifts:%r%R%B%BFor [extract(get(%#/race),2,1)]: [extract(get(~~~/garougifts[extract(get(%#/race),2,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),3,1)]: [extract(get(~~~/garougifts[extract(get(%#/race),3,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),6,1)]: [extract(get(~~~/garougifts[extract(get(%#/race),6,1)]),1,3)]%r%R%B%BIf there is a Level-2 in your last list do not chose it for Gift, that means your tribe has 2 gifts for first level chars, not 3. Set your breedgift by '%ch%cr+garoubreedgift=%cn', and so forth.}.%R,@pemit %#={%R%B%BGarou have many Gifts, and since you are not a Garou it would be a little too complex to give an overview of all existing gifts here. It would be best if you look in a WW sourcebook.%R} &GAROUBREEDGIFT here=$+garoubreedgift=*:@switch [gt(match(capstr(first(get(%#/race))),Garou),0)]=0,@pemit %#=%R%B%BYou are not a Garou so cannot choose a breedgift.%R,{@switch [lt(get(%#/temp3),3)]=1,@pemit %#=%R%B%BYou have already chosen a breedgift. Please try your auspicegift or tribegift ('%ch%cr+commands%cn' for more help).%R,{@switch [gt(match([extract(get(~~~/garougifts[extract(get(%#/race),2,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that breedgift. Please type '%ch%cr+garougifts%cn' and choose from that list.%R,{&temp3 %#=2;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your breedgift. Now choose your auspicegift. ('%ch%cr+garouauspicegift=%cn').%R}}} &GAROUAUSPICEGIFT here=$+garouauspicegift=*:@switch [gt(match(capstr(first(get(%#/race))),Garou),0)]=0,@pemit %#=%R%B%BYou are not a Garou so cannot choose an auspicegift.%R,{@switch [get(%#/temp3)]=1,@pemit %#=%R%B%BYou have already chosen an auspicegift. Please try your tribegift ('%ch%cr+commands%cn' for more help).%R,{@switch [get(%#/temp3)]=3,@pemit %#=%R%B%BYou still need to choose a breedgift. Type '%ch%cr+garougifts%cn' for your list.%R,{@switch [gt(match([extract(get(~~~/garougifts[extract(get(%#/race),3,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that auspicegift. Please type '%ch%cr+garougifts%cn' and choose from that list.%R,{&temp3 %#=1;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your auspicegift. Now choose your tribegift. ('%ch%cr+garoutribegift=%cn').%R}}}} &GAROUTRIBEGIFT here=$+garoutribegift=*:@switch [gt(match(capstr(first(get(%#/race))),Garou),0)]=0,@pemit %#=%R%B%BYou are not a Garou so cannot choose a tribegift.%R,{@switch [get(%#/temp3)]=0,@pemit %#=%R%B%BYou have already chosen a tribegift. Please type '%ch%cr+gifts set%cn' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R,{@switch [gt(get(%#/temp3),1)]=1,@pemit %#=%R%B%BYou have not set your breedgift or auspicegift. Type '%ch%cr+garougifts%cn' for more help.%R,{@switch [gt(match([extract(get(~~~/garougifts[extract(get(%#/race),6,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that breedgift. Please type '%ch%cr+garougifts%cn' and choose from that list.%R,{&temp3 %#=0;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your tribegift. Please type '%ch%cr+gifts set%cn' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R}}}} &GIFTSNUWISHA here=&temp3 *%0=3;@pemit *%0={%R%B%BYou will have three points to spend on gifts. One gift comes from your breed, one from your auspice, and one from your race. For information on which gifts you can choose type '%ch%cr+nuwishagifts%cn'. For these gifts we have not made options to remove them, so if you run into trouble because you have chosen the wrong gifts, just type '%ch%cr+gifts%cn' in this room again and you can start choosing them once more.%r%r%B%BTo add your breedgift type '%ch%cr+nuwishabreedgift=%cn'%R%B%BTo add your auspicegift type '%ch%cr+nuwishaauspicegift=%cn'%R%B%BTo add your tribegift type '%ch%cr+nuwishatribegift=%cn'%R%R%B%BPlease make sure you write the name of the gift exactly as it is shown in the list, including the - instead of spaces.%R} &NUWISHAGIFT here=$+nuwishagifts:@switch [capstr(first(get(%#/race)))]=nuwisha,@pemit %#={%R%B%BSince you are a [capstr(rest(get(%#/race)))] you will have the choice from the following gifts:%r%R%B%BFor [extract(get(%#/race),2,1)]: [extract(get(~~~/garougifts[extract(get(%#/race),2,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),3,1)]: [extract(get(~~~/garougifts[extract(get(%#/race),3,1)]),1,3)]%r%R%B%BFor Nuwisha: [extract(get(~~~/nuwishagifts),2,6)]%r%R%B%BIf there is a Level-2 in your last list do not chose it for Gift, that means your tribe has 2 gifts for first level chars, not 3. Set your breedgift by '%ch%cr+nuwishabreedgift=%cn, and so forth.%R},@pemit %#={%R%B%BThese are the Nuwisha Gifts: [extract(get(~~~/nuwishagifts)1,8)]%R} &NUWISHABREEDGIFT here=$+nuwishabreedgift=*:@switch [gt(match(capstr(first(get(%#/race))),nuwisha),0)]=0,@pemit %#=%R%B%BYou are not a nuwisha so cannot choose a breedgift.%R,{@switch [lt(get(%#/temp3),3)]=1,@pemit %#=%R%B%BYou have already chosen a breedgift. Please try your auspicegift or tribegift ('%ch%cr+commands%cn' for more help).%R,{@switch [gt(match([extract(get(~~~/garougifts[extract(get(%#/race),2,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that breedgift. Please type '%ch%cr+nuwishagifts%cn' and choose from that list.%R,{&temp3 %#=2;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your breedgift. Now choose your auspicegift. ('%ch%cr+nuwishaauspicegift=%cn').%R}}} &NUWISHAAUSPICEGIFT here=$+nuwishaauspicegift=*:@switch [gt(match(capstr(first(get(%#/race))),nuwisha),0)]=0,@pemit %#=%R%B%BYou are not a nuwisha so cannot choose an auspicegift.%R,{@switch [get(%#/temp3)]=1,@pemit %#=%R%B%BYou have already chosen an auspicegift. Please try your tribegift ('%ch%cr+commands%cn' for more help).%R,{@switch [get(%#/temp3)]=3,@pemit %#=%R%B%BYou still need to choose a breedgift. Type '%ch%cr+nuwishagifts%cn' for your list.%R,{@switch [gt(match([extract(get(~~~/garougifts[extract(get(%#/race),3,1)]),1,3)],%0),0)]=0,@pemit %#=%R%B%BI do not know that auspicegift. Please type '%ch%cr+nuwishagifts%cn' and choose from that list.%R,{&temp3 %#=1;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your auspicegift. Now choose your tribegift. ('%ch%cr+nuwishatribegift=%cn').%R}}}} &NUWISHATRIBEGIFT here=$+nuwishatribegift=*:@switch [gt(match(capstr(first(get(%#/race))),nuwisha),0)]=0,@pemit %#=%R%B%BYou are not a nuwisha so cannot choose a tribegift.%R,{@switch [get(%#/temp3)]=0,@pemit %#=%R%B%BYou have already chosen a tribegift. Please type '%ch%cr+gifts set%cn' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R,{@switch [gt(get(%#/temp3),1)]=1,@pemit %#=%R%B%BYou have not set your breedgift or auspicegift. Type '%ch%cr+nuwishagifts%cn' for more help.%R,{@switch [gt(match(get(~~~/nuwishagifts),%0),0)]=0,@pemit %#=%R%B%BI do not know that breedgift. Please type '%ch%cr+nuwishagifts%cn' and choose from that list.%R,{&temp3 %#=0;&spec%0 %#=1;@pemit %#=%R%B%BYou have chosen %0 as your tribegift. Please type '%ch%cr+gifts set%cn' if you are content with your gifts or '%ch%cr+gifts%cn' if you wish to start over.%R}}}} &GIFTSCHANGELING here=@pemit %0={%R%B%BYou will have five points to spend on Realms, and three to spend on Arts. For a complete list of the gifts for your race type '%ch%cr+changelinggifts%cn'.%r%r%B%BTo add a gift type '%ch%cr+changelinggift add=%cn'%r%R%B%BTo remove a gift type '%ch%cr+changelinggift remove=%cn'}%R;&temp3 %0=8 &CHANGELINGGIFTS here=$+changelinggifts:@pemit %#=%R%B%BYour choice of Arts is: [get(~~~/changelingarts)].%r%B%BYour choice of Realms is: [get(~~~/changelingrealms)]%r%rB%BIf you take an Art or a Realm it will give under gifts on your sheet Art or Realm. If you wish to remove any you will need to give that full name with Art or Realm before it. You can choose Arts and Realms double so you can have levels 2 or even 3 in either.%R &CHANGELGIFTADD here=$+changelinggift add=*:@switch [gt(match(capstr(first(get(%#/race))),Changeling),0)]=0,@pemit %#=%R%B%BI fear you are not a changeloff one or two letters of the name, which should be easy to guess, so if a name as you see it on the list does not work, try to add the right few letters.%r%R%B%BTo add merits type '%ch%cr+merits add %cn'%R%B%BTo remove merits type '%ch%cr+merits remove %cn'%r%B%BTo add flaws type '%ch%cr+flaws add %cn'%r%B%BTo remove flaws type '%ch%cr+flaw remove %cn'%R%B%BIf you are done with your merits and flaws type '%ch%cr+merits-flaws set%cn'%R};&temp 7%#=23;&temp3 %#=0;&temp4 %#=0;&temp5 %#=25;@dolist lattr(%#/flaw*)=&## %#=;@dolist lattr(%#/meri*)=&## %#=} &GENMERITSLIST here=$+generalmeritslist:@pemit %#=%R%B%BThese are the merits all characters can choose. Please don't choose anything you do not know or understand. For more help on what these merits mean take up contact with your wizard.%R%r[columns([iter(get(~~~/genmerits),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%r%R%B%BIf this list is too long and rolls off your screen type '%ch%cr+generalmeritslist1%cn' and you will get the list in parts.%R &GENMERITS1LIST here=$+generalmeritslist1:@pemit %#=%R%B%BThese are the first half of the merits all characters can choose. Please don't choose anything you do not know or understand. For more help on what these merits mean take up contact with your wizard.%r%R[columns([iter(extract(get(~~~/genmerits),1,div(words(get(~~~/genmerits)),2)),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%r%R%B%BPlease type '%ch%cr+generalmeritslist2%cn' for the rest.%R &GENMERITS2LIST here=$+generalmeritslist2:@pemit %#=%R%B%BThese are the second half of the merits all characters can choose. Please don't choose anything you do not know or understand. For more help on what these merits mean take up contact with your wizard.%r%R[columns([iter(extract(get(~~~/genmerits),div(words(get(~~~/genmerits)),2),words(get(~~~/genmerits))),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%R &RACEMERITSLIST here=$+racemeritslist:@pemit %#=%R%B%BThese are the merits specific to your race. Please don't choose anything you do not know or understand. For more help on what these merits mean take up contact with your wizard.%r%R[columns([iter(get(~~~/merits[first(get(%#/race))]),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)];@switch [capstr(first(get(%#/race)))]=Vampire,@pemit %#=%R%R%B%BThe following merits are specific to your Clan. For clan [extract(get(%#/race),3,1)] the merits are:%r%R[columns([iter(get(~~~/merits[extract(get(%#/race),3,1)]),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],39)]%R &MERITADD here=$+merits add *:@switch [gt([get(%#/meri%0)],0)]=1,@pemit %#=%R%B%BYou already have taken that merit before. Please choose another.%R,{@switch [gt(match(iter(get(~~~/genmerits),mid(##,1,strlen(##))),%0),0)]=1,{@switch [gt(add(get(%#/temp3),[u(~~~/left,extract(get(~~~/genmerits),match(iter(get(~~~/genmerits),mid(##,1,strlen(##))),%0),1),1)]),7)]=1,@pemit %#=%R%B%BIf you take the merit %0 your total amount of points in merits will add up over 7. Please take a merit of less points or remove a merit before choosing this one.%R,{&temp3 %#=[add(get(%#/temp3),[u(~~~/left,extract(get(~~~/genmerits),match(iter(get(~~~/genmerits),mid(##,1,strlen(##))),%0),1),1)])];&temp5=[sub(get(%#/temp5),[u(~~~/left,extract(get(~~~/genmerits),match(iter(get(~~~/genmerits),mid(##,1,strlen(##))),%0),1),1)])];@pemit %#=%R%B%BYou have taken the merit %0. If you are happy with your merits and flaws type '%ch%cr+merits-flaws set%cn'.;&meri%0 %#=[u(~~~/left,extract(get(~~~/genmerits),match(iter(get(~~~/genmerits),mid(##,1,strlen(##))),%0),1),1)]}},{@switch [gt(match(iter(get(~~~/merits[first(get(%#/race))]),mid(##,1,strlen(##))),%0),0)]=1,{@switch [gt(add(get(%#/temp3),[u(~~~/left,extract(get(~~~/merits[first(get(%#/race))]),match(iter(get(~~~/merits[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)]),7)]=1,@pemit %#=%R%B%BThe merit you wish to take will bring the total amount of points spent in merits over 7. Please choose another merit of less points or remove a merit.%R,{@pemit %#=%R%B%BYou have chosen the merit %0. If you are happy with your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R;&meri%0 %#=[u(~~~/left,extract(get(~~~/merits[first(get(%#/race))]),match(iter(get(~~~/merits[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)];&temp3 %#=[add(get(%#/temp3),[u(~~~/left,extract(get(~~~/merits[first(get(%#/race))]),match(iter(get(~~~/merits[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)])];&temp5 %#=[sub(get(%#/temp5),[u(~~~/left,extract(get(~~~/merits[first(get(%#/race))]),match(iter(get(~~~/merits[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)])]}},{@switch [first(get(%#/race))]=Vampire,{@switch [gt(match([iter(get(~~~/merits[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),0)]=1,{@switch [gt(add(get(%#/temp3),[u(~~~/left,extract([get(~~~/merits[extract(get(%#/race),3,1)])],match([iter(get(~~~/merits[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)]),7)]=1,@pemit %#=%R%B%BThe merit you wish to take will bring the total amount of points spent in merits over 7. Please choose another merit of less points or remove a merit.%R,{@pemit %#=%R%B%BYou take the merit %0. If you are happy with your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R;&meri%0 %#=[u(~~~/left,extract([get(~~~/merits[extract(get(%#/race),3,1)])],match([iter(get(~~~/merits[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)];&temp3 %#=[add(get(%#/temp3),[u(~~~/left,extract([get(~~~/merits[extract(get(%#/race),3,1)])],match([iter(get(~~~/merits[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)])];&temp5 %#=[sub(get(%#/temp5),[u(~~~/left,extract([get(~~~/merits[extract(get(%#/race),3,1)])],match([iter(get(~~~/merits[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)])]}},@pemit %#=%R%B%BI do not know such a merit. Please choose one from the '%ch%cr+generalmeritslist%cn' or '%ch%cr+racemeritslist%cn'.%R},@pemit %#=I do not know such a merit. Please choose one from the '%ch%cr+generalmeritslist%cn' or '%ch%cr+racemeritslist%cn'.%R}}};@wait 2=@switch [get(%#/temp3)]=0,@pemit %#=%R%B%BYou have no more points left for merits. If you want to set your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R &MERITREM here=$+merits remove *:@switch [gt([get(%#/meri%0)],0)]=0,@pemit %#=%R%B%BYou do not have such a merit and can therefor not remove it.%R,{@pemit %#=%R%B%BYou remove the merit %0.%R;&temp3 %#=[sub(get(%#/temp3),[get(%#/meri%0)])];&temp5 %#=[add(get(%#/temp5),get(%#/meri%0))];&meri%0 %#=} &MERITSFLAWSSET here=$+merits-flaws set:&temp3 %#=;&temp4 %#=;@pemit %#={%R%B%BYou have set your merits and flaws. Now it is time to type '%ch%crcontinue%cn' to work with your freebies. By the choices of merits and flaws you have a total of [get(%#/temp5)] freebies left (25 points plus the total of subtracted merits and added flaws).%R};&temp7 %#=24 &GENFLAWS1LIST here=$+generalflawslist1:@pemit %#=%R%B%BThese are the first half of the flaws all characters can choose. Please don't choose anything you do not know or understand. For more help on what these flaws mean take up contact with your wizard.%r%R[columns([iter(extract(get(~~~/genflaws),1,div(words(get(~~~/genflaws)),2)),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%r%R%B%BPlease type '%ch%cr+generalflawslist2%cn' for the rest.%R &GENFLAWS2LIST here=$+generalflawslist2:@pemit %#=%R%B%BThese are the second half of the flaws all characters can choose. Please don't choose anything you do not know or understand. For more help on what these flaws mean take up contact with your wizard.%r%R[columns([iter(extract(get(~~~/genflaws),div(words(get(~~~/genflaws)),2),words(get(~~~/genflaws))),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%R &RACEFLAWSLIST here=$+raceflawslist:@pemit %#=%R%B%BThese are the flaws specific to your race. Please don't choose anything you do not know or understand. For more help on what these flaws mean take up contact with your wizard.%r%R[columns([iter(get(~~~/flaws[first(get(%#/race))]),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%R;@switch [capstr(first(get(%#/race)))]=Vampire,@pemit %#=%B%BThe following flaws are specific to your Clan. For clan [extract(get(%#/race),3,1)] the flaws are:%r[columns([iter(get(~~~/flaws[extract(get(%#/race),3,1)]),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],39)]%R &FLAWADD here=$+flaws add *:@switch [gt([get(%#/flaw%0)],0)]=1,@pemit %#=%R%B%BYou already have taken that flaw. Please choose another.%R,{@switch [gt(match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%0),0)]=1,{@switch [gt(add(get(%#/temp4),[u(~~~/left,extract(get(~~~/genflaws),match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%0),1),1)]),7)]=1,@pemit %#=%R%B%BIf you take the flaw %0 your total amount of points in flaws will add up over 7. Please take a flaw of less points or remove a flaw before choosing this one.%R,{&temp4 %#=[add(get(%#/temp4),[u(~~~/left,extract(get(~~~/genflaws),match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%0),1),1)])];&temp5=[add(get(%#/temp5),[u(~~~/left,extract(get(~~~/genflaws),match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%0),1),1)])];@pemit %#=%R%B%BYou have taken the flaw %0.If you are happy with your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R;&flaw%0 %#=[u(~~~/left,extract(get(~~~/genflaws),match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%0),1),1)]}},{@switch [gt(match(iter(get(~~~/flaws[first(get(%#/race))]),mid(##,1,strlen(##))),%0),0)]=1,{@switch [gt(add(get(%#/temp4),[u(~~~/left,extract(get(~~~/flaws[first(get(%#/race))]),match(iter(get(~~~/flaws[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)]),7)]=1,@pemit %#=%R%B%BThe flaw you wish to take will bring the total amount of points spent in flaws over 7. Please choose another flaw of less points or remove a flaw.%R,{@pemit %#=%R%B%BYou have chosen the flaw %0. If you are happy with your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R;&flaw%0 %#=[u(~~~/left,extract(get(~~~/flaws[first(get(%#/race))]),match(iter(get(~~~/flaws[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)];&temp4 %#=[add(get(%#/temp4),[u(~~~/left,extract(get(~~~/flaws[first(get(%#/race))]),match(iter(get(~~~/flaws[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)])];&temp5 %#=[add(get(%#/temp5),[u(~~~/left,extract(get(~~~/flaws[first(get(%#/race))]),match(iter(get(~~~/flaws[first(get(%#/race))]),mid(##,1,strlen(##))),%0),1),1)])]}},{@switch [first(get(%#/race))]=Vampire,{@switch [gt(match([iter(get(~~~/flaws[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),0)]=1,{@switch [gt(add(get(%#/temp4),[u(~~~/left,extract([get(~~~/flaws[extract(get(%#/race),3,1)])],match([iter(get(~~~/flaws[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)]),7)]=1,@pemit %#=%R%B%BThe flaw you wish to take will bring the total amount of points spent in flaws over 7. Please choose another flaw of less points or remove a flaw.%R,{@pemit %#=%R%B%BYou take the flaw %0. If you are happy with your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R;&flaw%0 %#=[u(~~~/left,extract([get(~~~/flaws[extract(get(%#/race),3,1)])],match([iter(get(~~~/flaws[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)];&temp4 %#=[add(get(%#/temp4),[u(~~~/left,extract([get(~~~/flaws[extract(get(%#/race),3,1)])],match([iter(get(~~~/flaws[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)])];&temp5 %#=[add(get(%#/temp5),[u(~~~/left,extract([get(~~~/flaws[extract(get(%#/race),3,1)])],match([iter(get(~~~/flaws[extract(get(%#/race),3,1)]),[mid(##,1,strlen(##))])],%0),1),1)])]}},@pemit %#=%R%B%BI do not know such a flaw. Please choose one from the '%ch%cr+generalflawslist%cn' or '%ch%cr+raceflawslist%cn'.%R},@pemit %#=I do not know such a flaw. Please choose one from the '%ch%cr+generalflawslist%cn' or '%ch%cr+raceflawslist%cn'.%R}}} &FLAWREM here=$+flaws remove *:@switch [gt([get(%#/flaw%0)],0)]=0,@pemit %#=%R%B%BYou do not have such a flaw and can therefor not remove it.%R,{@pemit %#=%R%B%BYou remove the flaw %0.%R;&temp4 %#=[sub(get(%#/temp4),[get(%#/flaw%0)])];&temp5 %#=[sub(get(%#/temp5),get(%#/flaw%0))];&flaw%0 %#=};@wait 2=@switch [get(%#/temp4)]=7,@pemit %#=%R%B%BYou have no more points left for flaws. If you want to set your merits and flaws type '%ch%cr+merits-flaws set%cn'.%R @Desc here=[u(std)] &STD here=%R%B%BIn this room you can set your gifts and choose merits and flaws and then you will be sent onwards to the freebies room. To do so you type '%ch%cr+gifts%cn' here. You can leave in between your chargen, none of your settings will be lost. To know what is your next command type '%ch%cr+progress%cn' and you will be given where to go on, even if you're not in this room. Even if you have already started with your merits and flaws, you can still reset your racial gifts without losing your progress marker. To do this simply type '%ch%cr+gifts%cn' the same goes for merits and flaws if you were not quite ready to start with your freebies. Then type '%ch%cr+merits-flaws%cn'.%R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room.%r &GENFLAWSLIST here=$+generalflawslist:@pemit %#=%R%B%BThese are the flaws available to all characters. Please don't choose anything you do not know or understand. For more help on what these flaws mean take up contact with your wizard.%r%R[columns([iter(get(~~~/genflaws),[u(~~~/left,##,1)]...[mid(##,1,strlen(##))])],26)]%R%R%B%BIf this list is too long and rolls off your screen type '%ch%cr+generalflawslist1%cn' and you will get the list in parts.%R @set here=INHERIT @dig General Character Generation Room 6=Continue ;c;continue,Back ;b;back @create %xh%xrImportant Note: If you're stuck here ..=10 @Desc Important Note: If you're stuck here ..=[u(std)] &STD Important Note: If you're stuck here ..=%R%B%BIf you're stuck trying to type '%ch%cr+merits-flaws%cn', and it won't let you, type '%ch%cr+gifts set%cn' and hopefully that'll fix the problem. The issue is being worked on.%R drop note @lock Continue =CHECKLOCK/1 @Succ Continue =You have set your merits and flaws and move to the freebies room. @Osucc Continue =set %p merits and flaws and moves to the freebies room. @Odrop Continue =set %p merits and flaws and comes to set %p freebies. &CHECKLOCK Continue =[gte(add(gte(get(%#/temp7),24),hasflag(%#,W),hasflag(%#,w)),1)] @Fail Continue =You cannot leave the room yet because you have not run through the whole of chargen yet. To see where you are with the character creation process type +progress. @set Continue =INHERIT c @dig Pre Approval Room=Continue to Pre Approval Room ;par;parroom;pre approval;c @lock/TeloutLock here=CHECKLOCK/1 @set here=commands @Desc here=[u(std)] &PLUSFREEBIES here=$+freebies:@switch [eq(get(%#/temp7),25)]=0,@pemit %#=%R%B%BYou have not yet typed '%ch%cr+start freebies%cn' or you have already finished using your freebies. Please type '%ch%cr+progress%cn' to find out what you need to type.%R,{@pemit %#={%R%B%BYou have [get(%#/temp5)] freebie points left (25 and added flaws and subtracted merits). You have bought the following things: (this list is comprised of one element for each time you have bought something, first you see the five letter code for the thing you bought followed by - and then it's name.): [get(%#/tempfreebielist)]%r%R%B%BEvery command will add or remove one point of freebies. You can buy the following things:%r%B%BTrait%t%tCost%tInfo%t%tBuy/Remove With%r%B%BAttributes%t5%t+attributes%t'%ch%cr+add/rem attribute %cn'%r%B%BAbilities%t2 or 1%t+abilities%t'%ch%cr+add/rem ability %cn'%r%B%BBackgrounds%t1%t+backgrounds%t'%ch%cr+add/rem background %cn'%r%B%BWillpower%t1%t+willpower%t'%ch%cr+add/rem willpower%cn'};@pemit %#=[u(me/stuff[first(get(%#/race))])]} &COMMANDLIST here=$+commands:@pemit %#=%R%B%BAn overview of the commands of this room:%R%r%b%b%b** Type '%ch%cr+progress%cn' to see how far along in chargen you are **%r%b%b%b** Type '%ch%cr+start freebies%cn' to begin freebies **%r%b%b%b** Type '%ch%cr+freebies%cn' for your current freebies status **%R%b%b%b** Type '%ch%crcontinue%cn' to move on to the abilities room **%R &STUFFMORTAL here=%B%BVirtues%t%t2%t+virtues%t'%ch%cr+add/rem virtue %cn'%r%B%BHumanity%t1%t+humanity%t'%ch%cr+add/rem humanity%cn'%R &STUFFMORTAL+ here=%B%BMortal+gifts%t7%t+mortal+gifts%t'%ch%cr+add/rem mortal+gift %cn'%R%B%BVirtues%t%t2%t+virtues%t'%ch%cr+add/rem virtue %cn'%r%B%BHumanity%t1%t+humanity%t'%ch%cr+add/rem humanity%cn'%R &STUFFMAGE here=%B%BArete%t4%t+arete%t%t'%ch%cr+add/rem arete%cn'%r%B%BSpheres%t%t7%t+spheres%t'%ch%cr+add/rem sphere %cn'%r%B%BQuintessence%t1/4%t'%ch%cr+quintessence%t+add/rem quintessence%cn'%R &STUFFCHANGELING here=%B%BArts%t5%t+arts%t%t'%ch%cr+add/rem art %cn'%r%B%BRealms%t%t3%t+realms%t%t'%ch%cr+add/rem realm %cn'%r%B%BGlamour%t%t3%t+glamour%t'%ch%cr+add/rem glamour%cn'%R &STUFFVAMPIRE here=%B%BVirtues%t2%t+virtues%t'%ch%cr+add/rem virtue %cn'%r%B%BHumanity%t1%t+humanity%t'%ch%cr+add/rem humanity%cn'%r%B%BDisciplines%t7%t+disciplines%t'%ch%cr+add/rem discipline %cn'%R &STUFFGAROU here=%B%BGifts%t7%t+gifts%t%t'%ch%cr+add/rem gift %cn'%r%B%BGnosis%t%t2%t+gnosis%t%t'%ch%cr+add/rem gnosis%cn'%r%B%BRage%t%t1%t+rage%t%t'%ch%cr+add/rem rage%cn'%R &STUFFBASTET here=%B%BGifts%t7%t+gifts%t%t'%ch%cr+add/rem gift %cn'%r%B%BGnosis%t%t2%t+gnosis%t%t'%ch%cr+add/rem gnosis%cn'%r%B%BRage%t%t1%t+rage%t%t'%ch%cr+add/rem rage%cn'%R &STUFFCORAX here=%B%BGifts%t7%t+gifts%t%t'%ch%cr+add/rem gift %cn'%r%B%BGnosis%t%t2%t+gnosis%t%t'%ch%cr+add/rem gnosis%cn'%r%B%BRage%t%t1%t+rage%t%t'%ch%cr+add/rem rage%cn'%R &STUFFNUWISHA here=%B%BGifts%t7%t+gifts%t%t'%ch%cr+add/rem gift %cn'%r%B%BGnosis%t%t2%t+gnosis%t%t'%ch%cr+add/rem gnosis%cn'%r%B%BTotem%t%t1%t+totem%t%t'%ch%cr+add/rem totem%cn'%R &STUFFNUNNEHI here=%B%BArts%t5%t+arts%t%t'%ch%cr+add/rem art %cn'%r%B%BRealms%t%t3%t+realms%t%t'%ch%cr+add/rem realm %cn'%r%B%BGlamour%t%t3%t+glamour%t'%ch%cr+add/rem glamour%cn'%R &PLUSSTARTFREEBIES here=$+start freebies:@switch [eq(get(%#/temp7),24)]=0,{@pemit %#=%R%B%BYou have not proceeded far enough with chargen for this step or you have already typed '%ch%cr+start freebies%cn' once before. You cannot start over with freebie points unless you first return to the former room to buy more merits and flaws so type '%ch%crb%cn' and then '%ch%cr+merits-flaws%cn'. But you can remove all that you have bought.%R},{@pemit %#={%R%B%BYou have [get(%#/temp5)] freebie points left (25 and added flaws and subtracted merits). Every command will add or remove one point of freebies. You can buy the following things:%R%r%B%BTrait%t%tCost%tInfo%t%tBuy/Remove With%r%B%BAttributes%t5%t+attributes%t'%ch%cr+add/rem attribute %cn'%r%B%BAbilities%t2 or 1%t+abilities%t'%ch%cr+add/rem ability %cn'%r%B%BBackgrounds%t1%t+backgrounds%t'%ch%cr+add/rem background %cn'%r%B%BWillpower%t1%t+willpower%t'%ch%cr+add/rem willpower%cn'};@pemit %#=[u(me/stuff[first(get(%#/race))])];@trig me/[first(get(%#/race))]set=%#;&tempfreebielist %#=;&temp7 %#=25} &PLUSATTRIBUTES here=$+attributes:@pemit %#=%R%B%BYou can spend points on the following attributes. Do please realise that though we do not restrict 4's and 5's we do want you to explain them in your background.%r%R[ljust(Strength,25)][ljust(Charisma,25)][ljust(Perception,25)]%r[ljust(Dexterity,25)][ljust(Manipulation,25)][ljust(Intelligence,25)]%r[ljust(Stamina,25)][ljust(Appearance,25)][ljust(Wits,25)]%r%R%B%B'%ch%cr+add/rem attribute %cn'%R &REMATTRIBUTES here=$+rem attribute *:@switch [gt(match(get(%#/tempfreebielist),attri-%0),0)]=0,@pemit %#=%R%B%BYou have never bought such an attribute up with freebies so cannot remove the freebies now.%R,{&%0 %#=[sub(get(%#/%0),1)];&temp5 %#=[add(get(%#/temp5),5)];@pemit %#=%R%B%BYou have removed your five freebie points from the attribute %0 and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),attri-%0)]} &ADDATTRIBUTES here=$+add attribute *:@switch [gt(match(get(~~~/attributeslist),%0),0)]=0,@pemit %#=%R%B%BI do not know that attribute. Please type '%ch%cr+attributes%cn' and try again.%R,{@switch [lt(sub(get(%#/temp5),5),0)]=1,@pemit %#=%R%B%BYou have only [get(%#/temp5)] freebies left which is not enough for an attribute.%R,{@switch [gte(add(get(%#/%0),1),6)]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have an attribute of over 5 points which is not allowed. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),5)];&%0 %#=[add(get(%#/%0),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] attri-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}} &PLUSSETFREEBIES here=$+freebies set:@pemit %#=%R%B%BYou have set your freebies. Now you need to type '%ch%crcontinue%cn' to go to the pre approval room. Remember now that you are this far do not use any commands in any of the other rooms! You will be allowed to do so but you will have to redo your whole character from the point of the command onwards before being allowed to return to this room and the preapproval room again.%R;&tempfreebielist %#=;&temp7 %#=26;&systxp %#=[get(%#/temp5)];&temp1 %#=;&temp2 %#=;&temp3 %#=;&temp4 %#=;&temp5 %#=;&temp6 %#=;@dolist [lattr(%#/syst*)]=@switch [gt(match(u(me/maxcurrent),##),0)]=1,&## %#=[get(%#/##)]/[get(%#/##)] &PLUSABILITIES here=$+abilities:@pemit %#=%R%B%BYou can spend points on skills talents and knowledges. For more information on each type '%ch%cr+skillslist%cn', +%ch%crtalentslist%cn' or '%ch%cr+knowledgeslist%cn'. Do please realize that though we do not restrict 4's and 5's we do want you to explain them in your background.%r%r%B%B'%ch%cr+add/rem ability %cn'%R &LISTINGTALENTS here=$+talentslist:@pemit %#=%R%B%BTalents abilities are %r%R[columns([get(~~~/talentlist)],15)]%r%r%B%BPrimary talents (without ~before their name) are 2 point per level, secondary ones (with ~before the name) are 1 point per level.%r%r%B%B'%ch%cr+add/rem ability %cn'%r%R%B%BPlease type the name EXACTLY as you find here including the ~ before the secondary abilities.%R &LISTINGSKILLS here=$+Skillslist:@pemit %#=%R%B%BSkills abilities are %r%R[columns([get(~~~/skilllist)],15)]%r%r%B%BPrimary skills (without ~before their name) are 2 point per level, secondary ones (with ~before the name) are 1 point per level.%r%r%B%B'%ch%cr+add/rem ability %cn'%r%R%B%BPlease type the name EXACTLY as you find here including the ~ before the secondary abilities.%R &LISTINGKNOWLEDGES here=$+knowledgeslist:@pemit %#=%R%B%Bknowledges abilities are %r%R[columns([get(~~~/knowledgelist)],20)]%r%r%B%BPrimary knowledges (without ~before their name) are 2 point per level, secondary ones (with ~before the name) are 1 point per level.%r%r%B%B'%ch%cr+add/rem ability %cn'%r%R%B%BPlease type the name EXACTLY as you find here including the ~ before the secondary abilities.%R &ADDABILITIES here=$+add ability *:@switch [gt(match(setunion(get(~~~/skilllist),setunion(get(~~~/knowledgelist),get(~~~/talentlist))),%0),0)]=0,@pemit %#=%R%B%BI do not know that ability. Please type '%ch%cr+abilities%cn' and try again.%R,{@switch [u(me/left,%0,1)]=~,{@switch [lt(sub(get(%#/temp5),1),0)]=1,@pemit %#=%R%B%BYou have only [get(%#/temp5)] freebies left which is not enough for a secundary ability.%R,{@switch [gte(add(get(%#/abil[switch([gt(match(get(~~~/skilllist),%0),0)][gt(match(get(~~~/knowledgelist),%0),0],10,ski,01,kno,tal)]%0),1),6)]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have an ability of over 5 points which is not allowed. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),1)];&abil[switch([gt(match(get(~~~/skilllist),%0),0)][gt(match(get(~~~/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0 %#=[add([get(%#/abil[switch([gt(match(get(~~~/skilllist),%0),0)][gt(match(get(~~~/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0)],1)];&tempfreebielist %#=[get(%#/tempfreebielist)] abili-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}},{@switch [lt(sub(get(%#/temp5),2),0)]=1,@pemit %#=%R%B%BYou have only [get(%#/temp5)] freebies left which is not enough for an ability.%R,{@switch [gte(add(get(%#/abil[switch([gt(match(get(~~~/skilllist),%0),0)][gt(match(get(~~~/knowledgelist),%0),0],10,ski,01,kno,tal)]%0),1),6)]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have an ability of over 5 points which is not allowed. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),2)];&abil[switch([gt(match(get(~~~/skilllist),%0),0)][gt(match(get(~~~/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0 %#=[add([get(%#/abil[switch([gt(match(get(~~~/skilllist),%0),0)][gt(match(get(~~~/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0)],1)];&tempfreebielist %#=[get(%#/tempfreebielist)] abili-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}}} &REMABILITIES here=$+rem ability *:@switch [gt(match(get(%#/tempfreebielist),abili-%0),0)]=0,@pemit %#=%R%B%BYou have never bought such an ability up with freebies so cannot remove the freebies now. Please remember that if it was a secondary ability you need to put ~ before it's name even if that does not show on your sheet. For the exact names of what you bought type '%ch%cr+freebies%cn'.%R,{@switch [u(me/left,%0,1)]=~,{&abil[switch([gt(match(get(%#/skilllist),%0),0)][gt(match(get(%#/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0 %#=[sub(get(%#/abil[switch([gt(match(get(%#/skilllist),%0),0)][gt(match(get(%#/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0),1)];&temp5 %#=[add(get(%#/temp5),1)];@pemit %#=%R%B%BYou have removed your freebie point from the ability %0 and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),abili-%0)]},{&abil[switch([gt(match(get(%#/skilllist),%0),0)][gt(match(get(%#/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0 %#=[sub(get(%#/abil[switch([gt(match(get(%#/skilllist),%0),0)][gt(match(get(%#/knowledgelist),%0),0)],10,ski,01,kno,tal)]%0),1)];&temp5 %#=[add(get(%#/temp5),2)];@pemit %#=%R%B%BYou have removed your two freebie points from the ability %0 and now have[get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),abili-%0)]}} &BACKGROUNDINFO here=$+backgrounds:@pemit %#=%R%B%BYou can choose your backgrounds (which cost 1 point per dot) from the following list: [get(~~~/backgrounds[first(get(%#/race))])].%r%r%B%BThe command to use is '%ch%cr+add/rem background %cn'. &ADDBACKGROUNDS here=$+add background *:@switch [gt(match(g%B%Bet(~~~/backgrounds[first(get(%#/race))]),%0),0)]=0,@pemit %#=%R%B%BI do not know that background for your race. Please type '%ch%cr+backgrounds%cn' and try again.%R,{@switch [lt(sub(get(%#/temp5),1),0)]=1,@pemit %#=%R%B%BYou only have [get(%#/temp5)] freebies left which is not enough for a background.%R,{@switch [gte(add(get(%#/backg%0),1),6)]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have an background of over 5 points which is not allowed. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),1)];&backg%0 %#=[add(get(%#/backg%0),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] backg-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}} &REMBACKGROUNDS here=$+rem background *:@switch [gt(match(get(%#/tempfreebielist),backg-%0),0)]=0,@pemit %#=%R%B%BYou have never bought such an background up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/backg%0)]=1,&backg%0 %#=,&backg%0 %#=[sub(get(%#/backg%0),1)];&temp5 %#=[add(get(%#/temp5),1)];@pemit %#=%R%B%BYou have removed your freebie point from the background %0 and have [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),backg-%0)]} &GAROUGIFTS here=$+gifts:@switch [capstr(first(get(%#/race)))]=Garou,@pemit %#={%R%B%BSince you are a [capstr(rest(get(%#/race)))] you will have the choice from the following gifts:%r%R%B%BFor [extract(get(%#/race),2,1)]:%R[extract(get(~~~/garougifts[extract(get(%#/race),2,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),3,1)]:%R[extract(get(~~~/garougifts[extract(get(%#/race),3,1)]),1,3)]%r%R%B%BFor [extract(get(%#/race),6,1)]:%R[extract(get(~~~/garougifts[extract(get(%#/race),6,1)]),1,3)]%r &ADDGIFTS here=$+add gift *:@switch [gt(match([setunion([extract(get(~~~/garougifts[extract(get(%#/race),2,1)]),1,3)],setunion([extract(get(~~~/garougifts[extract(get(%#/race),3,1)]),1,3)],[extract(get(~~~/[first(get(%#/race))]gifts[extract(get(%#/race),6,1)]),1,3)]))],%0),0)]=0,@pemit %#=%R%B%BI do not know that gift. Please type '%ch%cr+gifts%cn' and try again.%R,{@switch [lt(sub(get(%#/temp5),7),0)]=1,@pemit %#=%R%B%BYou have [get(%#/temp5)] freebies left which is not enough for a gift.%R,{@switch [gte(add(get(%#/spec%0),1),2)]=1,@pemit %#=%R%B%BYou already have the gift %0. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),7)];&spec%0 %#=[add(get(%#/spec%0),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] gifts-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}} &REMGIFTS here=$+rem gift *:@switch [gt(match(get(%#/tempfreebielist),gifts-%0),0)]=0,@pemit %#=%R%B%BYou have never bought such a gift with freebies so cannot remove the freebies now.%R,{&spec%0 %#=;&temp5 %#=[add(get(%#/temp5),7)];@pemit %#=%R%B%BYou have removed your seven freebie points from the gift %0 and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),gifts-%0)]} &VAMPIREGIFTS here=$+disciplines:@switch [capstr(first(get(%#/race)))]=Vampire,@pemit %#=%R%B%BThe gifts for clan [extract(get(%#/race),3,1)] are: [get(~~~/gifts[extract(get(%#/race),3,1)])].%r%R%B%BThe command to use is '%ch%cr+add/rem discipline %cn'.%R,@pemit %#=%R%B%BYou are not a vampire so would not have much use for disciplines.%R &REMDISCIPLINES here=$+rem discipline *:@switch [gt(match(get(%#/tempfreebielist),disci-%0),0)]=0,@pemit %#=%R%B%BYou have never bought such an discipline up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/spec%0)]=1,&spec%0 %#=,&spec%0 %#=[sub(get(%#/spec%0),1)];&temp5 %#=[add(get(%#/temp5),7)];@pemit %#=%R%B%BYou have removed your seven freebie points from the discipline %0 and have [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),disci-%0)]} &VIRTUES here=$+virtues:@switch [gt(match(Mortal Mortal+ Vampire,capstr(first(get(%#/race)))),0)]=0,@pemit %#=%R%B%BYour race does not have virtues that you can buy extra in chargen.%R,{@pemit %#=%R%B%BThe virtues are: [get(~~~/virtuelist[first(get(%#/race))])].%r%R%B%BThe command to buy or remove them is '%ch%cr+add/rem virtue %cn'.%R} &ADDVIRTUES here=$+add virtue *:@switch [gt(match(Mortal Mortal+ Vampire,capstr(first(get(%#/race)))),0)]=0,@pemit %#=%R%B%BYour race does not have virtues that you can buy extra in chargen.%R,{@switch [gt(match([get(~~~/virtuelist[first(get(%#/race))])],%0),0)]=0,@pemit %#=%R%B%BI do not know that virtue for your clan or race. Please type '%ch%cr+virtues%cn' and try again.%R,{@switch [lt(sub(get(%#/temp5),2),0)]=1,@pemit %#=You have only [get(%#/temp5)] freebies left which is not enough for a virtue.,{@switch [gte(add(get(%#/virtu%0),1),11)]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have an virtue of over 10 points which is not allowed. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),2)];&virtu%0 %#=[add(get(%#/virtu%0),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] virtu-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}}} &REMVIRTUES here=$+rem virtue *:@switch [gt(match(get(%#/tempfreebielist),virtu-%0),0)]=0,@pemit %#=%R%B%BYou have never bought such an virtue up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/virtu%0)]=1,&virtu%0 %#=,&virtu%0 %#=[sub(get(%#/virtu%0),1)];&temp5 %#=[add(get(%#/temp5),2)];@pemit %#=%R%B%BYou have removed your two freebie points from the virtue %0 and have [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),virtu-%0)]} &ADDDISCIPLINES here=$+add discipline *:@switch [capstr(first(get(%#/race)))]=Vampire,{@switch [gt(match([get(~~~/gifts[extract(get(%#/race),3,1)])],%0),0)]=0,@pemit %#=%R%B%BI do not know that discipline for your clan. Please type '%ch%cr+disciplines%cn and try again.%R,{@switch [lt(sub(get(%#/temp5),7),0)]=1,@pemit %#=%R%B%BYou have only [get(%#/temp5)] freebies left which is not enough for a discipline.%R,{@switch [gte(add(get(%#/spec%0),1),6)]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have a discipline of over 5 points which is not allowed. Please try again.%R,{&temp5 %#=[sub(get(%#/temp5),7)];&spec%0 %#=[add(get(%#/spec%0),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] disci-%0;@pemit %#=%R%B%BYou add 1 dot to %0 and have [get(%#/temp5)] freebie points left.%R;@wait 2=@switch [get(%#/temp5)]=0,@pemit %#=%R%B%BYou have no more freebie points left. If you are happy with your choices type '%ch%cr+freebies set%cn'.%R}}}},@pemit %#=%R%B%BYou are not a vampire so would not have much use for disciplines.%R &PLUSSPHERES here=$+spheres:@switch [capstr(first(get(%#/race)))]=Mage,{@pemit %#=%R%B%BThe spheres for mages are: [get(~~~/magespherelist)].%r%R%B%BIf you are a Virtual-Adept you need to take the Dimensional-Science option instead of Spirit. The command to use is '%ch%cr+add/rem sphere %cn'.%R},@pemit %#=%R%B%BYou are not a mage so I doubt you'll have much use of spheres.%R &ADDSPHERES here=$+add sphere *:@switch [capstr(first(get(%#/race)))]=Mage,{@switch [gt(match([get(~~~/magespherelist)],%0),0)]=0,@pemit %#=%R%B%BI do not know that sphere for your clan or race. Please type '%ch%cr+spheres%ch' and try again.%R,{@switch [lt(sub(get(%#/temp5),7),0)]=1,@pemit %#=%R%B%BYou have [get(%#/temp5)] freebies left which is not enough for a sphere.%R,{@switch [gt(add(get(%#/spec%0),1),[get(%#/systarete)])]=1,@pemit %#=%R%B%BIf you add one to your %0 then you will have an sphere over your arete which is not allowed. Please fi rating of your Courage. For Changelings and Nunnehi it depends on their seeming and for Garou on their tribe. This has all been set when you started spending your freebies.%r%r%B%BBut you can buy it up for 1 freebie per point of willpower. willpower scores over 5 for mortals and 7 for supers are not allowed.%rR&:turns his head, nipping at your lips, "Up to me .." He considers it for a moment, "Go ahead and get the tub filled. Would you like bubbles?":turns his head, nipping at your lips, "Up to me .." He considers it for a moment, "Go ahead and get the tub filled. Would you like bubbles?"&:turns his head, nipping at your lips, "Up to me .." He considers it for a moment, "Go ahead and get the tub filled. Would you like bubbles?"%R%B%BThe command to use is '%ch%cr+add/remove willpower%cn'.%R} &ADDWILLPOWER here=$+add willpower:@switch [capstr(first(get(%#/race)))]=Mortal,{@switch [gte(get(%#/systwillpower),5)]=1,@pemit %#=%R%B%BIf you add another point of willpower you will have over 5 points which is not allowed.%R,{&systwillpower %#=[add([get(%#/systwillpower)],1)];&temp5 %#=[sub(get(%#/temp5),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] willpower;@pemit %#=%R%B%BYou spend 1 point on a point of willpower and have [get(%#/temp5)] freebie points left.%R}},{@switch [gte(get(%#/systwillpower),7)]=1,@pemit %#=%R%B%BIf you add another point of willpower you will have over 7 points which is not allowed.%R,{&systwillpower %#=[add([get(%#/systwillpower)],1)];&temp5 %#=[sub(get(%#/temp5),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] willpower;@pemit %#=%R%B%BYou spend 1 point on a point of willpower and have [get(%#/temp5)] freebie points left.%R}} &REMWILLPOWER here=$+rem willpower:@switch [gt(match(get(%#/tempfreebielist),willpower),0)]=0,@pemit %#=%R%B%BYou have never bought willpower up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/systwillpower)]=1,&systwillpower %#=,&systwillpower %#=[sub(get(%#/systwillpower),1)];&temp5 %#=[add(get(%#/temp5),1)];@pemit %#=%R%B%BYou have removed your freebie point from a point of willpower and have [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),willpower)]} &PLUSGNOSIS here=$+gnosis:@switch [gt(match(Garou Bastet Corax Nuwisha,capstr(first(get(%#/race)))),0)]=0,@pemit %#={%R%B%BYou are not a Shifter and therefor will not have much use for gnosis.%R},@pemit %#={%R%B%BYour original gnosis depends on your breed. Homids get less then the animal forms and metis in between. But you can buy it up for 2 points per dot. gnosis scores over 7 are not allowed.%r%R%B%BThe command to use is '%ch%cr+add/remove gnosis%cn'.%R} &ADDGNOSIS here=$+add gnosis:@switch [gt(match(Garou Bastet Corax Nuwisha,capstr(first(get(%#/race)))),0)]=0,@pemit %#=%R%B%BYou are not a shifter and therefor will not have much use for gnosis.%R,{@switch [gte(get(%#/systgnosis),7)]=1,@pemit %#=%R%B%BIf you add another dot to gnosis you will have over 7 dots which is not allowed.%R,{&systgnosis %#=[add([get(%#/systgnosis)],1)];&temp5 %#=[sub(get(%#/temp5),2)];&tempfreebielist %#=[get(%#/tempfreebielist)] gnosis;@pemit %#=%R%B%BYou spend 2 points on 1 dot of gnosis and have [get(%#/temp5)] freebie points left.%R}} &REMGNOSIS here=$+rem gnosis:@switch [gt(match(get(%#/tempfreebielist),gnosis),0)]=0,@pemit %#=%R%B%BYou have never bought gnosis up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/systgnosis)]=1,&systgnosis %#=,&systgnosis %#=[sub(get(%#/systgnosis),1)];&temp5 %#=[add(get(%#/temp5),2)];@pemit %#=%R%B%BYou have removed two freebie points from a point of gnosis and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),gnosis)]} &PLUSRAGE here=$+rage:@switch [gt(match(Garou Bastet Corax Nuwisha,capstr(first(get(%#/race)))),0)]=0,@pemit %#={%R%B%BYou are not a shifter and therefor will not have much use for rage.%R},@pemit %#={%R%B%BYour original rage depends for Garou on their auspice and for Bastet on their tribe. Nuwisha and Corax have a set amount of rage. But you can buy it up for 1 point per dot. rage scores over 6 are not allowed.%r%R%B%BThe command to use is '%ch%cr+add/remove rage%cn'.%R} &ADDRAGE here=$+add rage:@switch [gt(match(Garou Bastet Corax Nuwisha,capstr(first(get(%#/race)))),0)]=0,@pemit %#=%R%B%BYou are not a shifter and therefor will not have much use for rage.%R,{@switch [gte(get(%#/systrage),6)]=1,@pemit %#=%R%B%BIf you add another dot to rage you will have over 6 dots which is not allowed.%R,{&systrage %#=[add([get(%#/systrage)],1)];&temp5 %#=[sub(get(%#/temp5),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] rage;@pemit %#=%R%B%BYou spend 1 point on 1 dot of rage and have [get(%#/temp5)] freebie points left.%R}} &REMRAGE here=$+rem rage:@switch [gt(match(get(%#/tempfreebielist),rage),0)]=0,@pemit %#=%R%B%BYou have never bought rage up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/systrage)]=1,&systrage %#=,&systrage %#=[sub(get(%#/systrage),1)];&temp5 %#=[add(get(%#/temp5),1)];@pemit %#=%R%B%BYou have removed your freebie point from a point of rage and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),rage)]} &PLUSTOTEM here=$+totem:@switch [capstr(first(get(%#/race)))]=Nuwisha,@pemit %#={%R%B%BEvery Nuwisha starts with a totem stat of 3. But you can buy it up for 1 freebie per 1 point of totem. totem scores over 6 are not allowed.%r%R%B%BThe command to use is '%ch%cr+add/remove totem%cn'.%R},@pemit %#={%R%B%BYou are not a Nuwisha and therefore will not have much use for their kind of totem.%R} &ADDTOTEM here=$+add totem:@switch [capstr(first(get(%#/race)))]=Nuwisha,{@switch [gte(get(%#/systtotem),6)]=1,@pemit %#=%R%B%BIf you add another point of totem you will have over 6 points which is not allowed.%R,{&systtotem %#=[add([get(%#/systtotem)],1)];&temp5 %#=[sub(get(%#/temp5),1)];&tempfreebielist %#=[get(%#/tempfreebielist)] totem;@pemit %#=%R%B%BYou spend 1 point on a point of totem and have [get(%#/temp5)] freebie points left.%R}},@pemit %#=%R%B%BYou are not a Nuwisha and therefor will not have much use for their kind of totem.%R &REMTOTEM here=$+rem totem:@switch [gt(match(get(%#/tempfreebielist),totem),0)]=0,@pemit %#=%R%B%BYou have never bought totem up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/systtotem)]=1,&systtotem %#=,&systtotem %#=[sub(get(%#/systtotem),1)];&temp5 %#=[add(get(%#/temp5),1)];@pemit %#=%R%B%BYou have removed your freebie point from a point of totem and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),totem)]} &MAGESET here=@switch [capstr(first(get(%0/race)))]=Mage,&systquintessence %0=[get(%0/backgavatar)];&systwillpower %0=5;&systarete %0=[lmax([iter([lattr(%0/spec*)],[get(%0/##)])])];&temp5 %0=[sub([get(%0/temp5)],[mul(sub([lmax([iter([lattr(%0/spec*)],[get(%0/##)])])],1),4)])];@pemit %0=%R%B%BYou have started your freebie points spending with spending [mul(sub([lmax([iter([lattr(%0/spec*)],[get(%0/##)])])],1),4)] for arete (4 freebies per point) for your highest sphere setting of [lmax([iter([lattr(%0/spec*)],[get(%0/##)])])] and one point of arete is free. This freebie spending cannot be removed unless you first go back to the gifts room and choose your gifts differently. Now type '%ch%cr+freebies%cn' to continue.%R &GAROUSET here=&systgnosis %0=[switch([capstr(extract(get(%0/race),2,1))],Lupus,5,Metis,3,1)];&systrage %0=[switch([capstr(extract(get(%0/race),3,1))],Ahroun,5,Galliard,4,Philodox,3,Theurge,2,1)];&systwillpower %0=[switch([capstr(extract(get(%0/race),6,1))],Get-of-Fenris,3,Glass-Walkers,3,Wendigos,5,Uktena,2,Stargazers,6,Bone-Gnawers,4,Silver-Fangs,3,Black-Furies,3,Shadow-Lords,3,Silent-Striders,2,Fianna,2,Children-of-Gaia,4,3)] &BASTETSET here=&systgnosis %0=[switch([capstr(extract(get(%0/race),2,1))],Feline,6,Metis,4,2)];&systwillpower %0=[switch([capstr(extract(get(%0/race),6,1))],Bagheera,4,Balam,3,Bubasti,5,Ceilican,3,Khan,2,Pumonca,4,Qualmi,5,Simba,2,Swara,4,3)];&systrage %0=[switch([capstr(extract(get(%0/race),6,1))],Bagheera,2,Balam,4,Bubasti,1,Ceilican,3,Khan,5,Pumonca,3,Qualmi,2,Simba,5,Swara,2,3)] &NUWISHASET here=&systtotem %0=3;&systwillpower %0=3;&systgnosis %0=[switch([capstr(extract(get(%0/race),2,1))],Lupus,5,Metis,3,1)] &CORAXSET here=&systrage %0=2;&systwillpower %0=3;&systgnosis %0=[switch([capstr(extract(get(%0/race),2,1))],Corvid,6,3)] &CHANGELINGSET here=@switch [capstr(extract(get(%0/race),2,1))]=Elder,{&systglamour %0=5;&systwillpower %0=3;&systbanality %0=5},Grump,{&systglamour %0=5;&systwillpower %0=3;&systbanality %0=5},Wilder,{&systglamour %0=4;&systwillpower %0=2;&systbanality %0=3},Brave{&systglamour %0=4;&systwillpower %0=2;&systbanality %0=3},{&systglamour %0=3;&systwillpower %0=1;&systbanality %0=1} &NUNNEHISET here=@switch [capstr(extract(get(%0/race),2,1))]=Elder,{&systglamour %0=5;&systwillpower %0=3;&systbanality %0=5},Grump,{&systglamour %0=5;&systwillpower %0=3;&systbanality %0=5},Wilder,{&systglamour %0=4;&systwillpower %0=2;&systbanality %0=3},Brave{&systglamour %0=4;&systwillpower %0=2;&systbanality %0=3},{&systglamour %0=3;&systwillpower %0=1;&systbanality %0=1} &MORTALSET here=&systhumanity %0=[add([get(%0/virtuconscience)],[get(%0/virtuselfcontrol)])];&systwillpower %0=[get(%0/virtucourage)] &MORTAL+SET here=&systhumanity %0=[add([get(%0/virtuconscience)],[get(%0/virtuselfcontrol)])];&systwillpower %0=[get(%0/virtucourage)] &VAMPIRESET here=&systhumanity %0=[add([get(%0/virtuconscience)],[get(%0/virtuselfcontrol)])];&systwillpower %0=[get(%0/virtucourage)] &PLUSARETE here=$+arete:@switch [capstr(first(get(%#/race)))]=Mage,@pemit %#={%R%B%BYour original arete is always one. But you can buy it up for 4 freebie per 1 point of arete.%r%R%B%BThe command to use is '%ch%cr+add/remove arete%cn'},@pemit %#={%RYou are not a Mage and therefor will not have much use for arete.%R} &ADDARETE here=$+add arete:@switch [eq(get(%#/temp7),25)]=0,@pemit %#=%R%B%BYou really need to type '%ch%cr+start freebies%cn' if you want to take arete before the whole basic setup for mages makes the calculations wrong.%cn,{@switch [capstr(first(get(%#/race)))]=Mage,{@switch [gte(get(%#/systarete),10)]=1,@pemit %#=%R%B%BIf you add another point of arete you will have over 10 points which is not allowed.%R,{&systarete %#=[add([get(%#/systarete)],1)];&temp5 %#=[sub(get(%#/temp5),4)];&tempfreebielist %#=[get(%#/tempfreebielist)] arete;@pemit %#=%R%B%BYou spend 4 points on 1 point of arete and have [get(%#/temp5)] freebie points left.%R}},@pemit %#=%R%B%BYou are not a mage and therefor will not have much use for arete.%R} &REMARETE here=$+rem arete:@switch [gt(match(get(%#/tempfreebielist),arete),0)]=0,@pemit %#=%R%B%BYou have never bought arete up with freebies so cannot remove the freebies now.%R,{@switch [get(%#/systarete)]=1,&systarete %#=,&systarete %#=[sub(get(%#/systarete),1)];&temp5 %#=[add(get(%#/temp5),4)];@pemit %#=%R%B%BYou have removed 4 freebie points from one point of arete and have now [get(%#/temp5)] left.%R;&tempfreebielist %#=[remove(get(%#/tempfreebielist),arete)]} &MAXCURRENT here=[iter(get(~~~/maxcurrentsystems),syst[##])] &STD here=%R%B%BIn this room you can set your freebies. This is the last room of the official character generation. After this room there will be one room to set your languages and some mush related things, and then you will have to ask for your wizards' approval. Realize if you decide to spend some freebies and then go back and reset another field that you will have to redo it all again. So it is wise to be sure you are content with your character up till now before beginning to spend your freebies.%R%r%b%b%b** Type '%ch%cr+commands%cn' for an overview of commands in this room.%r &LEFT here=[mid(%0,0,%1)] @set here=INHERIT @lock c=CHECKLOCK/1 @Desc c=Through this door you can go into the pre approval room, but you cannot return to chargen unless to do it all again. @Succ c=You step into the pre approval room. Your character has been set, your progress marker is being erased right now. Do not return to chargen unless you want to reset your character from scratch. @Osucc c=steps into the pre approval room. @Odrop c=enters from the freebies room of chargen. &CHECKLOCK c=[gte(add(gte(get(%#/temp7),26),hasflag(%#,W),hasflag(%#,w)),1)] @Fail c=You cannot leave the room yet untill you have set your freebie points. You can choose to set them if you have not spent them all by '+set freebies' and the leftover points will be noted on your sheet as xp. @Asucc c=&temp7 %#= @set c=INHERIT c @dig Veteran Chargen=Veteran Chargen ;vc;veteran;veteran chargen,Pre Approval Room ;PAR;pre approval;pre approval room &PLUSMUSH here=$+mush:@pemit %#=You need to set the following things for mushcode to be able to work.%r - @desc me= %r%t%(if you prefer to set up a descer then look for help on descers or ask your wiz)%r - @sex me=%r - @lock/uselock me=me %(to make sure no one but you can use your commands)%r - @set me=enter_ok %(to allow people to give you things)%r - @alias me= %(for if you want a shorter name)%r - your locks should be set to your preference, as below:%r%t @lock me=me %(stops everyone from picking you up)%r%t @lock me=me|*|* %(allows only named people to pick you up)%r%t or leave yourself as-is, and you will be able to be picked up by anyone @set here=commands &PLUSLANGUAGE here=$+language:@pemit %#=Here languages should be set by mush preference. &PLUSFINGERHELP here=$+fingerhelp:@pemit %#={None of what follows in this bit is mandatory, but you might like to be able to set some information others can see about you. For this +finger was created. You use '+finger ' to get to know a little more information of what the other wishes to tell you. If you don't fill in the information it will not be shown, except for the mandatory bits like name, alias, sex and such. For wizzes your +finger will also show the private settings you've given like email and hidden alts, but players cannot see this.%r%rFor more information on what you can set for your +finger type '+help +finger-setup'. @lock/TeloutLock here=CHECKLOCK/1 @Desc here=%rIn this room you can set some important mushrelated information. You can start with writing the background %(+help backgrounds) for your character. Then you can type '+mush' for mushrelated settings. After that you can set your languages with '+language' and as last set your +finger with '+fingerhelp'. As all this is set '+approve' will warn a wizard that you are ready and would like to be approved for roleplay. You can freely move about from this room to the ooc nexus which is just outside the door, but you cannot return to the step-by-step character generation, if you have just gone through all that. If you wish to redo step by step character generation you will have to start again. People from veteran chargen can return there untill they are approved. &STD here=%r%b%bIn this room you can set some important mushrelated information. You can start with writing the background %(%ch%cw+help backgrounds%cn) for your character. Then you can type '%ch%cw+mush%cn' for mushrelated settings. After that you can set your languages by typing '%ch%cw+language%cn' and following the instructions there. And last set your +finger with '%ch%cw+fingerhelp%cn'. Use '%ch%cw+checkme%cn' to see if you are ready for approval and then '%ch%cw+approve%cn' will add you to the queue to be approved for roleplay. You can freely move about from this room to the ooc nexus which is just outside the door.%r &PLUSAPPROVE here=$+approve:@switch [lt(words(get(%#/desc)),20)]=1,@pemit %#=You have a desc of less then 20 words. Please set a desc and then try '+approve' again.,{@switch [lte(strlen(get(%#/sex)),0)]=1,@pemit %%#=You have not set your sex yet. Please do so before trying '+approve' again.,{@switch [lte(strlen(get(%#/bg_1)),20)]=1,@pemit %#=You have not set your background yet. Please do so before trying '+approve' again.,{@mail/quick *[first(get(%#/race))]/approval=%N has set up %p character and would like to be approved. %S has created %p character in the [switch(get(%#/temp7),veteranchargen,veteran,step by step)] Chargen. ;@pemit %#=You have sent your request to the [first(get(%#/race))] staff.}}} @set here=INHERIT @set here=JUMP_OK vc &BEGINNING here=$+begin:@dolist lattr(%#/temp*)=&## %#=;@dolist lattr(%#/abil*)=&## %#=;@dolist lattr(%#/spec*)=&## %#=;@dolist lattr(%#/virtu*)=&## %#=;@dolist lattr(%#/backg*)=&## %#=;@dolist lattr(%#/meri*)=&## %#=;@dolist lattr(%#/flaw*)=&## %#=;@dolist lattr(%#/syst*)=&## %#=;&race %#=;&nature %#=;&demeanor %#=;&concept %#=;&status %#=;@pemit %#=You begin with the veteran character generation. For an overview of information commands type '+list' and for an overview of sheet setting commands type '+list commands'.;&temp7 %#=veteranchargen &CHECKLOCK here=[match(get(%#/temp7),veteranchargen)] &NATURESET here=$+nat* *:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [gt(match(Changeling,capstr(first(get(%#/race)))),0)]=1,{@switch [gt(match(get(~~~/unseelielegacies),capstr(lcstr(%1))),0)]=0,@pemit %#=I am sorry I do not know that unseelie legacy. type '+naturelist' and try again please.,{&nature %#=%1;@pemit %#=You have set your Unseelie Legacy to %1.}},{@switch [gt(match(Nunnehi,capstr(first(get(%#/race)))),0)]=1,{@switch [gt(match(get(~~~/winterlegacies),capstr(lcstr(%1))),0)]=0,@pemit %#=I am sorry I do not know that winter legacy. type '+naturelist' and try again please.,{&nature %#=%1;@pemit %#=You have set your Winter legacy to %1.}},{@switch [gt(match(get(~~~/types),capstr(lcstr(%1)),|),0)]=0,@pemit %#=I am sorry I do not know that nature. type '+naturelist' and try again please.,{&nature %#=%1;@pemit %#=You have set your nature to %1.}}}} &NATURELIST here=$+list nat*:@pemit %#=For natures and demeanors all characters except changelings can choose from the following list: %r[columns([get(~~~/types)],15,|)]The seelie legacy list for Fae is: %r[columns(get(~~~/seelielegacies),15)]The unseelie legacy list for Fae is: %r[columns(get(~~~/unseelielegacies),15)]The summer legacy list for Nunnehi is: %r[columns(get(~~~/summerlegacies),15)]The winter legacy list for Nunnehi is: %r[columns(get(~~~/winterlegacies),15)]To set a characterr nature or for Changeling unseelie legacy or for Nunnehi winter legacy type '+nat nature'. For demeanor or changelingr seelie legacy or Nunnehir summer legacy type '+dem demeanor'. &DEMEANORSET here=$+dem* *:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [gt(match(Changeling,capstr(first(get(%#/race)))),0)]=1,{@switch [gt(match(get(~~~/seelielegacies),capstr(lcstr(%1))),0)]=0,@pemit %#=I am sorry I do not know that seelie legacy. type '+naturelist' and try again please.,{&demeanor %#=%1;@pemit %#=You have set your seelie Legacy to %1.}},{@switch [gt(match(Nunnehi,capstr(first(get(%#/race)))),0)]=1,{@switch [gt(match(get(~~~/summerlegacies),capstr(lcstr(%1))),0)]=0,@pemit %#=I am sorry I do not know that summer legacy. type '+naturelist' and try again please.,{&demeanor %#=%1;@pemit %#=You have set your summer legacy to %1.}},{@switch [gt(match(get(~~~/types),capstr(lcstr(%1)),|),0)]=0,@pemit %#=I am sorry I do not know that demeanor. type '+naturelist' and try again please.,{&demeanor %#=%1;@pemit %#=You have set your demeanor to %1.}}}} &RACEINFO here=$+list race *:@switch %0=Mortal,@pemit %#=The race list that you can choose from is: [get(~~~/racelist)]. For a mortal you only have to type '+race =Mortal there are no specific groups to fill in. Though of course you can do so if you like.,Mo*+,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. For a Mortal+ person you need to fill in affilliations and such but there is no set order to this, as long as you have the word 'Mortal +' first. So type '+race Mortal+ .},Vam*,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. For a Vampire the next order has to be kept: First the word Vampire. Then second word is the sect, namely [get(~~~/vampiresectlist)]. From this sect you choose your clan. Clans for Camarilla are [get(~~~/listvampireclancamarilla)]%rFor Sabbat: [get(~~~/listvampireclansabbat)]%rFor Independent: [get(~~~/listvampireclanindependent)]%rFor Anarch: [get(~~~/listvampireclananarch)]%rThe command is then: +race Vampire . Make sure the clan fits the sect!},Ma*,{@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. Setting a race Mage is very complex. A mage first has a sect, namely: [get(~~~/magesectlist)], Then follows the tradition which is decided by sect. These are for sect %rTradition: [get(~~~/listmageclantradition)]%rFor Technocracy: [get(~~~/listmageclantechnocracy)]%rFor Disparate: [get(~~~/listmageclandisparate)]%rThen there is a faction (or methodology for Technocracy, the code will choose the right form) per clan. If your clan is not in the following list just put 'None' for now (it needs a word) as these are not known yet. The factions for tradition are:};@dolist [lattr(~~~/listmagefaction*)]=@pemit %#=[capstr(lcstr(mid(##,15,sub(strlen(##),1))))] :[get(~~~/##)];@wait 1=@pemit %#=And finally you add the mage essence (for Tradition) or Eidolon (for Technocracy the code will choose the right form). You can choose from: [get(~~~/listmageessence)].%rThe complete command would be:+race Mage of from with },Fa*,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. There are two kinds of Fae, Changelings and Nunnehi. Nunnehi are Native American Fae. For help on how to set Changelings type '+race Changeling' and for Nunnehi '+race Nunnehi'.},Ch*,@pemit %#={A changeling is set with at least 6 words in race, and have to be given in that order, since the code calculates glamour and other things through these. First comes the word Changeling. Second the seeming, being one of these: [get(~~~/seeminglist)]. Then their kith which can be any of the following: [get(~~~/kithlist)]. And the following is a list of Houses to choose from: [get(~~~/houselist)]. The complete command would be '+race Changeling of house '.},Nun*,@pemit %#={Nunnehi (Native American Fae) get a seeming and a kith for their racedescription. Seeming is one of the following: [get(~~~/nunseeminglist)]. And kith can be any of these: [get(~~~/nunkithlist)]. Please remember to write the kith EXACTLY as you find it in the list, including -r for spaces and such. Then the full command is +staff Nunnehi },Shi*,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. There will be many kinds of shifter races, for now set up are Garou, Bastet, Corax and Nuwisha. Ratkin and Anainsi will be set later. For information on how to set each type '+race Garou' '+race Bastet' '+race Corax' or '+race Nuwisha'.},Ga*,@pemit %#={Garou need to choose a breed from this list: [get(~~~/breedlist)]. Their auspice can be any of the following: [get(~~~/auspicelist)]. And the following is a list of tribes to choose from: [get(~~~/garoutribelist)]. The command to set a race Garou would be: +race Garou of tribe '.},Ba*,@pemit %#={Bastet are much like Garou in setup. Their breed is one of the following: [get(~~~/bastetbreedlist)]. Their pryio can be any of the following: [get(~~~/pryiolist)]. And the following is a list of Tribes to choose from: [get(~~~/Bastettribelist)]. Now to set their race information type '+race Bastet of tribe '.},Co*,@pemit %#={Corax only need to know their breed and region. Their breed is one of the following: [get(~~~/coraxbreedlist)]. The geographic region can be any of the following: [get(~~~/geolist)]. Now to set the race information type '+race Corax of region '.},Nuw*,@pemit %#={All Nuwisha are Ragabash so only their breeds needs to be chosen. Use this list: [get(~~~/nuwishabreedlist)]. To set a player Nuwisha type '+race Nuwisha Ragabash} &RACESTART here=$+list race:@pemit %#=You can set a player race with this command. You can choose from the races: [get(~~~/racelist)]. Since every race needs to set different affiliations and groups please type '+list race ' for more info. &RACESET here=$+race *:&race %#=%0;@pemit %#=You have set your race to %0. Realise that this code does not check if your tribe fits your clan or sect or whatever, it's your responsibility that it all fits together. &SETATTR here=$+attr* *=*:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [isnum(%2)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%2,5)]=1,@pemit %#=I'm sorry but you cannot set an attribute with a value larger then 5.,{@switch [capstr(lcstr(mid(%1,0,3)))]=Str,{&strength %#=%2;@pemit %#=You have taken a strength of %2.},Cha,{&charisma %#=%2;@pemit %#=You have taken a charisma of %2.},Per,{&perception %#=%2;@pemit %#=You have given yourself a perception of %2.},Dex,{&dexterity %#=%2;@pemit %#=You have given yourself a dexterity of %2.},Man,{&manipulation %#=%2;@pemit %#=You have given yourself a manipulation of %2.},Int,{&intelligence %#=%2;@pemit %#=You have given yourself an intelligence of %2.},Sta,{&stamina %#=%2;@pemit %#=You have given yourself a stamina of %2.},App,{&appearance %#=%2;@pemit %#=You have given yourself an appearance of %2.},Wit,{&wits %#=%2;@pemit %#=You have given yourself a wits of %2.},@pemit %#=I'm sorry but I do not know that attribute. Please type '+listattr' and try again.}}} &LISTATTR here=$+list attr*:@pemit %#=You can choose from the following attributes.%r[columns(get(~~~/attributeslist),25)]The command to set an attribute to a specific value is '+attribute attributename=value'. The word attribute can be written shorter up to three letters and the same goes for the actual attribute name.}} &LISTINGABILITIES here=$+list abil*:@pemit %#={It is too much to give the abilities all at once. It was cut up in three parts, knowledges, talents and skills. For a list of knowledges type '+list knowledges' for a list of skills '+list skills' and for a list of talents "+list talents' If you want to remove knowledges, skills or talents, make sure you know in which group they belong (they are in the right column on the sheet) and set their value to 0.} &LISTINGKNOWLEDGES here=$+list kno*:@pemit %#=knowledges attributes are %r[columns([get(~~~/knowledgelist)],19)]%r%rPrimary knowledges (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. To set a knowledge type '+knowledge ='. the word knowledge can be shortened to 3 letters. Please do use the ~ before the name for secundary abilities or otherwise the code won't pick it up and it will keep both kinds of abilities apart. To remove a knowledge from the sheet just set itr value to 0. &LISTINGTALENTS here=$+list tal*:@pemit %#=Talents attributes are %r[columns([get(~~~/talentlist)],19)]%r%rPrimary talents (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. To set a talent type '+talent ='. the word talent can be shortened to 3 letters. Please do use the ~ before the name for secundary abilities or otherwise the code won't pick it up and it will keep both kinds of abilities apart. To remove a talent from the sheet just set itr value to 0. &LISTINGSKILLS here=$+list ski*:@pemit %#=Skills attributes are %r[columns([get(~~~/skilllist)],19)]%r%rPrimary skills (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. To set a skill type '+skill ='. the word skill can be shortened to 3 letters. Please do use the ~ before the name for secundary abilities or otherwise the code won't pick it up and it will keep both kinds of abilities apart. To remove a skill from the sheet just set itr value to 0. @set here=commands &SETKNOWLEDGE here=$+kno* *=*:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I'm sorry but %0 is not a player.,{@switch [isnum(%2)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%2,5)]=1,@pemit %#=I'm sorry but you cannot set an ability with a value larger then 5 on a player,{@switch [gt(match(get(~~~/knowledgelist),%1),0)]=0,@pemit %#=I'm sorry but I do not know that knowledge. Please type '+list knowledges' and try agian.,{@switch [%2]=0,&abilkno%1 %#=,&abilkno%1 %#=%2;@pemit %#=You have taken a %1 knowledge of %2.}}}} &SETSKILL here=$+ski* *=*:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I'm sorry but %0 is not a player.,{@switch [isnum(%2)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%2,5)]=1,@pemit %#=I'm sorry but you cannot set an ability with a value larger then 5 on a player,{@switch [gt(match(get(~~~/skilllist),%1),0)]=0,@pemit %#=I'm sorry but I do not know that skill. Please type '+list skills' and try agian.,{@switch [%2]=0,&abilski%1 %#=,&abilski%1 %#=%2;@pemit %#=I'm sorry but I do not know that skill. Please type '+list skills' and try agian.,{@switch [%2]=0,&abilski%1 %#=,&abilski%1 %#=%2;@pemit %#=You have taken a %1 skill of %2.}}}} &SETFLAWS here=$+fl* add *:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I"m sorry but %0 does not seem to be a player.,{@switch [gt(match(get(~~~/racelist),first(get(%#/race))),0)]=0,@pemit %#=I'm sorry but you do not seem to have a valid race set.,{@switch [lcstr(first(get(%#/race)))]=vampire,{@switch [gt(match(iter(setunion(get(~~~/flawsvampire),setunion(get(~~~/flaws[extract(get(%#/race),3,1)]),get(~~~/genflaws))),mid(##,1,strlen(##))),%1),0)]=0,@pemit %#=I'm sorry but I do not know that flaw for race [first(get(%#/race))].,{@switch [gt(match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%1),0)]=1,{&flaw%1 %#=[u(~~~/left,extract(get(~~~/genflaws),match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%1),1),1)];@pemit %#=You have set the flaw %1 .},{@switch [gt(match(iter(get(~~~/flawsvampire),mid(##,1,strlen(##))),%1),0)]=1,{&flaw%1 %#=[u(~~~/left,extract(get(~~~/flawsvampire),match(iter(get(~~~/flawsvampire),mid(##,1,strlen(##))),%1),1),1)];@pemit %#=You have set the flaw %1.},{&flaw%1 %#=[u(~~~/left,extract(get(~~~/flaws[extract(get(%#/race),3,1)]),match(iter(get(~~~/flaws[extract(get(%#/race),3,1)]),mid(##,1,strlen(##))),%1),1),1)];@pemit %#=You have set the flaw %1 .}}}},{@switch [gt(match(iter(setunion(get(~~~/flaws[first(get(%#/race))]),get(~~~/genflaws)),mid(##,1,strlen(##))),%1),0)]=0,@pemit %#=I'm sorry but I do not know that flaw for race [first(get(%#/race))].,{@switch [gt(match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%1),0)]=1,{&flaw%1 %#=[u(~~~/left,extract(get(~~~/genflaws),match(iter(get(~~~/genflaws),mid(##,1,strlen(##))),%1),1),1)];@pemit %#=You have set the flaw %1 .},{&flaw%1 %#=[u(~~~/left,extract(get(~~~/flaws[first(get(%#/race))]),match(iter(get(~~~/flaws[first(get(%#/race))]),mid(##,1,strlen(##))),%1),1),1)];@pemit %#=You have set the flaw %1 .}}}}} &REMFLAWS here=$+fl* rem *:@switch [gt(match(type(%#),PLAYER),0)]=0,@pemit %#=I"m sorry but %0 does not seem to be a player.,{@switch [gt(match(get(~~~/racelist),first(get(%#/race))),0)]=0,@pemit %#=I'm sorry but you do not seem to have a valid race set.,{@switch [gt(match(lattr(%#/flaw*),flaw%1),0)]=0,@pemit %#=I'm sorry but you do not seem to have that flaw.,{&flaw%1 %#=;@pemit %#=The flaw %1 has been removed from you.}}} &LISTINGSYSTEMS here=$+list sys*:@pemit %#={With 'system' settings the following gamesystem values are meant: [get(~~~/systemlist)]. How much of each of these a character can have is dependant on Houserules. Here starting characters are not allowed values over 5 in willpower (for all races), 10 points in Humanity (for Vampire, and mortal and mortal+), 6 rage or totem (totem is for Nuwisha, rage for Garou), nothing over 7 in gnosis (which is for shifters), nothing over 20 in Quintessence (which is for all Mages, not just the starting ones), nothing over 5 in Arete and preferably not over 3 for starting chars (arete is for mages), and 10 dots in glamour (for Fae).%r%rPlease make sure these values are adhered to, because the code will not limit these to allow setting of more advanced characters as well. Also some of these gamesystem values need a format of /. These values are: [get(~~~/maxcurrentsystems)].%r%rThe command to set any of these to any value (you can also wipe them by setting a value of 0) is '+system =' and the code will where appliccable automatically set the max and current values to the same things appliccable for the system value..} &SYSTEMLIST here=Willpower Humanity Rage Gnosis Totem Glamour Quintessence Arete Xp &LISTNOTES here=$+list not*:@pemit %#={You can set notes at the bottom of your sheet where you can write things like focus and such. notes are added to the allready existing notes, and can only removed by wizards once they are set, so please be sure you set them right. The command for this is '+notes } &SETSYSTEM here=$+sys*** *=*:@switch [gt(match(type(*%#),PLAYER),0)]=0,@pemit %#=I"m sorry but %# does not seem to be a player.,{@switch [gt(match(get(~~~/racelist),first(get(*%#/race))),0)]=0,@pemit %#=I'm sorry but [name(*%#)] does not seem to have a valid race set.,{@switch [isnum(%4)]=0,@pemit %#=I"m sorry but the value of %3 needs to be a number.,{@switch [gt(match(get(~~~/systemlist),%3),0)]=0,@pemit %#=I'm sorry but I do not know %3 as a systemvalue.,{@switch [gt(match(get(~~~/maxcurrentsystems),%3),0)]=1,{@switch %4=0,&syst%3 *%#=,&syst%3 *%#=%4/%4;@pemit %#=You have set %3 for [name(*%#)] to a value of %4/%4.},{@switch %4=0,&syst%3 *%#=,&syst%3 *%#=%4;@pemit %#=You have set %3 for [name(*%#)] to a value of %4.}}}}} &SHEETNOTES here=$+not* *:&gamesystemnotes %#=[get(%#/gamesystemnotes)]%r%1;@pemit %#=You have added your text to your gamesystem notes. @Desc here=[u(std)] &STD here=%r%b%b%ch%crWARNING%cn: %chTo use this room you need to have scrollback abilities.%cn%r%r%b%bYou can choose to set your character here if you have much experience with playing white wolf and if you have already made your character on paper. In this character generation you will not get the step by step explanation but will simply be told how to set your sheetvalues in the fastest manner.%r%r%b%bThis character generation will not keep track of the amounts of points you spend, or if you do not take gifts that are over your level and such. Because of that this character generation can also be used to create higher level characters then first level. Do only use this room if you are sure you do not need step by step help and have your valid character already set on paper.%r%r%b%bKeep track of your own freebies and choices, and explain anything in your sheetnotes. Realise that the staff will check any character created in this character generation doubly thoroughly because of it's freedom in setting.%r%r%b%bIf you are sure this is the chargen you wish to use (once you have made this choice you cannot return to the step by step chargen) then type '+begin'. Do NOT type '+begin' here if you already have things setup or are allready approved for it will erase any sheetvalues you might already have!!%r%r%b%b%b** Type '%ch%cr+list%cn' for an overview of information commands **%r%b%b%b** Type '%ch%cr+list commands%cn' for an overview of sheet setting commands **%r%b%b%b** Type '%ch%cr+stats%cn' to see your sheet **%r%b%b%b** Type '%ch%cr+end%cn' to finish setting stats, then go to the Pre Approval Room **%r%r%b%bRealise once you have started using commands in that room you cannot return here (so you can visit people there just don't type any commands there)! You can leave this room in between setting your character, you will only not be allowed to go ic or to go to the step by step character generation. If this desc scrolled off your screen and you don't have scrollback the veteran chargen is not the place for you. Try the 'step by step' character generation, its textbits are less then 15 lines long. And if you did decide to do your character generation here, do not forget to type '+begin' first.%r &STDOLD here=%r%b%bYou are in the veteran character generation room. WARNING: To use this room you need to have scrollback abilities. You can choose to set your character here if you have much experience with playing white wolf and if you have allready made your character on paper. In this character generation you will not get the step by step explanation but will simply be told how to set your sheetvalues in the fastest manner. This character generation will not keep track of the amounts of points you spend, or if you do not take gifts that are over your level and such. Because of that this character generation can also be used to create higher level characters then first level. Do only use this room if you are sure you do not need step by step help and have your valid character allready set on paper. Keep track of your own freebies and choices, and explain anything in your sheetnotes. Realise that the staff will check any character created in this character generation doubly thoroughly because of it's freedom in setting. If you are sure this is the chargen you wish to use (once you have made this choice you cannot return to the step by step chargen) then type '+begin'. Do NOT type '+begin' here if you allready have things setup or are allready approved for it will erase any sheetvalues you might allready have!! For an overview of information commands type '+list' and for an overview of sheet setting commands type '+list commands'. You can check these two out before you decide to actually make your char here. The command to look at your sheet is '+stats'. If you have finished setting your character and wish to be approved, then first type '+end' here and then you can go to the Pre Approval Room and finish the code there to be approved. Realise once you have started using commands in that room you cannot return here (so you can visit people there just don't type any commands there)! You can leave this room in between setting your character, you will only not be allowed to go ic or to go to the step by step character generation. If this desc scrolled off your screen and you don't have scrollback the veteran chargen is not the place for you. Try the 'step by step' character generation, its textbits are less then 15 lines long. And if you did decide to do your character generation here, do not forget to type '+begin' first.%r &beginning here=$+begin:@dolist lattr(%#/temp*)=&## %#=;@dolist lattr(%#/abil*)=&## %#=;@dolist lattr(%#/spec*)=&## %#=;@dolist lattr(%#/virtu*)=&## %#=;@dolist lattr(%#/backg*)=&## %#=;@dolist lattr(%#/meri*)=&## %#=;@dolist lattr(%#/flaw*)=&## %#=;@dolist lattr(%#/syst*)=&## %#=;&race %#=;&nature %#=;&demeanor %#=;&concept %#=;&status %#=;&intelligence %#=;&perception %#=;&wits %#=;&charisma %#=;&manipulation %#=;&appearance %#=;&stamina %#=;&strength %#=;&dexterity %#=;@pemit %#=You begin with the veteran character generation. For an overview of information commands type '+list' and for an overview of sheet setting commands type '+list commands'.;&temp7 %#=veteranchargen &list here=$+list:@pemit %#={You can find a '+list' for the following veteran chargen commands:%r+list commands%t%tgives an overview of all setting for the sheet%r+list nature%t%tfor nature and demeanor%r+list race%t%tgives a general overview of possible races.%r+list race %ttells you exactly how to set the race you have asked.%r+list attributes%ttells you the attributes and how to set them.%r+list abilities%t%ttells you the three kinds of abilities%r+list knowledges%tgives a list of knowledges%r+list talents%t%tgives a list of talents%r+list skills%t%tgives a list of skills%r+list gifts%t%tfor a list of SHIFTER gifts%r+list mortal+gifts%tfor a list of Mortal+ gifts%r+list spheres%t%tfor a list of spheres for Mage%r+list discs%t%tfor a list of discs for Vampire%r+list arts%t%tFor a list of arts for Changeling%r+list realms%t%tHow to set Realms for Changeling%r+list backgrounds%tLists of backgrounds for each race%r+list virtues%t%tHow to set virtues%r+list merits%t%tChoosing merits (general)%r+list flaws%t%tChoosing flaws (general)%r+list system%t%tSetting system values like rage, gnosis and many more%r+list notes%t%tHow to set notes at the bottom of the sheet.%rEach of these +list commands will give information how to set the concerning values on yourself. If you wish to remove concerning values usually it will suffice to set the values 0 and they will be removed from the sheet.} &listcommands here=$+list commands:@pemit %#=This is the overview of veteran chargen commands to change sheetsettings. A star in the command means you can choose to type the whole word out or just use the letters given in the command.%r+nat* sets a nature for a player%r+dem* sets your demeanor%r+race sets race, type +list race for the racesetting.%r+attr* = sets an attribute to value.%r+ski* = sets a skill to value%r+tal* = sets a talent to value%r+kno* = sets a knowledge to value%r+gif* will set shifter gift if according to breed/auspice/tribe%r+rem gif* will remove shifter gift (or other unwanted gift on sheet)%r+dis* = sets discipline to value%r+m*+gi* = sets mortal+gift to value%r+sph* = set's a mage's sphere to value%r+art* = sets a changeling art to value%r+rea* = sets a changeling realm to value%r+b*g* = sets a background to value%r+vir* = sets a virtue to value%r+mer* add sets a merit%r+mer* rem removes a merit%r+fl* add sets a flaw%r+fl* rem removes a flaw%r+sys* = sets wp or rage etc etc.%r+not* adds notes to your sheet &ending here=$+end:@pemit %#=You finish setting your character. You can now go to the pre approval room to set your languages and some mush related things and then ask for approval. Realise that the marker that tells staff that you have gone through veteran chargen will not be removed untill you have been approved, so you can not go to the step by step chargen room. You can start anew in here though if you would want. You can also walk around in the rest of the OOC nexus. @set here=INHERIT @set here=JUMP_OK @set here=MONITOR @create gamesystem object=10 @set gamesystem object=commands &PLUSPROGRESS gamesystem object=$+progress:@pemit %#=%R%B%BThis is the command to help you know where you have stopped with the character creation process. If you have started character creation you can return to earlier rooms to change things you have set before. Just finish the setting of those values before trying to continue again, for markers are set back at the beginning of a group of commands concerning one value -like backgrounds- and are returned once those are 'set'.%R;@switch [eq(get(%#/temp7),0)][lt(get(%#/temp7),4.5)][lt(get(%#/temp7),11)][lt(get(%#/temp7),18)][lt(get(%#/temp7),20)][lt(get(%#/temp7),24)]=011111,@pemit %#=%R%B%BYou need to be in the Character Creation Room 1. Go to Limbo and enter chargen. That is the room you need.%r%R%B%BThere you need to type '%ch%cr[switch(get(%#/temp7),1,+concept,2,+nature,3,+demeanor,4,+race)]%cn'.%R,001111,@pemit %#=%R%B%BYou need to be in the Character Creation Room 2. Go to Limbo and enter chargen. Now you are in Room 1. Go through the door that is for your race. That is the room you need.%r%R%B%BThere you need to type '%ch%cr[switch(get(%#/temp7),4.5,+attributes,5,+mental,6,+mental,7,+social,8,+social,9,+physical,10,+physical)]%cn'.%R,000111,@pemit %#=%R%B%BYou need to be in the Character Creation Room 3. Go to Limbo and enter chargen. Now you are in Room 1. Go through the door that is for your race. Now you are in Room 2. There type '%ch%crcontinue%cn' and you will be in Room 3.%r%R%B%BOnce there you need to type '%ch%cr[switch(get(%#/temp7),11,+abilities,12,+talents,13,+talents,14,+skills,15,+skills,16,+knowledges,17,+knowledges)]%cn'.%R,000011,@pemit %#=%R%B%BYou need to be in the Character Creation Room 4. Go to Limbo and enter chargen. Now you are in Room 1. Go through the door that is for your race. Now you are in Room 2. There type '%ch%crcontinue%cn' twice and you will be in Room 4.%r%R%B%BOnce there you need to type '%ch%cr[switch(get(%#/temp7),18,+backgrounds,19,+virtues)]%cn'.%R,000001,@pemit %#=%R%B%BYou need to be in the Character Creation Room 5. Go to Limbo and enter chargen. Now you are in Room 1. Go through the door that is for your race. Now you are in Room 2. There type '%ch%crcontinue%cn' three times and you will be in Room 5.%r%R%B%BOnce there you need to type '%ch%cr[switch(get(%#/temp7),20,+gifts,21,+gifts,22,+merits-flaws,23,+merits-flaws)]%cn'.%R,000000,@pemit %#=%R%B%BYou need to be in the Character Creation Room 6 the Freebies Room. Go to Limbo and enter chargen. Now you are in Room 1. Go through the door that is for your race. Now you are in Room 2. There type '%ch%crcontinue%cn' four times and you will be in Room 6.%r%R%B%BOnce there you need to type '%ch%cr[switch(get(%#/temp7),24,+start freebies,25,+freebies,continue)]%ch'.%R,@pemit %#=%R%B%BYou have not started chargen at all yet. To do so go to Limbo and enter chargen and type '%ch%crbegin%cn' there.%R &STATSLOOK2 gamesystem object=@wait 2=@dolist [lnum([max(words(sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*)))),words(sort(lattr(*%0/lang*))),words(sort(lattr(*%0/syst*))))])]=@pemit %1=[switch([gt(get(*%0/[elements(sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1))]),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements(sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1)),sub(strlen(elements( sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1))),4)))),23,.)][get(*%0/[elements( sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1))])][space(1)])][switch([gt(get(*%0/[elements(sort(lattr(*%0/lang*)),add(##,1))]),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements(sort(lattr(*%0/lang*)),add(##,1)),sub(strlen(elements(sort(lattr(*%0/lang*)),add(##,1))),4)))),23,.)][get(*%0/[elements( sort(lattr(*%0/lang*)),add(##,1))])][space(1)])][switch([gt(strlen(get(*%0/[elements(sort(lattr(*%0/syst*)),add(##,1) 1)])),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements(sort(lattr(*%0/syst*)),add(##,1) 1),sub(strlen(elements(sort(lattr(*%0/syst*)),add(##,1) 1)),4)))),23,.)][get(*%0/[elements(sort(lattr(*%0/syst*)),add(##,1) 1)])][space(1)])];@wait 3=@pemit %1=%r%r[repeat(=,34)] NOTES [repeat(=,34)]%r[get(*%0/gamesystemnotes)]%r%rGroup: [capstr(rest(get(*%0/race)))] &STATSLOOKWAIT gamesystem object=@wait 2=@pemit %1=[repeat(=,33)] OTHERS [repeat(=,34)]%r[ljust(Merits and Flaws,25)][ljust(Languages,25)][ljust(Gamesystem,25)]%r;@wait 2=@dolist [lnum([max(words(sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*)))),words( sort(lattr(*%0/lang*))),words(sort(lattr(*%0/syst*))))])]=@pemit %1=[switch([gt(get(*%0/[elements( sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1))]),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements( sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1)),sub(strlen(elements( sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1))),4)))),23,.)][get(*%0/[elements( sort(setunion(lattr(*%0/flaw*),lattr(*%0/meri*))),add(##,1))])][space(1)])][switch([gt(get(*%0/[elements( sort(lattr(*%0/lang*)),add(##,1))]),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements( sort(lattr(*%0/lang*)),add(##,1)),sub(strlen(elements( sort(lattr(*%0/lang*)),add(##,1))),4)))),23,.)][get(*%0/[elements( sort(lattr(*%0/lang*)),add(##,1))])][space(1)])][switch([gt(strlen(get(*%0/[elements(sort(lattr(*%0/syst*)),add(##,1))])),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements(sort(lattr(*%0/syst*)),add(##,1)),sub(strlen(elements(sort(lattr(*%0/syst*)),add(##,1))),4)))),23,.)][get(*%0/[elements(sort(lattr(*%0/syst*)),add(##,1))])][space(1)])];@wait 6=@pemit %1=[repeat(=,34)] NOTES [repeat(=,34)]%r[get(*%0/gamesystemnotes)]%rGroup: [capstr(rest(get(*%0/race)))] &STATS_FN gamesystem object=[repeat(=,31)] SAN ANTONIO [repeat(=,31)]%r[ljust(Name: [name(*%0)],25)][ljust(Race: [first(get(*%0/race))],25)][ljust(Concept: [get(*%0/concept)],25)]%r[ljust(Nature: [get(*%0/nature)],25)][ljust(Demeanor: [get(*%0/demeanor)],25)][ljust(Status: [get(*%0/status)],25)]%r[ljust(Health: [get(*%0/health)],25)][ljust(Of which Aggravated: [get(*%0/agghealth)],25)][switch([gt(strlen(get(*%0/faecourt)),0)][gt(strlen(get(*%0/form)),0)],01,[ljust(Form: [get(*%0/form)],25)],10,[ljust(Court: [get(*%0/faecourt)],25)])]%r[repeat(=,31)] ATTRIBUTES [repeat(=,32)]%r[ljust(Physical,25)][ljust(Social,25)][ljust(Mental,25)]%r%r[ljust(Strength,20,.)][ljust([switch([strlen(get(*%0/tempstrength))],0,[get(*%0/strength)],[get(*%0/strength)]/[get(*%0/tempstrength)])],5)][ljust(Charisma,20,.)][ljust([switch([strlen(get(*%0/tempcharisma))],0,[get(*%0/charisma)],[get(*%0/charisma)]/[get(*%0/tempcharisma)])],5)][ljust(Perception,20,.)][ljust([switch([strlen(get(*%0/tempperceptions))],0,[get(*%0/perception)],[get(*%0/perception)]/[get(*%0/tempperception)])],5)]%r[ljust(Dexterity,20,.)][ljust([switch([strlen(get(*%0/tempdexterity))],0,[get(*%0/dexterity)],[get(*%0/dexterity)]/[get(*%0/tempdexterity)])],5)][ljust(Manipulation,20,.)][ljust([switch([strlen(get(*%0/tempmanipulation))],0,[get(*%0/manipulation)],[get(*%0/manipulation)]/[get(*%0/tempmanipulation)])],5)][ljust(Intelligence,20,.)][ljust([switch([strlen(get(*%0/tempintelligence))],0,[get(*%0/intelligence)],[get(*%0/intelligence)]/[get(*%0/tempintelligence)])],5)]%r[ljust(Stamina,20,.)][ljust([switch([strlen(get(*%0/tempstamina))],0,[get(*%0/stamina)],[get(*%0/stamina)]/[get(*%0/tempstamina)])],5)][ljust(Appearance,20,.)][ljust([switch([strlen(get(*%0/tempappearance))],0,[get(*%0/appearance)],[get(*%0/appearance)]/[get(*%0/tempappearance)])],5)][ljust(Wits,20,.)][ljust([switch([strlen(get(*%0/tempwits))],0,[get(*%0/wits)],[get(*%0/wits)]/[get(*%0/tempwits)])],5)]%r[repeat(=,32)] ABILITIES [repeat(=,32)]%r[ljust(Talents,25)][ljust(Skills,25)][ljust(Knowledges,25)];@dolist [lnum(add(1,[max(words(lattr(*%0/abiltal*)),words(lattr(*%0/abilski*)),words(lattr(*%0/abilkno*)))]))]=@pemit %#=[switch([strlen(elements(lattr(*%0/abiltal*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/abiltal*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abiltal*),##),sub(strlen(elements(lattr(*%0/abiltal*),##)),8)))),23,.)][get(*%0/[elements(lattr(*%0/abiltal*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abiltal*),##),sub(strlen(elements(lattr(*%0/abiltal*),##)),7)))),23,.)][get(*%0/[elements(lattr(*%0/abiltal*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/abilski*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/abilski*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilski*),##),sub(strlen(elements(lattr(*%0/abilski*),##)),8)))),23,.)][get(*%0/[elements(lattr(*%0/abilski*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilski*),##),sub(strlen(elements(lattr(*%0/abilski*),##)),7)))),23,.)][get(*%0/[elements(lattr(*%0/abilski*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/abilkno*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/abilkno*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilkno*),##),sub(strlen(elements(lattr(*%0/abilkno*),##)),8)))),23,.)][get(*%0/[elements(lattr(*%0/abilkno*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilkno*),##),sub(strlen(elements(lattr(*%0/abilkno*),##)),7)))),23,.)][get(*%0/[elements(lattr(*%0/abilkno*),##)])][space(1)])])];@wait 1=@pemit %#=[repeat(=,31)] ADVANTAGES [repeat(=,32)]%r[ljust(Gifts,25)][ljust(Backgrounds,25)][ljust(Virtues,25)];@wait 1=@switch [words(setinter(capstr(first(get(*%0/race))),Garou Bastet Corax Mokole Nuwisha))]=0,{@dolist [lnum(add(1,[max(words(lattr(*%0/spec*)),words(lattr(*%0/backg*)),words(lattr(*%0/virt*)))]))]=@pemit %#=[switch([strlen(elements(lattr(*%0/spec*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/spec*),##),4,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/spec*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),4)))),23,.)][get(*%0/[elements(lattr(*%0/spec*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/backg*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/backg*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/virt*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/virt*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)])])]},{@dolist [lnum(add(1,[max(words(lattr(*%0/spec*)),words(lattr(*%0/backg*)),words(lattr(*%0/virt*)))]))]=@pemit %#=[switch([strlen(elements(lattr(*%0/spec*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/spec*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),4)))),23, )][space(2)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),4)))),23, )][space(2)])])][switch([strlen(elements(lattr(*%0/backg*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/backg*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/virt*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/virt*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)])])]};@trig me/statslookwait=%0,%# &CMD_STATS gamesystem object=$+stats:@pemit %#=[repeat(=,32)] YOUR SHEET [repeat(=,31)]%r[ljust(Name: [name(%#)],25)][ljust(Race: [first(get(%#/race))],25)][ljust(Concept: [get(%#/concept)],25)]%r[ljust(Nature: [get(%#/nature)],25)][ljust(Demeanor: [get(%#/demeanor)],25)][ljust(Status: [get(%#/status)],25)]%r[ljust(Health: [get(%#/health)],25)][ljust(Of which Aggravated: [get(%#/agghealth)],25)][switch([gt(strlen(get(%#/faecourt)),0)][gt(strlen(get(%#/form)),0)],01,[ljust(Form: [get(%#/form)],25)],10,[ljust(Court: [get(%#/faecourt)],25)])]%r[repeat(=,31)] ATTRIBUTES [repeat(=,32)]%r[ljust(Physical,25)][ljust(Social,25)][ljust(Mental,25)]%r%r[ljust(Strength,20,.)][ljust([switch([strlen(get(%#/tempstrength))],0,[get(%#/strength)],[get(%#/strength)]/[get(%#/tempstrength)])],5)][ljust(Charisma,20,.)][ljust([switch([strlen(get(%#/tempcharisma))],0,[get(%#/charisma)],[get(%#/charisma)]/[get(%#/tempcharisma)])],5)][ljust(Perception,20,.)][ljust([switch([strlen(get(%#/tempperceptions))],0,[get(%#/perception)],[get(%#/perception)]/[get(%#/tempperception)])],5)]%r[ljust(Dexterity,20,.)][ljust([switch([strlen(get(%#/tempdexterity))],0,[get(%#/dexterity)],[get(%#/dexterity)]/[get(%#/tempdexterity)])],5)][ljust(Manipulation,20,.)][ljust([switch([strlen(get(%#/tempmanipulation))],0,[get(%#/manipulation)],[get(%#/manipulation)]/[get(%#/tempmanipulation)])],5)][ljust(Intelligence,20,.)][ljust([switch([strlen(get(%#/tempintelligence))],0,[get(%#/intelligence)],[get(%#/intelligence)]/[get(%#/tempintelligence)])],5)]%r[ljust(Stamina,20,.)][ljust([switch([strlen(get(%#/tempstamina))],0,[get(%#/stamina)],[get(%#/stamina)]/[get(%#/tempstamina)])],5)][ljust(Appearance,20,.)][ljust([switch([strlen(get(%#/tempappearance))],0,[get(%#/appearance)],[get(%#/appearance)]/[get(%#/tempappearance)])],5)][ljust(Wits,20,.)][ljust([switch([strlen(get(%#/tempwits))],0,[get(%#/wits)],[get(%#/wits)]/[get(%#/tempwits)])],5)]%r[repeat(=,32)] ABILITIES [repeat(=,32)]%r[ljust(Talents,25)][ljust(Skills,25)][ljust(Knowledges,25)];@dolist [lnum(add(1,[max(words(lattr(%#/abiltal*)),words(lattr(%#/abilski*)),words(lattr(%#/abilkno*)))]))]=@pemit %#=[switch([strlen(elements(lattr(%#/abiltal*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/abiltal*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/abiltal*),##),sub(strlen(elements(lattr(%#/abiltal*),##)),8)))),23,.)][get(%#/[elements(lattr(%#/abiltal*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/abiltal*),##),sub(strlen(elements(lattr(%#/abiltal*),##)),7)))),23,.)][get(%#/[elements(lattr(%#/abiltal*),##)])][space(1)])])][switch([strlen(elements(lattr(%#/abilski*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/abilski*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/abilski*),##),sub(strlen(elements(lattr(%#/abilski*),##)),8)))),23,.)][get(%#/[elements(lattr(%#/abilski*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/abilski*),##),sub(strlen(elements(lattr(%#/abilski*),##)),7)))),23,.)][get(%#/[elements(lattr(%#/abilski*),##)])][space(1)])])][switch([strlen(elements(lattr(%#/abilkno*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/abilkno*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/abilkno*),##),sub(strlen(elements(lattr(%#/abilkno*),##)),8)))),23,.)][get(%#/[elements(lattr(%#/abilkno*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/abilkno*),##),sub(strlen(elements(lattr(%#/abilkno*),##)),7)))),23,.)][get(%#/[elements(lattr(%#/abilkno*),##)])][space(1)])])];@wait 1=@pemit %#=[repeat(=,31)] ADVANTAGES [repeat(=,32)]%r[ljust(Gifts,25)][ljust(Backgrounds,25)][ljust(Virtues,25)];@wait 1=@switch [words(setinter(capstr(first(get(%#/race))),Garou Bastet Corax Mokole Nuwisha))]=0,{@dolist [lnum(add(1,[max(words(lattr(%#/spec*)),words(lattr(%#/backg*)),words(lattr(%#/virt*)))]))]=@pemit %#=[switch([strlen(elements(lattr(%#/spec*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/spec*),##),4,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/spec*),##),sub(strlen(elements(lattr(%#/spec*),##)),5)))),23,.)][get(%#/[elements(lattr(%#/spec*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/spec*),##),sub(strlen(elements(lattr(%#/spec*),##)),4)))),23,.)][get(%#/[elements(lattr(%#/spec*),##)])][space(1)])])][switch([strlen(elements(lattr(%#/backg*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/backg*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/backg*),##),sub(strlen(elements(lattr(%#/backg*),##)),6)))),23,.)][get(%#/[elements(lattr(%#/backg*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/backg*),##),sub(strlen(elements(lattr(%#/backg*),##)),5)))),23,.)][get(%#/[elements(lattr(%#/backg*),##)])][space(1)])])][switch([strlen(elements(lattr(%#/virt*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/virt*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/virt*),##),sub(strlen(elements(lattr(%#/virt*),##)),6)))),23,.)][get(%#/[elements(lattr(%#/virt*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/virt*),##),sub(strlen(elements(lattr(%#/virt*),##)),5)))),23,.)][get(%#/[elements(lattr(%#/virt*),##)])][space(1)])])]},{@dolist [lnum(add(1,[max(words(lattr(%#/spec*)),words(lattr(%#/backg*)),words(lattr(%#/virt*)))]))]=@pemit %#=[switch([strlen(elements(lattr(%#/spec*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/spec*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/spec*),##),sub(strlen(elements(lattr(%#/spec*),##)),4)))),23, )][space(2)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/spec*),##),sub(strlen(elements(lattr(%#/spec*),##)),4)))),23, )][space(2)])])][switch([strlen(elements(lattr(%#/backg*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/backg*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/backg*),##),sub(strlen(elements(lattr(%#/backg*),##)),6)))),23,.)][get(%#/[elements(lattr(%#/backg*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/backg*),##),sub(strlen(elements(lattr(%#/backg*),##)),5)))),23,.)][get(%#/[elements(lattr(%#/backg*),##)])][space(1)])])][switch([strlen(elements(lattr(%#/virt*),##))],0,[space(25)],[switch(mid(elements(lattr(%#/virt*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/virt*),##),sub(strlen(elements(lattr(%#/virt*),##)),6)))),23,.)][get(%#/[elements(lattr(%#/virt*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(%#/virt*),##),sub(strlen(elements(lattr(%#/virt*),##)),5)))),23,.)][get(%#/[elements(lattr(%#/virt*),##)])][space(1)])])]};@wait 2=@pemit %#=[repeat(=,33)] OTHERS [repeat(=,34)]%r[ljust(Merits and Flaws,25)][ljust(Languages,25)][ljust(Gamesystem,25)]%r;@wait 2=@dolist [lnum([max(words(sort(setunion(lattr(%#/flaw*),lattr(%#/meri*)))),words( sort(lattr(%#/lang*))),words(sort(lattr(%#/syst*))))])]=@pemit %#=[switch([gt(get(%#/[elements( sort(setunion(lattr(%#/flaw*),lattr(%#/meri*))),add(##,1))]),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements( sort(setunion(lattr(%#/flaw*),lattr(%#/meri*))),add(##,1)),sub(strlen(elements( sort(setunion(lattr(%#/flaw*),lattr(%#/meri*))),add(##,1))),4)))),23,.)][get(%#/[elements( sort(setunion(lattr(%#/flaw*),lattr(%#/meri*))),add(##,1))])][space(1)])][switch([gt(get(%#/[elements( sort(lattr(%#/lang*)),add(##,1))]),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements( sort(lattr(%#/lang*)),add(##,1)),sub(strlen(elements(sort(lattr(%#/lang*)),add(##,1))),4)))),23,.)][get(%#/[elements(sort(lattr(%#/lang*)),add(##,1))])][space(1)])][switch([gt(strlen(get(%#/[elements(sort(lattr(%#/syst*)),add(##,1))])),0)],0,[space(25)],[ljust(capstr(lcstr(u(me/right,elements(sort(lattr(%#/syst*)),add(##,1)),sub(strlen(elements(sort(lattr(%#/syst*)),add(##,1))),4)))),23,.)][get(%#/[elements(sort(lattr(%#/syst*)),add(##,1))])][space(1)])];@wait 3=@pemit %#=[repeat(=,34)] NOTES [repeat(=,34)]%r[get(%#/gamesystemnotes)]%rGroup: [capstr(rest(get(%#/race)))] &STATSLOOK gamesystem object=$+stats *:@switch [orflags(%#,WwZ)]=0,@pemit %#=You are not a staffmember and are not allowed to look at another's sheet.,{@pemit %#=[repeat(=,div(sub(59,[strlen(mudname()]),2))] [mudname()] [repeat(=,div(sub(59,[strlen(mudname()]),2))]%r[ljust(Name: [name(*%0)],25)][ljust(Race: [first(get(*%0/race))],25)][ljust(Concept: [get(*%0/concept)],25)]%r[ljust(Nature: [get(*%0/nature)],25)][ljust(Demeanor: [get(*%0/demeanor)],25)][ljust(Status: [get(*%0/status)],25)]%r[ljust(Health: [get(*%0/health)],25)][ljust(Of which Aggravated: [get(*%0/agghealth)],25)][switch([gt(strlen(*%0/form),0)],[ljust(Form: [get(*%0/form)],25)])]%r[repeat(=,31)] ATTRIBUTES [repeat(=,32)]%r[ljust(Physical,25)][ljust(Social,25)][ljust(Mental,25)]%r%r[ljust(Strength,20,.)][ljust([switch([strlen(get(*%0/tempstrength))],0,[get(*%0/strength)],[get(*%0/strength)]/[get(*%0/tempstrength)])],5)][ljust(Charisma,20,.)][ljust([switch([strlen(get(*%0/tempcharisma))],0,[get(*%0/charisma)],[get(*%0/charisma)]/[get(*%0/tempcharisma)])],5)][ljust(Perception,20,.)][ljust([switch([strlen(get(*%0/tempperceptions))],0,[get(*%0/perception)],[get(*%0/perception)]/[get(*%0/tempperception)])],5)]%r[ljust(Dexterity,20,.)][ljust([switch([strlen(get(*%0/tempdexterity))],0,[get(*%0/dexterity)],[get(*%0/dexterity)]/[get(*%0/tempdexterity)])],5)][ljust(Manipulation,20,.)][ljust([switch([strlen(get(*%0/tempmanipulation))],0,[get(*%0/manipulation)],[get(*%0/manipulation)]/[get(*%0/tempmanipulation)])],5)][ljust(Intelligence,20,.)][ljust([switch([strlen(get(*%0/tempintelligence))],0,[get(*%0/intelligence)],[get(*%0/intelligence)]/[get(*%0/tempintelligence)])],5)]%r[ljust(Stamina,20,.)][ljust([switch([strlen(get(*%0/tempstamina))],0,[get(*%0/stamina)],[get(*%0/stamina)]/[get(*%0/tempstamina)])],5)][ljust(Appearance,20,.)][ljust([switch([strlen(get(*%0/tempappearance))],0,[get(*%0/appearance)],[get(*%0/appearance)]/[get(*%0/tempappearance)])],5)][ljust(Wits,20,.)][ljust([switch([strlen(get(*%0/tempwits))],0,[get(*%0/wits)],[get(*%0/wits)]/[get(*%0/tempwits)])],5)]%r[repeat(=,32)] ABILITIES [repeat(=,32)]%r[ljust(Talents,25)][ljust(Skills,25)][ljust(Knowledges,25)];@dolist [lnum(add(1,[max(words(lattr(*%0/abiltal*)),words(lattr(*%0/abilski*)),words(lattr(*%0/abilkno*)))]))]=@pemit %#=[switch([strlen(elements(lattr(*%0/abiltal*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/abiltal*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abiltal*),##),sub(strlen(elements(lattr(*%0/abiltal*),##)),8)))),23,.)][get(*%0/[elements(lattr(*%0/abiltal*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abiltal*),##),sub(strlen(elements(lattr(*%0/abiltal*),##)),7)))),23,.)][get(*%0/[elements(lattr(*%0/abiltal*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/abilski*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/abilski*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilski*),##),sub(strlen(elements(lattr(*%0/abilski*),##)),8)))),23,.)][get(*%0/[elements(lattr(*%0/abilski*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilski*),##),sub(strlen(elements(lattr(*%0/abilski*),##)),7)))),23,.)][get(*%0/[elements(lattr(*%0/abilski*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/abilkno*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/abilkno*),##),7,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilkno*),##),sub(strlen(elements(lattr(*%0/abilkno*),##)),8)))),23,.)][get(*%0/[elements(lattr(*%0/abilkno*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/abilkno*),##),sub(strlen(elements(lattr(*%0/abilkno*),##)),7)))),23,.)][get(*%0/[elements(lattr(*%0/abilkno*),##)])][space(1)])])];@wait 1=@pemit %#=[repeat(=,31)] ADVANTAGES [repeat(=,32)]%r[ljust(Gifts,25)][ljust(Backgrounds,25)][ljust(Virtues,25)];@wait 1=@switch [words(setinter(capstr(first(get(*%0/race))),Garou Bastet Corax Mokole Nuwisha))]=0,{@dolist [lnum(add(1,[max(words(lattr(*%0/spec*)),words(lattr(*%0/backg*)),words(lattr(*%0/virt*)))]))]=@pemit %#=[switch([strlen(elements(lattr(*%0/spec*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/spec*),##),4,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/spec*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),4)))),23,.)][get(*%0/[elements(lattr(*%0/spec*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/backg*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/backg*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/virt*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/virt*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)])])]},{@dolist [lnum(add(1,[max(words(lattr(*%0/spec*)),words(lattr(*%0/backg*)),words(lattr(*%0/virt*)))]))]=@pemit %#=[switch([strlen(elements(lattr(*%0/spec*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/spec*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),4)))),23, )][space(2)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/spec*),##),sub(strlen(elements(lattr(*%0/spec*),##)),4)))),23, )][space(2)])])][switch([strlen(elements(lattr(*%0/backg*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/backg*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/backg*),##),sub(strlen(elements(lattr(*%0/backg*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/backg*),##)])][space(1)])])][switch([strlen(elements(lattr(*%0/virt*),##))],0,[space(25)],[switch(mid(elements(lattr(*%0/virt*),##),5,1),~,[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),6)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)],[ljust(capstr(lcstr(u(me/right,elements(lattr(*%0/virt*),##),sub(strlen(elements(lattr(*%0/virt*),##)),5)))),23,.)][get(*%0/[elements(lattr(*%0/virt*),##)])][space(1)])])]};@trig me/statslookwait=%0,%#} &BIGGERTHENDIF gamesystem object=[gte(%0,%1)] &BIGGERTHEN1 gamesystem object=[gte(%0,1)] &BIGGERTHEN2 gamesystem object=[gte(%0,2)] &BIGGERTHEN3 gamesystem object=[gte(%0,3)] &BIGGERTHEN4 gamesystem object=[gte(%0,4)] &BIGGERTHEN5 gamesystem object=[gte(%0,5)] &BIGGERTHEN6 gamesystem object=[gte(%0,6)] &BIGGERTHEN7 gamesystem object=[gte(%0,7)] &BIGGERTHEN8 gamesystem object=[gte(%0,8)] &BIGGERTHEN9 gamesystem object=[gte(%0,9)] &BIGGERTHEN10 gamesystem object=[gte(%0,10)] &ROLL gamesystem object=[setq(0,0)][trim([iter(lnum(%0),[setq(1,rand(10))][switch(1,gte(add(1,r(1)),%1),[setq(0,add(r(0),1 ))],eq(r(1),0),[setq(0,sub(r(0),1))])])][r(0)])] &ROLLVERBOSESKILL gamesystem object=$+vroll *+*=*:@switch [gt(match(lcstr(get(~~~/attributeslist)),lcstr(%1)),0)]=0,@pemit %#=I'm sorry but I do not know that attribute. Please remember to type +vroll ABIL+ATTR=DIFF and not the other way around.,{@switch [isnum(%2)]=0,@pemit %#=I'm sorry but your difficulty has to be a number.,{@switch [lte(%2,10)]=0,@pemit %#=I'm sorry but your difficulty has to be a number below 10.,{@switch [gt(match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[switch([u(me/left,extract(get(~~~/knowledgelist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,kno~)],[setq(8,kno)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThe rolls were: %q0.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match([iter(get(~~~/talentlist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[switch([u(me/left,extract(get(~~~/talentlist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,tal~)],[setq(8,tal)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThe rolls were: %q0.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match([iter(get(~~~/skilllist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[switch([u(me/left,extract(get(~~~/skilllist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,ski~)],[setq(8,ski)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThe rolls were: %q0.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match(iter(lattr(%#/spec*),mid(##,4,strlen(##))),ucstr(%0)),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/spec%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThe rolls were: %q0.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/spec%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},@pemit %#=I'm sorry but I do not know %1 as an ability or gift. Please remember to type +vroll ABIL+ATTR=DIFF and not the other way around.}}}}}} &ROLLSKILLVERBOSEONE gamesystem object=$+vroll/stat *=*:@switch [isnum(%1)]=0,@pemit %#=I'm sorry but your difficulty has to be a number.,{@switch [lte(%1,10)]=0,@pemit %#=I'm sorry but your difficulty has to be a number below 10.,{@switch [gt(strlen(get(%#/%0)),0)]=1,{[setq(0,iter(lnum(get(%#/%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abiltal~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abiltal~%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/abiltal~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abiltal%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abiltal%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/abiltal%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilski~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilski~%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/abilski~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilski%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilski%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/abilski%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilkno~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilkno~%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/abilkno~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilkno%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilkno%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/abilkno%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/spec%0)),0)]=1,{[setq(0,iter(lnum(get(%#/spec%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/spec%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/virtu%0)),0)]=1,{[setq(0,iter(lnum(get(%#/virtu%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/virtu%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(match(get(%#/syst%0),*/*),0)][gt(strlen(get(%#/syst%0)),0)]=01,{[setq(0,iter(lnum(get(%#/syst%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(get(%#/syst%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},11,{@switch [strlen(get(%#/syst%0))]=5,{[setq(0,iter(lnum(right(get(%#/syst%0),2)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(right(get(%#/syst%0),2))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{[setq(0,iter(lnum(right(get(%#/syst%0),1)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(right(get(%#/syst%0),1))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.}},@pemit %#=I'm sorry but %0 is not a gift nor an attribute or ability or virtue or system value. Please try something else.}}}}}}}}}}} &ROLLSKILL gamesystem object=$+roll *+*=*:@switch [gt(match(lcstr(get(~~~/attributeslist)),lcstr(%1)),0)]=0,@pemit %#=I'm sorry but I do not know that attribute. Please remember to type +roll ABIL+ATTR=DIFF and not the other way around.,{@switch [isnum(%2)]=0,@pemit %#=I'm sorry but your difficulty has to be a number.,{@switch [lte(%2,10)]=0,@pemit %#=I'm sorry but your difficulty has to be a number below 10.,{@switch [gt(match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[switch([u(me/left,extract(get(~~~/knowledgelist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,kno~)],[setq(8,kno)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match([iter(get(~~~/talentlist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[switch([u(me/left,extract(get(~~~/talentlist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,tal~)],[setq(8,tal)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match([iter(get(~~~/skilllist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[switch([u(me/left,extract(get(~~~/skilllist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,ski~)],[setq(8,ski)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match(iter(lattr(%#/spec*),mid(##,4,strlen(##))),ucstr(%0)),0)]=1,{@wait 1=@pemit/contents [loc(%#)]=[setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/spec%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %2.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/spec%0))]),[switch([gte(extract(%q0,add(##,1),1),%2)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},@pemit %#=I'm sorry but I do not know %1 as an ability or gift. Please remember to type +roll ABIL+ATTR=DIFF and not the other way around.}}}}}} &ROLLSKILLONE gamesystem object=$+roll/stat *=*:@switch [isnum(%1)]=0,@pemit %#=I'm sorry but your difficulty has to be a number.,{@switch [lte(%1,10)]=0,@pemit %#=I'm sorry but your difficulty has to be a number below 10.,{@switch [gt(strlen(get(%#/%0)),0)]=1,{[setq(0,iter(lnum(get(%#/%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abiltal~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abiltal~%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abiltal~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abiltal%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abiltal%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abiltal%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilski~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilski~%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilski~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilski%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilski%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilski%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilkno~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilkno~%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilkno~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilkno%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilkno%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilkno%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/spec%0)),0)]=1,{[setq(0,iter(lnum(get(%#/spec%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/spec%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/virtu%0)),0)]=1,{[setq(0,iter(lnum(get(%#/virtu%0)),add(rand(10),1)))];@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;@pemit/contents [loc(%#)]=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/virtu%0))],[switch(1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},11,{@switch [strlen(get(%#/syst%0))]=5,{[setq(0,iter(lnum(right(get(%#/syst%0),2)),add(rand(10),1)))];@dolist %# [iter(%2,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %2=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(right(get(%#/syst%0),2))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{[setq(0,iter(lnum(right(get(%#/syst%0),1)),add(rand(10),1)))];@dolist %# [iter(%2,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %2=%N has rolled %0 with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter([lnum(right(get(%#/syst%0),1))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.}},@pemit %#=I'm sorry but %0 is not a gift nor an attribute or ability or virtue or system value. Please try something else.}}}}}}}}}}} &ROLLPAGESKILL gamesystem object=$+proll *+*=* to *:@switch [gt(match(lcstr(get(~~~/attributeslist)),lcstr(%1)),0)]=0,@pemit %#=I'm sorry but I do not know that attribute. Please remember to type +roll ABIL+ATTR=DIFF and not the other way around.,{@switch [isnum(%2)]=0,@pemit %#=I'm sorry but your difficulty has to be a number.,{@switch [lte(%2,10)]=0,@pemit %#=I'm sorry but your difficulty has to be a number below 10.,{@switch [gt(match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=p %# %3=[switch([u(me/left,extract(get(~~~/knowledgelist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,kno~)],[setq(8,kno)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %3.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%3)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match([iter(get(~~~/talentlist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=p %# %3=[switch([u(me/left,extract(get(~~~/talentlist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,tal~)],[setq(8,tal)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %3.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%3)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match([iter(get(~~~/skilllist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0),0)]=1,{@wait 1=p %# %3=[switch([u(me/left,extract(get(~~~/skilllist),[match([iter(get(~~~/knowledgelist),setq(9,%q9 [switch([u(me/left,##,1)],~,u(me/right,##,sub(strlen(##),1)),##)]))]%q9,%0)],1),1)],~,[setq(8,ski~)],[setq(8,ski)])][setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %3.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/abil[%q8]%0))]),[switch([gte(extract(%q0,add(##,1),1),%3)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},{@switch [gt(match(iter(lattr(%#/spec*),mid(##,4,strlen(##))),ucstr(%0)),0)]=1,{@wait 1=p %# %3=[setq(0,iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/spec%0))]),add(rand(9),1)))]%N has rolled %0 with %1 at a difficulty of %3.%rThere were [iter(lnum([add([switch([strlen(get(%#/temp%1))],0,[get(%#/%1)],[get(%#/temp%1)])],get(%#/spec%0))]),[switch([gte(extract(%q0,add(##,1),1),%3)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@wait 1=@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r},@pemit %#=I'm sorry but I do not know %1 as an ability or gift. Please remember to type +roll ABIL+ATTR=DIFF and not the other way around.}}}}}} &ROLLPAGESKILLONE gamesystem object=$+proll/stat *=*:@switch [isnum(%1)]=0,@pemit %#=I'm sorry but your difficulty has to be a number.,{@switch [lte(%1,10)]=0,@pemit %#=I'm sorry but your difficulty has to be a number below 10.,{@switch [gt(strlen(get(%#/%0)),0)]=1,{[setq(0,iter(lnum(get(%#/%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abiltal~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abiltal~%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abiltal~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abiltal%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abiltal%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abiltal%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilski~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilski~%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilski~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilski%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilski%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilski%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilkno~%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilkno~%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilkno~%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/abilkno%0)),0)]=1,{[setq(0,iter(lnum(get(%#/abilkno%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/abilkno%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/spec%0)),0)]=1,{[setq(0,iter(lnum(get(%#/spec%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/spec%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(strlen(get(%#/virtu%0)),0)]=1,{[setq(0,iter(lnum(get(%#/virtu%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/virtu%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{@switch [gt(match(get(%#/syst%0),*/*),0)][gt(strlen(get(%#/syst%0)),0)]=01,{[setq(0,iter(lnum(get(%#/syst%0)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(get(%#/syst%0))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},11,{@switch [strlen(get(%#/syst%0))]=5,{[setq(0,iter(lnum(right(get(%#/syst%0),2)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(right(get(%#/syst%0),2))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.},{[setq(0,iter(lnum(right(get(%#/syst%0),1)),add(rand(10),1)))];@dolist %# [iter(%3,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%R;p %# %3=%N has rolled %0 with a difficulty of %1.%rThere were [iter([lnum(right(get(%#/syst%0),1))],[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],0,[switch(eq(extract(%q0,add(##,1),1),1),1,[setq(2,sub(%q2,1))])])])][switch(neq(strlen(%q2),0),1,%q2,0,0)] successes.}},@pemit %#=I'm sorry but %0 is not a gift nor an attribute or ability or virtue or system value. Please try something else.}}}}}}}}}}} &NUMROLL gamesystem object=$+roll/num *=*:@remit [loc(%#)]=%N rolls %0 dice with a difficulty of %1.[iter(lnum(%0),setq(0,[%q0] [add(rand(9),1)]))]%rThe rolls were: %q0.%rThere were [iter(lnum(%0),[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@dolist [ lcon([loc(%#)])]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r &NUMPAGEROLL gamesystem object=$+proll/num *=* to *:p %N %2=[iter(lnum(%0),setq(0,[%q0] [add(rand(9),1)]))]%r%N rolls %0 dice with a difficulty of %1.%rThe rolls were: %q0.%rThere were [iter(lnum(%0),[switch([gte(extract(%q0,add(##,1),1),%1)],1,[setq(2,add(%q2,1))],[switch(extract(%q0,add(##,1),1),1,[setq(2,sub(%q2,1))])])])][switch(strlen(%q2),0,0,%q2)] successes.;@dolist %# [iter(%2,*##)]=@pemit ##=%ch%cg**%ch%cy[switch(hasattr(##,verify),0,Verify Not Set,1,[u(##/verify)])]%ch%cg**%cn%r &SMALLERTHENTWO gamesystem object=[lt(%0,2)] &LEFT gamesystem object=[mid(%0,0,%1)] &RIGHT gamesystem object=[mid(%0,sub(strlen(%0),%1),%1)] &HELPROLL gamesystem object=$+roll/help:@pemit %#=+roll/num <#>=%r+roll/stat =%r+roll +=%r%r+roll/num always gives the number of successes, the other two do not. To see these type the v of 'verbose' before +roll:%r%r+vroll/stat =%r+vroll +=%r%rNow if you want to show the roll only to a few specific people there is the p before each of these roll options, and 'to ' behind it. so +proll/num <#>= to Pentangle Cat will roll to you, Pentangle and Cat.%r%r+proll/num <#>= to %r+proll/stat = to %r+proll += to %r+pvroll/stat = to %r+pvroll += to %r%rThe code comes with a verify, you can set &verify me= so you know the roll isn't faked. &codehelproll gamesystem object=$+code/help:@pemit %#=Codehelp for the chargen%r%r+progress%t%ttells where you are with chargen%r+stats%t%tgives your stats%r+roll/help%t%thelp for the roll code%r+stats %tgives the stats of to staff%r+list commands%thelp for staff @set gamesystem object=INHERIT @create Staff Globals=10 @set Staff Globals=commands @lock Staff Globals=CHECKLOCK/1 @lock/UseLock Staff Globals=CHECKLOCK/1 &NATURELIST Staff Globals=$+list nat*:@pemit %#=For natures and demeanors all characters except changelings can choose from the following list: %r[columns([get(~~~/types)],15,|)]The seelie legacy list for Fae is: %r[columns(get(~~~/seelielegacies),15)]The unseelie legacy list for Fae is: %r[columns(get(~~~/unseelielegacies),15)]The summer legacy list for Nunnehi is: %r[columns(get(~~~/summerlegacies),15)]The winter legacy list for Nunnehi is: %r[columns(get(~~~/winterlegacies),15)]To set a character's nature or for Changeling unseelie legacy or for Nunnehi winter legacy type '+nat playername=nature'. For demeanor or changeling's seelie legacy or Nunnehi's summer legacy type '+dem playername=demeanor'. &CHECKLOCK Staff Globals=[orflags(%#,WwZ)] @Fail Staff Globals=@pemit %#=I'm sorry but since you are staff you cannot use this command. &NATURESET Staff Globals=$+nat* *=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [gt(match(Changeling,capstr(first(get(*%1/race)))),0)]=1,{@switch [gt(match(get(~~~/unseelielegacies),capstr(lcstr(%2))),0)]=0,@pemit %#=I am sorry I do not know that unseelie legacy. type '+naturelist' and try again please.,{&nature *%1=%2;@pemit %#=You have set [name(*%1)]'s Unseelie Legacy to %2.}},{@switch [gt(match(Nunnehi,capstr(first(get(*%1/race)))),0)]=1,{@switch [gt(match(get(~~~/winterlegacies),capstr(lcstr(%2))),0)]=0,@pemit %#=I am sorry I do not know that winter legacy. type '+naturelist' and try again please.,{&nature *%1=%2;@pemit %#=You have set [name(*%1)]'s Winter legacy to %2.}},{@switch [gt(match(get(~~~/types),capstr(lcstr(%2)),|),0)]=0,@pemit %#=I am sorry I do not know that nature. type '+naturelist' and try again please.,{&nature *%1=%2;@pemit %#=You have set [name(*%1)]'s nature to %2.}}}} &DEMEANORSET Staff Globals=$+dem* *=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [gt(match(Changeling,capstr(first(get(*%1/race)))),0)]=1,{@switch [gt(match(get(~~~/seelielegacies),capstr(lcstr(%2))),0)]=0,@pemit %#=I am sorry I do not know that seelie legacy. type '+naturelist' and try again please.,{&demeanor *%1=%2;@pemit %#=You have set [name(*%1)]'s seelie Legacy to %2.}},{@switch [gt(match(Nunnehi,capstr(first(get(*%1/race)))),0)]=1,{@switch [gt(match(get(~~~/summerlegacies),capstr(lcstr(%2))),0)]=0,@pemit %#=I am sorry I do not know that summer legacy. type '+naturelist' and try again please.,{&demeanor *%1=%2;@pemit %#=You have set [name(*%1)]'s summer legacy to %2.}},{@switch [gt(match(get(~~~/types),capstr(lcstr(%2)),|),0)]=0,@pemit %#=I am sorry I do not know that demeanor. type '+naturelist' and try again please.,{&demeanor *%1=%2;@pemit %#=You have set [name(*%1)]'s demeanor to %2.}}}} &RACEINFO Staff Globals=$+list race *:@switch %0=Mortal,@pemit %#=The race list that you can choose from is: [get(~~~/racelist)]. For a mortal you only have to type '+race =Mortal there are no specific groups to fill in. Though of course you can do so if you like.,Mo*+,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. For a Mortal+ person you need to fill in affilliations and such but there is no set order to this, as long as you have the word 'Mortal +' first. So type '+race playername=Mortal+ .},Vam*,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. For a Vampire the next order has to be kept: First the word Vampire. Then second word is the sect, namely [get(~~~/vampiresectlist)]. From this sect you choose your clan. Clans for Camarilla are [get(~~~/listvampireclancamarilla)]%rFor Sabbat: [get(~~~/listvampireclansabbat)]%rFor Independent: [get(~~~/listvampireclanindependent)]%rFor Anarch: [get(~~~/listvampireclananarch)]%rThe command is then: +race =Vampire . Make sure the clan fits the sect!},Ma*,{@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. Setting a race Mage is very complex. A mage first has a sect, namely: [get(~~~/magesectlist)], Then follows the tradition which is decided by sect. These are for sect %rTradition: [get(~~~/listmageclantradition)]%rFor Technocracy: [get(~~~/listmageclantechnocracy)]%rFor Disparate: [get(~~~/listmageclandisparate)]%rThen there is a faction (or methodology for Technocracy, the code will choose the right form) per clan. If your clan is not in the following list just put 'None' for now (it needs a word) as these are not known yet. The factions for tradition are:};@dolist [lattr(~~~/listmagefaction*)]=@pemit %#=[capstr(lcstr(mid(##,15,sub(strlen(##),1))))] :[get(~~~/##)];@wait 1=@pemit %#=And finally you add the mage essence (for Tradition) or Eidolon (for Technocracy the code will choose the right form). You can choose from: [get(~~~/listmageessence)].%rThe complete command would be:+race =Mage of from with },Fa*,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. There are two kinds of Fae, Changelings and Nunnehi. Nunnehi are Native American Fae. For help on how to set Changelings type '+race Changeling' and for Nunnehi '+race Nunnehi'.},Ch*,@pemit %#={A changeling is set with at least 6 words in race, and have to be given in that order, since the code calculates glamour and other things through these. First comes the word Changeling. Second the seeming, being one of these: [get(~~~/seeminglist)]. Then their kith which can be any of the following: [get(~~~/kithlist)]. And the following is a list of Houses to choose from: [get(~~~/houselist)]. The complete command would be '+race =Changeling of house '.},Nun*,@pemit %#={Nunnehi (Native American Fae) get a seeming and a kith for their racedescription. Seeming is one of the following: [get(~~~/nunseeminglist)]. And kith can be any of these: [get(~~~/nunkithlist)]. Please remember to write the kith EXACTLY as you find it in the list, including -'s for spaces and such. Then the full command is +staff =Nunnehi },Shi*,@pemit %#={The race list that you can choose from is: [get(~~~/racelist)]. There will be many kinds of shifter races, for now set up are Garou, Bastet, Corax and Nuwisha. Ratkin and Anainsi will be set later. For information on how to set each type '+race Garou' '+race Bastet' '+race Corax' or '+race Nuwisha'.},Ga*,@pemit %#={Garou need to choose a breed from this list: [get(~~~/breedlist)]. Their auspice can be any of the following: [get(~~~/auspicelist)]. And the following is a list of tribes to choose from: [get(~~~/garoutribelist)]. The command to set a race Garou would be: +race =Garou of tribe '.},Ba*,@pemit %#={Bastet are much like Garou in setup. Their breed is one of the following: [get(~~~/bastetbreedlist)]. Their pryio can be any of the following: [get(~~~/pryiolist)]. And the following is a list of Tribes to choose from: [get(~~~/Bastettribelist)]. Now to set their race information type '+race =Bastet of tribe '.},Co*,@pemit %#={Corax only need to know their breed and region. Their breed is one of the following: [get(~~~/coraxbreedlist)]. The geographic region can be any of the following: [get(~~~/geolist)]. Now to set the race information type '+race =Corax of region '.},Nuw*,@pemit %#={All Nuwisha are Ragabash so only their breeds needs to be chosen. Use this list: [get(~~~/nuwishabreedlist)]. To set a player Nuwisha type '+race =Nuwisha Ragabash} &RACESET Staff Globals=$+race *=*:@switch [gt(match(type(*%0),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [capstr(ucstr(first(%1)))]=Mortal,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.},Mortal+,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.},Vampire,{@switch [gt(match([get(~~~/vampiresectlist)],[extract(%1,2,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that sect.Please type '+race Vampire' and try again.,{@switch [gt(match([get(~~~/listvampireclan[extract(%1,2,1)])],[extract(%1,3,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that clan for that sect. Please type '+race Vampire and try again.,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.}}},Mage,{@switch [gt(match([get(~~~/magesectlist)],[extract(%1,2,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that sect. Please type '+race Mage and try again.,{@switch [gt(match([get(~~~/listmageclan[extract(%1,2,1)])],[extract(%1,4,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that clan for that sect. Please type '+race Mage and try again.,{@switch [gt(match([get(~~~/listmagefaction[extract(%1,4,1)])],[extract(%1,6,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that faction for that clan. Please type '+race Mage and try again.,{@switch [gt(match([get(~~~/listmageessence)],[extract(%1,8,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that essence. Please type '+race Mage and try again.,{&race *%0=Mage [extract(%1,2,1)] of [extract(%1,4,1)] from [switch([capstr(ucstr(extract(%1,2,1)))],Technocracy,Methodology,Faction)] [extract(%1,6,1)] with [switch([capstr(ucstr(extract(%1,2,1)))],Technocracy,Eidolon,Essence)] [extract(%1,8,1)];@pemit %#=You have set [name(*%0)]'s race to [get(*%0/race)].}}}}},Changeling,{@switch [gt(match(get(~~~/seeminglist),[extract(%1,2,1)]),0)]=0,@pemit %#=I do not know that seeming for a changeling. Please type +race changeling' and try again.,{@switch [gt(match(get(~~~/kithlist),[extract(%1,3,1)]),0)]=0,@pemit %#={the seeming is right, but the kith was not in the list. Please type '+race Changeling' and try again.},{@switch [gt(match(get(~~~/houselist),[extract(%1,6,1)]),0)]=0,@pemit %#={the seeming and kith were right, but the house was not in the list. This is the list of Houses to choose from: [get(~~~/houselist)]. Please try the command again with '+race player=Changeling of House '.},{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.}}}},Nunnehi,{@switch [gt(match(get(~~~/nunseeminglist),[extract(%1,2,1)]),0)]=0,@pemit %#={Sorry I don't know that seeming.. Please type '+race Changeling' and try again.},{@switch [gt(match(get(~~~/nunkithlist),[extract(%1,3,1)]),0)]=0,@pemit %#={the seeming was right, but the kith was not in the list. Please type '+race Nunnehi' and try again. Remember take the words over EXACTLY as they are written there.},{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.}}},Garou,{@switch [gt(match(get(~~~/breedlist),[extract(%1,2,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that breed. Please type +race Garou and try again.,{@switch [gt(match(get(~~~/auspicelist),[extract(%1,3,1)] ),0)]=0,@pemit %#=I'm sorry but I do not know that auspice. Please type '+race Garou' and try again.,{@switch [gt(match(get(~~~/garoutribelist),[extract(%1,6,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that tribe. Please type '+race Garou' and try again.,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.}}}},Bastet,{@switch [gt(match(get(~~~/bastetbreedlist),[extract(%1,2,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that breed. Please type +race Bastet and try again.,{@switch [gt(match(get(~~~/pryiolist),[extract(%1,3,1)] ),0)]=0,@pemit %#=I'm sorry but I do not know that pryio. Please type '+race Bastet' and try again.,{@switch [gt(match(get(~~~/bastettribelist),[extract(%1,6,1)]),0)]=0,@pemit %#=I'm sorry but I do not know that tribe. Please type '+race Bastet' and try again.,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.}}}},Corax,{@switch [gt(match([get(~~~/coraxbreedlist)],[extract(%1,2,1)]),0)]=0,@pemit %#=I'm sorry I do not know that breed for Corax. Please type '+race corax' and try again.,{@switch [gt(match([get(~~~/geolist)],[extract(%1,5,1)]),0)]=0,@pemit %#=I'm sorry I do not know that geographic region for Corax. Please type '+race corax' and try again.,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.}}},Nuwisha,{@switch [gt(match([get(~~~/nuwishabreedlist)],[extract(%1,2,1)]),0)]=0,@pemit %#=I'm sorry I do not know that breed for Nuwisha. Please type '+race Nuwisha'' and try again.,{@switch [capstr(lcstr(extract(%1,3,1)))]=Ragabash,{&race *%0=%1;@pemit %#=You have set [name(*%0)]'s race to %1.},@pemit %#=I'm sorry but that last word should have been Ragabash. Please try again.}},@pemit %#=I am really sorry but I do not know that race. please type '+race to try again.} &RACESTART Staff Globals=$+list race:@pemit %#=You can set a player's race with this command. You can choose from the races: [get(~~~/racelist)]. Since every race needs to set different affiliations and groups please type '+list race ' for more info. &ATTRIBUTESLIST Staff Globals=Strength Charisma Perception Dexterity Manipulation Intelligence Stamina Appearance Wits &SETATTR Staff Globals=$+attr* *=*=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [isnum(%3)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%3,5)]=1,@pemit %#=I'm sorry but you cannot set an attribute with a value larger then 5 on a player,{@switch [capstr(lcstr(mid(%2,0,3)))]=Str,{&Strength *%1=%3;@pemit %#=You have given [name(*%1)] a strength of %3.},Cha,{&charisma *%1=%3;@pemit %#=You have given [name(*%1)] a charisma of %3.},Per,{&perception *%1=%3;@pemit %#=You have given [name(*%1)] a perception of %3.},Dex,{&dexterity *%1=%3;@pemit %#=You have given [name(*%1)] a dexterity of %3.},Man,{&manipulation *%1=%3;@pemit %#=You have given [name(*%1)] a manipulation of %3.},Int,{&intelligence *%1=%3;@pemit %#=You have given [name(*%1)] an intelligence of %3.},Sta,{&stamina *%1=%3;@pemit %#=You have given [name(*%1)] a stamina of %3.},App,{&appearance *%1=%3;@pemit %#=You have given [name(*%1)] an appearance of %3.},Wit,{&wits *%1=%3;@pemit %#=You have given [name(*%1)] a wits of %3.},@pemit %#=I'm sorry but I do not know that attribute. Please type '+listattr' and try again.}}} &LISTATTR Staff Globals=$+list attr*:@pemit %#=You can choose from the following attributes.%r[columns(get(me/attributeslist),25)]The command to set an attribute to a specific value on a player is '+attribute playername=attributename=value'. The word attribute can be written shorter up to three letters and the same goes for the actual attribute name.}} &LISTINGABILITIES Staff Globals=$+list abil*:@pemit %#={It is too much to give the abilities all at once. It was cut up in three parts, knowledges, talents and skills. For a list of knowledges type '+list knowledges' for a list of skills '+list skills' and for a list of talents "+list talents' If you want to remove knowledges, skills or talents, make sure you know in which group they belong (they are in the right column on the sheet) and set their value to 0.} &LISTINGKNOWLEDGES Staff Globals=$+list kno*:@pemit %#=knowledges attributes are %r[columns([get(~~~/knowledgelist)],19)]%r%rPrimary knowle dges (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. To set a knowledge on a player type '+knowledge =='. the word knowledge can be shortened to 3 letters. Please do use the ~ before the name for secundary abilities or otherwise the code won't pick it up and it will keep both kinds of abilities apart. To remove a knowledge from the sheet just set it's value to 0. &LISTINGTALENTS Staff Globals=$+list tal*:@pemit %#=Talents attributes are %r[columns([get(~~~/talentlist)],19)]%r%rPrimary talents (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. To set a talent on a player type '+talent =='. the word talent can be shortened to 3 letters. Please do use the ~ before the name for secundary abilities or otherwise the code won't pick it up and it will keep both kinds of abilities apart. To remove a talent from the sheet just set it's value to 0. &LISTINGSKILLS Staff Globals=$+list ski*:@pemit %#=Skills attributes are %r[columns([get(~~~/skilllist)],19)]%r%rPrimary skills (without ~before their name) are 1 point per level, secondary ones (with ~before the name) are a half point per level. To set a skill on a player type '+skill =='. the word skill can be shortened to 3 letters. Please do use the ~ before the name for secundary abilities or otherwise the code won't pick it up and it will keep both kinds of abilities apart. To remove a skill from the sheet just set it's value to 0. &SETKNOWLEDGE Staff Globals=$+kno* *=*=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [isnum(%3)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%3,5)]=1,@pemit %#=I'm sorry but you cannot set an ability with a value larger then 5 on a player,{@switch [gt(match(get(~~~/knowledgelist),%2),0)]=0,@pemit %#=I'm sorry but I do not know that knowledge. Please type '+list knowlegdes' and try agian.,{@switch [%3]=0,&abilkno%2 *%1=,&abilkno%2 *%1=%3;@pemit %#=You have given [name(*%1)] a %2 knowledge of %3.}}}} &SETSKILL Staff Globals=$+ski* *=*=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [isnum(%3)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%3,5)]=1,@pemit %#=I'm sorry but you cannot set an ability with a value larger then 5 on a player,{@switch [gt(match(get(~~~/skilllist),%2),0)]=0,@pemit %#=I'm sorry but I do not know that skill. Please type '+list skills' and try agian.,{@switch [%3]=0,&abilski%2 *%1=,&abilski%2 *%1=%3;@pemit %#=You have given [name(*%1)] a %2 skill of %3.}}}} &SETTALENT Staff Globals=$+tal* *=*=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I'm sorry but %1 is not a player.,{@switch [isnum(%3)]=0,@pemit %#=You need to give a number as the value.,{@switch [gt(%3,5)]=1,@pemit %#=I'm sorry but you cannot set an ability with a value larger then 5 on a player,{@switch [gt(match(get(~~~/talentlist),%2),0)]=0,@pemit %#=I'm sorry but I do not know that talent. Please type '+list talents' and try agian.,{@switch [%3]=0,&abiltal%2 *%1=,&abiltal%2 *%1=%3;@pemit %#=You have given [name(*%1)] a %2 talent of %3.}}}} &BACKGROUNDSLIST Staff Globals=$+list b*g*:@pemit %#=Players have 5 points of backgrounds and can buy more with freebies. To list the backgrounds for one particular race type '+list backgrounds. Names of races are: [get(~~~/racelist)]%rTo remove a certain background from the sheet just set it's value to 0. &BACKGROUNDSRACELIST Staff Globals=$+list * b*g*:@switch [gt(match(get(~~~/racelist),%0),0)]=0,@pemit %#=I'm sorry but I do not know that race.,@pemit %#=All backgrounds for race %0 are:%r[columns(get(~~~/backgrounds%0),19)]]Please remember that if you wish to give a player's background a value with '+background == that the race for that player has been set correctly for the code will not allow backgrounds that are not suited for that race (like no Past Life for a Vampire. To remove a certain background from the sheet just set it's value to 0.) &VIRTUESLIST Staff Globals=$+list virtues:@pemit %#=Each race has different virtues. Only Fae and Mage have no virtues. The human races (mortal mortal+ and Camarilla vampires) have Conscience, Selfcontrol and Courage. Other vampires can have Conviction, Instinct and Moral, The Garou and Nuwisha keep Honor, Glory and Renown. For Bastet it is Cleverness, Ferocity and Honor. To set a player's virtue type '+virtue ==' The value of the total of virtues for a starting shifter character is 3, and for the human races it is 7 with one dot in each of their virtues extra. &VIRTUESSET Staff Globals=$+vir* *=*=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I"m sorry but %1 does not seem to be a player.,{@switch [gt(match(get(~~~/racelist),first(get(*%1/race))),0)]=0,@pemit %#=I'm sorry but [name(*%1)] does not seem to have a valid race set.,{@switch [isnum(%3)]=0,@pemit %#=I"m sorry but the a number.,{@switch [gt(%4,5)]=1,@pemit %#=I"m sorry but you cannot set a sphere with a value greater then 5.,{@switch [gt(match(get(~~~/magespherelist),%3),0)]=0,@pemit %#=I'm sorry but I do not know that sphere.,{@switch %4=0,&spec%3 *%2=,&spec%3 *%2=%4;@pemit %#=You have set the sphere %3 for [name(*%2)] to a value of %4.}}}},@pemit %#=I'm sorry but [name(*%2)] does not seem to be of the race Mage.} &LISTART Staff Globals=$+list art*:@pemit %#=Your choice of Arts is: [get(~~~/changelingarts)]. To set a value for an art you type '+art ==. To remove an art from the sheet just set it's value to 0. &SETART Staff Globals=$+art** *=*=*:@switch [gt(match(type(*%2),PLAYER),0)]=0,@pemit %#=I"m sorry but %2 does not seem to be a player.,{@switch [gt(match(changeling nunnehi,lcstr(first(get(*%2/race)))),0)]=1,{@switch [isnum(%4)]=0,@pemit %#=I"m sorry but the value of the art needs to be a number.,{@switch [gt(%4,5)]=1,@pemit %#=I"m sorry but you cannot set a art with a value greater then 5.,{@switch [gt(match(get(~~~/changelingarts),%3),0)]=0,@pemit %#=I'm sorry but I do not know that art.,{@switch %4=0,&specart%3 *%2=,&specart%3 *%2=%4;@pemit %#=You have set the art %3 for [name(*%2)] to a value of %4.}}}},@pemit %#=I'm sorry but [name(*%2)] does not seem to be of the race Changeling..} &LISTREALMS Staff Globals=$+list rea*:@pemit %#=The choice of Realms is: [get(~~~/changelingrealms)].%rTo set a value for a realm you type '+realm ==. To remove a realm from the sheet just set it's value to 0. &SETREALM Staff Globals=$+rea** *=*=*:@switch [gt(match(type(*%2),PLAYER),0)]=0,@pemit %#=I"m sorry but %2 does not seem to be a player.,{@switch [gt(match(changeling nunnehi,lcstr(first(get(*%2/race)))),0)]=1,{@switch [isnum(%4)]=0,@pemit %#=I"m sorry but the value of the realm needs to be a number.,{@switch [gt(%4,5)]=1,@pemit %#=I"m sorry but you cannot set a realm with a value greater then 5.,{@switch [gt(match(get(~~~/changelingrealms),%3),0)]=0,@pemit %#=I'm sorry but I do not know that realm.,{@switch %4=0,&specrealm%3 *%2=,&specrealm%3 *%2=%4;@pemit %#=You have set the realm %3 for [name(*%2)] to a value of %4.}}}},@pemit %#=I'm sorry but [name(*%2)] does not seem to be of the race Changeling.} &LISTGIFTS Staff Globals=$+list gifts:@pemit %#=The system has gifts for each race of shifters. Each starting shifter gets 3 gifts, usually one for his breed, one for his auspice or pryio and one for his tribe. The code will check if the chosen gift for the player is suitable for their breed, auspice or pryio and tribe. To check out which gifts to choose from type '+list gifts '. for options for breed auspice priyo or tribe type '+list . For the gifts for the tribe Corax or Nuwisha simply fill in the tribename twice. For example +list gifts Nuwisha Nuwisha. Please make sure you set the right gifts yourself in the right numbers, for the code can only check if the gifts are indeed allowed for that particular race but cannot check if there is indeed one gift from each group chosen or such.%r%rThe code to add a gift for a player is '+gift ='%rThe code to remove a gift is +rem gift = &LISTGIFTSGROUP Staff Globals=$+list gifts * *:@switch [gt(match(Garou Bastet Nuwisha Corax,%0),0)]=0,@pemit %#=I fear that is not a shifter race.,@pemit %#=The gifts for a %1 for race %0 are: [get(~~~/%0gifts%1)]. &LISTGAROU Staff Globals=$+list garou:@pemit %#=Garou have three breeds: homid metis and lupus.%rThey have 5 auspices: [get(~~~/auspicelist)]%rTheir tribes are: [get(~~~/garoutribelist)]. &LISTBASTET Staff Globals=$+list bastet:@pemit %#=Bastet have three breeds: homid metis and feline. %rThey have three pryio's: Daylight Twilight Night.%rTheir tribes are: [get(~~~/bastettribelist)] &LISTNUWISHA Staff Globals=$+list nuwisha:@pemit %#=Nuwisha have two breeds: homid and lupus.%rThey have one auspice: Ragabash%rTheir tribe is: Nuwisha.%r%rSo for nuwisha gifts type '+list gifts Nuwisha homid/lupus/Ragabash/Nuwisha &LISTCORAX Staff Globals=$+list corax:@pemit %#={Corax have two breeds, homid and corvid, and one tribe: Corax. For choosing their gifts only the Coraxtribe is important, they choose 3 gifts from that list. So for their gifts type '+list gifts corax corax} &SETGIFTS Staff Globals=$+gif* *=*:@switch [gt(match(type(*%1),PLAYER),0)]=0,@pemit %#=I"m sorry but %1 does not seem to be a player.,{@switch [gt(match(Garou Bastet Corax Nuwisha,first(get(*%1/race))),0)]=0,@pemit %#=I'm sorry but [name(*%1)] does not seem to have a shifter race set.,{@switch [lcstr(first(get(*%1/race)))]=corax,{@switch [gt(match(get(~~~/coraxgiftscorax),%2),0)]=0,@pemit %#=I'm sorry I do not know that gift for Corax. Please type +list gifts corax corax and try again.,{&spec%2 *%1=1;@pemit %#=You have set the coraxgift %2 for [name(*%1)].}},{@switch [gt(match(get(~~~/[first(get(*%1/race))]gifts[extract(get(*%1/race),2,1)]),%2),0)]=0,{@switch [gt(match(get(~~~/[first(get(*%1/race))]gifts[extract(get(*%1/race),3,1)]),%2),0)]=0,{@switch [lcstr(first(get(*%1/race)))]=nuwisha,{@switch [gt(match(get(~~~/nuwishagiftsnuwisha),%2),0)]=0,@pemit %#=I'm sorry I do not know that gift for a nuwisha. Please type '+list gifts' and try again.,{&spec%2 *%1=1;@pemit %#=You have set the tribegift %2 for [name(*%1)].}},{@switch [gt(match(get(~~~/[first(get(*%1/race))]gifts[extract(get(*%1/race),6,1)]),%2),0)]=0,{@pemit %#=I'm sorry the gift you wish to give [name(*%1)] does not fit their breed nor their tribe nor their auspice or pryio. Please type +list gifts' and try again.},{&spec%2 *%1=1;@pemit %#=You have set the tribegift %2 for [name(*%1)].}}},{&spec%2 *%1=1;@pemit %#=You have set the auspice or pryiogift %2 for [name(*%1)].}},{&spec%2 *%1=1;@pemit %#=You have set the breedgift %2 for [name(*%1)].}}}} &LEFT Staff Globals=[mid(%0,0,%1)] @Desc Staff Globals=%R[iter(setdiff(lattr(me),Desc),ljust(##,18))] @set Staff Globals=ENTER_OK @set Staff Globals=INHERIT @set Staff Globals=SAFE &sheethelp Staff Globals=$+stats/help:@pemit %#={Staffers: +list%r%rSheetsettings for WIZZES only!%r%r&race *name=%r&nature *name=%r&demeanor *name=%r&concept *name=%r&status *name= *name=%r&abilkno *name=%r&abilski *name=%r&abiltal *name=%r========================================%r&spec *name=%r&backg *name=%r&virtu *name=%r&meri *name=%r&flaw *name=%r+lang admin %r&syst *name=%r&gamesystemnotes *name=} &LEFT Character Data Lists=[mid(%0,0,%1)] @set Character Data Lists=commands &ATTRIBUTESLIST Character Data Lists=Strength Charisma Perception Dexterity Manipulation Intelligence Stamina Appearance Wits &TYPES Character Data Lists=Architect|Autist|Bon Vivant|Bravo|Caregiver|Child|Conformist|Conniver|Curmudgeon|Deviant|Director|Fanatic|Gallant|Jester|Judge|Loner|Martyr|Pedagogue|Rebel|Survivor|Traditionalist|Visionary &RACELIST Character Data Lists=Mortal Mortal+ Changeling Nunnehi Vampire Mage Garou Bastet Corax Nuwisha Ratkin &SEEMINGLIST Character Data Lists=Childer Wilder Grump &KITHLIST Character Data Lists=Boggan Eshu Nocker Pooka Redcap Satyr Sidhe Sluagh Troll &HOUSELIST Character Data Lists=Dougal Eiluned Fiona Gwydion Liam None &NUNKITHLIST Character Data Lists=May-May-gwya-shi rock-giants nanehi Yunwi-Amai'yine'hi Yunwi-tsundsi canotili tunghat kaghinas surems water-babies numuzo'ho pu'gwis inuas &NUNSEEMINGLIST Character Data Lists=Youngling Brave Elder &MAGESECTLIST Character Data Lists=Tradition Technocracy Disparate &LISTMAGECLANTRADITION Character Data Lists=Akashic-Brotherhood Celestial-Chorus Cult-of-Ecstasy Dreamspeakers Euthanatos Order-of-Hermes Sons-of-Ether Verbena Virtual-Adepts &LISTMAGECLANTECHNOCRACY Character Data Lists=Iteration-X New-World-Order Progenitors Syndicate Void-Engineers &LISTMAGECLANDISPARATE Character Data Lists=Hollow-Ones Orphans Shaman &LISTMAGEESSENCE Character Data Lists=Dynamic Primordial Pattern Questing &LISTMAGEFACTIONAKASHIC-BROTHERH Character Data Lists=Orange-Robes Scales-of-the-Dragon Yogi Blue-Skins &LISTMAGEFACTIONCELESTIAL-CHORUS Character Data Lists=Anchorites Cabal-of-Pure-Thought Knights-of-St.-George Merovingians Septarians Latitudinarians Monists Sisters-of-Gabrielle Alexandrian-Society Sons-of-Mitras Children-of-Albi The-Nashimites None &LISTMAGEFACTIONCULT-OF-ECSTASY Character Data Lists=Aghoris Acharne Hagalaz Bongos-Rangers Fellowship-of-Pan Dissonance-Society Khlysty-Flagellants Fifth-World-Tribe Kan-Lu Erzuli-Jingo Kiss-of-Astarte Kaa Maenads Vratyas None &LISTMAGEFACTIONDREAMSPEAKERS Character Data Lists=Keepers-of-the-Sacred-Flame Solitaries Ghost-Wheel-Society Red-Spears Four-Winds Baruti-Contraties None &LISTMAGEFACTIONEUTHANATOS Character Data Lists=Natatapas Consanguinity-of-Eternal-Joy Madzimbahwe Pomegranate-Deme The-Aided Lhaksmists The-Golden-Chalice Knights-of-Radamanthys The-Scholars-of-the-Wheel Albireo None &LISTMAGEFACTIONORDER-OF-HERMES Character Data Lists=House-Bonisagus House-Ex-Miscellanea House-Flambeau House-Fortunae House-Janissary House-Quaesitor House-Shaea House-Thig House-Tytalus None &LISTMAGEFACTIONVERBENA Character Data Lists=Gardeners-of-the-Tree Twisters-of-Fate Moon-Seekers Lifeweavers None &LISTMAGEFACTIONHOLLOW-ONES Character Data Lists=Councilor Revolutionaries None &LISTMAGEFACTIONORPHANS Character Data Lists=None &LISTMAGEFACTIONSHAMAN Character Data Lists=None &LISTMAGEFACTIONITERATION-X Character Data Lists=Bio-Mechanics Statisticians Time-Motion-Managers &LISTMAGEFACTIONNEW-WORLD-ORDER Character Data Lists=The-Ivory-Tower Operatives Q-Division Watchers &LISTMAGEFACTIONPROGENITORS Character Data Lists=Genengineers FAADE-Engineers Pharmacopoeists &LISTMAGEFACTIONSYNDICATE Character Data Lists=Disbursements Enforcers Financiers Media-Control Special-Projects-Division &LISTMAGEFACTIONVOID-ENGINEERS Character Data Lists=Border-Corps-Division DSEATC Earth-Frontier-Division Neutralization-Specialist-Corps Pan-Dimensional-Corps Research&Development &LISTMAGEFACTIONSONS-OF-ETHER Character Data Lists=The-Ethernauts Utopians Cybernauts-Webslingers Progressivists The-Traditionalists Mad-Scientists Pulp-Heroes-Adventurers None &LISTMAGEFACTIONVIRTUAL-ADEPTS Character Data Lists=Cyberpunks Cypherpunks Chaoticians Reality-Hackers None &VAMPIRESECTLIST Character Data Lists=Sabbat Camarilla Independent Anarch &LISTVAMPIRECLANSABBAT Character Data Lists=Brujah-Antitribu Malkavian-Antitribu Toreador-Antitribu Ventrue-Antitribu Tremere-Antitribu Nosferatu-Antitribu Gangrel-Antitribu Ravnos-Antitribu Assamite-Antitribu Lasombra Tzimisce Panders Serpent-of-the-Light &LISTVAMPIRECLANCAMARILLA Character Data Lists=Brujah Malkavian Toreador Ventrue Tremere Nosferatu Gangrel &LISTVAMPIRECLANINDEPENDENT Character Data Lists=Ravnos Salubri Samedi Assamite Setite Giovanni Caitiff Daughter-of-Cacophony &LISTVAMPIRECLANANARCH Character Data Lists=Brujah Daughter-of-Cacophony Caitiff Panders Setite Giovanni &BREEDLIST Character Data Lists=Lupus Homid Metis &AUSPICELIST Character Data Lists=Ragabash Theurge Philodox Galliard Ahroun &GAROUTRIBELIST Character Data Lists=Get-of-Fenris Glass-Walkers Wendigos Uktena Stargazers Bone-Gnawers Silver-Fangs Black-Furies Shadow-Lords Silent-Striders Fianna Children-of-Gaia &BASTETBREEDLIST Character Data Lists=Feline Homid Metis &PRYIOLIST Character Data Lists=Daylight Twilight Night &BASTETTRIBELIST Character Data Lists=Bagheera Balam Bubasti Ceilican Khan Pumonca Qualmi Simba Swara &CORAXBREEDLIST Character Data Lists=Homid Corvid &GEOLIST Character Data Lists=Amerind European Russian Asian Australian African &NUWISHABREEDLIST Character Data Lists=Lupus Homid &SEELIELEGACIES Character Data Lists=Demeanor Bumpkin Courtier Crafter Dandy Hermit Orchid Paladin Panderer Regent Sage Saint Squire Troubadour Wayfarer Arcadian aspirant comrade gadfly humanist knight philanthropisat pishogue prankster stoic virtouso &UNSEELIELEGACIES Character Data Lists=Nature Beast fatalist fool grotesque knave outlaw pandora peacock rake riddler ringleader rogue savage wretch Bogle churl fiend fop cerenaic humbug craven ragamuffin schismatic shade sophist &SUMMERLEGACIES Character Data Lists=chief grower healer hunter maker scout spiritguide storyteller warrior wise-one trickster &WINTERLEGACIES Character Data Lists=cannibal fool forked-tounge hoarder outcast raider scalp-taker spoiler troublemaker witch trickster &RATKINBREEDLIST Character Data Lists=Homid Rat &TALENTLIST Character Data Lists=Acting Alertness Athletics Awareness Brawl Dodge Empathy Expression Instruction Intuition Intimidation Kenning Leadership Primal-Urge Streetwise Subterfuge ~Artistic-Expression ~Blatancy ~Carousing ~Diplomacy ~Dreamcraft ~Fast-Talk ~Fortune-Telling ~Flight ~Gossip ~Haggling ~High-Ritual ~Homiletics ~Instruction ~Interrogation ~Intrigue ~Jury-Rig ~Larceny ~Masquerade ~Mimicry ~Negotiation ~Newspeak ~Panhandling ~Poetic-Expression ~Public-Speaking ~Scan ~Scrounging ~Search ~Seduction ~Sense-Deception ~Spiritual-Alertness ~Style ~Swimming ~Throwing ~Ventriloquism &SKILLLIST Character Data Lists=Animal-Ken Crafts Do Drive Etiquette Firearms Meditation Melee Music Performance Repair Research Security Stealth Survival Technology ~Acrobatics ~Animal-Training ~Archery ~Artillery ~Bio-Technology ~Blacksmith ~Blind-Fighting ~Boat-Handling ~Body-Reading ~Body-Alteration ~Brewing-Distilling ~Bribery ~Brood-Kenning ~Bujo ~Camouflage ~Carpentry ~Clan-Impersonation ~Climbing ~Cooking ~Dancing ~Debate ~Demolitions ~Disguise ~Diversion ~Drinking ~Escapology ~Falconry ~Fast-Draw ~Fast-Talk ~First-Aid ~Fire-Eating ~Fire-Walking ~Fishing ~Forensics ~Forgery ~Gambling ~Game-Playing ~Gunsmithing ~Heavy-Weapons ~Herbalism ~Hunting ~Hypnotism ~Jeweler ~Journalism ~Juggling ~Kalindo ~Klaive-Dueling ~Leatherworking ~Lip-Reading ~Lock-Picking ~Martial-Arts ~Mechanic ~Microgravity-Ops ~Mis-Direction ~Networking ~Parachuting ~Photography ~Pickpocket ~Pilot ~Police-Procedure ~Pottery ~Psychoanalysis ~Ride ~Scuba ~Sculpting ~Singing ~Sleight-of-Hand ~Snake-Charming ~Speed-Reading ~Story-Telling ~Talith ~Tightrope-Walking ~Torture ~Tracking ~Traps ~Wine-Tasting ~Writing &KNOWLEDGELIST Character Data Lists=Academics Computer Cosmology Culture Finance Gremayre Enigmas Investigation Law Linguistics Medicine Occult Politics Rituals Science ~Accounting ~Alchemy ~Anthropology ~Archaeology ~Architecture ~Area-Knowledge ~Art-History ~Astrology ~Astronomy ~Beliefs ~Biology ~Bureaucracy ~Camarilla-Lore ~Chantry-Politics ~Chemistry ~Church-History ~Church-Lore ~City-Secrets ~Clan-Knowledge ~Computer-Hacking ~Criminology ~Cryptography ~Denizens ~Destruction-of-Spirits ~Economics ~Electronics ~Engineering ~Enochian ~Faerie-Lore ~Fense ~Forensics ~Garou-Lore ~Geography ~Geology ~Hearth-Wisdom ~Heraldry ~Herbalism ~History ~Hyper-Technology ~Inquisition-Lore ~Kindred-Lore ~Literature ~Lupine-Lore ~Mage-Lore ~Mathematics ~Metallurgy ~Meteorology ~Maieusis ~Metaphysics ~Military-Science ~Mnesis-Emulation ~Mythology ~Naturalist ~Nunnehi-Lore ~Pharmacopoeia ~Physics ~Psychology ~Poisons ~Rites-of-Church ~Romany-Lore ~Rune-Lore ~Sabbat-Lore ~Saurimancy ~Scripture ~Scribing ~Sewer-Lore ~Shifter-Lore ~Spirit-Lore ~Steward ~Stone-Lore ~Subdimensions ~Supernatural-Lore ~Taxidermy ~Technocracy-Lore ~Terrorism ~Temporal-Sense ~Theology ~Toxicology ~Tradition-Lore ~Umbral-Lore ~Umbral-Pathways ~Underworld-Miscellanea ~Vampire-Lore ~Wyrm-Lore &BACKGROUNDSNUWISHA Character Data Lists=Allies Contacts Fame FamiliarSpirit Fetish Influence Kinfolk Library Mentor Mnesis PastLife PastLife PureBreed Rank Resources Rites Totem Wallow &BACKGROUNDSGAROU Character Data Lists=Allies Contacts Fame FamiliarSpirit Fetish Influence Kinfolk Library Mentor Mnesis PastLife PastLife PureBreed Rank Resources Rites Totem Wallow &BACKGROUNDSBASTET Character Data Lists=Allies Contacts Fame Fetish DenRealm Influence Jamak Kinfolk Library Mentor Rank Resources Rites Totem Wallow &BACKGROUNDSVAMPIRE Character Data Lists=Allies Contacts Fame Generation Herd Influence Library Mentor Rank Resources Retainers Status(cam) &BACKGROUNDSCHANGELING Character Data Lists=Allies Chimera Companion Contacts Dreamers Fame Holdings Influence Library Mentor Prestige Rank Rememberance Resources Retinue Title Treasure &BACKGROUNDSMAGE Character Data Lists=Allies Arcane/Cloaking Avatar/Genius Contacts Chantry/Construct Destiny Dream/Hypercam Fame Familiar/Companion Influence Library Mentor/Patron Node Rank Resources Sanctuary Sanctum/Laboratory Talisman/Device &BACKGROUNDSMORTAL+ Character Data Lists=Allies Arcane Contacts Cenaculum Eidolon FaeBlood Fame Influence Library Mentor Mob Relic Rank Resources Status Talismans &BACKGROUNDSCORAX Character Data Lists=Allies Contacts Fame Influence Library Mentor Rank Resources Other-Peoples-Secrets Totem Umbral-Maps &BACKGROUNDSNUNNEHI Character Data Lists=Allies Chimera Companion Contacts Dreamers Fame Household Influence Library Mentor Rank Resources Title Totem &BACKGROUNDSMORTAL Character Data Lists=Allies Contacts Fame Influence Rank Resources &VIRTUELISTMORTAL+ Character Data Lists=Conscience Selfcontrol Courage &VIRTUELISTMORTAL Character Data Lists=Conscience Selfcontrol Courage &VIRTUELISTVAMPIRE Character Data Lists=Conscience Selfcontrol Courage Morale Conviction Instinct Callousness &VIRTUELIST Character Data Lists=Conscience Selfcontrol Courage &VIRTUELISTGAROU Character Data Lists=Honor Glory Wisdom &VIRTUELISTBASTET Character Data Lists=Cleverness Ferocity Honor &VIRTUELISTNUWISHA Character Data Lists=Humor Ferocity Cunning &SYSTEMLIST Character Data Lists=Willpower Humanity Rage Gnosis Totem Glamour Quintessence Arete Xp &GIFTLISTMORTAL+ Character Data Lists=BloodPurity Dance-of-Knives Draba Faerie Instinct Luck Evil-Eye Mediumship Patteran Spirit-of-the-Wolf The-Sight Threads Truth-of-the-Rom Zapaderin Alchemy Conjuration Conveyance Cursing Divination Enchantment Fascination Healing Hellfire Herbalism/Brewing Shadows Shapeshifting Summoning-Material Summoning-Daemonic Binding-Material Binding-Daemonic Warding-Material Warding-Daemonic Weathercraft ViaMedicamenti ViaGeniorum ViaNecromantiae ViaOraculi TrueFaith Fetishism Ephemera SpiritControl Clairvoyance Telekinesis Telepathy Psychokinesis FaeBlood PureBreed Perception Intelligence Wits &THAUMATURGYPERC Character Data Lists=Scent-of-the-Vampyre Escape-the-Undead-Eyes Voices-of-the-Dead Cloak-of-Shadows True-Sight &THAUMATURGYINTE Character Data Lists=Gift-of-Psyche Return-of-Light Confess Grasp-of-Mind Heart-of-Evil &THAUMATURGYWITS Character Data Lists=Bring-to-Body Light-of-the-True-Spirit Soul-of-the-Tree Shield-of-the-Thinker Flash &BASTETGIFTSCOMMON Character Data Lists=Level-1 Banish-Sickness Catfeet Command-Attention Dowsing Lick-Wounds Open-Seal Pathfinder's-Pride Raxor-Claws Sense-the-Truth Sense-Unmaker's-Hand Silent-Stalking Spirit's-Sight Treeclimber Level-Two Call-Spirits Cat-Sight Eerie-Eyes First-Slash Night-Terror Night's-Passage Sense-of-the-Prey Sense-Silver Shriek Summon-Water Swipe Touch-the-Mind Level-3 Call-the-Pride Caper Cat-Fear Cheshire-Prank Command-the-Prey Farsight Freyja's-Blessing Gift-of-Rage Ignore-Pain Impala's-Flight Purr Righteous-Gaze LEvel-4 Attunement Clawsotrm Fortuna Spirit-Claws Spitfire Walking-Between-Worlds Wolf's-Terror Level5 Future-Warning Jump-to-the-Moon Perfect-Passage Soothe/Summon-Storm Withering-Stare &BASTETGIFTSHOMID Character Data Lists=Level-1 Cat-Claws Sweet-Hunter's-Smile Level-2 Jam-Technology Eavesdropper's-Ear Level-3 Craft-of-the-Maker Babel's-Cure Level-4 What's-the-Password Monkey's-Uncle Level-5 Black-Friday Deny-the-Hungry &BASTETGIFTSMETIS Character Data Lists=Level-1 Create-Element Sense-Primal-Nature Level-2 Blinding-Moonbeam-Gaze whisker-Sight level-3 Spirit-Touch Fist-of-Cablash level-4 Moon's-Gateway Redeem-the-Waste level-5 Moon-Sense Wrath--of-Nala &BASTETGIFTSFELINE Character Data Lists=Level-1 Kitten's-Cry Mark-as-Mine Level-2 Killer's-Leap Perfect-Cover Level-3 Underbelly Whisker-Sight Level-4 Ghosts-at-Play Hand-of-Will Level-5 Judgement-of-Pestilence Revolt-of-the-Land &BASTETGIFTSBAGHEERA Character Data Lists=Level-1 Humbaba's-Escape Treeclimber Level-2 Lawgiver's-Legacy Ojas-Surge Level-3 Cobra's-Dance Traveler's-Tongues Level-4 The-Paradox-of-Time Potter's-Clay Level-5 Part-the-Curtain Shiva's-Might &BASTETGIFTSBALAM Character Data Lists=Level-1 Hunter's-Mists Storm-of-Pests Level2 Ancestral-Wings Smoking-Mirror Level-3 Touch-of-the-Tree-Frog Wandering-Forest Level-4 Vision-Cloud Judge's-Vengeance Level-5 Feed-the-Gods Heal-the-Wounded-Land &BASTETGIFTSBUBASTI Character Data Lists=Level-1 Alms-to-the-Poor Scholar's-Friend Level-2 Mousemaze Spirit-Ward Level-3 Banish-Cablash's-Brood The-Many-Tongues-of-Ptah Level-4 The-Scarab's-Flight Shadowplay Level-5 Deny-the-Hungry Spirit-Wall Level-6 The-Fleeing-Scarab &BASTETGIFTSCEILICAN Character Data Lists=Level-1 Mother's-Blessing/Curse Satyr's-Wisdom Level-2 Banish-Burning Sorcerer's-Blade Level-3 Data-Flow Phantasm Level-4 Monkey's-Uncle Small-Cousin Level-5 Chariot-of-Lions The-Madness-of-Crowds &BASTETGIFTSKHAN Character Data Lists=Level-1 Rhino's-Favor Skin-of-Jade Level-2 Heart-of-Fury Ricepaper-Walk Level-3 Maker's-Charm Paws-of-the-Raging-Spirit-Tiger Level-4 Asuras'-Bane Dragonroar Level-5 Call-to-Battle Thousand-Thunder-Strike &BASTETGIFTSPUMONCA Character Data Lists=Level-1 Mockingbird's-Mirror Wanderer's-Boon Level-2 Raincalling Stonework Level-3 Bayou-Shambler Thunderbolt Level-4 Element-Folk-Favor The-Hungry-Earth Level-5 Earthspeaking Thunderbird's-Cry Level-6 Earthquake &BASTETGIFTSQUALMI Character Data Lists=Level-1 Breakfast-of-Stones Turned-Fur Level-2 No-Hidden-Thing Wind-from-the-West Level-3 Drop-of-Sea Nighttime-Web Level-4 Dancing-on-Air Still-Breeze-Blowing Level-5 Call-down-the-Stars Water's-Vision &BASTETGIFTSSIMBA Character Data Lists=Level-1 Majesty Submit Level-2 Armor-of-Kings Rallying-Challenge Level-3 Fireroar Shadow-the-Moon's-Light Level-4 The-Bountiful-Dominion King-of-Beasts Level-5 Command-the-Multitude Rising-Sun Level-6 Royal-Privilege &BASTETGIFTSSWARA Character Data Lists=Level-1 Diamond-Claws Impala's-Flight Level-2 Walking-Between-Worlds Weight-of-a-Heart Level-3 Clearwater-Passage Dance-of-the-Chaya Level-4 Ghost-Caress Judgement-of-Pestilence Level-5 All-Beasts-Under-the-Sun River-of-Blood &CORAXGIFTS Character Data Lists=level-one Voice-of-the-mimic Enemy-Ways Morse Open-Seal Raven's-Gleaning Scent-of-the-True-form Truth-of-Gaia Word-Beyond Level-two Carrion's-Call Omens-and-Signs- Razor-Feathers Sky's-Beneficence Sky's-shadow Swallows-Return Taking-the-Forgotton Tongues Level-three Dark-Truths Dead-Talk- Eyes-of-the-Eagle Flight-of-the-swift Hummingbird-Dart Larder-of-the-shrike Mynah's-Touch Sun's-Guard Level-four Airt-Sense Gauntlet-Runner Helios-Child Vultures-FEast Level-Five- Gift-of-Eyes Moments-of-Eclipse Portents Theft-of-stars Thieving-Talons-of-Magpie &NUWISHAGIFTS Character Data Lists=Level-one Snake's-Skin Song-of-Kokopelli Swollen-Tongue Xochipilli's-Touch Rabbit-Run Spirit-Speech Level-Two Camouflage Sheep's-Clothing Odious-Aroma Dance-of-Dionysis New-Face Twisting-Tongues Umbral-Map Level-three Blisters Bridge-Walker Dance-of-Abandon Gift-of-Laughter Gift-of-Rage Push Scent-of-Vengeance Shadow-Walk Umbral-sight Umbral-Howl Level-4 Happy-Thoughts Trickster's-Skin Hidey-Hole Dissappearing-Act Heave-Ho Locked-Door Level-5 Umbral-Gateway Umbral-Target Teasing-Mate Ghost-Danse Wyld-Throw Level-six Coyote's-Howl &GAROUGIFTSHOMID Character Data Lists=Persuasion Smell-of-Man Level-2 Jam-Technology Staredown Level-3 Reshape-Object Disquiet Tongues Level-4 Cocoon Spiritward Bodyshift Level-5 Assimilation Part-the-Veil Reduce-Delirium &GAROUGIFTSMETIS Character Data Lists=Sense-Wyrm Create-Element Shed Level-2 Burrow Curse-of-Hatred Grovel Level-3 Eyes-of-the-Cat Mental-Speach Awaken-Beast Splintered-Claws Level-4 Wither-Limb Gift-of-the-Porcupine Bodyshift Level-5 Madness Totem-Gift &GAROUGIFTSLUPUS Character Data Lists=Heightened-Senses Leap-of-the-Kangaroo Level-2 Scent-of-Sight Sense-the-Unnatural Level-3 Catfeet Name-the-Spirit Monkey-Tail Level-4 Beastlife Gnaw Bodyshift Venom Level-5 Elemental-Gift Song-of-the-Great-Beast &GAROUGIFTSRAGABASH Character Data Lists=Blur-of-the-Milky-Eye Open-Seal Scent-of-Running-Water Level-2 Blissful-Ignorance Sense-of-the-Prey Taking-the-Forgotten Alter-Scent Obscure-the-Truth Level-3 Gremlins Open-Moon-Bridget Fly-Feet Silence Monkey-Tail Level-4 Luna's-Blessing Whelp-Body the-Crawling-Hand Fool's-Luck Level-5 Violation Thieving-Talons-of-the-Magpie &GAROUGIFTSTHEURGE Character Data Lists=Mother's-Touch Sense-Wyrm Spirit-Speech Level-2 Command-Spirit Name-the-Spirit Sight-from-Beyond Umbral-Tether Level-3 Exorcism Pulse-of-the-Invisible Spirit-Path Umbral-Sight Level-4 Grasp-the-Beyond Spirit-Drain Ultimate-Argument-of-Logic Shadowplay Level-5 Feral-Lobotomy The-Malleable-Spirit Spirit-Vessel &GAROUGIFTSPHILODOX Character Data Lists=Resist-Pain Scent-of-the-True-Form Truth-of-Gaia Level-2 Call-to-Duty King-of-the-Beast Strength-of-Purpose Level-3 Weak-Arm Wisdom-of-the-Ancient-Ways Sense-Balance Level-4 Roll-Over Scent-of-the-Beyond Take-the-True-Form Level-5 Geas Wall-of-Granite &GAROUGIFTSGALLIARD Character Data Lists=Beast-Speech Call-of-the-Wyld Mindspeak Level-2 Call-of-the-Wyrm Distractions Dreamspeak Mimic Level-3 Eye-of-the-Cobra Song-of-Rage Level-4 Bridge-Walker Shadows-by-the-Fire-Light Song-of-the-Siren Level-5 Head-Games Fabric-of-the-Mind &GAROUGIFTSAHROUN Character Data Lists=Inspiration Razor-Claws the-falling-Touch Level-2 Sense-Silver Spirit-of-the-Fray True-Fear Level-3 Hear-of-Fury Silver-Claws Combat-Healing Shatter-Bone Level-4 Clenched-Jaws Stoking-Fury's-Furnace Level-5 Kiss-of-Helios Strength-of-Will &GAROUGIFTSBLACK-FURIES Character Data Lists=Heightened-Senses Sense-Wyrm Level-2 Curse-of-Aeolus Sense-of-the-Prey Trail-of-Pain Level-3 Coup-De-Grace Visceral-Agony Song-of-the-Siren Bacchantes'-Rage Level-4 Body-Wrack Wasp-Talons Level-5 The-Thousand-Forms Wyld-Warp Gorgon's-Gaze &GAROUGIFTSBONE-GNAWERS Character Data Lists=Cooking Scent-of-Sweet-Honey Cardboard-Mansion Level-2 Blissful-Ignorance Odious-Aroma Trash-Magnet Level-3 Reshape-Object Gift-of-the-Skunk Beg Gift-of-the-Termite Level-4 Attunement Infest Level-5 Survivor Riot Gluttony &GAROUGIFTSCHILDREN-OF-GAIA Character Data Lists=Mother's-Touch Resist-Pain Level-2 Calm Luna's-Armor Level-3 Dazzle Spirit-Friend Chant-of-Morpheus Guilt-Trip Level-4 Beast-Life Serenity Unicorn's-Grace Level-5 Halo-of-the-Sun The-Living-Wood &GAROUGIFTSFIANNA Character Data Lists=Persuasion Resist-Toxin Level-2 Glib-Tongue Howl-of-the-banshee Brew Level-3 Faerie-Kin Reshape-Object Ley-Lines Woadling Level-4- Balor's-Gaze Phantasm Faerie-Blood Troll's-Bridge Song-of-Dire-*Children-of-Dire* Level-5 Call-the-Hunt Gift-of-the-Spriggan &GAROUGIFTSGET-OF-FENRIS Character Data Lists=Razor-Claws Resist-Pain Level-2- Halt-the-Cowards-Flight Snarl-of-the-Predator Sense-Guilt-* &GAROUGIFTSGLASS-WALKERS Character Data Lists=Control-Simple-Machines Persuasion Level-2 Cybersenses Power-Surge Heat-Metal Level-3 Control-Comples-Machines Elemental-Favor Data-Flow Invent Level-4- Attunement Doppelganger Camera-Eye Long-Running Phone-Travel Corner-Shot-*Wise-Guys* Level-5 Calm-the-Flock Summon-Net-Spider &GAROUGIFTSRED-TALONS Character Data Lists=Beast-speech Scent-of-running-Water Babble Level-2 Beastmind Sense-of-the-Prey Primal-Instinct Cull-the-Herd Level-3 Elemental-Favor Trackless-Waste Level-4 Avalanche Quicksand Rot-Weavertech Recycle Level-5 Curse-of-Dionysis Gaia's-Vengeance &GAROUGIFTSSHADOW-LORDS Character Data Lists=Fatal-Flaw Aura-of-Confidence Level-2 Clap-of-Thunder Luna's-Armor Disfigurement Level-3 Icy-Chill-of-Despair Paralyzing-Stare Curse-of-Corruption Summon-Stormcrow-*Judges-of-Doom* Stench-of-the-Pesant Level-4 Open-Wounds Strength-of-the-Dominator Level-5- Obedience Shadow-Pack &GAROUGIFTSSILENT-STRIDERS Character Data Lists=Sense-Wyrm Speed-of-Thought Level-2- Blissful-Ignorance Messengers-Fortitude Summon-Talisman Tread-Sebek's-Back Trouble-Seeker-*Harbinger* Level-3 Adaptation The-Great-Leap Long-Running Tongues Message-Glance Eyes-of-Ma'at Level-4 Attunement Speed-beyond-Thought Touch-of-Death-*Eaters-of-the-Dead* Dam-the-Heartflood Level-5 Gate-of-the-Moon Reach-the-Umbra Invocation-of-the-Pharaoh &GAROUGIFTSSILVER-FANGS Character Data Lists=Lambent-Flame Sense-Wyrm Level-2- Luna's-Armor Awe Word-of-Honor Level-3- Wrath-of-Gaia Silver-Claws Princely-Bearing Level-4 Mastery Mindblock Ignore-Death-Blow Level-5- Luna's-Avenger Paws-of-the-Newborn-Cub Level-6 Renew-the-Cycle &GAROUGIFTSSTARGAZERS Character Data Lists=Balance Sense-Wyrm Level-2 Inner-Strength Surface-Attunement Level-3- Clarity Merciful-Blow Conundrum Whispering-Wind-*Kalindo-Gift* Level-4 Preternatural-Awareness Ultimate-Arguement-of-Logic Avoid-Fate Level-5 Circular-Attack Wisdom-of-the-Seer Directing-the-Soul Astral-Mind-*World-Tree* &GAROUGIFTSUKTENA Character Data Lists=Sense-Magic Shroud Level-2 Spirit-of-the-Bird Spirit-of-the-Fish Level-3- Call-Flame-Spirit Invisibility Scrying Secrets Umbral-Sight Level-4 Call-Elemental Hand-of-the-Earth-Lords Pointing-the-Bone Sideways-Attack Strange-Rain Level-5 Fabric-of-the-Mind Fetish-Doll &GAROUGIFTSWENDIGO Character Data Lists=Call-the-Breeze Camouflage Level-2 Cutting-Wind Speak-with-the-Wind-Spirits Ghost-Pack Fog Curse-of-Aeolus-*Warpath* Level-3 Chill-of-Early-Frost Sky-Running Level-4 Attunement Call-the-Cannibal-Spirit Harano-*Ghost-Dance* Level-5 Invoke-the-Spirits-of-the-Storm Heart-of-ice- &GAROUGIFTSOTHER Character Data Lists=Level-6 Level-Philodox/Galliard Break-the-Bonds Level-Ragabash Firebringer Level-Theurge Rebirthing Level-Ahroun Unstoppable-Warrior &CHANGELINGARTS Character Data Lists=Chicanery Chronos Delusion Legerdemain Primal Soothsay Sovereign Wayfare Pyretics Naming SpiritLink &CHANGELINGREALMS Character Data Lists=Actor Fae Nature Prop Scene Time &GIFTSBRUJAH Character Data Lists=Celerity Potence Presence &GIFTSGANGREL Character Data Lists=Protean Animalism Fortitude &GIFTSMALKAVIAN Character Data Lists=Auspex Obfuscate Dominate &GIFTSNOSFERATU Character Data Lists=Obfuscate Animalism Potence &GIFTSTOREADOR Character Data Lists=Presence Celerity Auspex &GIFTSTREMERE Character Data Lists=Thaumaturgy Dominate Auspex &GIFTSVENTRUE Character Data Lists=Dominate Fortitude Presence &GIFTSCAITIFF Character Data Lists=Protean Animalism Fortitude Auspex Obfuscate Dominate Potence Presence Celerity &GIFTSSETITE Character Data Lists=Serpentis Presence Obfuscate &GIFTSGIOVANNI Character Data Lists=Necromancy Dominate Potence &GIFTSASSAMITES Character Data Lists=Quietus Obfuscate Celerity &GIFTSRAVNOS Character Data Lists=Chimerstry Animalism Fortitude &GIFTSSALUBRI Character Data Lists=Obeah Auspex Fortitude &GIFTSDAUGHTERS-OF-CACAPHONY Character Data Lists=Melpominee Presence Fortitude &GIFTSSAMEDI Character Data Lists=Thanatosis Necromancy Obfuscate &GIFTSKIYASYD Character Data Lists=Mytherceria Necromancy Obtenabration &GIFTSBRUJAH-ANTITRIBU Character Data Lists=Celerity Potence Presence &GIFTSGANGREL-ANTITRIBU Character Data Lists=Protean Animalism Fortitude &GIFTSMALKAVIAN-ANTITRIBUE Character Data Lists=Auspex Obfuscate Dementation &GIFTSNOSFERATU-ANTITRIBU Character Data Lists=Obfuscate Animalism Potence &GIFTSTOREADOR-ANTITRIBU Character Data Lists=Presence Celerity Auspex &GIFTSTREMERE-ANTITRIBU Character Data Lists=Thaumaturgy Dominate Auspex &GIFTSVENTRUE-ANTITRIBUE Character Data Lists=Dominate Fortitude Presence &GIFTSLASOMBRA Character Data Lists=Potence Obtenabration Dominate &GIFTSTZIMISCE Character Data Lists=Vicissitude Animalism Auspex &GIFTSPANDER Character Data Lists=Protean Animalism Fortitude Auspex Obfuscate Dementation Dominate Potence Presence Celerity &NUWISHAGIFTSNUWISHA Character Data Lists=Level-one Snake's-Skin Song-of-Kokopelli Swollen-Tongue Xochipilli's-Touch Rabbit-Run Spirit-Speech Level-Two Camouflage Sheep's-Clothing Odious-Aroma Dance-of-Dionysis New-Face Twisting-Tongues Umbral-Map Level-three Blisters Bridge-Walker Dance-of-Abandon Gift-of-Laughter Gift-of-Rage Push Scent-of-Vengeance Shadow-Walk Umbral-sight Umbral-Howl Level-4 Happy-Thoughts Trickster's-Skin Hidey-Hole Dissappearing-Act Heave-Ho Locked-Door Level-5 Umbral-Gateway Umbral-Target Teasing-Mate Ghost-Danse Wyld-Throw Level-six Coyote's-Howl &NUWISHAGIFTSHOMID Character Data Lists=Persuasion Smell-of-Man Level-2 Jam-Technology Staredown Level-3 Reshape-Object Disquiet Tongues Level-4 Cocoon Spiritward Bodyshift Level-5 Assimilation Part-the-Veil Reduce-Delirium &NUWISHAGIFTSMETIS Character Data Lists=Sense-Wyrm Create-Element Shed Level-2 Burrow Curse-of-Hatred Grovel Level-3 Eyes-of-the-Cat Mental-Speach Awaken-Beast Splintered-Claws Level-4 Wither-Limb Gift-of-the-Porcupine Bodyshift Level-5 Madness Totem-Gift &NUWISHAGIFTSLUPUS Character Data Lists=Heightened-Senses Leap-of-the-Kangaroo Level-2 Scent-of-Sight Sense-the-Unnatural Level-3 Catfeet Name-the-Spirit Monkey-Tail Level-4 Beastlife Gnaw Bodyshift Venom Level-5 Elemental-Gift Song-of-the-Great-Beast &NUWISHAGIFTSRAGABASH Character Data Lists=Blur-of-the-Milky-Eye Open-Seal Scent-of-Running-Water Level-2 Blissful-Ignorance Sense-of-the-Prey Taking-the-Forgotten Alter-Scent Obscure-the-Truth Level-3 Gremlins Open-Moon-Bridget Fly-Feet Silence Monkey-Tail Level-4 Luna's-Blessing Whelp-Body the-Crawling-Hand Fool's-Luck Level-5 Violation Thieving-Talons-of-the-Magpie &CORAXGIFTSCORAX Character Data Lists=level-one Voice-of-the-mimic Enemy-Ways Morse Open-Seal Raven's-Gleaning Scent-of-the-True-form Truth-of-Gaia Word-Beyond Level-two Carrion's-Call Omens-and-Signs- Razor-Feathers Sky's-Beneficence Sky's-shadow Swallows-Return Taking-the-Forgotton Tongues Level-three Dark-Truths Dead-Talk- Eyes-of-the-Eagle Flight-of-the-swift Hummingbird-Dart Larder-of-the-shrike Mynah's-Touch Sun's-Guard Level-four Airt-Sense Gauntlet-Runner Helios-Child Vultures-FEast Level-Five- Gift-of-Eyes Moments-of-Eclipse Portents Theft-of-stars Thieving-Talons-of-Magpie &GIFTSVAMPIREALL Character Data Lists=Protean Animalism Fortitude Auspex Obfuscate Dementation Dominate Potence Presence Serpentis Celerity Necromancy Quietus Obeah Chimerstry Thanatosis Obtenabration Thaumaturgy Vicissitude &GIFTSDAUGHTERS-OF-CACOPHONY Character Data Lists=Melpominee Presence Fortitude &MERITSBASTET Character Data Lists=2Gracefull 3Culture-Knack 3Photographic-Memory 5Gift-of-Seline &MERITSNUNNEHI Character Data Lists=1Surreal-Beauty 1Very-Light-Past-Life 2Light-Past-Life 2Loyal-Heart 3Increased-Pain-Threshhold 3Medium-Past-Life 3Spirit-Mentor 3Stone-Skin 3Nature-Linked 3Poetic-Heart 4Heavy-Past-Life 4Iron-Resistance 5Art-Affinity 5Blessing-of-Atlas 5Blood-of-the-Rivers 5Faerie-Eternity 5Very-Heavy-Past-Life 5Seeming's-Blessing 7Regeneration &GENMERITS Character Data Lists=1Code-of-Honor 1Coldly-Logical 1Common-Sense 1Computer-Aptitude 1Concentration 1Double-Jointed 1Expert-Driver 1Higher-Purpose 1Light-Favor 1Lightning-Calculator 1Local-Ties-Few 1Mechanical-Aptitude 1Park-Department-Ties 1Pitiable 1Time-Sense 1True-Love 2Ambidexterous 2Berserker 2Eidetic-Memory 2Inner-Strength 2Insight 2Judicial-Ties 2Lack-of-Scent 2Local-Ties-Some 2Longevity 2Media-Ties 2Medium-Favor 2Mercury-Midsky 2Moon-Bound 2Natural-Linguist 2Supporter 3Alternate-ID 3Calm-Heart 3Church-Ties 3Danger-Sense 3Daredevil 3Fast-Learner 3Heavy-Favor 3Local-Ties-Many 3Luck 3Mercury-Rising 3Natural-Channel 3Perfect-Balance 3Police-Ties 3Supernatural-Companion 3Underworld-Ties 3Venus-Midsky 4Huge-Size 4Jupiter-Midsky 4Venus-Rising 5Charmed-Existaence 5Corporate-CEO 5Iron-Will 5Jack-of-all-Trades 5Mars-Midsky 5Self-Confident 6Guardian-Angel 6Mars-Rising &FLAWSCHANGELING Character Data Lists=1Chimerical-Disability-Light 1Cursed-Light 1Geas-Very-Light 1Light-Mystical-Prohibition/Imperative 1Slipped-Seeming-Light 1The-Bards-Tongue 1Very-Light-Throwback 2Chimerical-Disability-Medium 2Echoes-Light 2Geas-Light 2Light-Arcadian/Ancient-Oath 2Light-Throwback 2Nature-Bound 2Shrinking-Violet 2Surreal-Quality 2Wyld-Mind 2Yearning-Soul 3Blighted-Face 3Chimerical-Disability-Heavy 3Cleared-Mist 3Cursed-Medium 3Echoes-Medium 3Flashbacks 3Geas-Medium 3Light-Iron-Allergy 3Medium-Mystical-Prohibition/Imperative 3Medium-Throwback 3Slipped-Seeming-Medium 4Echoes-Heavy 4Gaes-Heavy 4Heavy-Throwback 4Medium-Iron-Allergy 5Cursed-Heavy 5Echoes-Very-Heavy 5Geas-Very-Heavy 5Heavy-Arcadian/Ancient-Oath 5Heavy-Iron-Allergy 5Heavy-Mystical-Prohibition/Imperative 5Slipped-Seeming-Heavy 5Psychic-Vampire 5Sidhe's-Curse 5Very-Heavy-Throwback &FLAWSNUNNEHI Character Data Lists=1Changeling-Eyes 1Chimerical-Disability-Light 1Cursed-Light 1Geas-Very-Light 1Light-Mystical-Prohibition/Imperative 1Slipped-Seeming-Light 1The-Bards-Tongue 1Very-Light-Throwback 2Chimerical-Disability-Medium 2Echoes-Light 2Geas-Light 2Light-Arcadian/Ancient-Oath 2Light-Throwback 2Nature-Bound 2Shrinking-Violet 2Surreal-Quality 2Wyld-Mind 2Yearning-Soul 3Blighted-Face 3Chimerical-Disability-Heavy 3Cleared-Mist 3Cursed-Medium 3Echoes-Medium 3Flashbacks 3Geas-Medium 3Light-Iron-Allergy 3Medium-Mystical-Prohibition/Imperative 3Medium-Throwback 3Slipped-Seeming-Medium 4Echoes-Heavy 4Gaes-Heavy 4Heavy-Throwback 4Medium-Iron-Allergy 5Cursed-Heavy 5Echoes-Very-Heavy 5Geas-Very-Heavy 5Heavy-Arcadian/Ancient-Oath 5Heavy-Iron-Allergy 5Heavy-Mystical-Prohibition/Imperative 5Slipped-Seeming-Heavy 5Psychic-Vampire 5Sidhe's-Curse 5Very-Heavy-Throwback &GENFLAWS Character Data Lists=1Burned-Out 1Color-Blindness 1Compulsion 1Dark-Secret 1Deep-Sleeper 1Emotional-Isolation 1Hard-of-Hearing 1Illiterate 1Impatient 1Intolerance 1Light-Allergic 1Medium-Bad-Sight 1Mild-Phobia 1Naive 1Nightmares 1Original-Sin 1Overconfident 1Proselytizer 1Short 1Shy 1Smell-of-the-Grave 1Soft-Hearted 1Speech-Impediment 1Taint-of-Corruption 1Twisted-Upbringing 1Twitch 1Vainglorious-Light 1Very-Light-Death-Wish 1Very-Lightly-Cursed 1Very-Weak-Enemy 2Amnesia 2Anachronism 2Bitter 2Bound 2Bulimia 2Confused 2Curiosity 2Demon-Plagued 2Disfigured 2Ennui 2Light-Deathwish 2Lightly-Cursed 2Low-Self-Image 2Lunacy 2Magic-Susceptibility 2Masochism 2Old-Flame 2One-Eye 2Short-Fuse 2Sadism 2Territorial 2Uppity 2Vengeance 2Vengeful 2Venus-Descending 2Weak-Enemy 2Weak-Willed 3Absent-Minded 3Addiction 3Child 3Deformity 3Deranged 3Driving-Goal 3Extreme-Paranoia 3Foe-from-the-Past 3Hatred 3Heavy-Allergic 3Heavy-Bad-Sight 3Hubris 3Hunted-like-a-Dog 3Jinx 3Lame 3Lazy 3Medium-Cursed 3Medium-Deathwish 3Medium-Enemy 3Mercury-Descending 3Monstrous 3Notoriety 3One-Arm 3Severe-Phobia 3Slow-Healing 3Taint-of-Suspicion 3Vainglorious-Heavy 3Ward 3Weak-Willed 4Conspicious-Consumption 4Deaf 4Freak-magnet 4Guilt-Wracked 4Heavy-Cursed 4Mute 4Strong-Deathwish 4Strong-Enemy 4Thin-Blood 5Dark-Fate 5Inept 5Uneducated 5Unskilled 5Very-Heavy-Cursed 5Very-Strong-Deathwish 5Very-Strong-Enemy 6Blind 6Flashbacks 6Jupiter-Descending 6Mars-Descending 6Paraplegic &FLAWSGAROU Character Data Lists=1Animal-Musk 1Anti-Wyrmbringer-Bias 1Insane-Past-Life 1Light-Forced-Transformations 1No-Partial-Transformations 1Slip-Sideways 1Strict-Carnivore 1Very-Light-Banned-Transformations 2Light-Banned-Transformations 2Mark-of-the-Predator 2Medium-Forced-Transformations 2Pack-Mentality 2Sign-of-the-Wolf 3Heavy-Forced-Transformations 3Medium-Banned-Transformations 3Pierced-Veil 3Territorial 4Heavy-Banned-Transformations 4Very-Heavy-Forced-Transformations 4Ward-Pack 5Harano 5Very-Heavy-Banned-Transformations 5Wolfyears 6Banned-All-Transformations 7Taint-of-Corruption &FLAWSBASTET Character Data Lists=1Animal-Musk 1Anti-Wyrmbringer-Bias 1Light-Forced-Transformations 1No-Partial-Transformations 1Slip-Sideways 1Strict-Carnivore 1Very-Light-Banned-Transformations 2Disconcerting 2Graceless 2Light-Banned-Transformations 2Mark-of-the-Predator 2Medium-Forced-Transformations 2Pack-Mentality 2Sensation-Junkie 3Heavy-Forced-Transformations 3Medium-Banned-Transformations 3Pierced-Veil 3Territorial 3Too-Curious 4Heavy-Banned-Transformations 5Moon-Mad 5Multiple-Personalities 4Very-Heavy-Forced-Transformations 5Very-Heavy-Banned-Transformations 5Catyears 6Banned-All-Transformations 7Taint-of-Corruption &FLAWSVAMPIRE Character Data Lists=1Cast-no-Reflection 1Incomplete-Understanding 1Infamous-Sire 1Lightly-Cursed 1Prey-Exclusion 1Recruitment-Target 1Repulsed-by-Garlic 1Sire's-Resentment 1Sympathizer 1Touch-of-Frost 1Unconvinced-Camarilla 214th-Generation 2Bastard-Childer 2Beacon-of-the-Unholy 2Convinced-Sabbat 2Deathsight 2Dulled-Bite 2Eerie-Presence 2Fangless 2Infectious-Bite 2Lord-ofthe-Flies 2Secret-Diabolist 2Thirst-for-Innocence 2Vengeful-Childe 2Vulnerability-to-Silver 3Disgrace-to-the-Blood 3Former-Prince 3Glowing-Eyes 3Haunted 3Medium-Clan-Emnity 3Medium-Light-Sensitive3 3Permanent-Fangs 3Recently-Arisin 3Repelled-by-Crosses 4Grip-of-the-Damned 4Hunted 4Loathsome-Regent 4Probationary-Sect-Member 4Vampire-Bulimia 5Dark-Fate 5Flesh-of-the-Corpse 5Heavy-Clan-Enmity 5Heavy-Light-Sensitive 5Known-Diabolist 7Methuselah's-Thirst 7Red-List &FLAWSTREMERE Character Data Lists=4False-Third-Eye &FLAWSSETITE Character Data Lists=5Nameless &FLAWSGANGREL Character Data Lists=2Light-Pied-Piper 2Pariah-Light 4Heavy-Pied-Piper 4Pariah-Heavy &FLAWSASSAMITE Character Data Lists=1Unconquered-Enemy 2Disgraced 2Light-Religious-Prohibition 2Outcast 2Silsila-Enemy 4Du'at-Enemy 4Heavy-Religious-Prohibition &FLAWSGIOVANNI Character Data Lists=1Lightly-Inbred 3Medium-Inbred 5Heavy-Inbred &FLAWSRAVNOS Character Data Lists=2Family-Emnity 2Wuzho-Enemy 3Marhime &FLAWSMALKAVIAN Character Data Lists=2Light-Stigmata 4Heavy-Stigmata &FLAWSBAALI Character Data Lists=1Lightly-Touched-from-Beyond 3Carrion-Confort 3Infernal-Aura 4Heavy-Touched-from-Beyond &FLAWSTOREADOR Character Data Lists=1Poor-Taste 1Tortured-Artist 1Vulgar 2Artistically-Inept 2Social-Outcast 3Demesure &FLAWSNOSFERATU Character Data Lists=3Necrophile 3Withered-Leg 5Incoherent &FLAWSLASOMBRA Character Data Lists=1LIght-Image-Obsession 2Light-Religious-Prohibition 2Marked-for-Death-Light 3Medium-Image-Obsession 4Enmity-of-Shadows 4Heavy-Religious-Prohibition 5Heavy-Image-Obsession 5Marked-for-Death-Serious &FLAWSSALUBRI Character Data Lists=1Stubborn 2Light-Superstitious 5Heavy-Superstitious 5Unblooded 5Visible-Eye &FLAWSNUWISHA Character Data Lists=2Bad-Moon 3Overly-Curious 4Harano &FLAWSCORAX Character Data Lists=1Diet-of-Worms 7Emu 5Vertigo 2Double-Draught 4Losing-the-Sun 1Birdlike-Mannerisms &FOLDADD Character Data Lists=[add(%0,%1)] &MAGESPHERELIST Character Data Lists=Correspondence Entropy Forces Life Matter Mind Prime Spirit Dimensional-Science Time @pemit me={Link the veteran chargen to the room you dug the step by step chargen from as well, and @open an exit to the parroom too. everyone should be able to enter the veteran chargen and parroom, as long as you don't type 'begin' it has no consequences. You need to make sure any background code you use does not use 'backg' or 'background' or any kind of combination with 'backg*' to save backgrounds on a person, because that is used for the backgrounds in the sheet. The +approve is based on a backgroundcode that saves text background as bg_1 and bg_2 and so forth. Also you will need to chose a language system or tell players you will not worry about a language system and change +language in the parroom to reflect this. To make +approve work you need to set up mail aliases with the names of each of the races, so a mailalias *vampire and one *changeling and so forth, so the wizzes will recieve the mails. Put the Character Data Lists in a safe place, the gamesystem object and the Staff Globals in the Master Room and your chargen will be set. '+code/help' '+list commands' and '+stats/help' will give some information on how or what. To lock the system to players you will have to check exactly how your version of mux or mush locks attributes to wizzes only. Each of the existing stats will need to be locked, cause they are not kept in a list on the character. see '+stats/help' for more info.} @@ Link the veteran chargen to the room you dug the step by step @@ chargen from as well, and @open an exit to the parroom too. @@ everyone should be able to enter the veteran chargen and par @@ room, as long as you don't type 'begin' it has no consequences. @@ You need to make sure any background code you use does not use @@ 'backg' or 'background' or any kind of combination with @@ 'backg*' to save backgrounds on a person, because that is @@ used for the backgrounds in the sheet. The +approve is based @@ on a backgroundcode that saves text background as bg_1 and @@ bg_2 and so forth. Also you will need to chose a language @@ system or tell players you will not worry about a language @@ system and change +language in the parroom to reflect this. @@ To make +approve work you need to set up mail aliases with @@ the names of each of the races, so a mailalias *vampire and @@ one *changeling and so forth, so the wizzes will recieve the @@ mails. Put the Character Data Lists in a safe place, the game @@ system object and the Staff Globals in the Master Room and @@ your chargen will be set. '+code/help' '+list commands' and @@ '+stats/help' will give some information on how or what. @@ To lock the system to players you will have to check exactly @@ how your version of mux or mush locks attributes to wizzes @@ only. Each of the existing stats will need to be locked, @@ cause they are not kept in a list on the character. see @@ '+stats/help' for more info. @@ This was the chargen code. I hope it will help. If you run @@ into trouble mail Amaranth13@hotmail.com but PLEASE remember @@ I'm just being nice sharing with this, and it's a gift. @@ I don't have to explain everything, and I do it for fun, @@ so if you ask nicely, I am sure I will do my best for you.