Conflito de mapas no FiveM: MLO piscando e props sumindo
Paredes piscando, props sumindo, MLO invisível? Por que mapas do FiveM entram em conflito, o que cada tipo de arquivo quebra e como mesclar .ymap.
Por Termi
- Maps
- MLO
- Desktop app
Nesta página
- Por que mapas entram em conflito
- Os tipos de conflito e o que cada um quebra
- Mapa piscando (conflito de oclusão)
- Conflito de posição de props (.ymap)
- Conflito de archetypes (.ytyp)
- Conflitos de colisão e de modelos 3D (.ybn, .ydr)
- Resolvendo na mão
- Mescle em poucos cliques
- Quando você não precisa mesclar
- Perguntas frequentes
- Por que o meu MLO pisca ou some quando eu chego perto?
- Mudar a ordem do ensure resolve conflitos de mapas no FiveM?
- Como descubro quais resources fazem streaming do mesmo .ymap?
- Dá para mesclar arquivos .ybn ou .ydr?
- Qual plano tem
Você adiciona um MLO novo, reinicia o servidor e vai ver. O prédio está lá, mas a delegacia do outro lado da cidade agora pisca, um estacionamento perdeu os postes e uma parede do interior some quando você chega perto. Nada no console explica o porquê. Isso é um conflito de mapas, um dos problemas mais comuns em qualquer servidor de FiveM que roda mais do que um par de mapas. Este guia explica de onde vêm os conflitos, como descobrir qual tipo você tem e como resolver sem passar uma noite no CodeWalker.
Por que mapas entram em conflito
A maioria dos mapas não constrói a cidade do zero. Eles editam pedaços do GTA V que já existem: movem uma cerca, apagam um poste que atrapalha ou abrem um buraco na oclusão de um quarteirão para o interior aparecer. Para isso, incluem a própria cópia de um arquivo do jogo base, com o mesmo nome do original.
O problema começa quando dois resources incluem uma cópia do mesmo arquivo. O jogo carrega só uma: a do resource que inicia por último. Tudo o que o outro mapa mudou nesse arquivo simplesmente some.
ensure pd_mlo
ensure burgershot_mlo
ensure street_lightsSe os dois MLOs fazem streaming de dt1_05_strm_1.ymap, só a cópia do burgershot_mlo carrega. As edições da delegacia nunca chegam ao jogo, então o interior dela é desenhado com o quarteirão original em volta. Trocar as duas linhas de lugar não ajuda, só passa o defeito para o outro mapa.
Os tipos de conflito e o que cada um quebra
O tipo do arquivo diz muito sobre o que você vai ver no jogo. Estes são os que mais aparecem.
Mapa piscando (conflito de oclusão)
Para economizar trabalho, o GTA V não desenha o que acha que está escondido atrás de paredes. Esses bloqueadores invisíveis se chamam occluders e ficam dentro de arquivos .ymap. Um MLO precisa remover os occluders que esconderiam o interior dele. Quando a cópia de outro mapa vence, os occluders antigos voltam: o interior pisca, some quando você chega perto, ou você enxerga através das paredes direto para o vazio.
Conflito de posição de props (.ymap)
Um .ymap também diz quais objetos ficam onde: prédios, props, LODs, luzes, grama, até os pontos onde os carros estacionados aparecem. Quando dois mapas editam o mesmo e só uma cópia carrega, você tem props faltando, prédios que aparecem e somem, postes que não acendem ou uma árvore crescendo no meio de uma garagem nova.
Conflito de archetypes (.ytyp)
Um .ytyp define os objetos em si: que modelo um prop usa, a que distância ele continua visível e, nos MLOs, os cômodos e portais do interior. Se duas cópias divergem, os props aparecem com o modelo errado ou nem aparecem, e um interior pode perder um cômodo.
Conflitos de colisão e de modelos 3D (.ybn, .ydr)
Um .ybn é colisão: onde você pode andar e o que te barra. Um .ydr é um modelo 3D. Um choque aqui aparece como atravessar paredes, barreiras invisíveis, cair pelo chão ou um prop com a forma ou as texturas erradas. Esses arquivos são objetos inteiros e não listas de edições, então não há o que combinar: você decide qual cópia deve vencer e garante que esse resource inicie por último.
Resolvendo na mão
Até agora, a correção de sempre era assim:
Para um único arquivo, é uma hora de trabalho cuidadoso. Um servidor grande tem dezenas, e no momento em que um mapa recebe atualização, você refaz tudo. Também é fácil errar: se escapar um occluder, o piscar continua.
Mescle em poucos cliques
O Map Merger do app de desktop do FiveDock faz esse trabalho por você. Ele lê o seu server.cfg, encontra cada .ymap e .ytyp que mais de um resource iniciado faz streaming e dobra cada grupo de cópias num só arquivo que mantém as mudanças de todos os mapas.
A mesclagem segue uma regra simples, a mesma que você seguiria na mão:
Cópias idênticas byte a byte são marcadas como tal e puladas, já que não podem conflitar. As luzes LOD distantes são mescladas junto com o arquivo de luzes LOD correspondente, que o jogo precisa manter sincronizado. Dá para fazer o mesmo pela linha de comando:
> fivedock merge C:\server
41 started resources, 3 map files streamed by more than one
dt1_05_strm_1.ymap pd_mlo -> burgershot_mlo
vw_distlodlights_medium010.ymap pd_mlo -> street_lights
shared_props.ytyp (identical) pd_mlo -> burgershot_mlo
> fivedock merge C:\server --apply
merged dt1_05_strm_1.ymap +38 -4, base-game file
merged vw_distlodlights_medium010.ymap +112 -0, base-game file
Wrote C:\server\resources\[fivedock]\fivedock-merged. Undo with: fivedock merge undo+38 -4 significa que a mesclagem trouxe 38 itens que a primeira cópia não tinha e deixou de fora 4 itens do jogo base que um dos mapas havia apagado.
Nada se perde
Toda mudança tem backup. As cópias originais são movidas para fora dos resources em vez de apagadas, e Desfazer a última mesclagem (ou fivedock merge undo) coloca tudo de volta, inclusive o seu server.cfg.
Quando um mapa recebe atualização, rode o escaneamento de novo. O merger também lê a própria saída anterior, então as cópias novas são incorporadas ao que você já tem.
Quando você não precisa mesclar
Um arquivo com streaming duplo nem sempre é problema. Deixe quieto quando:
Teste depois de mesclar. Passe por todos os mapas envolvidos e entre em cada interior. Se algo parecer errado, um clique em desfazer traz de volta o estado anterior.
Perguntas frequentes
Por que o meu MLO pisca ou some quando eu chego perto?
Normalmente porque outro resource faz streaming da própria cópia do mesmo .ymap, e essa cópia ainda tem os occluders que o MLO removeu. O GTA V não desenha o que um occluder esconde, então o interior pisca ou some quando você se aproxima. O jogo carrega a cópia do resource que inicia por último.
Mudar a ordem do ensure resolve conflitos de mapas no FiveM?
Só para arquivos de colisão (.ybn) e de modelo (.ydr), em que você escolhe a cópia que quer e faz o resource dela iniciar por último. Num .ymap ou .ytyp que dois mapas editaram, o jogo continua carregando uma cópia só, e uma ordem nova passa o defeito para o outro mapa. Esses arquivos precisam ser mesclados numa cópia que mantenha as mudanças dos dois mapas.
Como descubro quais resources fazem streaming do mesmo .ymap?
Procure arquivos com o mesmo nome nas pastas stream de cada resource iniciado: dois resources que incluem dt1_05_strm_1.ymap conflitam por causa dele. O Map Merger do app de desktop do FiveDock lê o server.cfg e lista cada .ymap e .ytyp que mais de um resource iniciado faz streaming, na ordem em que iniciam.
Dá para mesclar arquivos .ybn ou .ydr?
Não. Um .ybn é uma malha de colisão inteira e um .ydr um modelo 3D inteiro, então não têm uma lista de edições separadas para combinar como um .ymap. Decida qual cópia deve vencer e garanta que o resource dela inicie depois do outro.
Qual plano tem
O Map Merger faz parte do plano Metro. O escaneamento e os arquivos ficam na sua máquina; a mesclagem em si roda nos servidores do FiveDock, então o app continua pequeno e toda mesclagem usa os mesmos dados atualizados do jogo base. Compare os planos ou baixe o app de desktop para escanear o seu servidor.