Before: Mprog 10501 if qstatus 10500 $n>= 12 mob remember $n say Hey $N. You have done a good job at helping to keep the vermin down. smile $n mob call 10245 else if qstatus 10500 $n> 0 and qstatus 10500 $n <12 say You're doing a good job. Keep up the good work. say Come back when you have killed some more rats. reassure $n else say You need to kill at least a dozen rats before you can claim your reward. endif endif Mprog 10245 * {WRandom QP Reward from Vermin Inspector{x if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 1 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 2 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 3 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 4 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 5 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 6 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 7 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 8 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 9 mob forget else if rand 10 mob qadvance $q 10500 -12 mob reward $q qp 10 mob forget else mob call 10245 endif endif endif endif endif endif endif endif endif endif After Mprog 10501 -- {yVermin Inspector Reward Mprog{x vreward=vreward or function(ch, killed) local rewardcnt=math.floor(killed/12) if rewardcnt==0 then return end for i=1,rewardcnt do local rwd=randnum(1,10) reward( ch.name.." qp "..rwd ) qadvance(ch.name.." 10500 -12" ) end end local killed=ch:qstatus(10500) if killed>= 12 then say("Hey "..ch.name..". You have a done a good job at helping to keep the vermin down.") mdo("smile "..ch.name) vreward(ch, killed) elseif killed> 0 and killed <12 then say( "You're doing a good job. Keep up the good work." ) say( "Come back when you have killed some more rats." ) mdo( "reassure "..ch.name ) else say( "You need to kill at least a dozen rats before you can claim your reward." ) end