How about a timed kick if they don't change their nick after a minute or 2?This should do the trick (untested):
on *:KICK:#:.hdel guest $nick
on @*:JOIN:#: {
if (%aguest) && ($regex($nick,/\A(guest\d{5})/i)) && (!$hget(time,$nick)) {
hadd -mz guest $nick 120
.msg $chan $nick $+ , you have about 2 minutes to change your nick!
.timercheck 1 120 kickguest
}
else { ban -ku300 $chan $nick 5 Change your nick before returning! }
}
alias -l kickguest {
var %x = 1
while ($hget(guest,%x).item) {
if ($v1 ison $chan) {
ban -ku300 $chan $v1 5 Failed to change nick!
}
inc %x
}
}
menu menubar,channel {
$iif(%aguest != $false,[On],[Off]) Anti Guests:{
set %aguest $iif(%aguest == $false,$true,$false)
echo -a 4Anti Guests kick is now $iif(%aguest == $true,Enabled,Disabled)
}
}