{user} o {server_name}, que Petto cambia por datos reales cuando envía un mensaje. Escribe ¡Bienvenido {user} a {server_name}! y el miembro nuevo lee ¡Bienvenido @Liam a Cozy Corner!
Esta página lista todas las variables que conoce Petto, agrupadas según de dónde vienen sus datos. Los ejemplos usan a un miembro llamado Liam (nombre de usuario liam) que entra a un servidor llamado Cozy Corner con 1,204 miembros.
Cómo se resuelven las variables
¿Necesitas lógica o bucles?
{{ }}) agrega if, bucles, datos y botones. Documentación completa en code.petto.sbs.{user.displayname}, {server_member_count}) sigue funcionando cuando solo puede significar una variable. Lo dudoso se deja como se escribió, y los editores de tarjetas y embeds del dashboard señalan las variables que Petto no conoce.Escribir variables
- Las mayúsculas y los espacios no importan.
{user.mention},{User.Mention}y{ user.mention }funcionan todas. - Los nombres de otros bots también funcionan.
{mention},{member},{username},{server},{level.xp}y otros se leen como su equivalente de Petto (lista completa abajo). - Una variable que Petto no conoce se queda como la escribiste.
{usr}aparece como{usr}, así que un error de escritura es fácil de ver. - Una variable sin datos en ese mensaje queda vacía.
{level}en un mensaje de bienvenida no tiene ningún nivel que mostrar, así que desaparece. Algunas lo dicen en su lugar:N/A,Desconocido,Nunca,Sin boost. - Los valores nunca se vuelven a leer. Si el mensaje de un miembro contiene
{server_owner},{message_content}muestra ese texto tal cual, no se convierte en una mención. - No hay filtros ni condiciones. Cosas como
{user.name|upper}o “si tiene boost, di X” no son parte de las variables. Para eso, escribe un comando personalizado en Petto Code. - Las funciones no pueden contener otras variables.
{choose:Hola {user}|Hey}no funciona. Pon la variable afuera:{choose:Hola|Hey} {user}! - No hay carácter de escape. Una variable que Petto conoce se reemplaza incluso dentro del formato
code. Para mostrar una como texto, por ejemplo en un mensaje de ayuda, descríbela con palabras. - Los límites de Discord siguen aplicando. El texto después del reemplazo tiene que caber en el mensaje: 2,000 caracteres para un mensaje, 4,096 para la descripción de un embed, 256 para un título, 100 para el nombre de un canal o hilo.
Nombres de otros bots que Petto entiende
Nombres de otros bots que Petto entiende
{USER_MENTION} y {Server} también funcionan.! justo antes de una mención, incluso antes de {user.mention}, la vuelve una mención silenciosa: se ve como mención y no avisa a nadie.
Dónde funciona cada grupo
Los grupos de Todos los mensajes funcionan en todos los lugares que aceptan variables. Los demás solo tienen datos en el mensaje de su función.{count} en los nombres de contadores o {number} en los nombres de tickets. Están en Placeholders de una función. Los timers envían su texto exactamente como está escrito, sin variables.
Todos los mensajes
Usuario
El miembro del que trata el mensaje: quien entró, quien escribió el activador, quien subió de nivel, quien usó el comando.
En Discord: un embed guardado hecho con un código con las variables de User, lleno con chu.
Usuario (antiguas)
Los nombres originales. Siguen funcionando y dan lo mismo que su versión con punto.
En Discord: los nombres antiguos dan los mismos datos.
Servidor

En Discord: las variables de Server con los números de Petto Land.
Guild
Versiones con punto de los datos del servidor, más algunos extras.
En Discord: las variables de Guild, con Nivel 2 en palabras y N/A para una vanity que el servidor no tiene.
Canal
El canal donde se envía el mensaje (en un MD al entrar, el MD).
En Discord: las variables de Channel para el canal del mensaje.
Invitaciones
Solo en mensajes de bienvenida y MD al entrar: la invitación que usó el miembro nuevo. Petto necesita Gestionar servidor para ver las invitaciones.
En Discord: una bienvenida con las variables de Invites.
Fecha y hora

