A versão curta
Quase todo lugar que aceita variáveis usa o mesmo resolvedor: ele pega o seu texto, encontra cada{variable} nele e troca pelos dados do que disparou a mensagem (o membro que entrou, o sorteio que terminou, a mensagem que ativou uma resposta automática). Os dados disponíveis dependem desse evento; as regras, não.
A ordem dos passos
Imagens e reações são retiradas
{imgcard:name} é removido do texto e vira o cartão de imagem da mensagem. {reactreply:emoji} é removido e vira uma reação na mensagem enviada.
No Discord: {imgcard:welcome} virou o cartão do embed e {reactreply:👋} uma reação.
As funções rodam
{choose:a|b|c}, {timestamp:<when>|<style>}, {range:1-100}, {arg1} … {arg10} e {args_from:N} são calculados, de novo a cada vez. A mesma mensagem salva dá um {choose:…} ou {range:…} diferente cada vez que é enviada.
No Discord: o mesmo comando duas vezes: {range} e {choose} são escolhidos de novo a cada vez.
Todo o resto é buscado de uma só vez
{name} que sobrou é comparado, ignorando maiúsculas e espaços dentro das chaves, com a lista do Petto e depois com os nomes que outros bots usam. O que uma variável devolve nunca é lido de novo, então um membro que escreve {server_owner} em uma mensagem não faz o {message_content} mencionar o dono.
No Discord: {server_owner} escrito por um membro fica como texto dentro de {message_content}.
{choose:Oi {user}|Olá} o primeiro } fecha a função antes da hora. Escreva {choose:Oi|Olá} {user} em vez disso.
Conhecidas, desconhecidas e vazias

No Discord: uma variável conhecida, uma conhecida sem dados aqui e uma desconhecida.
{gw.*} só nas mensagens de sorteios. Usá-las em outro lugar não faz mal, elas só não dão nada.
Dois estilos de nome, mesmo resultado
{user_name} e {user.name} resolvem igual. O estilo com sublinhado é o conjunto original; o estilo com ponto foi adicionado para facilitar a leitura e combina com {guild.*}, {channel.*} e o resto. Nenhum dos dois vai sumir, use o que ler melhor.
Palavras e datas seguem o idioma do servidor
As palavras que o próprio Petto escreve numa variável (Sim, Nunca, Nível 2, Sem impulso), datas como {user.joined_at} e as terminações ordinais (1st, 1.º, 1º) seguem o idioma do servidor. O seu próprio texto, os nomes e os dados do servidor nunca são traduzidos. {date} usa o horário da Colômbia (GMT-5); para um horário que aparece no fuso de cada leitor, use as variáveis {timestamp…}.

No Discord: as palavras, datas e terminações ordinais que o Petto escreve, no idioma do servidor.
Menções silenciosas
Coloque um! logo antes de uma menção e ela aparece como a menção azul de sempre, mas ninguém recebe notificação. Sem o !, a menção funciona como sempre. Vale para qualquer mensagem que o Petto envia, então você pode escrever sobre quem é a mensagem sem acordar ninguém.

No Discord: a mensagem foi escrita com !@everyone e !@Moderadores. As duas aparecem como menções e ninguém recebe notificação.
As formas
As regras
- O
!vai no começo do texto ou depois de um espaço, uma quebra de linha ou pontuação.Oi !@heree(!@here)são silenciosas,oi!@herenão. - Para mostrar os caracteres
!@everyonecomo texto, escreva\!@everyone. - Importa em mensagens normais e no texto de Components V2, que é onde uma menção pode notificar. No título, na descrição, nos campos e no rodapé de um embed clássico uma menção nunca notifica, então ali o
!só é removido. - Uma mensagem com menções silenciosas e normais notifica só as normais.
- O único limite: um
@everyonesilencioso ao lado de um@everyonenormal na mesma mensagem notifica, porque o Discord decide isso uma vez por mensagem. Use um só tipo em cada mensagem. - O
!só remove notificações, nunca adiciona. Um recurso que nunca avisa (os temporizadores e os feeds, por exemplo) não avisa com ou sem ele. - As prévias do dashboard desenham a menção silenciosa como uma menção normal, sem o
!.
Quando usar
Use quando uma mensagem deve mostrar sobre quem ela é ou a quem perguntar, sem acordar ninguém: um anúncio que cita!@everyone ou !@Moderadores como texto, uma boas-vindas que diz Pergunte aos !@Moderadores se precisar de ajuda, ou uma mensagem de sorteio que cita o cargo dos ganhadores. Para um aviso de verdade, escreva a menção como sempre.
Testando uma mensagem
Você não precisa de um evento real para ver o resultado:!welcome test,!leave test,!boost teste!dmonjoin testenviam a mensagem com a sua própria conta como o membro.!embed preview <name>monta um embed salvo com você como o membro e o canal atual, então as variáveis são preenchidas.- As prévias do dashboard preenchem as variáveis com dados de exemplo (um membro chamado Liam, um servidor com 1.204 membros), e uma mensagem de teste enviada pelo dashboard usa a sua conta e o seu servidor de verdade.

No Discord: um texto de boas-vindas testado com !welcome test, com cada variável preenchida.