That script is quite overly complexicated. laugh

Are you aware that mIRC v7+ can split long messages automatically?

Anyway, you can try this if you like. Replace the dialog:essay:sclick code with...
Code:
on *:DIALOG:essay:sclick:*:{
  if ($did == 5) { essay.custom }
  elseif ($did == 3) {
    if ($window($active).type !isin query channel) { echo -aec info * Essay: cannot use $+("/,%m.send,") in this window. | return }
    var %len = 424 - $len($me)
    var %msg, %i = 1, %t = 0
    while ($did(essay,2,%i)) {
      var %ln = $v1,%mlen = $len(%msg) + $len($v1)
      if (%mlen > %len) {
        .timer 1 %t %m.send $active $iif(%t,--) $regsubex($QuoteEncode(%msg),/([$]+)/g,\t!) ...
        var %msg, %t = %t + 1
      }
      %msg = %msg %ln
      inc %i
    }
    .timer 1 %t %m.send $active $iif(%t,--) $regsubex($QuoteEncode(%msg),/([$]+)/g,\t!) $iif(%t > 1,<end>)
  }
}