the command 'powers' (do_racecommands in interp.c) has been changed slightly, as has the command table found in interp.c. This was made such that powers only show on the 'powers' command, if the character has learned that specific command. There are two ways to use this system, fx for cyberdemons the following can be found : /* the do_pentagram command */ if (ch->pcdata->powers[CDEMON_SOULS] < 10) { send_to_char("You cannot use this power.\n\r", ch); return; } to make sure the power is only shown on 'powers', we change the entry in the command table (in interp.c) to the following { "pentagram", do_pentagram, POS_STANDING, 3, LOG_NORMAL, CLASS_CYBERDEMON, CDEMON_SOULS, 10, CP_LEVEL }, Notice that CDEMON_SOULS is set, and the number just after is set to 10. The important flag to set is CP_LEVEL, which means that this command is only shown if CDEMON_SOULS is at least 10. Another command for cyberdemons is do_radarscan if (!IS_SET(ch->pcdata->powers[CDEMON_IMPLANTS], IMPLANT_RADARSCAN)) { send_to_char("You cannot use this power.\n\r", ch); return; } Here the entry in interp.c would look like this { "radarscan", do_radarscan, POS_STANDING, 3, LOG_NORMAL, CLASS_CYBERDEMON, CDEMON_IMPLANTS, 4, CP_BIT }, If you check cyberdemon.h, you will see that IMPLANT_RADARSCAN is assigned the value 4 (which is the same number that is right under POS_STANDING). The important flag this time is CP_BIT, which tells the interpreter, that this is a bitvector, and the command should only be shown if bit 4 (which was the radarscan implant) was set on CDEMON_IMPLANTS. If you set the last three entries to 0, then the power will always be shown on 'powers' for that class. It is also important to notice that all new classes should be added to the class_table found in db.c /* the class table */ const struct class_type class_table[] = { { "None", 0 }, { "Shadow", CLASS_SHADOW }, { "Cyberdemon", CLASS_CYBERDEMON }, /* NULL Terminator */ { "", 0 } }; This makes sure that a class can be picked when creating a new character. NOTICE ====== To remove the two stock classes (cyberdemon and shadows), simply search the files for CLASS_REMOVE, and remove the appropriate bits of code found at these locations. The two stock classes does not have help files, nor have they been balanced, this is left as a job for you. regards Brian Graversen