En Discord: {date}, {timestamp} y dos momentos escritos; las marcas de tiempo se ven en la zona horaria de cada lector.
{timestamp:…} lee el momento como lo dirías: in 2h, 3d 4h, tomorrow 8pm, today 18:30, 2026-12-31 23:59, un número unix o un timestamp de Discord. Las horas se leen en hora de Colombia (GMT-5), a menos que terminen en utc (2026-12-31 23:59 utc). Después de | va el estilo: short_time, long_time, short_date, long_date, full, full_long, short_datetime, medium_datetime o relative (o las letras de Discord t T d D f F s S R). Sin estilo es full. Un momento que Petto no puede leer no da nada.
{timestamp…}) se muestran en el texto del mensaje, las descripciones de los embeds y los campos. En los títulos, pies y nombres de autor de los embeds Discord muestra el código <t:…> tal cual, así que usa {date} ahí.Funciones

En Discord: {range}, {separator}, {choose} y {newline}.
{choose1:…}, {choose2:…} y así sucesivamente funcionan igual, si te gusta numerarlos. Cada uno se elige por separado.
Acciones e imágenes

En Discord: un embed guardado con dos {reactreply:...}: Petto reacciona a su propio mensaje.
Nombres de otros bots
Estos nombres, que usan otros bots, también funcionan y dan lo mismo que la variable de Petto de la derecha. Se escriben igual con mayúsculas o minúsculas.
En Discord: los nombres de otros bots funcionan como su variable de Petto.
Variables de un evento
Mensaje que lo activa
El mensaje que activó la respuesta. Funciona en autorrespuestas, comandos personalizados, auto-hilo y subidas de nivel por texto.
En Discord: una autorrespuesta que cita el mensaje que la activó.
Argumentos del comando
Lo que el miembro escribió después del nombre del comando en un comando personalizado, o después del activador en una autorrespuesta. El texto entre comillas cuenta como un solo argumento. Las menciones que escribe el miembro nunca notifican a nadie a través de estas. Los ejemplos son para!hug Mia "gran mundo" ahora:

En Discord: un comando personalizado con sus argumentos.
Niveles
En el mensaje de subida de nivel, su embed guardado y las tarjetas de rank.
En Discord: un mensaje de subida de nivel con su barra de progreso y rol de premio.
{EMOJI} se reemplaza por el ícono de estrella de Petto.
Sorteos
En los mensajes de sorteos y sus embeds guardados.
En Discord: un mensaje de ganador hecho con un embed guardado con {gw.*}.
{user} es el ganador. En el mensaje del sorteo en sí no hay miembro, así que usa {gw.host}.
Recordatorio de bump

En Discord: el agradecimiento del bump con {nextBump}.
Sanciones
En los mensajes de sanción: el MD, la respuesta y el registro.
En Discord: un mensaje directo de baneo hecho con un embed guardado con {case.*}.
Starboard
En el diseño del repost del starboard.
En Discord: una publicación del starboard hecha con un embed guardado con {star.*}.
Monkeyboard
Lo mismo que el starboard, para el 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} y {monkey.time}.

En Discord: el mismo diseño con {monkey.*}.
Clownboard
Lo mismo que el starboard, para el 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} y {clown.time}.

En Discord: el mismo diseño con {clown.*}.
Sugerencias
En el diseño de una sugerencia.
En Discord: un diseño de sugerencia con {suggestion.*}.
Confesiones
En el diseño de una confesión.
En Discord: un diseño de confesión con {confession.*}.
Encuestas
En el diseño de una encuesta. Los botones para votar se agregan debajo.
En Discord: un diseño de encuesta con {poll.*}.
Partners
En las respuestas de Partners.
En Discord: una respuesta de alianza con {partner.*}.
Solicitudes
En la respuesta a quien hace una solicitud.
En Discord: la respuesta a un pedido con {request.*}.
Formularios
En el embed guardado de un mensaje de formulario (enviado, aceptado, rechazado).
En Discord: una respuesta de formulario por mensaje directo con {form.*}.
Honeypot
En el mensaje de un canal honeypot.
En Discord: el mensaje de un canal honeypot con {honeypot.*}.
Metas de contadores
En el embed guardado de una meta de contador. El texto simple del anuncio usa las formas cortas.
En Discord: un embed de meta con {counter.*}.
Verificación

