Yeah, any team, limbo changes are shown in et_clientUserinfoChanged always for sure. You don't have to check them directly from userinfo, you can use instead et.gentity_get function, works faster imo. edit: If you want to stop client from team switching then catch commands from et_ClientCommand callback, check team etc. and then just return value to stop from post-executing or not.