On *:join:#:{ Set %nick $Nick Timer.voice 1 1 goto voice :voice If (%Nick isreg $chan) { Mode $chan +v %nick } } ^ should work if not, on *:join:#:{ /set %nick $Nick /timer.voice 1 1 /inc %time 1 if ((%nick isreg $chan) && (%time => 1) && (%nick ison $chan)) { /mode $chan +v $nick } } on *:voice:#:{ if (($vnick isop $chan) || ($vnick ishop $chan)) { mode $chan -v $vnick } } ^ put the on voice on both, just as a safe guard, then try both joins