En Discord: el mensaje directo de verificación con {verify.link}.
Vanity y Server Tag
En los mensajes de agradecimiento y el registro de las reglas de Vanity y Server Tag.
En Discord: un agradecimiento de Vanity hecho con un embed guardado con {rule.} y {vanity.}.
Rollouts
En las alertas de Rollouts sobre los experimentos de Discord.
En Discord: una alerta de Rollout hecha con un embed guardado con {rollout.*}.
Misiones
En los embeds guardados de las alertas de Misiones. Son muchas, así que están plegadas.Todas las variables de misiones (113)
Todas las variables de misiones (113)

En Discord: una alerta de Misiones hecha con un embed guardado con {quest.*}.
Feeds
En las palabras sobre cada aviso de un feed (!feed message). Solo funcionan ahí.

En Discord: las palabras sobre un aviso de feed con {feed.*}.
Placeholders de una función
Estos placeholders cortos los rellena la propia función, no el motor de arriba. Solo funcionan en el lugar indicado. Donde la tabla dice sí en “También variables”, las variables normales también funcionan en ese mismo texto.Contadores
El nombre de un contador es cualquier texto con{count}. Discord permite 100 caracteres en el nombre de un canal y 1,024 en un tema.
{count} (miembros ahora), {goal} o {milestone} (el número alcanzado) y {server}, con los números agrupados (1,000):
Tickets
-, y se cortan a los 90 caracteres: {category}-{username} da soporte-liam. Un embed guardado como bienvenida del ticket usa en cambio las variables normales (el miembro es quien lo abrió, el canal es el ticket).
Formularios y apelaciones
Los mensajes de formularios (el MD después de enviar, aceptar o rechazar, que se configura con!form message) aceptan {form} (el título), {number}, {server}, {status} y {reason}, y también las variables normales, así que {user} menciona al miembro. Un embed guardado para esos mensajes usa en cambio el grupo Formularios.
Los mensajes de apelaciones (que se configuran en el dashboard) aceptan {username}, {server}, {reason}, {form} y {link} (la página de estado de la apelación). El mensaje de “enviada” y el aviso de respuesta del staff solo rellenan {server}, y el nombre del hilo solo {username}. La línea sobre apelaciones en el MD de una sanción acepta {server} y {link}; si no tiene {link}, el enlace se agrega al final.
Recetas
Listas para copiar y pegar. Cada una dice dónde va y qué ve el miembro.Bienvenida con número de miembro y quién invitó
Bienvenida con número de miembro y quién invitó
Subida de nivel con barra de progreso y recompensa
Subida de nivel con barra de progreso y recompensa
--milestone 10 --message "¡{user} llegó al nivel 10 y desbloqueó {level_role}!" ese nivel tiene su propio texto.Un comando de abrazo con destinatario
Un comando de abrazo con destinatario
Una tirada de dado
Una tirada de dado
Autorrespuesta que responde con lo que vino después del activador
Autorrespuesta que responde con lo que vino después del activador
Antigüedad de la cuenta en un MD de bienvenida
Antigüedad de la cuenta en un MD de bienvenida
Meta de boosts
Meta de boosts
Un MD de baneo con el enlace de apelación (embed guardado)
Un MD de baneo con el enlace de apelación (embed guardado)
ban-dm desde un código, y luego úsalo para el MD de los baneos:Nunca como final y el enlace de apelación.Cuenta regresiva para un evento
Cuenta regresiva para un evento
utc para escribirla en UTC.