Apenas uma lista de coisas (não ordenada) a considerar ao criarem o vosso cliente. Caso queiram adicionar mais alguma responder no tópico (pedia que respondessem apenas neste caso para ser mais organizado). Bloquear logininfo.py (ou remover a sua importação do cliente); Bloquear importação de ficheiros .flt .m3d .mix .asi; Bloquear injeção de ficheiros dll; Bloquear a execução de macros; Remover (ou bloquear no bin) as 2 funções do python22.dll/python27.dll para injetar ficheiros .py. É recomendado usarem python2.7 ao invés de python2.2; Modificar as chaves de compactação do cliente; Modificar as extensões do cliente; Dificultar o acesso aos ficheiros index (.eix) utilizando Cython (recomendado) ou caso não saibam fazer usando virtualização (Themida, VMprotect, Enigma, etc); Utilizar uma verificação de todos os ficheiros no executável dos ficheiros do cliente (por exemplo da pasta miles, dlls do cliente, pasta lib, ficheiros da pasta pack). Recomendo uma dupla verificação dos ficheiros por md5 e sha1 por exemplo; Remover duplicados (pastas season contêm imensos. Para tal podem alterar os caminhos nos ficheiros python e remover o season1 e season2, ajustando o caminho para corresponder aos já existentes); Remover todos os itens/mapas/texturas não utilizados; Modificar os pacotes (packet) de comunicação cliente/servidor; Usar e abusar da versão de cliente; Colocar executável a abrir apenas com um argumento especifico fornecido pelo patcher (juntamente com a opção 13 obriga o jogador a utilizar sempre o patcher para poder jogar); Modificar a estrutura do cliente à vossa maneira. Lembrar-se que os ficheiros .epk são apenas para organização e podem ter quantos quiserem e o seu nome não tem de ser igual ao cliente oficial. Ao modificar a estrutura podem também acabar com o ficheiro root e uiscript, assim como a pasta pack (dando outro nome qualquer/modificando a sua localização); Modificar nome dos módulos (os imports nos vossos ficheiros, como por exemplo import player, import item, etc) pois a maioria do hacks está feita para certos nomes específicos; Fazer um instalador que instale juntamente com o cliente a versão c++ runtime  assim como a versão .net framework que estiverem a utilizar. O instalador deverá ser feito com o máximo de compressão disponível (recomendo lzma2 ultra ou custom). Exemplo de um criador de instalador com boas funções: http://www.advancedinstaller.com/purchase.html     Edit: «o cython n dificulta o acesso aos .eix, apenas compila os python do root (e agora do uiscript) em ficheiros .c de modo a criar uma .lib que possa ser compilada com a source do bin»  (ty paci)