This submission from Sarlock will keep an eye on your channels, and allow you to keep a history for each one.


; This script was originally written by Orange & Moe 
; It's licenced under the GPL. 
; Read it if you dont know what it is.

; Modified by Sarlock  for channel logging on Aardwolf.

;======================================
; Documentation - Important READ THIS
;======================================

; You need to create the files for the logger to start with, the
; files will be under the directory that the variable path points at,
; see section under Variables. The files are called, .
; In other words, my files are called Sarlock.clan, Sarlock.says,
; Sarlock.tells and so on. The channels logged are the following:
; clan, says, tells, group, friend, spouse, newbie, helper and claninfo 
; So just "touch Sarlock.tells" in your logging dir for all channels.

; If you want your spouselogger to log what your spouse says, you need
; to edit one line in the script. Its in the triggers section, search
; this script for the name Curi and change just those four letter to
; your spouses name, case sensitive.

; I had plans to make a spouse variable, but I cant seem to expand it
; within the regexp field in the spouselog2 def, if you figure it out
; please let me know.

; You might have to add characters in the def for telllog2 and saylog
; because of weird char pretitles. Just put em in before the ,? or
; something. Special regex chars have to be escaped with backslash.

; If you want to turn one of the loggers off, just change the appropriate
; variable in the variable list below to 0 instead of 1.

; If you find bugs, need help or want to comment or modify it, send me
; a note on the mud or an email.

;===================================
; U s a g e - Important READ THIS
;===================================

; There are a bunch of aliases in this script so that you can call back
; the channels history. For example, to read the tell log type /tells and
; it should scroll about 30 lines or so of logged tells on your screen.
; You can also add an argument to the /tells command if you only want to
; read the last 5 tells type /tells 5, the default value for history
; scrollback is the lines variable in the variables section.

; You can also remove logs the alias for this is r for 
; /tells it would then be /rtells. If you remove them, there is no way
; to get them back, so be careful with this one, it will ask you if you
; really want to remove it but once you answer to that question they 
; are gone.

; Alright, the aliases for all channels are the following:

; Tells, /tells (obviously, duh)
; Group, /gtell
; Says, /says
; Spouse, /spouse
; Clan, /ct
; Friend, /ft
; Helper, /ht
; Newbie, /nt
; Claninfo, /ci

; And as I said, just add a r infront of any alias to remove files.

;=====================
; V a r i a b l e s
;=====================

; Change the first two at minimum.

/set char=Sarlock
/set path=/home/laamaah/tf/tflog/ 

/set lines=30
/set claninfologger=1 
/set tellogger=1
/set clanlogger=1
/set friendlogger=1
/set saylogger=1
/set spouselogger=1
/set grouplogger=1
/set helperlogger=1
/set newbielogger=1
/set beepontell=0

/set pre_echo_char=<*<>*>
/set ntxt=@{nCwhite}
/set ntxt2=@{BCyellow}
/set htxt=@{BCred}
/set htxt2=@{BCyellow}
/set gtxt=@{BCgreen}

;======================================
; F u n c t i o n s  &  A l i a s e s
;======================================

/def ecko = \
  /eval /echo -an -p %htxt%pre_echo_char @{n}%ntxt%{*}

/def tellparser = \
  /let lower=$[tolower({char})]%;\
  /let chk=*%{char}*%; \
  /let tellparse1=%{ntxt2} %{1}%;\
  /if ({-4}=/{chk}) \
    /let tellparse2=%{gtxt} %{2} %{3} %{4}%;\
    /let tellparse3=%{gtxt}%{-4}%;\
  /elseif ({-4}=/{lower}) \
    /let tellparse2=%{gtxt} %{2} %{3} %{4}%;\
    /let tellparse3=%{gtxt}%{-4}%;\
  /else \
    /let tellparse2=%{ntxt} %{2} %{3} %{4}%;\
    /let tellparse3=%{ntxt}%{-4}%;\
  /endif%;\
  /echo -a -p %tellparse1 %tellparse2 %tellparse3

