Pular para o conteúdo principal
Uma variável é uma palavra entre chaves, como {user} ou {server_name}, que o Petto troca por dados reais quando envia uma mensagem. Escreva Boas-vindas, {user}, ao {server_name}! e o novo membro lê Boas-vindas, @Liam, ao Cozy Corner! Esta página lista todas as variáveis que o Petto conhece, agrupadas de acordo com a origem dos dados. Os exemplos usam um membro chamado Liam (nome de usuário liam) entrando em um servidor chamado Cozy Corner com 1.204 membros.
Você não precisa decorar nada disso. O dashboard tem uma lista de variáveis com busca e um botão de copiar ao lado de cada campo que aceita variáveis, e !embed vars mostra a lista dentro do Discord.

Como as variáveis são resolvidas

As regras por trás dos panos: ordem, valores vazios, testes.

Precisa de lógica ou loops?

O Petto Code ({{ }}) adiciona if, loops, dados e botões. Documentação completa em code.petto.sbs.
Uma variável escrita com outras maiúsculas, pontos ou sublinhados que a real ({user.displayname}, {server_member_count}) continua funcionando quando só pode significar uma variável. O que for duvidoso fica como foi digitado, e os editores de cartões e embeds do dashboard apontam as variáveis que o Petto não conhece.

Escrevendo variáveis

  • Maiúsculas e espaços não importam. {user.mention}, {User.Mention} e { user.mention } funcionam.
  • Nomes de outros bots também funcionam. {mention}, {member}, {username}, {server}, {level.xp} e outros são lidos como o equivalente no Petto (lista completa abaixo).
  • Uma variável que o Petto não conhece fica do jeito que você escreveu. {usr} aparece como {usr}, então um erro de digitação é fácil de achar.
  • Uma variável sem dados naquela mensagem fica vazia. {level} em uma mensagem de boas-vindas não tem nível para mostrar, então desaparece. Algumas dizem isso em vez de sumir: N/A, Desconhecido, Nunca, Sem impulso.
  • Os valores nunca são lidos de novo. Se a mensagem de um membro contém {server_owner}, {message_content} mostra esse texto como está, sem virar uma menção.
  • Não há filtros nem condições. Coisas como {user.name|upper} ou “se impulsiona, diga X” não fazem parte das variáveis. Para isso, escreva um comando personalizado em Petto Code.
  • Funções não podem conter outras variáveis. {choose:Oi {user}|Olá} quebra. Coloque a variável do lado de fora: {choose:Oi|Olá} {user}!
  • Não há caractere de escape. Uma variável que o Petto conhece é substituída mesmo dentro de formatação code. Para mostrar uma como texto, por exemplo em uma mensagem de ajuda, descreva-a com palavras.
  • Os limites do Discord continuam valendo. O texto depois da troca precisa caber na mensagem: 2.000 caracteres em uma mensagem, 4.096 na descrição de um embed, 256 em um título, 100 no nome de um canal ou tópico.
Como maiúsculas não importam, {USER_MENTION} e {Server} também funcionam.
Um ! logo antes de uma menção, até antes de {user.mention}, a torna uma menção silenciosa: ela aparece como menção e não notifica ninguém.

Onde cada grupo funciona

Os grupos de Em toda mensagem funcionam em qualquer lugar que aceite variáveis. Os outros só têm dados na mensagem do recurso deles. Alguns recursos também têm placeholders próprios que não fazem parte deste mecanismo, como {count} nos nomes dos contadores ou {number} nos nomes dos tickets. Eles estão listados em Placeholders de um recurso. Os timers enviam o texto exatamente como foi escrito, sem variáveis.

Em toda mensagem

Usuário

O membro de quem a mensagem trata: quem entrou, quem escreveu o gatilho, quem subiu de nível, quem usou o comando.
chu cria um embed com variáveis {user.*} e o Petto o mostra preenchido: a menção de chu, o usuário, o ID, a data e a posição de entrada, o cargo mais alto, a cor, os cargos e Não em impulso

No Discord: um embed salvo feito com um código com as variáveis de User, preenchido com chu.

Transforme os números _timestamp em uma data que aparece no fuso horário de cada leitor: <t:{user.created_at_timestamp}:R> dá “há 6 anos”, <t:{user.joined_at_timestamp}:D> dá “19 de outubro de 2026”.

