Ok, you\'ve done a nice job. You might also want to mention that it also voices the person that joins.
Bug:
if $readini(joinmessage.ini,joinmessage,$nick) != $null) {
msg $chan $readini(joinmessage.ini,joinmessage,$nick)
}
You forgot a ( :
if ($readini(joinmessage.ini,joinmessage,$nick) != $null)
What I do is just this: if ($2) or if ($readini(joinmessage.ini,joinmessage,$nick)) which just checks if it won\'t return as $null