> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.petto.sbs/llms.txt
> Use this file to discover all available pages before exploring further.

# Comandos personalizados

> Crea tus propios comandos con ! que responden con un texto o un embed guardado, con variables y las palabras que el miembro escribe después del comando.

## Resumen

Crea un comando que responde con un texto guardado o un [embed](https://wiki.petto.sbs/es/resources/scripting/embeds.md) guardado, y que admite todas las [variables](https://wiki.petto.sbs/es/resources/scripting/variables.md).

Úsalos para todo lo que tu servidor repite: las reglas, las redes, un abrazo o una tirada de dado. El miembro escribe `!nombre` y Petto contesta en el canal respondiéndole.

![chu escribe !hug @kira y Petto responde que chu le da un abrazo cálido a kira](https://mintcdn.com/wikipetto/Z-XTVemdYTr1KRaH/images/discord/automation/es/custom-commands.webp?fit=max\&auto=format\&n=Z-XTVemdYTr1KRaH\&q=85\&s=e94ce3797c8e83050e4a2e519ee122d4)

En Discord: el comando hug de los ejemplos, usado con otro miembro.

> [!TIP]
>
> ¿Quieres botones, formularios, reacciones o datos guardados? Los comandos personalizados también se pueden escribir en código. Mira [Petto Code](https://wiki.petto.sbs/es/automation/petto-code.md). ¿Prefieres no escribir código? El [Generador de Petto Code](https://wiki.petto.sbs/es/automation/petto-code-generator.md) crea el comando con formularios, te deja probarlo en un canal de pruebas y te da el comando para pegar.

## Comandos

```javascript Sintaxis theme={null}
!customcommand add <name> <response> [embed_template]
!customcommand edit <name> <response> [embed_template]
!customcommand remove <name>
!customcommand list
!customcommand show <name>
!customcommand info <name>
!customcommand rename <name> <new name>
```

```javascript Ejemplo theme={null}
!customcommand add rules "¡Hola {user}! Las reglas están fijadas en {channel}, por favor léelas 💛"
!customcommand add socials --embed_template socials-embed
!customcommand show rules
!customcommand rename rules rulebook
```

```text Resultado theme={null}
!rules  →  ¡Hola @Liam! Las reglas están fijadas en #general, por favor léelas 💛
```

> [accordion] !customcommand add
>
> ![liam agrega rules con su respuesta entre comillas y Petto lo confirma y menciona !customcommand vars](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-add.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=13de3c5c6d8a2cb95c80119dc4ca5f6c)
>
> En Discord: se crea !rules.

> [accordion] !customcommand add (embed guardado)
>
> ![liam agrega socials con --embed\_template socials y Petto lo confirma](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-add-embed.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=0374068e15c9a9329c02d51f6df28055)
>
> En Discord: un comando que envía el embed guardado socials.

> [accordion] !customcommand add (un nombre que usa Petto)
>
> ![liam intenta agregar rank y Petto responde que rank ya es un comando real](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-add-real.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=3638a3184bc55eb2f8834ba96c52d38f)
>
> En Discord: rank es un comando de Petto, así que el nombre se rechaza.

> [accordion] !customcommand edit
>
> ![liam edita rules con una respuesta nueva y Petto responde que se actualizó](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-edit.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=5c983b60c22956bb8fc2d24449050d7b)
>
> En Discord: !rules recibe un texto nuevo.

> [accordion] !customcommand remove
>
> ![liam quita say y Petto responde Eliminado](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-remove.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=dae6b19511ca9c88c223328dbecd219b)
>
> En Discord: se borra !say.

> [accordion] !customcommand list
>
> ![Petto lista 6 de 125 comandos personalizados: 8ball, hug, roll, rules, say y socials con su tipo y tamaño](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-list.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=b4507812969dc5cb7cf9f3c98241a01c)
>
> En Discord: los comandos del servidor, por nombre, con cómo empiezan y su tamaño.

> [accordion] !customcommand show
>
> ![Petto muestra rules y su respuesta con \{user} y \{channel}](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-show.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=445814e948e198f4c2915b70a04350f9)
>
> En Discord: la respuesta guardada de !rules, con sus variables tal como se escribieron.

> [accordion] !customcommand info
>
> ![La info de rules de Petto: tipo texto, empieza con el prefijo del servidor, tamaño en caracteres](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-info.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=4802e96f037f66950264e9906a29ae9b)
>
> En Discord: qué es !rules: un comando de texto, cómo empieza y su tamaño.

> [accordion] !customcommand rename
>
> ![liam renombra rules a rulebook y Petto lo confirma y avisa que los botones viejos conservan el nombre anterior](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-rename.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=679f38697916ab3ddf068a40897922ca)
>
> En Discord: !rules ahora es !rulebook.

> [accordion] !rules (el resultado)
>
> ![Chillet escribe !rules y Petto le responde Hola @Chillet, las reglas están fijadas en general](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-result.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=ef51dbf786320bda91db81d984447044)
>
> En Discord: un miembro usa !rules y Petto contesta respondiéndole.

> [!WARNING]
>
> Pon la respuesta entre "comillas" cuando tenga espacios. Sin ellas, solo la primera palabra es la respuesta y el resto se lee como el nombre de un embed guardado.

`!cc` es el nombre corto de `!customcommand`. Un nombre que ya es un comando de Petto (como `rank`) se rechaza, y también uno que ya tiene otro comando personalizado.

## Argumentos

Lo que el miembro escribe después del comando se puede usar en la respuesta. El texto entre comillas cuenta como un solo argumento, y las menciones que escriben los miembros nunca mencionan a nadie ni causan menciones masivas.

| Variable | Para `!hug @Mia "ahora mismo" porfa` |
| - | - |
| `{args}` | @Mia "ahora mismo" porfa |
| `{arg1}`, `{arg2}`, `{arg3}` … `{arg10}` | @Mia, ahora mismo, porfa |
| `{args_from:2}` | ahora mismo porfa |
| `{arg_count}` | 3 |
| `{command_name}` | hug |
| `{prefix}` | ! |

`!customcommand vars` muestra estas variables y los flags de respuesta en Discord. Cuando la respuesta usa un argumento y el miembro no escribe nada después del comando, Petto le pide el texto en lugar de enviar una respuesta vacía.

![La tarjeta de Petto con las variables de los comandos personalizados: args, arg1 a arg10, args\_from, arg\_count, command\_name, prefix y el flag reactreply](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-vars.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=0ee06cf703ea36ce61e351a89d2b3cdb)

En Discord: !customcommand vars, los argumentos, las variables y los flags de respuesta.

![Chillet escribe solo !say y Petto le responde que este comando personalizado necesita texto después](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-needs-text.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=83c3ca8e8365dc85e840dc9d61f1cef8)

En Discord: !say necesita texto después, así que Petto lo pide.

## Ejemplos

> [tab] Abrazo
>
> ```javascript Comando theme={null}
> !customcommand add hug "{user} le da a {arg1} un abrazo cálido {choose:🤗|💞|🫂}"
> ```
>
> ```text Resultado theme={null}
> !hug @Mia  →  @Liam le da a @Mia un abrazo cálido 🫂
> ```

> [tab] Decir
>
> ```javascript Comando theme={null}
> !customcommand add say "{args}"
> ```
>
> ```text Resultado theme={null}
> !say ¡Buenos días a todos!  →  ¡Buenos días a todos!
> ```
>
> ![shi escribe !say Buenos días a todos y Petto responde con las mismas palabras](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-example-say.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=f32035d5c105b7509b62a19eb29cd127)
>
> En Discord: !say repite lo que viene después.

> [tab] Bola 8
>
> ```javascript Comando theme={null}
> !customcommand add 8ball "🎱 **{args}**{newline}{choose:Sí.|No.|Tal vez.|Pregunta más tarde.|¡Definitivamente!}"
> ```
>
> ```text Resultado theme={null}
> !8ball ¿lloverá hoy?
> 🎱 ¿lloverá hoy?
> Tal vez.
> ```
>
> ![for le pregunta a la bola 8 si lloverá hoy y Petto responde con la pregunta y una respuesta al azar](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-example-8ball.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=7ca6ae68ac60265a68352ae9ae457c4e)
>
> En Discord: la pregunta en negrita y una respuesta elegida al azar.

> [tab] Dado
>
> ```javascript Comando theme={null}
> !customcommand add roll "🎲 {user.display_name} sacó **{range:1-20}**"
> ```
>
> ```text Resultado theme={null}
> !roll  →  🎲 Liam sacó 17
> ```
>
> ![chu escribe !roll y Petto responde que chu sacó un número](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-example-dice.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=e0a04b26c925409ecee212b6f3cb2ce8)
>
> En Discord: un número del 1 al 20 para quien tira.

> [tab] Info del servidor
>
> ```javascript Comando theme={null}
> !customcommand add server "**{server_name}**{newline}👥 {server_membercount} miembros · 💎 {server_boostcount} boosts ({guild.boost_tier}){newline}📅 Creado el {server_createdate}"
> ```
>
> ```text Resultado theme={null}
> Petto Land
> 👥 1840 miembros · 💎 9 boosts (Nivel 2)
> 📅 Creado el 30/9/2024
> ```
>
> ![kira escribe !server y Petto responde Petto Land, 1840 miembros, 9 boosts, nivel 2 y la fecha de creación](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-example-server.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=4eea8044ce003e922bf95c9fca0aff58)
>
> En Discord: el nombre, los miembros, las mejoras y la fecha de creación de Petto Land.

> [tab] Votación
>
> ```javascript Comando theme={null}
> !customcommand add vote "📊 {user} pregunta: **{args}** {reactreply:👍}{reactreply:👎}"
> ```
>
> ```text Resultado theme={null}
> !vote ¿pizza esta noche?  →  📊 @Liam pregunta: ¿pizza esta noche?
> (con 👍 y 👎 agregados como reacciones)
> ```
>
> ![liam pregunta pizza esta noche y la respuesta de Petto tiene una reacción de pulgar arriba y otra de pulgar abajo](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-example-vote.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=509479a1fbee2dea9a5ac29858a5e261)
>
> En Discord: la pregunta con las reacciones 👍 y 👎 para votar.

Los embeds guardados que usa un comando personalizado también pueden usar todo esto. La lista completa está en la página de [Variables](https://wiki.petto.sbs/es/resources/scripting/variables.md#argumentos-del-comando). Para cualquier cosa con condiciones (`if`), datos guardados o botones, escribe el comando en [Petto Code](https://wiki.petto.sbs/es/automation/petto-code.md).

Pon un `!` antes de una mención en una respuesta (`!@Rol`, `!{user.mention}`) para mostrarla sin avisar a nadie: mira [Menciones silenciosas](https://wiki.petto.sbs/es/concepts/variables-engine.md#menciones-silenciosas).

## Texto simple o embed

Si `embed_template` está configurado, tiene prioridad sobre `response`: se envía el embed guardado en lugar del texto simple. Gestiona las plantillas de embeds en la página Embeds de la [dashboard](https://petto.sbs/dash) o con `!embed`. Un comando personalizado puede usar solo una plantilla de embed, sin texto. Al editar un comando se mantienen los campos que no escribes.

![shi escribe !socials y Petto responde con el embed Nuestras redes con la web, YouTube y X](https://mintcdn.com/wikipetto/K5cUrqAVuZL64uMU/images/discord/automation/es/custom-commands-embed.webp?fit=max\&auto=format\&n=K5cUrqAVuZL64uMU\&q=85\&s=6ffad64973a50becb5850402b807de71)

En Discord: !socials envía su embed guardado en lugar de texto.

## Límites

Un servidor Free puede tener 125 comandos personalizados y un servidor Premium 250 (los comandos en código también cuentan). Mira [Premium](https://wiki.petto.sbs/es/overview/premium.md).

## Dashboard

Los mismos comandos están en **Automatización → Comandos personalizados** de la dashboard: cada comando como lo usaría un miembro y la respuesta de Petto, un botón para borrarlo y un formulario para agregar uno con su texto o un embed guardado. Los comandos escritos en código se editan en [Comandos en código](https://wiki.petto.sbs/es/automation/petto-code.md#editor-de-la-dashboard).

![La sección Comandos personalizados, 8 de 125, con 8ball, hug, rank, roll, rules, socials, vote y whois (los de código dicen Escrito en código), y el formulario para agregar](https://mintcdn.com/wikipetto/1Wz8dc-Kr9ITtTNY/images/dashboard/automation/es/custom-commands-dashboard.webp?fit=max\&auto=format\&n=1Wz8dc-Kr9ITtTNY\&q=85\&s=979961bdcd4573c54540d836d0e18fe1)

Dashboard → Automatización → Comandos personalizados: cada comando como lo usaría un miembro y la respuesta de Petto, y el formulario para agregar uno.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.