Criar Módulo para Compartilhar Conteúdo no Foundry VTT
- Mestre Digital
- 23 de jan. de 2021
- 3 min de leitura
Atualizado: 22 de fev. de 2022
É uma necessidade comum poder transferir itens, atores, mapas, tabelas, etc para outros mundos. Apesar de haver uma forma automatizada (criação automatizada) a criação manual tem algumas aplicações.
Criação Automatizada
Para fazer isso vamos criar um módulo que tem os compêndios que você criou em um mundo. Assim onde carregar o módulo poderá acessar essas entidades.
Criação Manual
Compêndios
Escolha o que deseja compartilhar e dentro de um mundo qualquer crie compêndios com esses elementos.
Uma vez que tenha feito todos os compêndios que deseja vá na pasta do mundo que os criou e procure a pasta packs. Essa pasta tem exatamente os compêndios que deseja compartilhar. Você deve copiar os arquivos .db que deseja para a pasta packs de seu módulo (veja abaixo).
Estrutura de Pastas do Foundry VTT
A estrutura de pastas do Foundry VTT é a seguinte.
+ Config/
- options.js
+ Data/
+ modules/
+ meumodulo/
+ packs
+ img
+ tokens
- module.json
+ systems/
+ worlds/
+ Logs/
O módulo que for criado deve ficar dentro da pasta modules onde deve estar em uma pasta de nome único como meumodulo.
Ao criar a pasta de seu módulo evite acentos, carácteres especiais, espaços, letras maiúsculas.
Arquivo de Configuração do Módulo
Dentro da pasta do seu módulo você deve colocar um arquivo module.json que é responsável por fazer o Foundry VTT entender o que é seu módulo e como usá-lo. O modelo abaixo é um exemplo básico com o mínimo necessário. Ele é escrito em uma notação chamada JSON que precisa ser escrita sem erros.
{
"name": "meumodulo",
"title": "Meu Modulo Bem Legal",
"description": "Esse módulo tem mapas que gosto de usar",
"author": "Meu nome",
"version": "1.0.0",
"minimumCoreVersion": "9",
"compatibleCoreVersion":"9"
}
Você após escrever seu arquivo module.json pode verificar se não há um erro no json com esse site. O site verificará se não errou uma virgula ou esqueceu de colocar chaves.
Veja o cada elemento do arquivo de configuração faz:
name: Nome do módulo que deve ser exatamente o nome da pasta do seu módulo ou não vai funcionar.
title: título de seu módulo, o que vai aparecer na listagem e pesquisa de módulos do foundry vtt. Você pode usar espaços, acentos, etc.
description: Descrição sobre o que é seu módulo.
author: nome de quem fez o módulo
version: é uma numeração para controlar a versão. Para simplicidade coloque 1.0.0 e se quiser vá mudando isso conforme expande seu módulo.
minimumCoreVersion: reflete qual é a versão mínima do foundry vtt que é precisa para usar o módulo. Coloque a sua versão atual para simplicidade. Exemplo: 0.7.9
compatibleCoreVersion: Versão que o funciona funcionará. Exemplo: 0.7.9
Entendendo isso é simples agora adicionar os compêndios que você colocou no módulo. Você precisa adicionar uma nova entrada chamada packs que terá a identificação dos compêndios.
{
"name": "meumodulo",
"title": "Meu Modulo Bem Legal",
"description": "Esse módulo tem mapas que gosto de usar",
"author": "Meu nome",
"version": "1.0.0",
"minimumCoreVersion": "9",
"compatibleCoreVersion":"9",
"packs": [
{
"name": "itens",
"label": "Meus Itens",
"path": "packs/itens.db",
"entity": "Item",
"module": "meumodulo"
},
{
"name": "monstros",
"label": "Meus Monstros",
"path": "packs/monstros.db",
"entity": "Actor",
"module": "meumodulo"
},
{
"name": "cenas",
"label": "Minhas Cenas",
"path": "packs/cenas.db",
"entity": "Scene",
"module": "meumodulo"
}
]
}
Entendendo agora a chave packs, dentro dela você pode adicionar quantos compêndios desejar do que for. Só deve se atentar a alguns padrões.
name: nome do compêndio que deve ser igual ao nome do arquivo.
label: nome que desejar
path: esse é o caminho onde deve estar o arquivo que colou, packs é a pasta dentro de seu módulo
entity: tipo de entidade, as disponíveis são: Actor, Item, Scene, JournalEntry, RollTable.
module: nome que deve ser igual ao name de seu módulo.
Associação com Objetos
Uma cena vai ter uma imagem, um ator vai ter um token. Quando seu módulo carregar ele vai procurar por imagens, sons, etc na mesma localização que colocou quando eles foram criados.
Se por exemplo, colocou que sua cena tem o endereço de imagem worlds/meumundo/mapa.jpg é lá que o objeto colocou vai pesquisar pela imagem. Isso faria com que para usar o seu módulo precisasse do módulo e do mundo.
Para fazer com que seu módulo fique autônomo, sem ter que precisar acessar outras pastas você pode colocar as imagens dentro do próprio módulo.
Para isso na criação do ator ou cena, você deve vincular a imagem diretamente da pasta do módulo. Dessa forma uma para ficaria com o endereço de imagem modules/meumodulo/img/mapa.jpg no lugar do endereço acima.