En cuanto al lag, como dijo SD, son varias razones, empezando con los timers y luego con la callback OnPlayerUpdate, la cual es llamada 30 veces por segundo por cada jugador. Imaginбte si OnPlayerUpdate tiene cуdigos extensos para actualizarse, y tenйs un servidor con 200 jugadores conectados al mismo tiempo... 30*200 = 600 veces serнa llamada la callback por segundo...
Te recomiendo varias cosas, como por ejemplo, usar lo menos posible OnPlayerUpdate, el guardado y cargado de datos puede ser mediante funciones, por ejemplo, GuardarCuenta y CargarCuenta, GuardarCuenta serнa llamada en la callback OnPlayerDisconnect, para que al desconectarse el jugador, se guarde su cuenta, tambiйn en OnGameModeExit para los casos en los que se caiga el servidor, con un bucle foreach sуlo para jugadores, y CargarCuenta se utilice en la callback OnPlayerConnect, para cargarle la cuenta al jugador, de йsta forma se estarнan guardado y cargando los datos sуlamente cuando йsto se precisa, en lugar de guardarlos constantemente en OnPlayerUpdate, que en lugar de guardarlos se actualizan. Podrнas usar el include fixes, el include fixes2 junto con su plugin, para poder reparar varios errores en los timers, ademбs de complementarlo con el YSI/y_timers, serнan timers perfectos.. Podrнas usar la funciуn GetPlayerTicketCount en algunos casos, para disminuir los timers, podrнas usar un sуlo timer para funciones que utilicen timers de iguales milisegundos.. En cuanto al guardado de datos, te recomendarнa MySQL R7. Y recuerda, los bucles serнa mejor usarlos con foreach, ya que sуlo es especнfico para jugadores si asн lo especificas, y se colapsa menos el servidor. En cuanto a los comandos, claramente, es mejor usar algo como YSI/y_commands (YCMD) en conjunto con el plugin sscanf con su respectivo include sscanf2, y tambiйn en conjunto con otras librerнas YSI, que mejoran el rendimiento. Serнa indispensable utilizar tambiйn el plugin e include streamer de Incognito, por el tema de los objetos..
Y como siempre, trata de optimizar, como usar switch's con condicionantes case's en lugar de usar condicionantes if y else if.
Teniendo por ejemplo un servidor con йstas caracterнsticas y un buen host, habrнa una mejor conexiуn.
En cuanto a preferencias, te recomendarнa no trabajar con include's como OSRP, si bien, se trabaja "algo" mбs ordenado, a veces uno se pierde, lo ъnico que usarнa como include serнa uno donde se guardarнan todos los mapeados (RemoveBuildingForPlayer, CreateObject/CreateDynamicObject, etc).