Pular para o conteúdo

Props não aparecem no FiveM? Resolva passo a passo

Um prop que parece certo no CodeWalker, mas não aparece no servidor, fica roxo, não tem colisão ou some quando você se afasta tem uma de poucas causas possíveis. Verifique uma por uma, na ordem.

1. Os arquivos estão fora de stream/

O FiveM só carrega arquivos que estão dentro de uma pasta stream. Um .ydr na raiz do resource ou em models/ nunca é carregado, mesmo que o CodeWalker mostre ele a partir da pasta do seu jogo.

2. O .ytyp não é requisitado

O arquivo de archetype precisa ser carregado pelo manifest:

data_file 'DLC_ITYP_REQUEST' 'stream/my_props.ytyp'

Depois confira no jogo: print(IsModelInCdimage(joaat('my_prop'))). Se imprimir false, o jogo não conhece o modelo, então nenhum spawn ou mapa vai mostrá-lo.

Uma armadilha em resources que também trazem um _manifest.ymf: se esse arquivo lista o seu próprio .ytyp como dependência, o tipo pode não ser registrado. Um resource de props sem mapa próprio não precisa de .ymf nenhum.

3. Os nomes não batem

O name do archetype, o nome do arquivo .ydr e o assetName precisam ser idênticos. Se as texturas estão num .ytd separado, o textureDictionary do archetype precisa citá-lo; se estão embutidas no .ydr, deixe vazio. Uma diferença faz o prop aparecer roxo ou branco.

4. Bounds e distância de renderização

O archetype guarda uma bounding box, uma esfera e um lodDist. Uma caixa zerada ou minúscula faz o jogo ocultar o prop assim que ele sai do centro da tela; um lodDist de 0 ou 5 faz ele sumir a poucos metros. Use os bounds reais do modelo e uma distância de renderização compatível com o tamanho dele (de 50 a 150 m para a maioria dos props).

5. Sem colisão

Visível, mas você atravessa: o .ydr não tem bound embutido, ou o physicsDictionary do archetype está vazio. Os dois são necessários para um prop estático. Colisão flutuando acima do chão normalmente significa um bound de caixa cujo centro nunca foi definido.

6. Texturas grandes demais

Um dicionário acima do orçamento de streaming pode carregar tarde ou nem carregar, e aí o prop fica alternando entre sem textura e com textura. Mantenha as texturas de props em 2048 px ou menos e comprima-as.

Faça certo de primeira

O Prop Creator converte um modelo 3D ou uma imagem em um .ydr com texturas embutidas, um .ytyp correspondente, colisão e um manifest que já carrega o archetype, além de um comando de teste para spawnar o prop.

Perguntas frequentes

Preciso de um ytyp para cada prop?

Para um modelo personalizado que você spawna pelo nome, na prática sim: o archetype .ytyp diz ao jogo que o modelo existe, quais são os bounds dele, a distância de renderização e onde estão as texturas e a colisão. Sem ele o modelo pode não spawnar ou ser ocultado na hora errada.

Funciona num ymap, mas não quando eu spawno. Por quê?

O arquivo de mapa carrega o archetype para você, mas um spawn por script precisa do .ytyp carregado com data_file 'DLC_ITYP_REQUEST'. Adicione isso ao manifest.

Por que consigo atravessar meu prop?

O .ydr não tem bound de colisão, ou o archetype não aponta o physics dictionary para o modelo. Os dois são necessários.

Experimente grátis

Crie uma conta grátis, entre no Discord para receber seus créditos e monte seu primeiro asset em minutos.