> ## 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

> Crie seus próprios comandos com ! que respondem com um texto ou um embed salvo, com variáveis e as palavras que o membro escreve depois do comando.

## Visão geral

Crie um comando que responde com um texto salvo ou um [embed](https://wiki.petto.sbs/pt-br/resources/scripting/embeds.md) salvo, e que aceita todas as [variáveis](https://wiki.petto.sbs/pt-br/resources/scripting/variables.md).

Use para tudo que seu servidor repete: as regras, as redes, um abraço ou um dado. O membro escreve `!nome` e Petto responde no canal respondendo à mensagem.

![chu escreve !hug @kira e Petto responde que chu dá um abraço quentinho em kira](https://mintcdn.com/wikipetto/Z-XTVemdYTr1KRaH/images/discord/automation/pt-br/custom-commands.webp?fit=max\&auto=format\&n=Z-XTVemdYTr1KRaH\&q=85\&s=e4eb03b7bce51728fc3dad0d90a16f73)

No Discord: o comando hug dos exemplos, usado com outro membro.

> [!TIP]
>
> Quer botões, formulários, reações ou dados salvos? Os comandos personalizados também podem ser escritos em código. Veja [Petto Code](https://wiki.petto.sbs/pt-br/automation/petto-code.md). Prefere não escrever código? O [Gerador de Petto Code](https://wiki.petto.sbs/pt-br/automation/petto-code-generator.md) monta o comando com formulários, deixa você testá-lo em um canal de teste e te dá o comando para colar.

## Comandos

```javascript Syntax 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 Example theme={null}
!customcommand add regras "Oi {user}! As regras estão fixadas em {channel}, leia, por favor 💛"
!customcommand add socials --embed_template socials-embed
!customcommand show regras
!customcommand rename regras regulamento
```

```text Result theme={null}
!regras  →  Oi @Liam! As regras estão fixadas em #geral, leia, por favor 💛
```

> [accordion] !customcommand add
>
> ![liam adiciona rules com a resposta entre aspas e o Petto confirma e cita !customcommand vars](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-add.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=faf0f31e16537b6020f10a51f5d66e1b)
>
> No Discord: !rules é criado.

> [accordion] !customcommand add (embed salvo)
>
> ![liam adiciona socials com --embed\_template socials e o Petto confirma](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-add-embed.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=48c24b6d04f772fd45dba0215059ef5b)
>
> No Discord: um comando que envia o embed salvo socials.

> [accordion] !customcommand add (um nome que o Petto usa)
>
> ![liam tenta adicionar rank e o Petto responde que rank já é um comando de verdade](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-add-real.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=a997e029dd791977e4ac4d5961b05daa)
>
> No Discord: rank é um comando do Petto, então o nome é recusado.

> [accordion] !customcommand edit
>
> ![liam edita rules com uma resposta nova e o Petto responde que foi atualizado](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-edit.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=897e8478320de8be5250a160091f2a70)
>
> No Discord: !rules ganha um texto novo.

> [accordion] !customcommand remove
>
> ![liam remove say e o Petto responde Removido](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-remove.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=4bfe4eee07218407034fe4a7d9a88be6)
>
> No Discord: !say é apagado.

> [accordion] !customcommand list
>
> ![O Petto lista 6 de 125 comandos personalizados: 8ball, hug, roll, rules, say e socials com o tipo e o tamanho](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-list.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=40c29f1bebc73c339925ac24b67a4e6a)
>
> No Discord: os comandos do servidor, por nome, com como começam e o tamanho.

> [accordion] !customcommand show
>
> ![O Petto mostra rules e a resposta com \{user} e \{channel}](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-show.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=5becd79173b550fa6deb5e4cf696483b)
>
> No Discord: a resposta salva de !rules, com as variáveis como foram escritas.

> [accordion] !customcommand info
>
> ![A info de rules do Petto: tipo texto, começa com o prefixo do servidor, tamanho em caracteres](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-info.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=18534a3936254f780add29b179de7650)
>
> No Discord: o que é !rules: um comando de texto, como começa e o tamanho.

> [accordion] !customcommand rename
>
> ![liam renomeia rules para rulebook e o Petto confirma e avisa que os botões antigos mantêm o nome antigo](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-rename.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=4fd1dabb6fba2f7a1073a3e624dcc27b)
>
> No Discord: !rules agora é !rulebook.

> [accordion] !rules (o resultado)
>
> ![Chillet digita !rules e o Petto responde Oi @Chillet, as regras estão fixadas no general](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-result.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=23cf22dec80b82c66dbbf6e058dea135)
>
> No Discord: um membro usa !rules e o Petto responde à mensagem.

> [!WARNING]
>
> Coloque a resposta entre "aspas" quando ela tiver espaços. Sem elas, só a primeira palavra vira a resposta e o resto é lido como o nome de um embed salvo.

`!cc` é o nome curto de `!customcommand`. Um nome que já é um comando do Petto (como `rank`) é recusado, e também um nome que outro comando personalizado já tem.

## Argumentos

Tudo o que o membro digita depois do comando pode ser usado na resposta. Texto entre aspas conta como um só argumento, e as menções digitadas pelos membros nunca notificam ninguém nem causam menções em massa.

| Variável | Para `!hug @Mia "agora mesmo" por favor` |
| - | - |
| `{args}` | @Mia "agora mesmo" por favor |
| `{arg1}`, `{arg2}`, `{arg3}` … `{arg10}` | @Mia, agora mesmo, por favor |
| `{args_from:2}` | agora mesmo por favor |
| `{arg_count}` | 3 |
| `{command_name}` | hug |
| `{prefix}` | ! |

`!customcommand vars` mostra essas variáveis e as flags de resposta no Discord. Quando a resposta usa um argumento e o membro não escreve nada depois do comando, o Petto pede o texto em vez de enviar uma resposta vazia.

![O cartão do Petto com as variáveis dos comandos personalizados: args, arg1 a arg10, args\_from, arg\_count, command\_name, prefix e a flag reactreply](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-vars.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=9d9f750e7a88a76e983c38733f8de81d)

No Discord: !customcommand vars, os argumentos, as variáveis e as flags de resposta.

![Chillet digita só !say e o Petto responde que esse comando personalizado precisa de texto depois](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-needs-text.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=4e1add6bf84eefdb30684b9c9e435752)

No Discord: !say precisa de texto depois, então o Petto pede.

## Exemplos

> [tab] Abraço
>
> ```javascript Command theme={null}
> !customcommand add hug "{user} dá um abraço apertado em {arg1} {choose:🤗|💞|🫂}"
> ```
>
> ```text Result theme={null}
> !hug @Mia  →  @Liam dá um abraço apertado em @Mia 🫂
> ```

> [tab] Dizer
>
> ```javascript Command theme={null}
> !customcommand add say "{args}"
> ```
>
> ```text Result theme={null}
> !say Bom dia, pessoal!  →  Bom dia, pessoal!
> ```
>
> ![shi digita !say Bom dia pessoal e o Petto responde com as mesmas palavras](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-example-say.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=68aa0efee577f7dcee2d2b79502c00e4)
>
> No Discord: !say repete o que vem depois.

> [tab] Bola 8
>
> ```javascript Command theme={null}
> !customcommand add 8ball "🎱 **{args}**{newline}{choose:Sim.|Não.|Talvez.|Pergunte mais tarde.|Com certeza!}"
> ```
>
> ```text Result theme={null}
> !8ball vai chover hoje?
> 🎱 vai chover hoje?
> Talvez.
> ```
>
> ![for pergunta à bola 8 se vai chover hoje e o Petto responde com a pergunta e uma resposta ao acaso](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-example-8ball.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=924e3ea661031612ee5ff74f6bc8b31e)
>
> No Discord: a pergunta em negrito e uma resposta escolhida ao acaso.

> [tab] Dado
>
> ```javascript Command theme={null}
> !customcommand add roll "🎲 {user.display_name} tirou **{range:1-20}**"
> ```
>
> ```text Result theme={null}
> !roll  →  🎲 Liam tirou 17
> ```
>
> ![chu digita !roll e o Petto responde que chu tirou um número](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-example-dice.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=d57b149ea4d7e3d5717793bd253bf14e)
>
> No Discord: um número de 1 a 20 para quem rola.

> [tab] Info do servidor
>
> ```javascript Command theme={null}
> !customcommand add server "**{server_name}**{newline}👥 {server_membercount} membros · 💎 {server_boostcount} boosts ({guild.boost_tier}){newline}📅 Criado em {server_createdate}"
> ```
>
> ```text Result theme={null}
> Petto Land
> 👥 1840 membros · 💎 9 boosts (Nível 2)
> 📅 Criado em 30/09/2024
> ```
>
> ![kira digita !server e o Petto responde Petto Land, 1840 membros, 9 boosts, nível 2 e a data de criação](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-example-server.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=5863b2f5ff80fee5b88b09ea11368c9a)
>
> No Discord: o nome, os membros, os impulsos e a data de criação do Petto Land.

> [tab] Votação
>
> ```javascript Command theme={null}
> !customcommand add vote "📊 {user} pergunta: **{args}** {reactreply:👍}{reactreply:👎}"
> ```
>
> ```text Result theme={null}
> !vote pizza hoje à noite?  →  📊 @Liam pergunta: pizza hoje à noite?
> (com 👍 e 👎 adicionados como reações)
> ```
>
> ![liam pergunta pizza hoje à noite e a resposta do Petto tem uma reação de joinha e outra de polegar para baixo](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-example-vote.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=d07070b62426c3f10822b35bc97092cb)
>
> No Discord: a pergunta com as reações 👍 e 👎 para votar.

Os embeds salvos usados por um comando personalizado também podem usar tudo isso. A lista completa está na página [Variáveis](https://wiki.petto.sbs/pt-br/resources/scripting/variables.md#argumentos-do-comando). Para qualquer coisa com condições (`if`), dados salvos ou botões, escreva o comando em [Petto Code](https://wiki.petto.sbs/pt-br/automation/petto-code.md).

Coloque um `!` antes de uma menção em uma resposta (`!@Cargo`, `!{user.mention}`) para mostrá-la sem notificar ninguém: veja [Menções silenciosas](https://wiki.petto.sbs/pt-br/concepts/variables-engine.md#menções-silenciosas).

## Texto simples ou embed

Se `embed_template` estiver definido, ele tem prioridade sobre `response`: o embed salvo é enviado no lugar do texto simples. Gerencie os modelos de embed na página Embeds do [dashboard](https://petto.sbs/dash) ou com `!embed`. Um comando personalizado pode usar só um modelo de embed, sem texto. Ao editar um comando, os campos que você não informar são mantidos.

![shi digita !socials e o Petto responde com o embed Nossas redes com o site, YouTube e X](https://mintcdn.com/wikipetto/FghHti1ndnhhOsRU/images/discord/automation/pt-br/custom-commands-embed.webp?fit=max\&auto=format\&n=FghHti1ndnhhOsRU\&q=85\&s=f3bcc16d2edf1f440d876b00f6decc91)

No Discord: !socials envia o embed salvo em vez de texto.

## Limites

Um servidor Free pode ter 125 comandos personalizados e um servidor Premium, 250 (os comandos em código também contam). Veja [Premium](https://wiki.petto.sbs/pt-br/overview/premium.md).

## Dashboard

Os mesmos comandos estão em **Automação → Comandos personalizados** do dashboard: cada comando como um membro usaria e a resposta do Petto, um botão para apagar e um formulário para adicionar um com o texto ou um embed salvo. Os comandos escritos em código são editados em [Comandos em código](https://wiki.petto.sbs/pt-br/automation/petto-code.md#editor-do-dashboard).

![A seção Comandos personalizados, 8 de 125, com 8ball, hug, rank, roll, rules, socials, vote e whois (os em código dizem Escrito em código), e o formulário para adicionar](https://mintcdn.com/wikipetto/1Wz8dc-Kr9ITtTNY/images/dashboard/automation/pt-br/custom-commands-dashboard.webp?fit=max\&auto=format\&n=1Wz8dc-Kr9ITtTNY\&q=85\&s=bdfab438c50175dc63e6f792e0426705)

Dashboard → Automação → Comandos personalizados: cada comando como um membro usaria e a resposta do Petto, e o formulário para adicionar um.


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