The whole quote getting send to the server (without error) does not mean it's received by other clients untruncated. smile


About the n switch: I suggest you write only "raw" data into your file ($nick, $ctime and the quote). The formatting / coloring could go into your output routine instead. Example:
Code:
  [...]

  if ($1 == .addquote) {
    write %quotes_file $ctime $nick $2-
    [...]
  }

  elseif ($1 == .quote) && ($2 isnum 1-) && ($read(%quotes_file,n,$2)) {

  ; $v1 is now the unformatted line as read from the file (i.e. non-evaluated)
  ; now calculate the first "word" back into date/time, take the second "word" for the nick, the remaining is the quote itself.
  var %date = $date($gettok($v1,1,32)), %time = $time($gettok($v1,1,32)), %nick = $gettok($v1,2,32), %quote = $gettok($v1,3-,32)

  ; having these put in variables, you can easily create your colored output line (example only)
  var %quote =  $+ %sys_color2 $+ QUOTE $readn of $lines(%quotes_file) (by %nick on %date - %time $+ ): %quote

  ; "%quote" is now the formatted line and may be sent to the chan (or split into multiple lines first, like in the code by Riamus2)
  [...]

  }