top of page

Manual do Sandbox

Sandbox

Construa qualquer sistema, sem codificar uma única linha em Javascript.

Última versão compatível do Foundry Core: 0.8.8

TRADUZIDO EM 18/12/2021 POR Erich Viegas, imagens não traduzidas.

“Nota do tradutor – existem diversas novas funções que foram adicionadas ao Sandbox ao longo do tempo, o manual aqui reflete como ele esta escrito no site oficial, com notas marcadas quando diferentes, por isso imagens e listas podem parecer diferentes da versão atual, mas ou as descrições de uso estão no texto ou ainda não existiam no momento desta tradução”

Sumário


Importante

Este sistema foi desenvolvido por mim, Seregras (IsmaGM), após extensas horas de danos cerebrais causados por pensar muito. Se você gosta deste sistema, considere me ajudar da seguinte forma:

A) Inscrevendo-se no meu Patreon aqui: PATREON

Apenas 3,5$ lhe darão as seguintes vantagens:

1. Acesso às versões WIP onde você pode testar alterações antes que elas sejam lançadas publicamente

2. Poder de voto para funcionalidades, mudanças e sugestões

3. Prioridade para a resolução de bugs/mundos. Se você é um patrono, tentarei respondê-lo o mais rápido possível e olhar para o seu mundo/sistema.

4. Acesso para versões de Dev e novos testes de funcionalidade

B) Promover ttrpgs em países de língua espanhola, assinando meus canais do Youtube/Twitch abaixo, ou compartilhando-os nas redes sociais. Por favor, considere me ajudar mesmo que você não fale espanhol, porque eu realmente quero que meu hobby favorito seja geralmente visto na Espanha & América Latina, como é realmente visto em países de língua inglesa:


Rol NL - Youtube

Rol NL - Twitch

C) Doação. Você pode fazê-lo através de:

Donate


Aviso (anexar canal brasil)

Não sou programador. Sou apenas um pobre engenheiro químico, e um grande fã de ttrpgs. Então, sim, o código pode parecer o Caos (o que é bom, eu sou um seguidor tzeench). Pode ser difícil entender por que eu estruturei as coisas desta maneira, e pode haver uma maneira melhor de organizá-lo, eu sei. Tenha paciência comigo, se me disser como e me ajudar, todos podemos ter uma ótima versão do Sandbox. Se precisar de esclarecimento, pergunte-me, eu sou @Seregras no canal do Discord do Foundry


Tutoriais (anexar endereço videos ptbr)

Playlist com vídeo tutoriais em inglês (se não houver, espere alguns dias, vou tentar carregar entre um fortnite e outro) Videotutorials -English

Playlist com tutoriais em espanhol (por que não? Você pode aprender um pouco) Videotutorials -Spanish

Você tem perguntas? Junte-se ao meu servidor de discórdia e vá para o SANDBOX ENGLISH, eu vou ajudá-lo lá! Discord


Questões frequentes

1. Não insira dados no ator TEMPLATE. Atores TEMPLATE não são para construção de fichas, basta criar atores regulares para isso!

2. Após a reconstrução de uma ficha, qualquer caractere anterior exigirá pressionar o botão de TEMPLATE de RELOAD, à esquerda do seletor de TEMPLATE, a fim de exibir as novas alterações

3. Nunca se esqueça de incluir uma key para um elemento Sandbox, ou ele não vai deixá-lo arrastá-lo em qualquer lugar. Além disso, certifique-se de que as key são únicas e não contêm espaços!

4. Sempre que você alterar um modelo, seus atores existentes não registrarão as alterações corretamente. Isso é intencional, até que a caixa de areia seja mais estável para que qualquer erro no modelo não destrua seu mundo. Você só precisa recarregar o modelo como mencionado acima


1.Estrutura de Fichas básicas


Então você quer criar seu ttrpg favorito no Foundry para jogar online? Vamos ver o que podemos fazer para ajudá-lo. Primeiro, você precisa de uma ideia de sua ficha de personagem, um esboço, algo simples em um pedaço de papel. Vamos supor que queremos algo assim:

Agora temos que decidir quantas guias incluiremos em nosso personagem Sandbox Ficha. As guias estão localizadas aqui:


Então vamos dizer que precisamos de 2 guias, uma para as estatísticas do personagem, e outra para o inventário. Agora, temos que decidir quantos painéis precisamos. Os painéis são seções da Ficha que contêm propriedades, ou basicamente os campos de entrada que podemos editar em uma Ficha. Os painéis precisam de largura, e é relativo à largura máxima da Ficha: 1,2/3,1/2,1/3, etc. Então, no nosso caso, vamos construir 4 painéis:


Agora que temos uma ideia de como estruturar nossas Fichas de personagem no Sandbox, podemos começar a diversão real. Primeiro, precisamos de um elemento que armazene a estrutura do nosso personagem, e isso se chama-se Ator Template. Podemos criar um criando um novo ator e, em seguida, verificando a caixa " Template ". Vamos chamá-lo de _templateActor_pc:

Tenha cuidado para não excluir seu Ator Template por acidente! Tente guardá-lo em uma pasta segura dentro da barra lateral dos atores.

Com um ator de Template pronto, só precisamos adicionar a ele as guias, painéis e propriedades que precisamos. Vamos começar com as guias. Vá para o Diretório de Itens e crie um Item, selecione o tipo " sheettab" e nomeie-o como "Guia de Estatísticas", por exemplo. Você pode nomeá-lo como quiser:


Cada Tab tem três Tabs (isso foi engraçado):

1. Descrição: Aqui você pode escrever uma descrição da função da guia ou uma explicação. Algo para o resto de nós entender que é intenção.

2. Detalhes: Aqui você deve preencher o Título, com o nome que será exibido na Ficha, e a Key. A Key é um nome único que cada elemento no Sandbox terá, de Guias, Painéis, até Grupos... cada elemento. Uma Key não deve ter espaços, e deve ser única, se não... o exército das trevas vai povoar sua tela.

3. Painéis: Aqui vamos arrastar e soltar os painéis que a guia conterá.

Sua guia deve ser assim:

Então, aí está seu primeiro Tab. Agora, vamos adicioná-lo ao nosso ator Template. Abra o Template Actor, abra a guia Tabs e arraste a guia recém-criada do Diretório de Itens para o Ator Template. Você verá algo assim:

Nosso Ator Template tem agora o primeiro Tab, mas não está pronto para ser usado pelo sistema. Para isso, você só precisa pressionar "Rebuild Sheet"!

Assim, uma vez que tudo tenha recarregado, estamos prontos para verificar nossa ficha de personagem personalizado. Crie um novo ator, nomeie-o como quiser, e depois atribua-o a um ator Template. Por padrão, cada ator recém-criado tem o modelo Padrão atribuído. O modelo Padrão cria 2 guias, Bio (onde você pode escrever a biografia do personagem) e cItems (onde você pode ver a lista de cItems, falará mais tarde sobre isso). Assim, uma vez que selecionamos nosso ator Template, que leva o nome de _templateActor_pc, a Ficha muda:

E voila! Nossa Ficha de personagem com a nova aba "Estatísticas" foi criado. Mas está vazio... Então agora é hora de criar Painéis e propriedades. Então apague essa abominação de Ator e vamos voltar para o nosso Ator Modelo.

Ok, Painéis, então clique em criar um novo item no diretório de itens e selecione "panel". Nomeie-o algo como "Main Info Panel", ou "Super Duper Awesome First Panel", o que você quiser. Um painel tem as mesmas guias que uma Tab, então vamos direto para a guia Detalhes. Como sempre, precisamos preencher a KEY, mas neste caso o título do Painel não é tão importante, por isso vamos deixá-lo em branco. Se o Sandbox ver que um painel não tem título, ele não desenhará um cabeçalho de título:

Agora, precisamos de uma largura. Se você se lembra do nosso esboço ficha o primeiro painel tem uma largura de 1 (ele ocupa toda a largura da Ficha) e tem 3 propriedades: Nível, Corrida, Classe. Como tem 3 propriedades na mesma linha, o que equivale a 3 colunas. Então selecione Largura:1 e Colunas:3. Você também pode escolher o alinhamento dos elementos dentro do painel, e o alinhamento das etiquetas de propriedade dentro dele. Deixe como "à esquerda" para ambos, mas você pode experimentar mais tarde se quiser.

Com nosso primeiro painel pronto, é hora de adicionar algum conteúdo real a nossa Ficha, vamos criar algumas propriedades. Uma propriedade é um elemento dentro de uma Ficha de personagem que cria um atributo de um tipo específico. O atributo armazena um valor e uma KEY. Por exemplo, se criarmos a propriedade "Nível" do tipo " simplenumeric" e KEY "level", qualquer ator deste Template de personagem terá o atributo "level", e será um número. Então vamos criá-lo! Crie um item no Diretório de Itens. Escolha "propriedade" e nomeie-a como "Nível". As propriedades têm muitos campos, e serão explicadas na próxima seção, mas por enquanto configurá-lo assim:


