Hopefully this isn't an area where twitch is incompatible with a 'real' irc server lingo.
It looks like you were implying that the trolls were able to evade the white-on-white by changing nicks. However in my own testing, I've found that when I set a nick to be a particular color, that mirc keeps the color at the new nick.
One way to keep track of these people is to create a user level for them, and any time someone having that 'level' enters channel it automatically changes their nick color. Levels can be Alphanumeric not just integers, and in this example I named the level "Troll". Something like this goes in the nicklist view of popup alt-P:
Add $$1 to Troll List $address($1,3):/auser -a Troll $address($1,3) Added $asctime while using nick $nick
Remove $$1 from Troll List $address($1,3):/ruser Troll $address($1,3)
If the address mask casts too wide/narrow a net, you can change the above 3 to a different address mask, or edit the Troll entries in the USERS tab of remotes script editor.
The extra spacing isn't needed above, I just like to pad spacing of related lines for easier readability. Once you use the above to add/remove people's addresses from the Troll list (You'll now be able to auto-hide them as they join channel:
on Troll:JOIN:#:{ timer 1 0 cline $color(listbox) # $!nick( # , $nick ) }
Note that above spaces ARE needed so the timer can evaluate the timer later. (The nick doesn't go into the nicklist until after the ON JOIN is processed.) Notice that by using "ON Troll:JOIN" instead of "ON 1:JOIN" it acts only against that level.
If for some reason twitch isn't letting the color stay with the new nick, this might be needed, but leave out if not needed:
on Troll:NICK:{
var %i $comchan($newnick,0)
while (%i) {
timer 1 0 cline $color(listbox) $comchan($newnick,%i) $!nick( $comchan($newnick,%i) , $newnick )
dec %i
}
}
Again, the above spaces are needed so the timer knows what $newnick means.