If you have another script file loaded after this one, the difference between /halt and /return is
the value of $halted. Using halt to just end the event handler could lead other scripts to incorrectly assume the text is not displayed.

Here's 3 examples:
script1.mrc ->
on ^*:TEXT:erty:*:halt
script2.mrc ->
on *:TEXT:erty:*:echo $target $iif($halted,You didn't see $1-,Nothing to add)


script1.mrc ->
on *:TEXT:erty:*:halt
script2.mrc ->
on *:TEXT:erty:*:echo $target $iif($halted,You didn't see $1-,Nothing to add)

script1.mrc ->
on *:TEXT:erty:*:return
script2.mrc ->
on *:TEXT:erty:*:echo $target $iif($halted,You didn't see $1-,Nothing to add)

Other than that, I just don't lie halt, i never use it. If I need to stop default action, I use /haltdef and then script my own displaying stuff...


DaveC is right about the delay: goto results in the script parser reading all lines untill the :label is found, unused else(if) clause is read and skipped until the closing } So sometimes it might be a good idea to use return even when without it the script would end if that means skipping a lot of code that wouldn't be executed anyway. However,
return
}
is still unneeded...

In conclusion, /return seems to me the more official way, with the least side efects. You can even return a value with it to the calling alias or event handler, halt just kills the entire script right there. You wouldn't want $calc(5+5) to /halt 10 instead of return 10 do you smile