Então, basicamente, estamos dizendo ao Sandbox que o Level é uma propriedade que, depois de anexada ao Template, criará o atributo "level", que é um número, e seu valor padrão será 1. Também estamos especificando que ele será visível (Hidden não está verificado), que o jogador não será capaz de editá-lo (Editable não é verificado), e que ele exibirá um rótulo ao lado dele, e que o texto desta etiqueta será "Level".

Se voltarmos ao nosso Painel, e arrastarmos o elemento Propriedade que acabamos de criar (do Diretório de Itens), teríamos nossa primeira propriedade definida em um Painel. Em seguida, arraste o Painel (do Diretório de Itens) para a nossa guia de estatísticas:


Então vamos voltar para o Ator Template, e reconstruir a Ficha. Vamos criar um novo lacaio... Desculpe, ator! Se definirmos seu modelo de personagem para o nosso Ator Template e, em seguida, clique na guia Estatísticas, podemos ver como nosso personagem Ficha se parece com uma guia, um painel e uma propriedade!


Incrível! Ele ainda tem o valor padrão de 1 que definimos anteriormente!

Então, para resumir, o Sandbox é baseado em Atores de Template Atores de Template armazenam a estrutura de um personagem Ficha, principalmente abas, painéis e propriedades. Quando criamos um ator regular, atribuímos um ator Template, a partir do qual desenhamos a ficha do personagem. Desta forma, você pode ter Atores de Template para PCs, NPCs, Espólios etc., todos no mesmo mundo.


2. Criando propriedades

Existem os tipos de propriedades: simpletext, simplenumeric, checkbox, radio, textarea, list, label, badge, table, button. As propriedades geram um atributo em um ator, quando tal Ator é atribuído um TEMPLATE om essa Propriedade. Todas as Propriedades listadas (exceto tabela) têm uma maneira muito semelhante de configurá-las. Vamos passar pelas opções de Propriedades:


  • Key: o identificador único do atributo da propriedade. Lembre-se, nunca deixe em branco, eu não tive tempo de incluir uma ferramenta de nomeação automática para ele. E muito importante, de novo... sem espaços!! Tente coisas como "strength_mod", "sanity_level", "hunger_rating", etc.

  • Default Value: sempre que você cria um Ator com esta propriedade em seu modelo Ficha, este é o valor que será exibido inicialmente. Tenha cuidado, se você configurar um “simplenumeric” não definia uma palavra como valor padrão, o sistema não pode verificar isso agora. Além disso, ao definir booleans, use true e false (sem letras maiúsculas).

  • Data Type: um dos tipos de dados da lista acima.

  • Editable: se ticado, os jogadores poderão editar este campo em seu personagem. Se não, apenas a GM será capaz.

  • Hidden: se ticado, esta propriedade ainda criará um atributo com nome igual a key no personagem, mas não será mostrado naFicha. Para qualquer um, nem mesmo para o GM.

  • Has Label?: se ticado, à esquerda do campo de entrada gerado por esta propriedade um texto aparecerá. Por exemplo, "Nível" em nosso exemplo anterior.

  • Tag: O texto da Label. Sim, eu provavelmente deveria ter chamado de texto de Label...

  • Label Size: se a propriedade tem um Label, este campo declara a largura. Se você mantê-lo como "Fit", ele irá ajustar automaticamente ao comprimento do texto. Se você vai criar muitas linhas de propriedades, digamos, por exemplo, os atributos típicos de D&D (STR, DEX, CON,etc), é melhor para você usar Pequeno ou Médio, então todos eles acabam alinhados.

  • Label Format: Normal é só... haha normal... Okey. Bold é...(negrito) Small significa que a fonte é ligeiramente menor, é útil se você não tem muito espaço para o label. E Die remove a etiqueta e insere um ícone de um d20. Útil se você quiser criar Label na Ficha para rolar dados, se ele está em Fichas ou cItems.

  • Rollable: Quando verificado, os campos de entrada de configuração de rolo serão mostrados (Roll Name, Roll ID, Roll Formula). Isso será explicado mais tarde, seção 7 Expressões de Rolagem.

  • Arrows: Ele exibirá setas para cima e para baixo para simplenumeric, como uma ferramenta para modificar seu valor.

  • Check Group: Só para checkboxes. Se preenchido com um Key, ele vai garantir que quando a checkbox é ticada, qualquer outra checkbox com a mesma checkgroup key não é ticada. Você pode adicionar mais de um separado por ponto e vírgula ";"

  • Max Value: Se radio, ele define os botões máximos de rádio a serem exibidos (botões de rádio como no personagem Vampiro a Mascara). Se simplenumeric, preenchendo este campo de entrada exibiria uma caixa com o valor máximo no lado direito da entrada. Por exemplo, se criarmos uma propriedade chamada Hit Points (HP, PG em espanhol) e definirmos o Valor Máximo como 10 e o Valor Padrão como 10:

Max Value also accepts formulas and Expressões de Rolagens.

  • Auto: Só para simplenumeric or radio. Ele define o valor do atributo da propriedade como resultado da expressão introduzida. Por exemplo, se você escrever 10+2, o resultado será 12, e sempre será, ele não pode ser editado nem mesmo pelo GM. Ele aceita expressões de rolagem, como @{level}+2 (ver seção 7).

  • Options (a,b,c): Só para propriedades do tipo list. Separe as opções que deseja exibidas na caixa de lista por vírgulas (não inclua o espaço após a vírgula);

Experimente um pouco com eles e posições do painel até que você esteja confortável com o design básico de dados de caracteres no Sandbox.


3.Painéis e Guias Avançados

Agora, imagine que para o seu ttrpg você configurar uma Guia (TAB) chamada Feitiços Mágicos, e é claro que você só quer que ele seja visível para personagens que são usuários mágicos. Como pôde fazer isso? Bem, se você abrir a Guia você verá a seguinte opção na parte inferior chamada VISIBLE IF:

Então, basicamente, verifica se um atributo atende a uma condição específica, e se ele o faz, torna visível o painel/guia. Assim, você pode criar uma propriedade com o traço oculto e defini-la através de outros meios, a fim de ocultar/exibir a guia mágica acima mencionada.

Além disso, se você quiser agrupar painéis verticalmente, você pode usar Multipanels. Você pode criá-lo a partir do Diretório de Itens, por criar opção item e selecionar "multipanel". Um Multipanel pode exibir uma série de painéis em um grupo de layout vertical. Você pode usá-lo como um painel de fato e adicioná-lo a uma guia:

• Images for Panels: Agora você pode cobrir um painel com uma imagem, você só precisa selecionar a opção "É Imagem" no item do painel e incluir uma rota para a imagem em "Caminho da Imagem", assim: mundos/seu mundo/sua imagem.png

“Nota do tradutor –Essa instrução estava em Settings, vou recoloca-la aqui onde faz mais sentido!”


4.Group e cItems

Você ainda está aqui? Uau, você é hardcore. Ok, então deixe-me apresentá-lo ao mundo fantástico dos cItems. Ele se remete para Compendium Items, mas como Foundry já chama Compêndio para outra coisa... cItems vai servir. No básico, estes são todos os elementos do sistema de regras que irão interagir com a Ficha de personagem. Como? Claro, arrastando-os para os atores. Alguns exemplos de cItems podem ser:

• Um objeto, digamos, uma mochila. Com atributos como peso, capacidade, etc.

• Uma arma, com atributos como dano, alcance, etc.

• Um traço, como "Visão escura" ou "Ataque sorrateiro" ou "Ancestrais fey".

Então, em essência, um cItem é qualquer coisa que pode modificar um ator. E você pode decidir o que exatamente faz o cItem e como ele modifica o Ator. Sim, agora você começa a pensar que essa coisa de Sandbox pode ser mais do que você pensou...

Então, como podemos criar um cItem? Vá para o Diretório de Itens e crie um elemento com o tipo cItem:

Você verá as seguintes guias em um cItem:

1. Info: você pode escrever aqui as informações do item. Por exemplo, se fosse uma espada somtehing como "Espadas são armas muito populares feitas de aço que bla bla bla bla"

• Attributes: aqui você encontrará os atributos do cItem. Atributos são sempre criados por Properties, como visto antes, mas... onde colocar o seu property em um cItem? Meu amigo, você terá que esperar um pouco mais.