Usuário (antigo)

Os nomes originais. Eles continuam funcionando e retornam o mesmo que a versão com ponto.
chu cria um embed com {user_name}, {user_nick} e os outros nomes antigos, e o Petto os preenche, com Não impulsiona no final

No Discord: os nomes antigos dão os mesmos dados.

Servidor

O Petto preenche o dono, a data de criação, 1840 membros com pessoas e bots contados à parte, os impulsos e um membro aleatório

No Discord: as variáveis de Server com os números do Petto Land.

As contagens sem bots, a contagem de bots, a posição de entrada e o membro aleatório são calculados a partir dos membros que o Petto carregou. Em servidores muito grandes, eles podem ficar um pouco imprecisos.

Guild

Versões com ponto dos dados do servidor, mais alguns extras.
O Petto preenche a quantidade de membros, o nível de impulsos, cargos, canais, emojis, data de criação, vanity e limite de membros do Petto Land

No Discord: as variáveis de Guild, com Nível 2 por extenso e N/A para uma vanity que o servidor não tem.

Canal

O canal em que a mensagem é enviada (para uma DM ao entrar, a DM).
chu cria o embed no general e o Petto preenche a menção, o nome, o ID e o tópico do general

No Discord: as variáveis de Channel para o canal da mensagem.

Convites

Só nas mensagens de boas-vindas e na DM ao entrar: o convite que o novo membro usou. O Petto precisa de Gerenciar servidor para ver os convites.
O Petto dá boas-vindas a Mia no canal de boas-vindas, convidada por kira que agora tem 12 convites, com o código do convite

No Discord: uma boas-vindas com as variáveis de Invites.

Data e hora

O Petto preenche a data de hoje, a hora atual e há quanto tempo, um horário daqui a 2 horas e a festa de Ano Novo em 31 de dezembro

No Discord: {date}, {timestamp} e dois momentos escritos; os timestamps aparecem no fuso horário de cada leitor.

{timestamp:…} lê o momento do jeito que você falaria (em inglês ou espanhol): in 2h, 3d 4h, tomorrow 8pm, today 18:30, 2026-12-31 23:59, um número unix ou um timestamp do Discord. Os horários são lidos no horário da Colômbia (GMT-5), a menos que terminem em utc (2026-12-31 23:59 utc). Depois do | vem o estilo: short_time, long_time, short_date, long_date, full, full_long, short_datetime, medium_datetime ou relative (ou as letras do Discord t T d D f F s S R). Sem estilo, é full. Um momento que o Petto não consegue ler não retorna nada.
Exemplos
Os timestamps do Discord (todas as variáveis {timestamp…}) aparecem formatados no texto da mensagem, nas descrições dos embeds e nos campos. Em títulos, rodapés e nomes de autor de embeds o Discord mostra o código <t:…> cru, então use {date} ali.

Funções

O Petto mostra um resultado de dado, uma linha divisória e um de três jogos escolhido ao acaso

No Discord: {range}, {separator}, {choose} e {newline}.

{choose1:…}, {choose2:…} e assim por diante funcionam do mesmo jeito, se você gostar de numerá-las. Cada uma é sorteada separadamente.

Ações e imagens

Uma votação de pizza ou tacos do Petto no general com as reações 🍕 e 🌮 embaixo

No Discord: um embed salvo com dois {reactreply:...}: o Petto reage à própria mensagem.


Nomes de outros bots

Estes nomes, usados por outros bots, também funcionam e dão o mesmo que a variável do Petto à qual apontam. São lidos em maiúsculas ou minúsculas.
chu usa {mention}, {username}, {server}, {server.members} e {boost.*} e o Petto os preenche

No Discord: os nomes de outros bots funcionam como a variável do Petto.

Variáveis de um evento

Mensagem que ativou

A mensagem que ativou a resposta. Funciona em respostas automáticas, comandos personalizados, tópicos automáticos e subidas de nível de texto.
nova diz bom dia e o Petto responde citando {message_content} com o link da mensagem

No Discord: uma resposta automática que cita a mensagem que a disparou.

Argumentos do comando

