Interesting. A quick look at clientPersistant_t shows this little comment here:
// client data that stays across multiple respawns, but is cleared
// on each level change or team change at ClientBegin()
typedef struct {
...
int complaints; // DHM - Nerve :: number of complaints lodged against this client
int complaintClient; // DHM - Nerve :: able to lodge complaint against this client
int complaintEndTime; // DHM - Nerve :: until this time has expired
...
} clientPersistant_t;
This is from etmain code.
So probably whenever he switches team his counter “complaints” will get reset and he will not be kicked, because it can’t reach the maximum. You could use a Luascript to avoid that though.
_et_gclient_addfield( pers.complaints, FIELD_INT, 0 ),
is accessible in etpub.
You can also check his teamdamage at the end of the round
_et_gclient_addfieldalias( sess.team_damage, sess.team_damage_given, FIELD_INT, 0 ),
Interesting nevertheless. Will further check this out during the month. Probably not that important, but maybe the mod dev whose mod you are using will fix it.