• Groups: 90% dos cItems que você vai criar terá um group. Os outros 10% estarão incorretos. Um grupo define o comum properties e comportamento que um conjunto de cItems tem. Por exemplo, você pode criar um grupo "Arma" e adicioná-lo aos itens Espada, Machado e Adaga. Ou crie o grupo "Trait" e adicione-o a "Darkvision", "Fey Ancestries" e "Sneak Attack" cItems. Nesta guia é onde você pode arrastar e soltar grupos. Um cItem pode ter mais de um grupo.

“Nota do tradutor – citens puramente para automação não precisam ter group nenhum, eles ficam escondidos na ficha apenas para cálculos e modificações, mas isso faz ser mais difícil localizá-los para quem não escreveu o sistema, talvez um grupo “automação” numa tabela escondida pode ajudar com isso.”

• MODs: Isso é necromância para você agora... Espere um pouco mais.

Então vamos criar um grupo para a nossa Espada cItem. Vá para o Diretório de Itens e crie um grupo chamado "Objeto":

Você verá as seguintes guias em um Group:

• Description: você pode escrever aqui uma descrição para o grupo. Esta será principalmente informação para referência.

• Details: ela você deve definir o group key (lembre-se de seguir as instruções anteriores) e você pode especificar o group como único. O que é isso? Bem, imagine que você tem um grupo chamado "Raça", e você cria um par de cItems com esse grupo ligado: "Elfo" e "Anão". Agora, se você arrastar o "Elfo" para um ator ele vai se tornar um elfo (e eu sinto muito por você, eu odeio elfos). Então imagine você arrastar o cItem "Anão" ao lado para o mesmo ator. Se o grupo "Race" tiver a opção Unique verificada, o Anão cItem vai chutar o Elf cItem de volta para sua floresta fedorenta, porque cItems de um grupo Unique não pode ter outros colegas cItems do mesmo grupo sob o mesmo Ator. Mas se Unique não for verificado, o ator será tanto Anão quanto Elfo, e isso é... esquisito.

• Properties: Aha! Aqui você pode adicionar as Propriedades a um Group, para que quando você adicionar um grupo a um cItem o atributo será criado. Ao contrário dos Atores, as propriedades do grupo podem ser constantes ou variáveis. Se eles são constantes, nunca vai mudar. Por exemplo, a propriedade peso de uma espada será sempre a mesma, portanto tem que ser constante. Por outro lado, em seu sistema você pode ter uma armadura que perde pontos de proteção cada vez que for usada, então neste caso a Propriedade "Proteção" do grupo "Armor" não seria constante.

Em nosso exemplo, estamos criando o grupo Objeto, que não será único (como você pode ter muitos cItems diferentes do grupo Objeto em qualquer ator). Vamos criar uma Propriedade chamada Peso, com tipo de peso e números simples, e arrastá-la para o grupo, e torná-la constante:

Agora, vamos criar um grupo semelhante, chamado "Weapon" e vamos adicionar uma Propriedade chamada "Dano" a ele, com tipo de texto “Key: damage” e simpletext, e constante:

Então, hora de voltar ao nosso cItem espada previamente criado. Agora, arraste os grupos Objeto e Arma para ele (do Diretório de Itens), e eis a magia! Se você abrir a guia Atributos no cItem, verá os atributos criados... e você será capaz de configurá-los! Então, para esta Espada nós definimos peso 2 e dano 1d6!

Eu sei o que você está pensando... e você adivinhou direito. Assim, você pode criar sistemas de regras e compêndios inteiros. Imagine você criar o cItem "Anão" com o grupo "Raça", e quando você o arrastar para um ator, ele automaticamente adiciona o traço "Darkvision" cItem e aumenta seu atributo constituição em 2... imaginar... isso é possível no Sandbox? É claro. Mas vamos continuar com outra coisa primeiro... cItems são exibidos apenas em Tabelas dentro de uma Ficha, vamos aprender sobre eles.

“Nota do tradutor –Em resumo uma propriedade em um grupo faz com que essa propriedade apareça para ser preenchida e usada em um citem e como cabeçalho na tabela onde o grupo é colocado”


5.Tabelas

Esqueci de dizer algo importante, o único elemento de propriedade diferente do resto é Table. Na verdade, não deveria ser uma propriedade, mas percebi isso muito tarde e não sabia onde colocá-la. Mas vamos deixá-lo lá por precaução. “Nota do tradutor –Como todas as propriedades aparecem apenas dentro de painéis assim como tabelas, não é tão estranho, apesar de terem um funcionamento mais complexo.”

Assim, uma tabela exibirá todos os cItems dentro de um ator que tem um grupo específico. A tabela exibirá cada propriedade do grupo como uma coluna (se a referida propriedade não estiver oculta). Então vamos criar uma tabela de inventário em nosso exemplo de Ficha. Nós já temos um grupo Object criado para que esta tabela exiba todos os cItems do objeto do grupo contido no Ator. Vamos criá-lo:

Então, quando você escolhe table como a Data Type, tudo muda no menu da propriedade e você encontra as seguintes opções NOVAS:

“Nota do tradutor –Nesta data já existem novas funções, Transferable (você pode pegar citems direto da tabela e arrastar para outro jogador para compartilhar itens) – porem o manual oficial ainda não trás as mudanças, então a tradução apenas aqui as cita, para não causar erro ou desinformação.”

• Group: Aqui você tem que arrastar e soltar um Group do Diretório de Itens. Para este exemplo, basta arrastar o grupo Objeto recém-criado. “sim, arreste o grupo, escrever não adianta!”

• Editable: se você ticar esta opção, o jogador será capaz de excluir linhas da tabela

• Has Header?: A tabela exibirá um Cabeçalho com os nomes das colunas

• Height: A altura máxima da mesa. Livre (Free) funciona bem XD

• Item Names: Se desmarcada a tabela esconderá a primeira coluna, que é o nome dos cItems. Por que isso seria útil? Simples, imagine que você quer elementos personalizados em sua mesa, e você quer nomeá-los na hora, e quando eles são feitos na mesa. Basta adicionar uma propriedade "Name" ao grupo do cItem e torná-la variável, para que você possa renomear o item sempre que quiser. No entanto, esta é uma propriedade de nome falso, o cItem sempre terá seu nome original. Isso é especialmente útil quando você quer criar ataques personalizados, por exemplo. Digamos que você crie o Ataque 1, o Ataque 2, o Ataque 3, e crie propriedades falsas de "nome" para eles. Assim, em um NPC1 você pode renomear o Ataque 1 para "Espada" e no NPC2 você pode nomeá-lo "Dagger".

• Show Units?: Se ter mais do que um cItem do mesmo tipo é importante para a tabela que você deseja, marque isso. Quando ticada, uma nova coluna aparecerá "Num", que registra o número de cItems repetidos que você tem. Como estamos preparando um Inventário, essas opções parecem importantes, então confira.

• Has Activation?: se ticada, duas novas colunas aparecerão. Uma delas, a coluna "Botão de Ativação", significa que se um cItem for consumível ou puder ser ativado (explicado posteriormente), ele será exibido aqui. Como exemplo para isso, imagine que você tem uma Poção curativa, que você acabou de arrastar para o Inventário. A Poção de Cura foi definida como um cItem consumível, então um botão aparece na coluna do botão de ativação, e quando você pressiona, ele rola o HP recuperado, por exemplo. A outra coluna que é adicionada à tabela é a "Uses" (usos), então se um cItem consumível tiver um número limitado de usos, ele mostrará aqui. No exemplo da Poção curativa, se definirmos o cItem max usa como 1, ele vai mostrar aqui. Vamos verificar este para o nosso exemplo.

Isso soou complicado, mas é mais fácil do que parece! Sua propriedade de mesa deve ser assim:

Agora temos que adicioná-lo a um Painel, então crie um novo Painel, digamos 1/2 de largura, 1 coluna e arraste a Propriedade da Tabela para ele.

Por fim, adicione o Painel à nossa guia de estatísticas e vá para o nosso Ator TEMPLATE e reconstrua a ficha.

crie um novo ator e atribua nosso TEMPLATE a Ficha, e voila:

Bem, não podemos ver muito. Mas o Cabeçalho está lá, e você pode ver "Peso", a propriedade principal que adicionamos ao nosso Grupo! Então funciona. Para confirmar isso, precisamos adicionar alguns cItems, então vamos criar um par de cItems, uma tocha e uma mochila. Lembre-se, para criar um cItem só temos que criar um novo Item e selecionar o tipo, mas o importante é... Não se esqueça de arrastar o grupo para ele! No nosso caso, arrastamos o grupo Object e definimos pesos de 2 para a Tocha e vamos dizer 1 para a Mochila.

