This snippet is not necessarily complete or accurate, but should be used as a guide for adding memorization code and innate skills/spells to your mud. Memorization: Spells that are memorized are added to a linked list with a timer. When the spell has finished being memorized, the spell is removed from the linked list to an array of spells that are ready to cast. This system allows for multiple spell levels, and the level of a spell is set in the spello declaration in spell_parser.c This system supports added spell slots via equipment using object affections (similar to +con, -maxhit, etc). Add in interpreter.c: { "forget" , POS_RESTING , do_memorize , 1, SCMD_FORGET }, { "stop" , POS_RESTING , do_memorize , 1, SCMD_STOP }, { "memorize" , POS_RESTING , do_memorize , 1, SCMD_MEMORIZE }, { "automem" , POS_DEAD , do_gen_tog , 1, SCMD_AUTOMEM }, An automem toggle should be created by adding in structs.h: #define PRF_AUTOMEM (1 << x) and the appropriate toggle code. In handler.c in void affect_modify(...) add: case APPLY_SPELL_LVL_1: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_1) += mod; break; case APPLY_SPELL_LVL_2: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_2) += mod; break; case APPLY_SPELL_LVL_3: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_3) += mod; break; case APPLY_SPELL_LVL_4: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_4) += mod; break; case APPLY_SPELL_LVL_5: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_5) += mod; break; case APPLY_SPELL_LVL_6: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_6) += mod; break; case APPLY_SPELL_LVL_7: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_7) += mod; break; case APPLY_SPELL_LVL_8: if(!IS_NPC(ch)) GET_SPELL_LEVEL(ch, SPELL_LEVEL_8) += mod; break; Innate spells/skills/affects: This system allows a character to use a spell or skill every X hours. When an innate ability is used, it is added to a linked list with a timer. When the timer expires, the spell may be cast or used again. add_innate_affects(d->character); should be called when the player enters a game (in interpreter.c) to add innate affects to a character(as opposed to innate abilities). If you have any questions email to strife@bb14.betterbox.net -Robert