/def logtell = \
  /if (beepontell=1) \
    /beep%;\
  /endif%;\
  /if (tellogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate) \
      /test fwrite("%{path}%{char}.tells","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate=%{tdate}%;\
    /endif%;\
    /test fwrite("%{path}%{char}.tells" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def tells = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.tells%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rtells = \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s tell-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.tells\%;/ecko Ok, tell-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping all tells.\%;/unalias Y\%;/unalias N

/def logclan = \
  /if (clanlogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate2) \
      /test fwrite("%{path}%{char}.clan","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate2=%{tdate}%;\
    /endif%;\
      /test fwrite("%{path}%{char}.clan" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def ct = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.clan%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rct = \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s clan-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.clan\%;/ecko Ok, clan-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping clan-log.\%;/unalias Y\%;/unalias N

/def logfriend = \
  /if (friendlogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate3) \
      /test fwrite("%{path}%{char}.friend","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate3=%{tdate}%;\
    /endif%;\
      /test fwrite("%{path}%{char}.friend" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def ft = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.friend%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rft= \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s friend-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.friend\%;/ecko Ok, friend-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping friend-log.\%;/unalias Y\%;/unalias N

/def logsay = \
  /if (saylogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate4) \
      /test fwrite("%{path}%{char}.says","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate4=%{tdate}%;\
    /endif%;\
    /test fwrite("%{path}%{char}.says" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def says = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.says%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rsays = \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s say-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.says\%;/ecko Ok, say-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping all tells.\%;/unalias Y\%;/unalias N

/def logspouse = \
  /if (spouselogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate4) \
      /test fwrite("%{path}%{char}.spouse","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate4=%{tdate} %;\
    /endif%;\
    /test fwrite("%{path}%{char}.spouse" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def spouse = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.spouse%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rspouse = \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s spouse-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.spouse\%;/ecko Ok, spouse-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping spouse log.\%;/unalias Y\%;/unalias N

/def loggroup = \
  /if (grouplogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate4) \
      /test fwrite("%{path}%{char}.group","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=%htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate4=%{tdate} %;\
    /endif%;\
    /test fwrite("%{path}%{char}.group" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def gtell = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.group%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rgtell = \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s group-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.group\%;/ecko Ok, spouse-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping group log.\%;/unalias Y\%;/unalias N

/def loghelper  = \
  /if (helperlogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate2) \
      /test fwrite("%{path}%{char}.helper","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate2=%{tdate}%;\
    /endif%;\
      /test fwrite("%{path}%{char}.helper" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def ht = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.helper%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rht = \
 /ecko are you sure you want to remove %htxt2%{char}%ntxt\'s helper-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.helper\%;/ecko Ok, helper/helper-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping helper-log.\%;/unalias Y\%;/unalias N

/def lognewbie = \
  /if (newbielogger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate2) \
      /test fwrite("%{path}%{char}.newbie","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate2=%{tdate}%;\
    /endif%;\
      /test fwrite("%{path}%{char}.newbie" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def nt = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.newbie%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}

/def rnt = \
 /ecko Are you sure you want to remove %htxt2%{char}%ntxt\'s newbie-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.newbie\%;/ecko Ok, newbie-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping newbie-log.\%;/unalias Y\%;/unalias N

/def logclaninfo  = \
  /if (claninfologger=1) \
    /set ttell=%{*}%;\
    /set tdate=$[ftime("%a %b %d", time())]%;\
    /set ttime=$[ftime("%H:%M:%S", time())]%;\
    /if (tdate!/tempdate2) \
      /test fwrite("%{path}%{char}.claninfo","%htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2%{tdate}  %htxt =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-")%;/set tempdate2=%{tdate}%;\
    /endif%;\
      /test fwrite("%{path}%{char}.claninfo" , "\[%{ttime}\] %{ttell}")%;\
  /endif%;\

/def ci = \
  /if ({*}=/{}) \
     /set showtellrows=%{lines}%;\
  /else \
     /set showtellrows=%{*}%;\
  /endif%;\
  /let _wrapspace=%{wrapspace}%;\
  /set wrapspace=15%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Sarlock's chan-logger %htxt(%htxt2\Last%htxt\:%htxt2\%{showtellrows}%htxt) %htxt\-=-=-=-=-=-=%;\
  /quote -S /tellparser !tail -n%{showtellrows} %{path}%{char}.claninfo%;\
  /eval /echo -a -p %htxt=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= %htxt2\Uzi's rewritten tell-logger %htxt=-=-=-=-=-=-=-=-%;\
  /set wrapspace=%{_wrapspace}


/def rci = \
 /ecko are you sure you want to remove %htxt2%{char}%ntxt\'s claninfo-logs... %htxt[%htxt2\Y%htxt\/%htxt2\N%htxt]%ntxt\!?%;\
 /alias Y /quote -S /echo !rm %{path}%{char}.claninfo\%;/ecko Ok, claninfo-logs %htxt2\deleted%ntxt\.\%;/unalias Y\%;/unalias N\%;/set tempdate=0%;\
 /alias N /ecko As you wish, keeping claninfo-log.\%;/unalias Y\%;/unalias N

;===================
; T r i g g e r s
;===================

/def -mregexp -F -p1 -t'You tell (.*) (\'.*\')' tellog = \
  /if ({P1} =/ 'your *') \
  /elseif ({P1} =/ 'the *') \
  /else \
    /logtell $[replace('"', '\"', strcat('You tell ', {P1}, ' ', {P2}))]%; \
  /endif

/def -mregexp -F -p1 -t'([A-Za-z\(\)\{\}\.,? ]+ tells you)' tellog2 = \
  /logtell $[replace('"', '\"', strcat({P1}, {PR}))]%;\

/def -mregexp -F -p1 -t'^(\(Friend\):?) (\'?.*\'?)' friendlog = \
  /logfriend $[replace('"', '\"', strcat({P1},' ',{P2}))]

/def -mregexp -F -p1 -t'([A-Za-z \(\)]+ friends:) (\'.*\')' friendlog2 = \
  /logfriend $[replace('"', '\"', strcat({P1}, ' ', {P2}))]

/def -mregexp -F -p1 -t'([A-Za-z \(\)]+) (tells?) the CLAN: (\'.*\')' clanlog = \
  /logclan $[replace('"', '\"', strcat({P1},' ', {P2}, ' the CLAN: ' , {P3}))]

/def -mregexp -F -p1 -t'(\([A-Za-z]+\) CLAN: )' clanlog2 = \
  /logclan $[replace('"', '\"', strcat({P1},' ', {PR}))]

/def -mregexp -F -p1 -t'^CLAN' clanlog3 =\
  /logclan $[replace('"', '\"', {*})]

/def -mregexp -F -p1 -t'([A-Za-z\(\)\{\}\.,? ]+) (says?|screams?|leers?|exclaims?|asks?|demands?|boggles?|chuckles?|smirks?|sulks?|sings?) (\'.*\')' saylog = \
  /logsay $[replace('"', '\"', strcat({P1},' ',{P2},' ',{P3}))]

/def -mregexp -F -p1 -t'(Spouse\: .*)' spouselog = \
  /logspouse $[replace('"', '\"', {P1})]

/def -mregexp -F -p1 -t'(^Curi\: .*)' spouselog2 = \
  /logspouse $[replace('"', '\"', {P1})]

/def -mregexp -F -p1 -t'(\(Group\) .*)' grouplog = \
  /loggroup $[replace('"', '\"', {P1})]

/def -mregexp -F -p1 -t'(\[HELPER\] .*)' helperlog = \
  /loghelper $[replace('"', '\"', {P1})]

/def -mregexp -F -p1 -t'(\[HELPER\]: .*)' helperlog2 = \
  /loghelper $[replace('"', '\"', {P1})]

/def -mregexp -F -p1 -t'(\[Newbie\] .*)' newbielog = \
  /lognewbie $[replace('"', '\"', {P1})]

/def -mregexp -F -p1 -t'(\[Newbie\]: .*)' newbielog2 = \
  /lognewbie $[replace('"', '\"', {P1})]

/def -mregexp -F -p1  -t'(^CLANINFO: .*)' claninfolog  = \
  /logclaninfo $[replace('"', '\"', {P1})]