Ir para o conteúdo
Getting Started

Como o seu mod é lido

As estruturas de pasta que o SCS IntelliSense entende, e o que ele consegue e não consegue enxergar.

O jogo monta todos os arquivos compactados (os dele, os das DLCs e os de cada mod) numa única pasta virtual, /. Um caminho como "/vehicle/truck/cabin.pmd" começa ali. O SCS IntelliSense descobre onde fica esse / no seu disco olhando as pastas em volta do arquivo que você está editando.

Estruturas suportadas

A pasta que tem o manifest.sii é o / do mod:

Pastas
my_mod/
manifest.sii
def/
vehicle/
vehicle/
truck/
cabin.pmd

my_mod/vehicle/truck/cabin.pmd é escrito "/vehicle/truck/cabin.pmd".

Um caminho relativo (@include "parts/cabin.sui") começa na pasta do arquivo que o escreve. Se o arquivo não estiver ali, a extensão também procura na mesma pasta das outras partes do seu mod, como o jogo faz.

Várias pastas abertas ao mesmo tempo (um workspace do VS Code) também funcionam: cada arquivo usa o mod ao qual pertence.

Arquivos do jogo

O seu mod pode usar as units e os arquivos do jogo: um ponteiro para uma unit do jogo, um caminho para um modelo dele. A extensão não lê os arquivos compactados do jogo, então:

  • esses nomes e caminhos não têm definição para onde pular, e isso é esperado;
  • eles nunca são apontados como erro: um caminho que a extensão não encontra pode muito bem estar no jogo.

É por isso que não existe um aviso de "arquivo não encontrado": quase todo mod aponta para arquivos do jogo em algum lugar, e todos esses caminhos seriam marcados.

Os arquivos do jogo, extraídos

Se você extraiu os arquivos compactados do jogo para estudá-los, também pode abrir essa pasta. Extraia uma pasta por arquivo compactado, lado a lado, e a extensão os lê como o jogo: todos fazem parte do mesmo /.

Pastas
ATS_extracted/
base/
def/
dlc_kenworth_w900/
dlc_oversize/

Fragmentos .sui

Um arquivo .sui pode ter uma unit inteira, ou só uma lista de atributos que o @include cola dentro de uma unit escrita em outro arquivo:

engine.sii
accessory_engine_data : my_engine.engine {
@include "engine_common.sui"
	price: 18000
}

E o fragmento, ao lado dele:

engine_common.sui
torque: 2400
volume: 15

A extensão descobre quem inclui o fragmento e trata os atributos dele como parte daquela unit: eles ganham autocompletar, hover e as mesmas verificações. Um fragmento que nada nas pastas abertas inclui ganha só as verificações básicas.

Pastas grandes

Quando uma pasta é aberta, a extensão lê todos os arquivos .sii, .sui, .mat e .tobj dela em segundo plano. Um mod comum leva alguns segundos. Você pode continuar trabalhando enquanto isso: a navegação e a atualização de caminhos se acertam assim que a leitura termina.