Agora, vamos arrastar esses dois cItems do Diretório de Itens para o Novo Ator. E boom! Tente arrastar outra tocha, e você verá que Num aumenta... Perfeito, simplesmente perfeito. Bem, deveríamos ter usado um painel mais amplo, provável 2/3 ou 1, mas ainda parece ótimo:

TRUQUE: você pode definir uma tabela com apenas 1 célula se você usar um grupo único para a definição de tabela! Então, se você quiser criar o campo Race e tê-lo preenchido com o nome da Raça toda vez que você arrastar e soltar um cItem de raça sobre ele, esta é a sua opção (e também, selecione ONLY NAMES para a opção Nomes de Itens).

TRUQUE 2: se o seu grupo tiver uma propriedade de textarea (você sabe, aquelas áreas enormes que podem ser preenchidas com texto) um ícone será mostrado. Então, se você clicar nele, uma Caixa de Diálogo será exibida com a totalidade do texto. Você pode editá-lo no Diálogo se a propriedade textarea não for constante no grupo. Isso é útil para criar movimentos de jogos PbtA e listá-los.

TRUQUE 3: se você quiser um botão “rolável” em uma fileira, basta criar uma propriedade de Label, com a propriedade Label Format definida como Die. Em seguida, é claro, defina sua rolagem com as opções de caixa de seleção rollable da Propriedade (explicada na seção 7) e voila:

Finalmente, há a opção "Show Totals" que exibirá uma linha extra com os resultados totalizados das propriedades em uma coluna. Para isso, a propriedade precisa ter o "Totalize" opção verificada e precisa ser um simplenumeric:

“Nota do tradutor –erro muito comum, se totais não está aparecendo verifique se a propriedade do grupo é simplenumeric e tem valor, e que totalize está ticado, sem isso não adianta clicar em Show Totals na tabela!”

Mas vamos dizer que você não tem tempo para criar centenas de cItems e você só quer criar linhas quando precisar, então você só precisa escolher a opção IS FREE "É Livre" na janela de propriedade da tabela. Isso mostrará um botão + na parte inferior da tabela, e permitirá que você crie linhas e preencha-as e suas propriedades forem editáveis.

Uma última coisa, você pode classificar o conteúdo da tabela com base em uma coluna se você clicar no título do cabeçalho.


6.Modificadores (MODs)

“Nota do tradutor –É muito comum no Sandbox você conseguir o mesmo efeito de automação com diferentes Mods, expressões de fórmulas diferentes e combinações de ambos, se estiver tendo dificuldades, verifique se não pode atingir o mesmo resultado com uma técnica diferente, especialmente quanto a formulas de expressão”


Agora, prepare-se para as coisas difíceis, a automação. O Sandbox é baseado no seguinte mantra: o personagem é modificado por cItems, e os sistemas de regras podem ser modelados projetando uma estrutura cItems. Assim, cada modificação que um cItem realiza para um ator é chamada Mod. Vamos lá.

Lembra da necromancia da aba mods na janela cItem que eu falei? Agora é a hora de abri-la. A primeira coisa que vemos é o seletor do tipo de execução MOD. O Tipo de Execução é a maneira como definimos o cItem para usar MODs, e o seletor permite que você escolha entre: Passivo, Consumível, Ativação.

• Passive: o MOD é sempre executado. Exemplo para isso: digamos que nosso cItem "Anão" que mencionamos antes tem um MOD que adiciona o cItem "Darkvision" como sugerimos. "Anão" terá um tipo de execução de "Passivo", porque sempre que estiver em um ator Darkvision deve ser adicionado automaticamente.

• Consumable: o MOD só é executado quando clicamos no botão de ativação em uma tabela, e depois que ele é clicado o MOD para de executar. Exemplo disso: um cItem de Poção Curativa. Se definirmos como consumível, quando clicarmos no botão de ativação ele adicionará o HP com o que definimos, mas é isso, ele não continuará adicionando-o indefinidamente.

• Activation: o MOD só é executado quando verificamos a caixa de seleção de ativação em uma tabela, e permanece ativado enquanto ele não é ticado novamente. Exemplo disso: uma Armadura chainmail. Se definirmos como Ativação, o cItem adiciona +4 ao AC do ator assim que verificarmos a caixa de seleção de ativação (o que significa que o Ator está usando), e assim fica até desativar.

Agora, vamos passar pelas opções que temos para os Tipos de Execução:

• Self-destroy: o cItem se auto apagará do Ator uma vez executado. Quando isso seria útil? Ainda tenho minhas dúvidas, mas vou deixar isso caso alguém precise, embora se um cItem passivo precise ser destruído após a ativação, então não é passivo...

• Permanent: Se verificado, os efeitos MOD permanecerão mesmo que os cItem ou MODs tenham sido excluídos/desativados. Quando isso seria útil? Vamos voltar ao exemplo da Poção Curativa. Se você não selecionar o cheque Permanente, o HP que o Ator ganharia depois de ativá-lo iria desaparecer assim que excluíssemos a Poção de Cura do inventário. Se verificarmos, o HP ganho ficaria mesmo se a Poção de Cura fosse removida do inventário.

• ICON: É o ícone que será exibido na coluna Ativação das tabelas (ver seção anterior);

• Uses: Número máximo de usos do consumível. Ele é mostrado em uma tabela se sua propriedade Item Number for ativada. O GM pode editá-lo manualmente na mesa. Se você o definir como 0, então o máximo será infinito.

• Rechargable: Toda vez que o botão de ativação é clicado para um cItem consumível, o número de usos é reduzido em 1. Quando chega a 0, o cItem é excluído do Ator. Se você verificar recarregável, isso não vai acontecer. Quando isso é útil? Bem, imagine que seu sistema tem itens mágicos recarregáveis, digamos anéis ou varinhas com uma série de cargas de feitiços. Mas uma vez gasto, você ainda pode recarregá-los. Isso serviria para isso.

• Roll Options: Quando o cItem é ativado, uma rolagem é executada se essas informações forem preenchidas. Será explicado na próxima seção.

Uau, isso foi intenso. Por que fiz isso? Para lhe dar todas as opções, você precisa construir seu sistema ttrpg favorito no Foundry, sem codificação. Então você pode construí-lo em uma tarde de domingo preguiçosa. Mas ainda não terminamos. Agora vem a parte legal, MODs.

Cada cItem pode ter qualquer número de MODs de diferentes tipos (não tipos de execução, que é apenas um tipo por cItem, estamos falando agora tipo MOD). Você pode adicionar MODs usando este botão:

O menu MOD tem as seguintes opções:

• Description: Se você precisa de uma descrição curta para identificar o que o MOD faz, coloque-o aqui. Por padrão, diz "New Mod".

• MOD Type: Existem os tipos de MOD: ADD, SET, CREATE, ITEM, ROLL, LIST. Eles serão explicados em breve.

• Conditional: Imagine que você quer um MOD executado apenas em valores específicos de atributos específicos. Esse é o seu lugar. Introduza o KEY do atributo condicional, a comparação (NENHUM ou = ou > ou <), e o valor que ele precisa ter. Quando isso pode ser usado? Bem, por exemplo, em D&D todas as classes recebem opções de aumento de atributos no nível 4. Este é um MOD com uma condição de nível, efetivamente. Então, se você estivesse criando um D&D Ficha com o atributo "nível", você apenas configurá-lo aqui e definir a comparação ">" para 3. E o MOD só seria executado se o nível fosse 4 ou superior. “Nota do tradutor – a opção pode ser qualquer valor que exista em uma propriedade, true e false para checkbox, um texto em simpletext ou lista, etc, desde que exatamente igual para esses casos”

• Specific row per each MOD Type: cada tipo tem uma linha que vamos olhar em detalhes agora.

Vejamos cada tipo mod em detalhes:

• ADD: Adicionará um número ao valor do atributo do Ator. Um exemplo disso seria o bônus de constituição dos anões em D&D. Assim, o cItem poderia perfeitamente ser "Anão", com um grupo chamado "Raça", e um tipo de execução MOD de "PASSIVO". A propósito, atributos aumentados por um MOD aparecem em uma cor verde (vermelha se negativo)

SET: Definirá o valor de um atributo para um número. Você também pode definir o valor máximo de um atributo usando "keyDoAtributo.max"“Nota do tradutor – explicando, algumas propriedades tem valor maximo se a opção for usada, colocando “key.max” na expressão ela aumenta o máximo, não o atual.”. Um exemplo disso seria a armadura em D&D. Digamos que criamos o cItem Chainmail Armor com um grupo chamado Armor. Este grupo poderia ter uma propriedade chamada armorAC, para que cada Armor cItem pudesse ter seu próprio valor de atributo. E ao configurar o MOD, você pode simplesmente dizer que ele define o valor do atributo CA ao valor do atributo armorAC do cItem. Como fazer isso? Com uma pequena notação de rolagem, em vez de valor você escreveria #{armorCA}. Vou explicar isso na próxima seção... Já disse muito isso, não disse?