O que o membro digitou depois do nome do comando em um comando personalizado, ou depois do gatilho em uma resposta automática. Texto entre aspas conta como um argumento só. Menções digitadas pelo membro nunca notificam ninguém por meio delas. Os exemplos são para !hug Mia "mundo grande" agora:
kira digita !hug com Mia, um texto entre aspas e uma palavra, e o Petto preenche {arg1}, {arg_count}, {args}, {args_from:2} e o comando

No Discord: um comando personalizado com seus argumentos.

Níveis

Na mensagem de subida de nível, no embed salvo dela e nos cards de rank.
O Petto diz que chu chegou ao nível 12, com uma barra de 10 segmentos, o XP que falta, a posição 3 de 120 e o cargo Frequente

No Discord: uma mensagem de subida de nível com a barra de progresso e o cargo de prêmio.

No texto da subida de nível (não em embeds salvos), {EMOJI} é substituído pelo ícone de estrela do Petto.

Sorteios

Nas mensagens de sorteio e nos embeds salvos delas.
O Petto anuncia que Luna ganhou Discord Nitro entre 87 participantes, organizado por liam, 1 vencedor, Encerrado

No Discord: uma mensagem de vencedor feita com um embed salvo com {gw.*}.

A mensagem de vencedor é usada quando não há tempo para resgatar; com ele, a mensagem de resgate é enviada no lugar. Nas mensagens de vencedor, resgate, aceitação e recusa, {user} é o vencedor. Na própria mensagem do sorteio não há membro, então use {gw.host}.

Lembrete de bump

O Petto agradece o bump de chu e diz que o próximo é daqui a 2 horas

No Discord: o agradecimento do bump com {nextBump}.

Punições

Nas mensagens de punição: a DM, a resposta e o registro no log.
Na DM o Petto diz a Bruno que ele foi banido temporariamente do Petto Land: caso 42, o motivo, 7 dias, o moderador e o link de apelação

No Discord: uma DM de banimento feita com um embed salvo com {case.*}.

Starboard

No design da republicação do starboard.
O Petto republica o meme de nova com 7 estrelas, o canal, o texto, o link e quando foi enviado

No Discord: um repost do starboard feito com um embed salvo com {star.*}.

Monkeyboard

O mesmo que o starboard, para o monkeyboard: {monkey.count}, {monkey.emoji}, {monkey.channel}, {monkey.channel_name}, {monkey.link}, {monkey.message_id}, {monkey.author}, {monkey.author_name}, {monkey.author_id}, {monkey.author_avatar}, {monkey.content}, {monkey.image}, {monkey.attachments} e {monkey.time}.
O repost do monkeyboard da mensagem de nova com 5 macacos

No Discord: o mesmo design com {monkey.*}.

Clownboard

O mesmo que o starboard, para o clownboard: {clown.count}, {clown.emoji}, {clown.channel}, {clown.channel_name}, {clown.link}, {clown.message_id}, {clown.author}, {clown.author_name}, {clown.author_id}, {clown.author_avatar}, {clown.content}, {clown.image}, {clown.attachments} e {clown.time}.
O repost do clownboard da mensagem de nova com 9 palhaços

No Discord: o mesmo design com {clown.*}.

Sugestões

No design de uma sugestão.
A sugestão 12 de Mia, aprovada, com os votos, a porcentagem e a resposta de kira

No Discord: um design de sugestão com {suggestion.*}.

Confissões

No design de uma confissão.
A confissão 12 com o texto, o ID e quando foi enviada

No Discord: um design de confissão com {confession.*}.

Enquetes

No design de uma enquete. Os botões de voto são adicionados embaixo.
Uma enquete com duas opções e suas barras, 6 votos, uma opção, aberta, fecha daqui a 2 horas, criada por liam

No Discord: um design de enquete com {poll.*}.

Parceiros

Nas respostas de Parceiros.
O Petto anuncia a parceria Cozy Club com 1.240 membros e agradece a Chillet, com a contagem e a posição da semana

No Discord: uma resposta de parceria com {partner.*}.

Pedidos

Na resposta a quem faz um pedido.
O Petto diz a Mia que o pedido 12 dela de um banner está aberto e onde a staff o vê

No Discord: a resposta a um pedido com {request.*}.

Formulários

