Thanks, that worked. I'm going to post my script again. I just got some of it working. The book is created, it adds a wolf at specified keyword. Like this:
[Nick]
Name=(character's name)
Hist=(character's history)
ect...

The Hash table info looks like that, right after it is saved. I've spent around two (gradual) months on this script. There is one huge problem, it seems.

Whenever I close it out, I lose all of my info in the hash tables. So I studied the help file a bt more and found that you have use hload and hsave. Though with hload you can't load it as described above, with a separate hash table for each character, you can only load items!! If I misread this, please let me know that it's not true because I sure as heck am not going to totally re-script two months' hard work unless I absolutely have to. If there is any way I can fix this without wiping the whole thing clean then please let me know.

If I did, I assume that I'd have to start using $hfind ALLOT. instead of the format above I'd use something like this:
[CharInfo]
nick.name=(character's name)
nick.hist=(character's history)
ect..

Then I'd have to use hfind to search for the name and piece of information.
Anyway's here is my script. Not much for 2 months.

Code:
ON 100:TEXT:+wolf*:#: { 
  if ( $2 != $null ) {
    if ($hget([ $2 ], status)) { msg $chan Error: $2 is already listed in the archive! }
    if ($hget([ $2 ], status) == $null ) {
      var %name = $2
      hmake %name 12
      hadd %name Status exists
      hadd %name Charname  
      hadd %name Greet      
      hadd %name Pack  
      hadd %name Rank  
      hadd %name Hist  
      hadd %name Desc  
      hadd %name Health 10
      hadd %name Hunger 10
      hadd %name Exp 0
      hadd %name Level
      msg $chan %name added to directory.
      halt
      :error
      msg $chan $2 is already listed in the directory!
    }
  }
  if ( $2 == $null ) { msg $chan Insufficient parameters: Please specify a nick to add. }
}
On 100:TEXT:-wolf*:#: {
  if ( $2 != $null ) { 
    if (!$hget([ $2 ], status)) { msg $chan Error: Wolf does not exist. } 
    if ($hget([ $2 ], status)) { hfree $2 | msg $chan $2 has been erased from the directory. }
  }
  elseif ( $2 == $null ) { msg $chan Insufficient parameters: Please specify a nick to wipe. }
}

;------------------------Bio
On *:TEXT:.bio*:#: {
  if ( $2 != $null ) { 
    if ($hget([ $$2 ], Hist )) { /msg $chan $hget( [ $$2 ], Hist ) }
    if (!$hget([ $$2 ], Hist )) { /msg $chan No biography found. }
  }
  elseif ( $2 == $null ) { 
    if ($hget( [ $nick ], Hist ) != $null ) { /msg $chan $hget( [ $nick ], Hist ) }
    if (!$hget( [ $nick ], Hist )) { /msg $chan No biography found. }
  }
  else { /msg $chan I don't have a bio set for that wolf. }
}
On *:TEXT:+bio*:#: {
  if ( $3 != $null ) { 
    if ($hget([ $2 ], status)) { hadd $2 Hist $$3- | msg $chan Your character's history has been set. Type .bio to view it. }
    if (!$hget([ $2 ], status)) { msg $chan Error: Wolf not found. }
  }
  if ( $3 == $null ) { 
    if ( $2 == $null ) { /msg $chan Insufficient parameters: Type your nick and then your character's description. ( +bio <nick> <history> ) }
    if ( $2 != $null ) { /msg $chan Insufficient parameters: Type in your character's History!! }
  }
}

;------------------------Description
On *:TEXT:.desc*:#: {
  if ( $2 != $null ) { 
    if ( $hget( [ $$2 ], Desc ) != $null ) { msg $chan $hget( [ $$2 ], Desc ) }
    if (!$hget( [ $$2 ], Desc )) && ($hget( [ $$2 ], status)) { /msg $chan I don't have a description set for that wolf. | /halt }
    if (!$hget([ $$2 ], status)) { msg $chan Error: Wolf not found. }
  }
  elseif ( $2 == $null ) {
    if ( $hget( [ $nick ], Desc ) != $null ) { msg $chan $hget( [ $nick ], Desc ) }
    if ( $hget( [ $nick ], Desc ) == $null ) { /msg $chan You have not set your character's description!! }
  }
}
On *:TEXT:+desc*:#: {
  if ( $3 != $null ) { 
    if ($hget([ $2 ], status)) { hadd $2 Desc $$3- | msg $chan Your character's description has been set. Type .desc to view it. }
    if (!$hget([ $2 ], status)) { msg $chan Error: Wolf not found. }
  }
  if ( $3 == $null ) { 
    if ( $2 == $null ) { /msg $chan Insufficient parameters: Type your nick and your character's description. ( +desc <nick> $&
      <description> ) Note: If it is too long it will cut. }
    if ( $2 != $null ) { /msg $chan Insufficient parameters: Type in your description!! }
  }
}
;-------------------------Name
On *:TEXT:+name*:[%channel.SB.OOC]: {
  if ( $3 != $null ) { 
    if ( [$hget([ $nick ], status)]) { hadd $nick $3-6 | msg $chan You set your character's name to $ }
    if ([!$hget([ $nick ], status)]) { msg $chan Error: Wolf not found. }  
  } 
  if ( $3 == $null ) {
    if ( $2 == $null ) { msg $chan Insufficient parameters: Type your nick and your character's (full) name. ( +greet <nick> <name> ) }
    if ( $2 != $null ) { msg $chan Insufficient parameters: Type in your character's full name. }
  }
}

;------------------------Greet
;[%channel.SB.OOC]
On *:TEXT:+greet*:#Moonhaven: {
  if ( $3 != $null ) { 
    if ( [$hget([$$2], status)] != $null ) { hadd $$2 Greet $$3- | msg $chan Your greet has been set. It will play each time you enter the main channel. }
    if ([!$hget([$$2], status)]) { msg $chan Error: Wolf not found. }  
  } 
  if ( $3 == $null ) {
    if ( $2 == $null ) { msg $chan Insufficient parameters: Type your nick and greeting. ( +greet <nick> <greeting> ) }
    if ( $2 != $null ) { msg $chan Insufficient parameters: Type in your greeting! }
    :error
    msg $chan Error: Wolf not found.
  }
}
;%channel.greeting
On 1:JOIN:#Moonhaven: { 
  if ([$hget([$nick], Greet) != $null ) { msg $chan [ $hget([ $nick ], Greet) ] }
}
;------------------------Pack
/*
On 100:TEXT:+pack*:#: {
  if ( $2-3 != $null ) && ( $hget( [ $$2 ], Pack ) != $null ) { tochan Pack changed from: $hget( [ $$2 ], Pack ) to $$3, | hadd $$2 Pack $$3 }
  elseif ( $2-3 == $null ) && ( $hget( [ $2 ], Pack ) == $null ) { tochan Pack set: $$3 | hadd $$2 Pack $$2 }
  elseif ( $2 == $null ) { tochan Insufficient parameters: please specify wolf and wolfpack. }
  elseif ( $3 == $null ) { tochan Insufficient parameters: Please specify a wolfpack. }
  elsif 
  :error
  tochan Wolf not found in directory, please add with +wolf.
}
*/
On 1000:TEXT:+pack*:#: {
  if ( $3 != $null ) { 
    if ( $hget([ $3 ], Status )) {
      if ( $hget([ $2 ], Pack )) { 
        hadd $2 Pack $3-4
      msg $chan $2's has been booted from the [ $hget([ $2 ], Pack ) ] Pack and put in the $3 Wolfpack, with default rank packmate. Type .info to view it. }
      if (!$hget([ $2 ], Pack )) { 
        hadd $2 Pack $3-4 
      msg $chan $2's has entered the $3 Wolfpack with default rank packmate. Type .info to view it. }
    }
    if (!$hget([ $2 ], Status)) { msg $chan Error: Wolf not found. | /halt }
    if (!$hget([ $3 ], Status)) { 
      var %pack = $3
      hmake %pack 15
      hadd %pack Status exists
      hadd %pack Alpha --
      hadd %pack Beta  
      hadd %pack Elder  
      hadd %pack Gaurdian  
      hadd %pack Gamma  
      hadd %pack Sentinal  
      hadd %pack Hunter/Scout  
      hadd %pack Packmate  
      hadd %pack Pup  
      hadd %pack Omega  
      hadd %pack Honoredguest  
      hadd %pack Assessment  
      hadd %pack Pledge  
      msg $chan A new pack has been created. The %pack Wolfpack.
    }
  }
  if ( $3 == $null ) { 
    if ( $2 == $null ) { /msg $chan Insufficient parameters: Type the nickname and the character's pack. ( +desc <nick> <pack name> ) }
    if ( $2 != $null ) { /msg $chan Insufficient parameters: Type in the pack name. }
  }
}

On *:TEXT:?pack*:#: { tochan +pack: Used for setting a wolf's pack. Format: ( +pack <wolf> <pack> ) }
;------------------------List Members
On *:TEXT:.list*:[%channel.SB.OOC]: {
  if ($2) {
    $hfind 
  }
}
;------------------------Rank
On 100:TEXT:+rank*:#: {
  if ( $3 != $null ) { 
    if ($hget([ $2 ], * )) { hadd $2 rank $$3- | msg $chan $2's rank has been set. Type .info to view it. }
    if (!$hget([ $2 ], * )) { msg $chan Error: Wolf not found. }
  }
  if ( $3 == $null ) { 
    if ( $2 == $null ) { /msg $chan Insufficient parameters: Type the nickname and the character's rank. ( +desc <nick> <rank> ) }
    if ( $2 != $null ) { /msg $chan Insufficient parameters: Type in the rank. ( Alpha : Beta : Elder : Gaurdian : Gamma : Sentinal : Hunter/Scout : Packmate : Pup : Omega ) }
  }
}
;
;------------------------Info
On *:TEXT:.Info:#: {

}
;Skylax Blacktail, Packmate of Sweetbreeze:(Hunger: 10) (Energy: 20) (Health: 10) (Rests: 0) (Exp: 32)
;------------------------Name



The script you said you'd work on would be very much appreciated but not required, Russel. Heh, I used to think this roleplay was stupid, now it opened me up to a new hobby. Thanks for your help guys. : D