ITEM: Meu favorito. Ele adiciona uma série de cItems ao ator. Você só tem que arrastar e soltar os cItems que deseja adicionar com o cItem no painel ITEMS, que vai aparecer quando vc selecionou ITENS. Você verá que existe uma opção chamada SELECT. Se você deixar isso para 0, todos os cItems serão adicionados ao Ator. Caso não, o jogador terá que escolher um número de cItems da lista. Quando usar isso? Em toda parte... Por exemplo, em D&D, os jogadores escolhem um caminho bárbaro, ou uma escola de bardo... esta seria a maneira de fazer isso. Em outro exemplo de diferentes jogos... esta é a maneira como você pode ter jogadores escolhendo seu livro de jogadas em um pbtA, ou seus movimentos iniciais. Como eles escolhem? Um ponto de exclamação branco em um círculo vermelho aparecerá em sua Ficha.

• CREATE: Este é temporário, não tenho certeza se é inteiramente necessário. Ele criará uma propriedade oculta no Ator, com o valor padrão especificado. "“Nota do tradutor – sugiro não usar, a comunidade não gostou e tem causado bugs, provavelmente será removida ou alterada”

1. ROLL: Cada rolagem pode ter uma ou mais IDs roll. Um Roll ID é uma palavra, uma tecla (sem espaços em seguida), e você pode defini-lo dentro da expressão de rolagem ou usando o campo de entrada de opções de rolagem chamada Roll ID. Com este MOD você modifica cada rolagem com um Roll ID específico com um valor. Quando usar isso? Por exemplo, novamente D&D, você teria um cItem chamado Rage, com o grupo Trait, e dentro disso você poderia adicionar um ROLL MOD que adicionaria o valor rage Damage a cada rolagem com um Roll ID de "melee_attack" ou o que você quiser ID os ataques corpo a corpo rolam em seu sistema. Por exemplo, no mundo selvagem você pode criar um cItem chamado Ataque Selvagem, com o grupo Opção de Combate, e como MOD um ROLL que adicionaria +2 aos rolos com o ID "lutando" e "dano" ou o que você quiser chamá-los. Então, antes de definir OS MODs ROLL certifique-se de ter uma ideia dos IDs de rolo que você precisa em seu sistema. Em geral, antes de começar o MODding, pense na estrutura.

• LIST: Este cItem pode adicionar ou remover opções de uma lista. Para isso, basta escolher entre INCLUIR ou REMOVER. Em seguida, no tipo de campo Atributo Key a KEY da propriedade List que deseja modificada. Finalmente, no campo VALOR e separado por “virgilas , ” os valores que você deseja incluídos ou removidos.

Como os MODs interagem diretamente com o Ator e alteram seus atributos, você precisa ter uma ideia dos atributos finais (criados por Propriedades como vimos antes) antes de criar um. Por exemplo, se o seu cItem MOD aumenta o atributo "força", ele não vai funcionar, a menos que esse atributo já tenha sido criado pela Ficha (através de uma Propriedade em um Ator TEMPLATE, como explicado anteriormente). Lembre-se que um cItem só é exibido em uma TABELA em uma Ficha!

***Você pode ter visto as opções Tem Ícone, Sempre Ligado e Caminho de Ícones na Guia MOD. Há um módulo que criei que permite adicionar ícones aos tokens do ator com base nos cItems que eles têm. Por enquanto, só no meu Patreon, mas em breve será publicado.

Uma última coisa, você pode usar expressões de rolagem ao definir valores de um Mod. O que é isso? Vindo em seguida... Mas como exemplo:


7. Expressões de Rolagens

Uau, você merece uma medalha. Você ainda não fugiu... Então, bem-vindos ao capítulo final do Livro dos Segredos. Isso pode afetar sua sanidade. A propósito, rola Sanidade. Oops, desculpe, eu ainda não ensinei como definir rolagens! MUAHAHAHAHAHAHAHA.

“Nota do tradutor – (REPETINDO)É muito comum no Sandbox você conseguir o mesmo efeito de automação com diferentes Mods, expressões de fórmulas diferentes e combinações de ambos, se estiver tendo dificuldades, verifique se não pode atingir o mesmo resultado com uma técnica diferente, especialmente quanto a fórmulas de expressão.

Além disso ao procurar ajuda em canais, use o termo Expressões (Expressions), ao falar formula o pessoal provavelmente vai achar que você está falando das fórmulas básicas do Foundry”

