I'm really liking rhost's execscript. It runs an arbitrary script written in any language you like and returns its results.
On character approval, it runs a script (a python3 script, specifically) that automatically creates a wiki page with their +sheets, their name, codename, birthdate, and anything else in game (except the bg, for now), all in the correct script. It automatically thats that page with the appropriate tags.
On purge, it replaces the page with a blank template and adds appropriate tags (ie, _retired or _unavailable depending on MC vs OC). This means our wiki is 100%% accurate with currently approved characters-- always. Without users having to know wiki or even signup -- they still can to add photos and more content if they like, but its optional.
Then we have another script that runs by default every night at midnight, or on-demand, which queries the wiki for new logs and adds them into a sqlite database for all participants. So we query that database for activity.
Theeeen there's another script that we run to upload and create a log, all with the right tags-- so again people can get what they 'need' to on the wiki without ever having to be good at wiki-ing.
I have another script that adds or removes tags from specific pages; so when I +faction/add person=faction, they automatically get the faction tag to their page.
All these scripts are allowing deep integration with our wiki.
Next project is to write a script to query the tzinfo database for live timezone conversions so +events and +bbposts are always displayed in your local timezone. (I already have rudimentary hacky versions of this).
And I'm just getting started: the stuff I'm gonna do with the API's....
Anyways, this is all examples of the cool stuff you can do with execscript()
Let's see, other favorite features. I couldn't live without full, deep regeditall and friends. I have some custom substitutions: %'ui' and %'std' so my code often looks like:
$+foo *=*:@attach %'std'/IS-STAFF;@attach %'std'/FIND-TARGET;@set %q<target>=blah.
Basically IS-STAFF looks like this:
&IS-STAFF %'std'=@assert isstaff(%#)={@attach %'ui'/DENIED}
So if %# is not staff, it gives a standard Permission Denied error. Then:
&FIND-TARGET=@assert t(setr(target,pmatch(%0)))={@attach %'ui'/NOT-FOUND=%0}
The %'std' and %'ui' libs allow me to do common actions without repeating any code. And since these @asserts and @attaches (alias for @include/override), when they decide to halt command processing, it halts everything.
I like that I have some mail() functions that let me completely softcode mail reading-- this lets me, in particular, write +amail so I can read my alts mail and have it marked as read after.
printf() is crazy powerful.
I like the /inline versions of @assert, @dol, and the like-- to run stuff now without queueing. Keeps things speedy.