Crea tus propios comandos de prefijo con acciones, condiciones y variables dinámicas. Sin código, sin configuraciones externas — todo desde Discord.
⚡
Acciones múltiples
Envía mensajes, asigna roles o modifica coins en una sola ejecución.
CORE
🔢
Variables calculadas
Números aleatorios, miembros al azar, operaciones matemáticas y más.
VARS
🔀
Condiciones
Ejecuta acciones solo si se cumplen ciertas condiciones.
LOGIC
🔒
Restricciones
Limita por canal, rol, NSFW o cooldown por usuario y servidor.
PERMS
🖼️
GIFs e imágenes
Incluye URLs de imagen en el mensaje y se envían como adjunto automáticamente.
MEDIA
🏷️
Prefix exclusivo
Configura un prefix diferente al del bot para evitar conflictos.
CONFIG
⚙️ ¿Cómo funciona?
Los comandos personalizados se activan por prefijo en cualquier canal de texto. Cuando un miembro escribe el prefix seguido de la palabra activadora, el bot ejecuta todas las acciones configuradas en orden.
1
Crear el comando
Usa /custom create trigger:nombre para registrar la palabra activadora. El nombre solo puede contener letras minúsculas, números y guiones.
2
Añadir argumentos (opcional)
Define qué datos espera el comando del usuario — menciones, roles, canales, números o texto. Cada argumento se referencia luego con {{arg.nombre}}.
3
Añadir variables calculadas (opcional)
Crea variables que el bot calcula al ejecutarse — números aleatorios, miembros al azar, operaciones matemáticas, comparaciones. Se usan con {{var.nombre}}.
4
Añadir acciones
Configura qué hace el comando cuando se ejecuta: enviar mensajes, dar o quitar roles, modificar coins. Cada acción puede tener condiciones propias.
5
Usar en Discord
Cualquier miembro con los permisos configurados puede usar el comando escribiendo el prefix seguido de la palabra activadora en un canal de texto.
💡Para gestionar comandos personalizados necesitas el permiso Gestionar servidor en Discord.
🏷️ Prefix personalizado
Por defecto los comandos personalizados comparten el mismo prefix del bot. Si tienes muchos comandos o quieres diferenciarlos, puedes asignar un prefix exclusivo para ellos.
SLASH/custom prefix prefix:!!
Una vez configurado, los comandos personalizados solo responden al prefix nuevo — el prefix normal del bot queda reservado para sus comandos internos.
✅Ver prefix actual/custom prefix sin argumentos
✏️Cambiar prefix/custom prefix prefix:!!
↩️Volver al prefix del bot/custom prefix prefix:- (con el prefix original)
⚠️El prefix no puede tener espacios ni superar los 5 caracteres.
➕ Crear un comando
Cada comando tiene una palabra activadora única por servidor. Esta es la palabra que los usuarios escribirán después del prefix para ejecutarlo.
EJEMPLO/custom create trigger:abrazo
La palabra activadora se normaliza automáticamente: se convierte a minúsculas y los espacios se reemplazan por guiones. Solo se permiten letras a-z, números y guiones.
⚠️Eliminar un comando borra también todos sus argumentos, variables y acciones. Esta acción no se puede deshacer.
📥 Argumentos
Los argumentos son los datos que el usuario proporciona al ejecutar el comando. Se definen en orden y se pueden referenciar en los mensajes con {{arg.nombre}}.
Tipos disponibles
Tipo
Badge
Descripción
Ejemplo de uso
member
MIEMBRO
Mención o ID de un miembro del servidor.
@Usuario
channel
CANAL
Mención o ID de un canal.
#general
role
ROL
Mención o ID de un rol.
@Moderador
number
NÚMERO
Número decimal.
3.14
integer
ENTERO
Número entero sin decimales.
42
text
TEXTO
Texto libre. Captura todo lo que queda. Siempre debe ser el último argumento.
💡Un argumento puede marcarse como opcional con required:False. Los argumentos opcionales siempre deben ir después de los obligatorios.
🔢 Variables calculadas
Las variables se calculan en tiempo real cada vez que se ejecuta el comando. Se referencian en los mensajes con {{var.nombre}}.
🎲
random_number
NÚMERO ALEATORIO
Genera un número entero aleatorio entre un mínimo y un máximo definidos.
min Valor mínimo (ej: 0)
max Valor máximo (ej: 100)
👤
random_member
MIEMBRO ALEATORIO
Elige un miembro al azar del servidor (excluye bots). Usa {{var.nombre}} para mostrar su nombre.
🎯
pick / choice
ELECCIÓN
Elige aleatoriamente una opción de una lista definida. Escribe cada opción en una línea distinta en el modal.
opciones Una por línea, máximo 25
✏️
format
FORMATO
Construye un texto usando otras variables y argumentos. Útil para combinar valores en un solo string reutilizable.
plantilla Texto con {{arg.x}} y {{var.x}}
⚖️
compare
COMPARACIÓN
Compara dos valores y devuelve true o false. Útil para usar como condición en acciones.
A Número, arg.nombre o var.nombre
Operador><>=<===!=
B Número, arg.nombre o var.nombre
➗
math
MATEMÁTICA
Realiza una operación aritmética entre dos valores.
Operadores+-*/%roundfloorceil
💡Las variables se evalúan antes de ejecutar las acciones. Puedes usar el resultado de una variable como condición en otra.
⚡ Acciones
Las acciones definen qué hace el comando cuando se ejecuta. Se ejecutan en el orden en que fueron añadidas. Cada acción puede tener condiciones propias para ejecutarse o no.
💬
send_message
ENVIAR MENSAJE
Envía un mensaje en el mismo canal donde se ejecutó el comando.
Mensaje Texto con variables. Puede incluir URLs de imagen.
Borrar tras Segundos antes de borrar el mensaje (0 = no borrar).
Modocontainer para Components V2 · plain para texto plano.
📤
send_channel
ENVIAR A CANAL
Envía un mensaje en un canal específico del servidor, independientemente de donde se ejecutó el comando.
Mensaje Texto con variables.
Canal ID del canal destino.
Modocontainer o plain.
➕
add_role
AÑADIR ROL
Asigna uno o varios roles al miembro que ejecutó el comando. El bot necesita tener su rol por encima de los roles a asignar.
Roles IDs de roles, uno por línea.
➖
remove_role
QUITAR ROL
Quita uno o varios roles al miembro que ejecutó el comando.
Roles IDs de roles, uno por línea.
🔄
toggle_role
ALTERNAR ROL
Si el miembro tiene el rol lo quita, si no lo tiene lo añade. Útil para roles de suscripción o acceso voluntario.
Roles IDs de roles, uno por línea.
🪙
modify_coins
MODIFICAR COINS
Suma o resta coins al miembro que ejecutó el comando (o a otro miembro si se define un argumento tipo member).
Cantidad Número (negativo para restar) o var.nombre.
Targetauthor o el nombre de un argumento tipo member.
Modo de envío — container vs plain
Las acciones de mensaje ofrecen dos modos de envío:
📦containerMensaje en Components V2. Las URLs de imagen se adjuntan sin mostrar el link. Opción por defecto.
📄plainTexto plano normal de Discord. Las URLs de imagen se adjuntan sin mostrar el link.
💡En ambos modos las URLs de .gif, .png, .jpg, .jpeg y .webp se envían como adjuntos y se renderizan sin mostrar el link.
Condiciones en acciones
Cada acción puede tener condiciones en formato JSON. Si las condiciones no se cumplen, la acción se omite. Deja el campo vacío para que la acción se ejecute siempre.
JSON[{"a":"var.numero","operator":">","b":"50"}]
Operador
Significado
>
A es mayor que B
<
A es menor que B
>=
A es mayor o igual que B
<=
A es menor o igual que B
==
A es igual a B
!=
A es distinto de B
contains
A contiene el texto B
startswith
A empieza por B
🔒 Restricciones
Controla quién puede usar el comando y desde dónde.
Canales
✅Canales permitidosSolo funciona en estos canales. Vacío = todos los canales.
🚫Canales ignoradosNo funciona en estos canales aunque estén permitidos.
Roles
✅Roles permitidosSolo los miembros con este rol pueden usarlo. Vacío = todos.
🚫Roles ignoradosLos miembros con este rol no pueden usarlo aunque tengan uno permitido.
Otras opciones
🔞Solo NSFWEl comando solo funciona en canales marcados como NSFW.
🗑️Borrar activadorEl bot elimina el mensaje que activó el comando (requiere permiso Gestionar mensajes).
El valor es en segundos. Usa 0 para desactivar. Máximo 300 segundos (5 minutos).
🔤 Variables en mensajes
Estas variables se reemplazan automáticamente en el texto de cualquier acción de mensaje.
{{user.mention}}Mención del autor
{{user.name}}Nombre visible del autor
{{user.id}}ID del autor
{{server.name}}Nombre del servidor
{{channel.name}}Nombre del canal
{{date}}Fecha actual (es-ES)
{{command.name}}Nombre del comando usado
{{arg.nombre}}Valor del argumento
{{var.nombre}}Valor de la variable calculada
⚠️Los nombres de argumentos y variables distinguen entre mayúsculas y minúsculas. {{arg.Usuario}} y {{arg.usuario}} son diferentes.
📖 Referencia de comandos
Gestión general
Comando
Descripción
/custom create trigger:
Crea un nuevo comando personalizado.
/custom delete trigger:
Elimina un comando y toda su configuración.
/custom list
Lista todos los comandos del servidor con paginación.
/custom info trigger:
Muestra todos los detalles de un comando.
/custom prefix [prefix:]
Ver o configurar el prefix exclusivo.
Argumentos
Comando
Descripción
/custom args add
Añade un argumento al comando.
/custom args remove
Elimina un argumento por nombre.
/custom args list
Lista los argumentos del comando.
Variables
Comando
Descripción
/custom vars add
Añade una variable calculada. Abre un modal según el tipo.
/custom vars remove
Elimina una variable por nombre.
/custom vars list
Lista las variables del comando.
Acciones
Comando
Descripción
/custom actions add
Añade una acción. Abre un modal con los campos del tipo elegido.
/custom actions remove
Elimina una acción por su posición.
/custom actions list
Lista las acciones y sus configuraciones.
Configuración
Comando
Descripción
/custom config cooldown
Cooldown por usuario y/o servidor en segundos.
/custom config restrictions
Canales y roles permitidos/ignorados, NSFW.
/custom config behavior
Si el bot borra el mensaje que activó el comando.
📊 Límites
Elemento
Plan Gratuito
Plan Premium
Comandos por servidor
10
100
Acciones por comando
1
10
Argumentos por comando
10
10
Variables por comando
10
10
Cooldown máximo
300s
300s
Longitud del trigger
32 chars
32 chars
Longitud del prefix
5 chars
5 chars
⚠️Con el plan gratuito solo puedes tener 1 acción por comando. Para múltiples acciones por comando se requiere Premium.
✨ Ejemplos prácticos
Comando de abrazo con GIF
1
Crear
/custom create trigger:abrazo
2
Argumento
/custom args add trigger:abrazo name:usuario type:member description:Persona a abrazar
3
Acción — Enviar mensaje
Tipo: send_message · Modo: plain Mensaje: {{user.mention}} le dio un abrazo a {{arg.usuario}} 🫂 Añade una URL de GIF en una línea aparte — se enviará como adjunto sin mostrar el link.
Mensaje: 🎲 {{user.name}} tiró el dado y sacó **{{var.resultado}}**
USO-dado
Rol de color con toggle
1
Crear
/custom create trigger:rojo
2
Acción
Tipo: toggle_role · IDs de roles: ID del rol Rojo
3
Opcional — mensaje de confirmación
Segunda acción send_message: ✅ Rol alternado para {{user.mention}} (Requiere Premium para 2 acciones)
USO-rojo
❓ FAQ
¿Los comandos personalizados funcionan en DMs?▼
No. Los comandos personalizados solo funcionan dentro de servidores. Los mensajes directos no son compatibles con este sistema.
¿Puedo tener el mismo trigger en dos servidores?▼
Sí. Los comandos son completamente independientes por servidor. El mismo trigger en distintos servidores puede tener configuraciones totalmente diferentes.
¿Por qué mi GIF aparece como link en lugar de imagen?▼
Asegúrate de usar el modo plain en la acción de mensaje. En modo container las URLs de imagen se adjuntan automáticamente, pero si el link no termina en una extensión reconocida (.gif, .png, .jpg, .jpeg, .webp) se tratará como texto normal.
¿Por qué el bot no borra el mensaje activador?▼
El bot necesita el permiso Gestionar mensajes en el canal para borrar mensajes de otros miembros. Si no tiene ese permiso, la opción de borrar activador no tendrá efecto.
¿Puedo usar variables en las condiciones de una acción?▼
Sí. En el campo a o b del JSON de condiciones puedes usar var.nombre o arg.nombre para referenciar variables calculadas y argumentos. Por ejemplo: {"a":"var.resultado","operator":"==","b":"6"} ejecutará la acción solo si el dado sacó un 6.
¿El prefijo personalizado afecta a todos los comandos del bot?▼
No. El prefix personalizado es exclusivo para los comandos personalizados de este módulo. Los comandos normales del bot siguen usando su propio prefix sin cambios.
¿Qué pasa si añado una condición con JSON inválido?▼
El bot detecta el error al guardar la acción y te avisa con un mensaje de error. La acción no se guarda hasta que el JSON sea válido. Puedes usar un validador online si no estás seguro del formato.
¿Se pueden reordenar las acciones?▼
Actualmente no hay un comando de reordenación directo. Para cambiar el orden, elimina las acciones con /custom actions remove y vuélvelas a añadir en el orden deseado.