Ok, vamos lá. As rolagens podem ser definidas nos menus De propriedade (guia Detalhes, verificando a opção "Rollable" ou menus cItem (guia Mod, mas apenas para cItems que não são PASSIVOS). Esses menus onde você pode definir de rolagens são chamadas opções de rolagem, e eles se parecem com este:

Os campos significam o seguinte:

• Roll Name: Qual título será exibido o modelo de rolo. Por exemplo, "Verificação de força", ou "Salvo morte", etc..

◦ “Dica do tradutor – Você pode usar notações de formula para aparecer como nome de rolagem, ex: @{PropNomeDoPersonagem_Key} ataca com #{PropNomeDoItem_Key}”

• Roll ID: este é o ID da Rolagem principal, um identificador ou chave a qual a rolagem pertencerá. Ele não precisa ser único, então se o seu sistema tem um monte de “habilidades” e está rolagem for um deles, você só pode usar "habilidade" como roll ID.

• Roll Expression: o Rolagem em si, como 1d6 ou 1d20 + 5, etc.

• Has Dialog and Dialog Panel: Continue lendo, e eu vou explicar isso MUAHAHAHAHA!

Há uma lista de funções a serem aplicadas com expressões de Rolagens. Agora você vai me odiar por isso, mas eu sou horrível com Regex, então essas funções são feias, muito feias. Tenha fé em mim, se você me ajudar podemos melhorá-las. Você também pode usá-las em campos de definição de valor MOD.

LEMBRE-SE, siga sempre a estrutura abaixo para uma expressão de rolagem:

Auxiliares de Registro: expressões tipo $<> and roll(), + Todas as outras funções de expressão de rolagem, + Subtexto e expressões Roll ID (por fim) expressões && e ~~

Por exemplo:

$<1;1d6> 3d6+$1 &&total;1:FAIL,3:SUCCESS&& ~testroll~

IMPORTANTE: Rolagens Sandbox só retornam valores numéricos! Certifique-se sempre de que o resultado do sua rolagem é um número!!! E SÓ UM NÚMERO Assim você não pode voltar: "Hello World", ou [3,4,6], ou "SUCCESS". Precisa ser um número, apenas um, como 4.

“Nota do tradutor – Você pode incluir textos no resultado exibido na caixa de chat através da expressão &&, mas as fórmulas Sandbox são feitas para retornar números como resultados!”

“Nota do tradutor – OK, nota importante, especialmente para quem tem pouca familiaridade com programação, quase todas as expressões do Sandbox falam em “expressões”, dão espaços tipo (), falam de condição, comparação etc. o que isso quer dizer é q esse segmento da expressão é reservado para uma variável, no sentido que pode ser qualquer coisa que faça sentido para fórmula, ex:

ceil(X) ceil arredonda valores para cima, então ceil(2.5) retorna 3. Mas X pode ser outra fórmula, expressão, uma propriedade, qualquer coisa (DESDE QUE SEJA UM NÚMERO)! Tal como Ceil(@{força}/2)

Por que isso é importante? Por que assim você mistura fórmulas e expressões uma dentro da outra. Essa loucura de exemplo é uma rolagem minha:

$<1;d{atkdif}-1> roll(teste1;@{d{sattSPC}}+#{Trait_LVL}+d{atk_modifier}if[d{aphpW}:true,+@{Health_Penalty},+0];10;if[d{EXPW}:Yes,true,false]) sum(countH(?[teste1];$1),-countE(?[teste1];1)) if[countH(?[teste1];$1):0 AND countE(?[teste1];1):1, &&total;0:BOTCH&&, &&sum(countH(?[teste1];$1),-countE(?[teste1];1));0:FAILURE;1:SUCCESS&&]@{options}

Não se preocupe, minha rolagem é complicada além da conta, mas nela temos indexação, IF, citem, dialog panel, sum, count, && e o @{options} ainda aponta para um checkbox com funções ~~.

Mas quero mostrar para você ver que da pra misturar tudo, e por isso digo que você vai encontrar várias maneiras diferentes de retornar o mesmo resultado, se estiver difícil, tente outra aproximação!

Outro detalhe, um erro comum é parte de uma formula não ser compatível, como usar uma propriedade simpletext (até ai tudo bem) mas escrever uma palavra nela, se a formula aguarda um numero vai dar erro! Fique atento!”

As funções de rolagem são as seguintes:

• ceil(): Um clássico, rolagem arredondadas para o número mais alto. Exemplo: ceil(2.5) => retornará 3 no rolo no chat

• floor(): Ele arredonda para o menor número. Exemplo: ceil(2.5) => retornará 2 no rolo no chat

• maxdie(expression;total): retorna o resultado máximo de um dado de uma rolagem simples de dados XdY.

◦ Assim, maxdie (2d6;false) retorna 6.

◦ Se você quiser devolver o maior resultado possível para toda a rolagem, então o argumento "total" precisa ser TRUE. Neste último caso, maxdie (2d6;true) retornará 12

• @{character_attribute_name}: então, imagine que o Key da Propriedade de level é "lvl". Você pode referenciá-lo na rolagem com @{lvl}. Então, se você precisa rolar 1d6 + level para o chat que você acabou de usar: 1d6+@{lvl}

• #{citem_name_attribute}: se você estiver usando uma expressão de rolagem de um cItem você pode referenciar um ou mais de seus atributos com isso. Como exemplo, imagine que um cItem tem uma Propriedade "dano", e você quer uma expressão de rolo para rolar 1d6 + este atributo. Assim, a expressão de rolagem seria 1d6+#{damage}.

◦ Lembrar @{} é para atributos do ator, #{} é para atributos cItem



• d{key_da_propriedade }: Para consultar as dentro de um Dialog Panel de onde a rolagem está consultando, você pode usar d{key_of_the_property}.

◦ “Nota do tradutor – colocado aqui por facilidade, no manual original e nessa tradução essa notação aparecerá mais a frente.

• %[expression,0:min return,value1:return_for_value1,valueN:return_for_valueN]:

Você sabe que em muitos ttrpgs você tem um valor e um modificador relacionado a ele. E na maioria das vezes o cálculo do modificador não é um simples cálculo aritmético, é mais uma pesquisa de tabela. Por exemplo, você poderia ter um sistema que exige que você role 1d20 para uma série de características, e de 1 a 10 o modificador de traços seria +0, 11 a 12 seria +1, 13 a 16 seria +2, e 17+ seria +3. Então eu criei essa expressão para lidar com isso, simplesmente usando %[1d20,0:0,11:1,13:2,17:3]. Fácil, e muito útil.

“Nota do tradutor –Expressões IF são muito uteis, especialmente para certos sistemas, de atenção especial a elas e lembre se, IF um dentro do outro aceitam um número máximo de 8 Ifs! Minha expressão favorita apesar de haver até um MOD especifico que trabalha de maneira semelhante!”

Para ajudar, do inglês: IF = Se / AND = e / OR= ou / ELSE = “se não for” /// assim fica mais facil entender as formulas

if[expression:compared_value,return_iftrue,return_iffalse]: expressão muito útil especialmente para atributos de texto. Digamos que você tenha um sistema no qual você queira verificar se o atributo chamado "ismagical" de um cItem específico é verdadeiro, e caso seja você deseja retornar 2 para o chat. Então a expressão que você precisa é [#{ismagical}:true,2,0]


Se pode aceitar expressões aninhadas, um máximo de 8. Abaixo estão as expressões:

• Único IF sem “E”s sem “Ou”s

◦ if[Field:condition,true_value, false_value]

• Único IF com apenas “Ou”s

◦ if[FIELD1:COND1 OR FIELD2:COND2 OR....FIELDn:CONDn,true_value, false_value]

• Único IF com “E”s apenas

◦ if[FIELD1:COND1 AND FIELD2:COND2 AND....FIELDn:CONDn,true_value, false_value]

• Único IF IF com “E”s e “Ou”s (ele sempre executa primeiro ANDs

◦ if[FIELD1:COND1 AND FIELD2:COND2 OR....FIELDn:CONDn,true_value, false_value]

• IFs un dentro do outro com ou sem “E”s e “Ou”s (funciona com a mesma lógica de antes)

◦ Exemplo sem “E”s e “Ou”s

◦ if[F:C,true_value,ELSE if[F:C, true_value, ELSE if[F:C,true_value,false_Value]]]

◦ Exemplo com “E”s e “Ou”s

◦ if[F1:C1 OR F2:C2 AND F3:C3,true_value,ELSE if[F:C, true_value,ELSE if[F:C AND F4:C4,true_value,false_Value]]]

IMPORTANTE: IF só pode aceitar 8 Expressões ELSE

• --cItem_attribute_name--: Esta função retorna o valor de um atributo cItem se você passar o atributo Key para ele. Vamos imaginar que definimos Torch (o cItem criado anteriormente como exemplo) como um CONSUMABLE MOD e preenchemos os campos de Opções de rolagem. Se definirmos sua expressão de rolagem como "1d6 + --weight--" ele vai rolar para o chat 1d6 mais o valor de seu atributo Weight (lembre-se que definimos como parte do Group object).

• __ Actor_attribute_name __: Esta função retorna o valor de um atributo da ficha se você passar a KEY do atributo para ele. Imagine que você tem uma Propriedade tipo Lista de Key "selectedskill" em sua Ficha, e esta lista tem como opções todas as habilidades disponíveis no sistema (ou seja: escalada, decepção, natação, etc). Você deseja tornar esta propriedade rolável, e quando clicado você deseja que a Ficha role 1d6+ o valor da habilidade selecionada. Você precisa então fazer referência às habilidades (que são atributos), para que você possa fazer isso com "1d6 + __ @{selectedskill} __" . Como isso funciona? Quando você selecionar, digamos que a opção "escalar", esta função retornará __escalar__, que é equivalente a @{escalar}. A propósito, sem espaços, eu só os incluí para evitar formatação ruim aqui...


• | Expression : “Nota do tradutor –Sim é só o “palitinho” na frente” Isso impede o Sandbox de analisar expressões de Rolagens, em vez disso retornando-as como texto. Por exemplo, digamos que você só quer voltar ao chat "1d6", sem rodar o 1d6, você só quer um texto dizendo "1d6". Em seguida, você tem que usar |1d6 em suas Expressões de Rolagens.


• #{name}: Retorna o nome do cItem de onde você está rolando.


• #{roll}: Retorna o valor da última rolagem executada em um cItem. Como isso é útil? Bem, imagine que você tem um cItem que é um CONSUMÍVEL, e toda vez que é ativado ele rola 1d6. Se você quiser que esse resultado de 1d6 seja adicionado a um atributo como parte de um ADD MOD, você só precisa usar #{roll} no campo de entrada de valor MOD.


• #{num}: retorna o número atual de unidades dos cItems que este ator tem.


• max(expr1,expr2,expr3): retorna o valor máximo dentro de uma série de expressões. Por exemplo, max (2,3,4,@{value}) devolverá o valor máximo dessa lista. Você pode combinar com registros de rolagem (veja abaixo) como max(?[ Nome]), que devolverá o dado máximo de todos os dados de um rolagem registrado chamado Nome.


• min(expr1,expr2,expr3): devolver o valor min da lista. Você também pode usar uma rolagem registrada aqui!

• countE(expr1,expr2,expr3;value): conta o número de resultados de expressão que são iguais ao valor. Por exemplo, usando nosso exemplo anterior countE(?[ Teste];3) retornará quantos dados são iguais a 3 (do 3d6 enrolado no exemplo).


• countH(expr1,expr2,expr3;value): retorna número de elementos na lista com um valor superior a 3. Também pode ser usado com rolagens registradas como countH(?[ Nome];3).


• countL(expr1,expr2,expr3;value): retorna número de elementos na lista com um valor menor que 3. Também pode ser usado com rolagens registradas como countL(?[ Nome];3)


• sum(expr1,expr2,expr3) : retorna a soma de todos os elementos da lista. Também pode ser usado com rolagens registradas como sum(?[ Nome])



• maxdie(XdY): retorna o resultado máximo em uma simples expressão de rolo, por exemplo, maxdie (1d6) retorna 6.

“Nota do tradutor – maxdie já apareceu mais acima no manual com uma formatação ligeiramente diferente, como não consegui contato com o Dev mantenho aqui ambas as notações”

AS SEGUINTES EXPRESSÕES NÃO PODEM SER USADAS DENTRO DOS campos de VALOR CITEM MOD:

• #{target|target_attribute_key}: Retorna o valor de um atributo do ator-marcado (Target) no mapa. Útil para calcular AC e tal. Exemplo: 1d20 + @{weapon_skill} &&total;0:FAILURE;#{target|ac}:YOU HIT!&&


• #{diff}: Há uma caixa DC na parte inferior da sua cena ativa, à direita da barra macro. DC significa classe de dificuldade. Se o seu sistema/jogo exigir que o GM defina uma dificuldade, este é o lugar para marcá-la... Em seguida, os rolos podem referenciar essa dificuldade usando #{diff}.

◦ “Nota do tradutor – cuidado diff é uma key permanente no sistema que aponta para a caixa dificuldade que existe por padrão (mas pode ser desativada) no sandbox! Cuidado para não a usar em outra propriedade sua! Vai dar erro!”


• &&value_to_compare;value_1:text_1,value_N,text_N&&: Então imagine que você quer devolver um TEXTO para o bate-papo, junto com o sua rolagem. Você deseja retornar " SUCESSO" se o resultado da sua rolagem for acima de 8, "FALHA" se o resultado da rolagem for inferior a 7 e "SUCESSO PARCIAL" em todos os outros resultados. Esta função permite que você devolva essa frase/palavra abaixo do resultado da rolagem.

Assim, você pode fazer isso com a seguinte fórmula &&total;0:FAILURE,7:PARCIAL SUCCESS,9:SUCCESS&&.

O primeiro argumento da expressão é o valor que você está analisando, e se você escrever "total" levará em conta o total da rolagem. Você pode incluir uma propriedade em vez disso, ou outra expressão de rolagem com um resultado numérico.

“Dica do tradutor – Você pode escrever &&0;0:TEXTO&& se tudo que quiser é que o texto seja escrito no chat sem nenhum variável ou mudança.”

• ~Roll_ID~: adiciona um Roll ID (identificador) para a rolagem. Lembre-se que nós temos um MOD type Chamado ROLL? E este adiciona valores a rolos de um específico Roll ID? Então esta função permite adicionar ROll IDs para rolagens. Quantas você quiser. Então vamos dizer que definimos uma rolage para um ataque com Roll Name:"Attack", Roll ID: "attack" e Expressão de Rolagem: 1d20+@{strength}. No entanto, queremos mais definição para ele, e para isso queremos incorporar mais alguns Roll IDs, no caso de precisarmos modificar o rolo através de um MOD. Digamos que queremos adicionar os IDs "melee_attack" e "slashing", então teríamos que mudar a Expressão de Rolo para 1d20+@{força} ~melee_attack~ ~slashing~


• ~ADV~ ou ~DIS~: usa vantagem ou desvantagem para uma rolagem.

• ~init~: envia o resultado da rolagem para a iniciativa no rastreador de combate.


“Nota do tradutor – as funções próprias do foundry para rolagem secreta, GM, etc não funcionam com o sandbox devido a maneira como ele cria as rolagens. É necessário usar as opções abaixo na própria fórmula de rolagem. Dica : você pode criar uma propriedade lista ou um IF com as opções ~gm~,~blind~,~nochat~ para o jogador escolher antes de rolar e apontar para essa propriedade no fim de sua fórmula.

• ~gm~: rolagem só aparece para você e o GM.

• ~blind~: rolagem só aparece para o GM

• ~nochat~: se você adicionar a rolagem, ela não será exibida no chat.


• roll(Nome;N°Dados;N°lados;explode): Se você quiser ter uma rolagem separada da sua expressão de rolagem, com um nome, e exibido por si própria, você usa esta fórmula. Por exemplo, imagine que para um sistema que estamos projetando precisamos rolar 1d6 em cada verificação de habilidade, e este dado é chamado de "Anger Die" (dado de raiva). Você poderia configurá-lo assim. Por exemplo, roll (Anger;1;6;false) registra um rolo chamado Anger, de 1 dado de 6 faces e não explode. O último argumento, "eplode", pode ser falso (false), verdadeiro (true) ou adicionar (add). Se for adicionado, os dados de explosão sucessiva serão adicionados em vez de exibidos como dados independentes. Por exemplo, roll (Anger;1;4;true) pode retornar 4,4,3 enquanto roll (Anger;1;4;add) pode retornar 11.

• ? [Nome da rolagem]: retorna à referência de uma rolagem registrada, quantas vezes você quiser. Você precisa usar isso com um dos seguintes.


• $<index;expression>: Assim, a análise de rolagem não é perfeita, e até encontrarmos uma maneira de fazê-lo mais visualmente atraente haverá toneladas de problemas. Expressões que contenham suportes dentro de outras expressões que também contêm suportes lhe darão problemas. Para evitar isso, você pode salvar pedaços de sua expressão através desta função. Por exemplo, $<1;%[@{str},0:0,15:1]> registrará a expressão após o ponto e vírgula como $1. Um exemplo completo disso é: $<1;%[@{str},0:0,15:1]> 2d6+$1. Esta expressão é equivalente a 2d6 + %[@{str},0:0,15:1]. Lembre-se de alterar o número antes do ponto e vírgula, assim como o índice e permitirá identificar sub expressões usando $1,$2,$3, etc.

“Dica do tradutor – Como o próprio texto já diz fórmulas que deveriam funcionar às vezes não funcionam por causa da análise de rolagem, indexar é muito útil não apenas para facilitar uma fórmula onde a mesma parte se repete várias vezes como para tentar corrigir fórmulas que deveriam estar funcionando, mas que estão lhe causando problemas ou erros. Se uma fórmula não está funcionando mas você esta convicto de que deveria tente indexar uma parte dela.

• add(Key_da_propriedade;Valor): esta expressão só funcionará com um token selecionado via TARGET. Ele agregará "valor" ao valor atual da propriedade especificada (somente chave, não use @). Por exemplo, roll(Damage_Roll;2;10;false) sum(?[ Damage_Roll]) add(HP;-sum(?[ Damage_Roll]). Esta expressão de exemplo subtrairá 2d10 da propriedade @{HP} do token alvo.


• set(Key_da_propriedade;Valor): como a expressão add(), mas definirá o valor para ele.

ALGUNS EXEMPLOS DE ROLAGENS:

• Role 1d6:

◦ 1d6


• Role 1d6, se o resultado for inferior a 4, retorne 0.Caso contrário, retorne 1:

◦ %[1d6,0:0,5:1]


• Role 2d6 explodindo, um chamado Skill e o outro Wild, e retornar o mais alto:

◦ roll(Skill;1;6;true) roll(Wild;1;6;true) max(?[Skill],?[Wild])


• Role 4d6 e contar resultados maiores do que 4:

◦ roll(Test;4;6;false) countH(?[Test];4)


• Role 3d10, adicione os resultados e se algum dado for igual a 10 add +5 para cada 10:

◦ roll(Test;3;10;false) sum(?[Test]) + (countE(?[Test];10) *5)


• Role 2d6, se algum dado for maior que 3 exiba ÊXITO, se o primeiro dado rola um display 1 CONSEQUÊNCIA, se ambos rolarem um 1 mostre OLHOS DE COBRA:

◦ roll(Test1;1;6;false) roll(Test2;1;6;false) max(?[Test1],?[Test2]) &&max(?[Test1],?[Test2]);0:FALHA;4:ÊXITO&& &&countE(?[Test1];1);0:-;1:CONSEQUÊNCIA&& &&countE(?[Test1],?[Test2];1);0:-;2:OLHOS DE COBRA&&


PAINEL DE DIÁLOGO PARA ROLAGENS!

Agora que você está tonto, confuso e atordoado, é o momento perfeito para explicar sobre os Painéis de Diálogo de rolagem (Dialog Panels). Se você marcar a opção de "Has Dialog" e, em seguida, arrastar um painel ou multipainel com painéis contendo uma série de propriedades, toda vez que você clicar para rolar a propriedade original, uma caixa de diálogo será exibida, mostrando um monte de novas propriedades que o usuário pode ajustar. Para consultar essas propriedades na sua expressão de rolo original, você pode usar d{key_of_the_property}.

“Dica do tradutor – Em resumo, construa um painel com as propriedades que você quer que apareçam durante uma rolagem, pode ser uma explicação em texto, variáveis para ajustar, não importa. Ao adicionar esse painel a rolagem, ticando Has Dialog e arrastando o painel para o campo Dialog Panel o painel vai aparecer na tela ANTES da rolagem acontecer, você então pode ajustar como quiser e dar OK, caso sua formula vá usar as variáveis do painel, você chama por elas na formula usando d{}”


8.Folder structure best practices

Se quisermos compartilhar nossas criações e sistemas, teremos que padronizar a maneira como armazenamos as informações da Sandbox. Mas, para saber, vamos manter essa estrutura. No Diretório de Atores eu normalmente crio 2 pastas, uma chamada _CONFIG, e uma chamada CAMPAIGN. Em _CONFIG, e em pastas separadas, eu armazeno cada Ator de TEMPLATE que o sistema precisa (um para PCs, outro para NPCs, outro para menus compartilhados como inventário compartilhado etc.).

E no Diretório de Itens, eu mantenho 2 pastas principais. Um chamo _COMPENDIUM e o outro chamo _TEMPLATE. Dentro de _COMPENDIUM eu crio uma pasta _CONFIG, na qual incluo GROUPs (itens do grupo de armazenamento) e pastas Group Properties (todas de propriedades usadas em grupos). Dentro da pasta _COMPENDIUM também incluo pastas separadas para itens de compêndio criados, específicos para o sistema, como Raças, Classes, Objetos, etc..

Na pasta _TEMPLATE eu crio 3 pastas: _TABS, _PANELS, _PROPERTIES. Em alguns sistemas, pode ser útil criar 2 pastas dentro _PROPERTIES, para _PC_NPC, se ambos os caracteres Fichas forem muito diferentes.

“Nota do tradutor – se você não usar esta estrutura de pastas seu sistema vai funcionar, mas pode ser mais difícil de outras pessoas localizarem itens e entenderem a logica que você criou, mas o mais importante, DEIXE CLARO QUAL AS PASTAS ONDE ESTÃO OS TEMPLATES E OS ITEMS QUE FORMAM OS TEMPLATES!!! Se alguém mexer ou apagar isso seu sistema quebra! Se alguém apagar o item espada, pode ser chato, mas se alguém apagar a sua propriedade força, ou sua pasta de atributos, isso é terrível! Sei que parece bobo, mas pode acontecer, pelo menos use _Template e _Compendium”


9. Estilização CSS

Se você quer estilizar sua Ficha, você precisa aprender um pouco de CSS. Não é tão complicado, e há muitos tutoriais por aí, então eu vou assumir que você entende o básico.

A primeira coisa que você precisa é de um arquivo CSS, crie um, digamos estilo.css e carregue-o na pasta do seu mundo. Em seguida, abra as configurações do Sandbox e escreva além do caminho no campo CSS personalizado:

Agora, digamos que queremos mudar a fonte dos Labels de um painel. Vamos então baixar uma fonte de código aberto como exemplo, a fonte Inter. Crie uma nova pasta na pasta do seu mundo, chamada "fonts", e carregue a fonte lá. Em seguida, abra seu arquivo css e escreva:

@font-face { font-family: InterFont; src:url(fonts/Inter-VariableFont.ttf); }

.sandbox.sheet .style1{ color:blue; font-size: 18px; font-family: InterFont; }

Agora abra seu painel e preencha o campo Font Group com "style1". Desta forma, todos os elementos pertencentes a este painel terão este estilo aplicado:

Finalmente, reconstrua seu modelo, e você poderá ver as mudanças.

Se você quiser alterar o campo de entrada crie um estilo e escreva-o no campo Input Group do painel. Vamos fazer isso, mas em uma propriedade específica deste painel. Ao arquivo css adicione as seguintes linhas:

.sandbox.sheet .inputstyle1{ background: green; }

Aplique-o na propriedade e reconstrua o modelo:

e voila!

Você também pode alterar o estilo de um cabeçalho de painel desta forma. Escreva isso no arquivo css e inclua o estilo no campo Header Group do painel:

.sandbox.sheet .headerstyle1{ background: red; }

Este é o resultado após o a reconstrução:

Bem, isso é tudo. Pode parecer caótico e uma bagunça, mas funciona. Eu tenho criado sistemas, reproduzindo e transmitindo-os no meu canal nos últimos meses, e funciona muito bem. Vou fazer o meu melhor para atualizar a ferramenta e criar tutoriais em inglês com a maior frequência possível. Obrigado por sua compreensão e prazer!!

MENU DE CONFIGURAÇÕES

Confira em Game Settings>Configure Settings>System Settings

• Show Roll with Advantage option: o texto 1d20 abaixo do nome ator aparecerá ou não

• Show d20 Roll icon option: o ícone d20 abaixo do nome do ator permite que você role uma expressão como no chat. Isso será preterido em breve.

• Check Item Consistency: (descontinuado, não existe mais) se verificado, toda vez que você reconstruir um template uma verificação será executada. Esta verificação será executada através de todos os atores e itens do mundo e vai olhar para propriedades-chave vazias, citems não existentes e outras inconsistências. Se encontrar algum, ele excluirá os dados inconsistentes, então TENHA CUIDADO ao selecionar esta opção. Além disso, se o seu mundo tem um alto número de atores e itens, pode levar muito tempo para reconstruir.

◦ “Nota do tradutor – Uma verificação de erros agora acontece na ABA CONFIG do Template, tente sempre corrigir os erros que aparecem, não deixe acumular!

• Show DC window: se o sistema usar dificuldades, marque esta e a caixa para preencher #{diff} aparecerá. Requer uma cena criada.

• Show Last Roll window: se ou quiser ter a última rolagem de jogo sempre visível na parte inferior da tela, verifique este.

• Token options: O Sandbox tem algumas opções específicas de tokens. No Template, as guias Token permitem que você escolha quais propriedades deseja exibir como barras e o nível de acesso necessário para ver uma. Esta caixa de seleção nas configurações permite ativar essas opções.

• CSS Style file: este é o seu local de arquivo CSS personalizado, para alterar o estilo do sua ficha.

• Initiative attribute key: se você quiser que sua iniciativa seja global, basta incluir sua fórmula de expressão de rolagem de iniciativa no valor de uma propriedade simpletext. Algo como "1d20 + @{destreza}" em uma propriedade com KEY "initexpression", por exemplo. Então, neste campo de configurações, você só tem que escrever "initexpression". Você não precisará usar ~init~ novamente e todos os atores usarão o rastreador de combate geral da Founry.

• Images for Panels: Agora você pode cobrir um painel com uma imagem, você só precisa selecionar a opção "É Imagem" no item do painel e incluir uma rota para a imagem em "Caminho da Imagem", assim: mundos/seu mundo/sua imagem.png


Como Exportar e Compartilhar seu Mundo

Na ABA settings, você encontrará 2 novos botões: EXPORT SANDBOX JSON, que gerará um arquivo com todos os dados de Atores/Itens selecionados. Então, em um mundo de sandbox recém-criado, você pode pressionar IMPORT SANDBOX JSON e escolher este arquivo (tem que estar no diretório mundial) para recriar todas as informações.


“Nota do tradutor – essa informação esta um pouco antiga, você agora pode sobrescrever a importação em um mundo em uso, como para atualizar o mundo com uma nova versão de seu sistema, mas ele ira substituir direto, sem confirmação, então cuidado e faça backup!! Além disso não há neste momento aviso de conclusão e de progresso, no diretório itens do Foundry, que costuma ter muitos itens, você pode vê-los sendo construídos e organizados em pastas, aguarde, não tenha pressa, interromper o processo pode corromper seu mundo!!

3 תגובות


Rodrigo Amaral de Miranda
Rodrigo Amaral de Miranda
08 בינו׳ 2022

MestreDigital,


Primeiramente parabéns pelo material de qualidade e pelos videos explicativos, foram perfeitos e essenciais para que eu pudesse me aventurar no sandbox.


Obrigado por ter feito esse trabalho.


Mas tenho 3 duvidas que procurei pela internet e não encontrei, talvez você possa me ajudar:


- Existe algum recurso para que propriedades sejam incluidas automaticamente? Ex: No sistema que estou criando no sandbox, existem pericias, mas o numero que o usuario pode escolher é váriavel, eu coloquei 5 campos para pericias, mas se o jogador precisar de mais, pensei que pudesse haver um + e ele incluisse linhas automaticamente.


- O sistema que escolhi utiliza 2d10 nas jogadas e se repete caso os numeros jogados sejam iguais. Como é o…


לייק
Erich Matos Viegas
Erich Matos Viegas
05 באפר׳ 2022
בתשובה לפוסט של

Vamos lá, primeiro se você puder coloque as perguntas pelo discord, é muito difícil pra mim acompanhar o chat aqui do site... tanto que demorei muito pra ver sua pergunta... 1- Em suma, nao, Propriedades nao podem ser incluídas em uma ficha, elas precisam existir no template... mas tem opções.. - elas podem ser escondidas e só aparecem quando autorizado, como por exemplo numa aba do mestre por um checkbox, q libera uma a uma para o jogador... - voce pode usar como tabela itens em vez de propriedades, e qd tiver uma habilidade nova basta arrastar na ficha, só é preciso ver como a logica vai funcionar, ja q propriedades fora da ficha nao podem procurar dados e va…

לייק
  • YouTube

Voltar ao Topo

bottom of page