Compilando scripts Lua com luac para proteger seu código
Scripts de cliente são enviados aos jogadores — e, sem proteção, qualquer um pode copiar o trabalho de meses do seu time. Compilar os scripts é a forma mais comum de dificultar isso.
O que é compilar
Compilar transforma o código Lua legível em bytecode: um formato que o MTA executa normalmente, mas que é muito mais difícil de ler e modificar.
O MTA oferece um compilador oficial (luac.mtasa.com), que também pode aplicar níveis de ofuscação, tornando a descompilação ainda mais difícil.
Como usar
- Acesse o compilador oficial do MTA;
- Envie o arquivo
.lua; - Escolha o nível de ofuscação;
- Baixe o arquivo compilado (geralmente com extensão
.luac); - Atualize o
meta.xmlpara apontar para o arquivo compilado:
<script src="client.luac" type="client" cache="false" />
O compilador também pode ser usado por linha de comando/API, o que permite automatizar a compilação em um script de build.
cache="false"
Com cache="false", o script de cliente não é salvo no disco do jogador — ele fica apenas na memória enquanto o jogador está conectado. Combinado com a compilação, dificulta bastante a cópia.
O que a compilação NÃO faz
- Não torna o código impossível de copiar — dificulta, mas pessoas determinadas podem tentar;
- Não protege segredos: nunca coloque senhas, tokens ou chaves em scripts de cliente, compilados ou não;
- Não substitui validação no servidor: o cliente continua não sendo confiável.
E os scripts de servidor?
Scripts de servidor não são enviados aos jogadores. Compilar só faz sentido se você entrega o resource para terceiros (venda de resources, por exemplo) ou quer proteger contra acesso indevido aos arquivos.
Boas práticas
- Mantenha sempre o código-fonte original (em repositório Git privado) — o compilado não serve para editar;
- Compile apenas na hora do deploy;
- Mantenha versões do compilado e do fonte sincronizadas;
- Teste o resource compilado antes de colocar em produção.
Hospede seu servidor com a VittHost
No MTASA-BR da VittHost, você envia seus scripts compilados pelo painel Pterodactyl, e eles chegam aos jogadores rapidamente com downloads acelerados por nginx dedicado. Servidores no Brasil, proteção DDoS, MySQL incluso e teste grátis de 3 dias.