That looks pretty good, Zothen. Though we would probably have to do testing on each client to see if they break if more are sent than the client allows. I would suggest maybe changing your SoD.cpp (and other patch files) from this:
Code:
if ( iMaxChars > UPPER_CHAR_LIMIT )
iMaxChars = UPPER_CHAR_LIMIT;
to something like this:
Code:
if ( iMaxChars > 10 )
iMaxChars = 10;
Or whatever the (assumed) hard cap is for each client to prevent potential client crashes. Though, if no clients care how many you send them, then I guess that wouldn't matter.