O que é o EML
O EML, o Enshrouded Mod Loader, é um projeto de código aberto de Brabb3l (kfc-parser no GitHub). Ele vem como um arquivo chamado dbghelp.dll. Colocado ao lado do enshrouded_server.exe, é carregado pelo servidor quando ele inicia, roda cada mod da pasta de mods e grava o resultado nos dados do jogo antes de o mundo carregar. Os mods são escritos em Lua, e cada um é uma pasta (ou um zip) com um mod.json e uma pasta src.
Hoje o EML altera os dados do jogo antes de o servidor iniciar: tamanhos de pilha, slots de baú, quantidades de criação e de loot, resistência e valores semelhantes. Ele não adiciona comandos, chat nem mapa ao vivo. O Enshrouded é em grande parte autoritativo no servidor, então um mod instalado no servidor se aplica a todos que entram. Alguns mods também mudam o que o jogador vê na própria tela; esses precisam ser instalados no jogo de cada jogador, e a página deles no Nexus informa isso.
Mods do EML e patchers não são a mesma coisa
| Tipo | Como funciona | Em um servidor dedicado |
|---|---|---|
| Mod EML | Uma pasta com mod.json e Lua, carregada pelo EML a cada inicialização | Instale o EML uma vez e depois adicione ou remova mods livremente |
| Patcher | Uma ferramenta que você roda no seu PC e que reescreve o enshrouded_server.kfc | Desfeito por qualquer atualização da Steam ou verificação de arquivos, então precisa ser aplicado de novo |
| Tabela de cheats, predefinição do Reshade | Roda no PC do próprio jogador | Nada para instalar no servidor |
| Save do mundo | Um arquivo de mundo e seu arquivo _info | Enviado para a pasta de saves, não é um mod |
Instalando o EML em um servidor próprio
- Pare o servidor e faça backup da pasta de savegame.
- Baixe o dbghelp.dll da versão mais recente na página do GitHub do kfc-parser.
- Coloque o dbghelp.dll na pasta do servidor, ao lado do enshrouded_server.exe.
- Crie uma pasta chamada mods no mesmo lugar e coloque cada mod nela: a pasta do mod (com o mod.json diretamente dentro) ou o zip dele, desde que o mod.json esteja no topo do zip.
- Em Linux com Wine ou Proton, inicie o servidor com WINEDLLOVERRIDES="dbghelp=native,builtin" antes do comando. Sem isso, o Wine carrega o próprio dbghelp e o EML nunca roda, sem nenhum erro em lugar algum.
- Inicie o servidor. Um arquivo eml.json aparece na pasta do servidor assim que o EML carrega.
O EML para no primeiro problema que encontra: um mod.json que ele não consegue ler, dois mods com o mesmo id, um erro de Lua em qualquer mod. Quando isso acontece, ele abre uma janela de erro, e um servidor sem tela simplesmente nunca sobe. Se o servidor travar na inicialização depois que você adicionou mods, leia o log do próprio EML, um arquivo que termina em eml.log na pasta logs ao lado do servidor, que indica o mod e o erro; ou remova o mod mais recente e tente de novo.
Remover mods sem deixar vestígios
O EML grava suas alterações em enshrouded_server.kfc e mantém o original ao lado, como enshrouded_server.kfc.bak. Apagar os mods e o dbghelp.dll impede novas alterações, mas as que já foram gravadas permanecem. Para voltar ao jogo puro, apague o dbghelp.dll e os mods, e depois deixe a Steam verificar os arquivos: app_update 2278520 validate no SteamCMD devolve os dados originais do jogo.
Mods em um servidor do Flux
Todo servidor de Enshrouded na Flux tem o EML integrado, então não há nada para baixar além dos próprios mods:
- Baixe o zip do mod no Nexus Mods.
- Abra seu servidor no painel, vá para a aba Mods e escolha o zip. Arquivos que contêm o mod dentro de uma pasta, vários mods de uma vez ou uma cópia do EML são todos aceitos: cada mod é adicionado separadamente, e qualquer coisa que o EML recusaria é indicada antes de chegar ao servidor.
- Reinicie o servidor. A aba Mods mostra quais mods foram carregados e quantas alterações o EML fez.
Os mods ficam em uma pasta própria que acompanha o mundo, então vêm junto se o servidor for para o nó reserva. Desativar um mod, removê-lo ou desativar todos leva efeito no próximo reinício, e o servidor devolve os dados originais do jogo sozinho quando os mods são removidos. Se um mod travar o servidor, ele inicia de novo sem mods e a aba Mods indica o mod que falhou, então um mod com problema custa um reinício, não uma noite inteira.
Mods e atualizações do jogo
Os mods são feitos pela comunidade, não pela Keen Games, e uma atualização do jogo pode mudar os dados que um mod espera. Depois de uma grande atualização, inclusive a 1.0 do Enshrouded, verifique a página de cada mod para encontrar uma versão compatível antes de reativá-lo. Se o servidor não iniciar com um mod depois de uma atualização, esse mod é o primeiro a ser removido.
Perguntas frequentes
Dá para usar mods em um servidor dedicado de Enshrouded?
Sim, via EML, o Enshrouded Mod Loader da comunidade. Ele não tem suporte oficial da Keen Games, mas roda em um servidor dedicado, e como o jogo é em grande parte autoritativo no servidor, a maioria das alterações se aplica a todos os jogadores que entram.
Os jogadores também precisam instalar os mods?
Geralmente não. Um mod instalado no servidor se aplica a todos para tudo o que o servidor decide, como tamanhos de pilha, slots de baú ou loot. Alguns mods também mudam o que o jogador vê na própria tela, e esses dizem na página do Nexus que os jogadores também precisam deles.
Por que meu servidor de Enshrouded não inicia depois de adicionar um mod?
O EML para no primeiro problema que encontra, como um mod.json inválido, dois mods com o mesmo id ou um erro de Lua, e abre uma janela de erro que um servidor sem tela não consegue exibir. Remova o mod mais recente e comece de novo. No Flux o servidor faz isso sozinho: ele inicia sem mods e a aba Mods informa o nome do mod que falhou.
Como removo mods de um servidor de Enshrouded?
Apague o dbghelp.dll e a pasta de mods, depois rode app_update 2278520 validate no SteamCMD. O EML grava suas alterações nos dados do jogo, então remover só os arquivos deixa as alterações no lugar; a verificação de arquivos devolve o original. Um servidor no Flux faz isso sozinho quando os mods são removidos.
O EML funciona em um servidor de Enshrouded no Linux?
Sim, sob Wine ou Proton, se o servidor for iniciado com WINEDLLOVERRIDES="dbghelp=native,builtin". Sem essa configuração, o Wine usa o próprio dbghelp e o EML nunca carrega, sem avisar.