No embed salvo de uma mensagem de formulário (enviado, aceito, recusado).
Na DM o Petto diz a Mia que a candidatura para a staff 12 dela foi aceita, com o motivo

No Discord: uma resposta de formulário na DM com {form.*}.

Honeypot

Na mensagem de um canal honeypot.
O Petto avisa para não escrever no canal armadilha, que escrever ali dá um softban e que 17 foram pegos

No Discord: a mensagem de um canal honeypot com {honeypot.*}.

Metas dos contadores

No embed salvo de um anúncio de meta de contador. O texto simples do anúncio usa as formas curtas.
O Petto comemora que o Petto Land chegou a 1.800 membros e agora tem 1.840

No Discord: um embed de marco com {counter.*}.

Verificação

Na DM o Petto pede a Mia para se verificar com o link para entrar no Petto Land

No Discord: a DM de verificação com {verify.link}.

Vanity e Tag do servidor

Nas mensagens de agradecimento e no log das regras de Vanity e Tag do servidor.
O Petto agradece a chu por ter cinnamochi no status, dá o cargo Rep e mostra o status, a regra e a ação

No Discord: um agradecimento de Vanity feito com um embed salvo com {rule.} e {vanity.}.

Rollouts

Nos alertas de liberações sobre experimentos do Discord.
O Petto diz que um experimento passou de 37,5% para 50%, com o tipo, o status, as plataformas e o ID

No Discord: um alerta de Rollout feito com um embed salvo com {rollout.*}.

Missões

Nos embeds salvos dos alertas de missões. São muitas, então ficam recolhidas.
O Petto anuncia uma missão nova: o jogo, quem publicou, 200 Orbs por assistir a um vídeo de 2 minutos, as plataformas, quando termina e o link

No Discord: um alerta de Missões feito com um embed salvo com {quest.*}.


Feeds

Nas palavras acima de cada aviso de um feed (!feed message). Só funcionam ali.
O Petto diz que há um vídeo novo no YouTube, com o título, a conta e o link

No Discord: as palavras acima de um aviso de feed com {feed.*}.

Placeholders de um recurso

Estes placeholders curtos são preenchidos pelo próprio recurso, não pelo mecanismo acima. Eles só funcionam no lugar indicado. Onde a tabela diz sim em “Variáveis também”, as variáveis normais também funcionam nesse mesmo texto.

Contadores

O nome de um contador é qualquer texto com {count}. O Discord permite 100 caracteres no nome de um canal e 1.024 em um tópico.
Exemplos
O texto de meta aceita {count} (membros agora), {goal} ou {milestone} (o número alcançado) e {server}, com os números agrupados (1.000):
Exemplo

Tickets

Os nomes dos canais ficam em minúsculas, acentos e símbolos viram -, e eles são cortados em 90 caracteres: {category}-{username} dá suporte-liam. Um embed salvo como boas-vindas do ticket usa as variáveis normais no lugar (o membro é quem abriu, o canal é o ticket).
Exemplos

Formulários e apelações

As mensagens de formulário (a DM depois de enviar, aceitar ou recusar, definida com !form message) aceitam {form} (o título), {number}, {server}, {status} e {reason}, e também as variáveis normais, então {user} menciona o membro. Um embed salvo para essas mensagens usa o grupo Formulários no lugar. As mensagens de apelação (definidas no dashboard) aceitam {username}, {server}, {reason}, {form} e {link} (a página de status da apelação). A mensagem de “enviada” e o aviso de resposta da equipe só preenchem {server}, e o nome do tópico só {username}. A linha sobre apelações em uma DM de punição aceita {server} e {link}; se ela não tiver {link}, o link é adicionado no final.

Receitas

Prontas para copiar e colar. Cada uma diz onde vai e o que o membro vê.
Comando
Resultado
Comando
Resultado
Com --milestone 10 --message "{user} está no nível 10 e desbloqueou {level_role}!", esse nível ganha um texto só dele.
Comando
Resultado
Comando
Resultado
Comando
Resultado
Comando
Resultado
Comando
Resultado
Comando
Resultado
Cada leitor vê o horário no próprio fuso horário. O horário que você escreve é lido no horário da Colômbia (GMT-5); adicione utc para escrevê-lo em UTC.