I can't, for the life of me, understand why this keeps happening. Randomly users will lose their "points" (or in this case "exp") for no reason. The point system created also has several ties to it. For example, less than 50 points will trigger a part of the script to delete any links posted.

This is my current point system script. Could someone tell me what is wrong with it that makes it randomly reset peoples points?

Code:
;EXPERIENCE SYSTEM
alias -1 addPoints {
  if ($1 !isnum) { echo 2 -st $1 is not a number. | halt }
  var %topic $+($chan,.,$nick)
  var %points $calc($readini(Points.ini,%topic,Points) + $1)
  writeini -n Points.ini %topic Points %points
  return %points
}

alias -l lookUpPoints {
  var %topic $+($chan,.,$nick)
  var %points $readini(Points.ini,%topic,Points)
  return %points
}

alias doaddpoints {
  if ($3 !isnum) { echo 2 -st $3 is not a number. | halt }
  var %topic $+($1,.,$2)
  var %points $calc($readini(Points.ini,%topic,Points) + $3)
  writeini -n Points.ini %topic Points %points
  echo -a Added experience for %topic
}

alias dorempoints {
  var %topic $+($1,.,$2)
  remini -n Points.ini %topic Points
  echo -a Removed experience for %topic
}

on *:text:!exp:#:{
  if ((%floodpoints) || ($($+(%,floodpoints.,$nick),2))) { return }
  set -u5 %floodpoints On
  set -u20 %floodpoints. $+ $nick On 
  msg # /me  $nick has $readini(Points.ini,$+(#,.,$nick),Points) total experience. 
}

on $*:text:/!exp (add|remove)/Si:#:{ 
  if ($nick isop #) {
    if ($0 < 3) { msg # Insufficient parameters: Use !exp <add|remove> <user> [number] | return }
    writeini -n Points.ini $+(#,.,$3) Points $calc($readini(Points.ini,$+(#,.,$3),Points) $iif($2 == add,+,-) $iif($4 isnum,$4,1))
    { msg $chan $3 now has $readini(Points.ini,$+(#,.,$3),Points) total experience. }
  }
  else { return }
}

on !*:join:#:{
  if ($nick == elmer2424) { msg # Welcoming our first follower ever, Elmer2424! }
  if ($nick == cold_ass_honkey) { msg # Welcoming the streams top dog donator, Cold_Ass_Honkey! }
  if ($nick == phantaga) { msg # Welcoming the prestigeous donator, Phantaga! }
  if ($nick == ognighthawk) { msg # Welcoming the high rolling donator, OGNightHawk! }
  $+(.timerpoints.,#,.,$nick) 0 300 add.pts $+(#,.,$nick)
  add.pts $+(#,.,$nick)
}

on !*:part:#:$+(.timerpoints.,#,.,$nick) off
alias -l add.pts {
  writeini -n Points.ini $1 Points $calc($readini(Points.ini,$1,Points) + 1)
}