         # <set> user vars
         parts = data.split("=", 2)
         @say "Set uservar #{parts[0]} = #{parts[1]}"
-        @master._users[user][parts[0]] = parts[1]
+        @master.setUservar(user, parts[0], parts[1])
       else if tag is "add" or tag is "sub" or tag is "mult" or tag is "div"
         # Math operator tags
         parts = data.split("=")


          # No errors?
          if insert is ""
            @master._users[user][name] = result
      else if tag is "get"
        insert = if typeof(@master._users[user][data] isnt "undefined") \
          then @master._users[user][data] \
          else "undefined"
      else
        # Unrecognized tag, preserve it
        insert = "\x00#{match}\x01"

        value = parts[1]

        # Initialize the variable?
        if @master.getUservar(user, name) is "undefined"
          @master.setUservar(user, name, 0)

        # Sanity check
        value = parseInt(value)
        if isNaN(value)
          insert = "[ERR: Math can't '#{tag}' non-numeric value '#{value}']"
        else if isNaN(parseInt(@master.getUservar(user, name)))
          insert = "[ERR: Math can't '#{tag}' non-numeric user variable '#{name}']"
        else
          result = parseInt(@master.getUservar(user, name))
          if tag is "add"
            result += value
          else if tag is "sub"
