I've thought of a few things, but most of them definitely promotes laziness.
NPC Code:
setheart var; // for setting the players full hearts number
drop(index,x,y,image); // dropping a weapon with the specified index and image at x,y coordinates
disablesword; // disables the sword from being used
isnotsparringzone; // opposite of issparringzone
indexofweapon(str); // to get the index of a weapon the player has
pctpart(min,max,var); // same as myvar = (min/max) * width
setprop str,text;
/* for working with message codes that involve editing the players look so we don't have to type out each one for each part, and instead use a string list and do other stuff. make sense? */
setview index; // similar to setfocus except it sets your view to the x,y coordinates of the player in the level with the index
setplayerspar type; // 0 = default rate 1 = win-loss record
some vars
playerlogtime // the amount of time the player has been on for the entire day
playersparwins // for type 1 sparring. gives the amount of wins the player has
playersparlosses // for type 1 sparring. gives the amount of losses the player has