Crea un plugin
La referencia completa del SDK para desarrolladores de plugins — Python en sandbox, entregado como zip, distribuido a través del marketplace.
Los plugins son procesos Python en sandbox. Escribe un handler, declara tus capacidades, envía un zip — lo ejecutamos en un contenedor Docker restringido y transmitimos eventos de Discord mediante JSON-RPC.
¿Qué es un plugin?
Un plugin es un pequeño programa que escucha eventos en un servidor de Discord y reacciona a ellos.
- Alguien se une a tu servidor → tu plugin envía un mensaje de bienvenida.
- Alguien escribe
/leaderboard→ tu plugin responde con los 10 primeros usuarios. - Alguien reacciona a un mensaje → tu complemento cuenta el voto y actualiza el recuento.
Tú escribes Python. Importas el SDK. Decoras una función con @plugin.on_event("member_join") y escribes lo que debería ocurrir. La plataforma se encarga del resto.
Lo que la plataforma hace por ti
- Se conecta a Discord. Nunca tienes que lidiar con gateways WebSocket, sharding, intents ni límites de velocidad. La plataforma entrega los eventos a tus handlers, y una sola llamada a
ctx.discord.send_message(…)responde. - Aloja tu código. Sin servidores que alquilar, sin Docker que gestionar, sin despliegues a las 2 AM. Sube tu código — la plataforma lo ejecuta en un sandbox aislado.
- Se comunica con el mundo exterior. Llama a APIs externas con
ctx.http, mantén conexiones activas abiertas conctx.wsy deja que la plataforma inyecte claves API desde secretos cifrados para que tu código nunca las toque. Consulta HTTP de salida. - Gestiona los pagos. Establece un precio o distribúyelo gratis. Los clientes pagan a través de Stripe y tú conservas el 70–85% de los ingresos (el nivel depende de tu volumen de los últimos 30 días), pagado a tu banco automáticamente después de un período de retención. Consulta Vender tu complemento.
- Le da a cada instalación una página de configuración. Declara algunos widgets en JSON y los administradores obtienen una página de panel temático para tu complemento — tarjetas de estadísticas, gráficos, formularios de configuración — sin que escribas una línea de interfaz. Ver Paneles.
- Envía tus actualizaciones. Publica una versión nueva y las instalaciones la recogen automáticamente (los propietarios pueden fijar una versión para optar por no participar). Sin correos de migración, sin "por favor vuelve a invitar al bot". Ver actualizaciones y reversión.
- Escala por ti. Una instalación o un millón — la plataforma gestiona la concurrencia, los reintentos y las cuotas.
Lo que tú haces
Escribir la lógica que convierte los eventos de Discord en acciones. Eso es todo. El flujo es el siguiente:
En qué se diferencia un plugin de un "framework de bot de Discord"
| Aspecto | Plugin (esta plataforma) | Bot autoalojado (discord.py, etc.) |
|---|---|---|
| Conectarse a Discord | La plataforma lo hace | Lo haces tú |
| Servidor para alojar el código | La plataforma lo proporciona | Tú lo alquilas / gestionas |
| Pagos / Stripe | La plataforma lo gestiona | Lo construyes tú mismo |
| Instalación por cliente | Un clic para el cliente | Guías a cada cliente a través de OAuth |
| Escalado / cuotas / reintentos | La plataforma lo gestiona | Tú lo gestionas |
| Reseñas / visibilidad | Marketplace integrado | Tú promocionas tu bot por tu cuenta |
| Superficie de la API de Discord | Controlada por capacidades (declara lo que necesitas) | Acceso completo (tu responsabilidad) |
Dónde invertirás tu tiempo
- Conectando eventos a controladores. Decoradores como
@plugin.on_event("message_create")o@plugin.on_slash_command("hello"). - Almacenando estado. Las configuraciones por servidor, contadores y tablas de clasificación viven en
ctx.kv(clave-valor, cada complemento lo tiene) octx.sql(SQL completo, una capacidad que solicitas y que se otorga después de la revisión del personal). De cualquier manera, no hay base de datos que administrar. - (Opcional) Una página de configuración. Añade un manifiesto JSON y los clientes obtendrán una página del panel desde la que pueden configurar tu plugin. No se requiere código de frontend.
Puedes crear y enviar tu primer complemento en una tarde. Las primeras versiones de nuevos desarrolladores pasan por una revisión breve del personal antes de aparecer en el mercado; los desarrolladores establecidos que publican desde repositorios públicos suelen saltarse la cola. Haz clic en "Primeros pasos" arriba cuando estés listo para escribir código. ¿Prefieres no empezar con un archivo en blanco? El Constructor de complementos escribe un primer borrador funcional a partir de una descripción, y la CLI de yourbot lo ejecuta localmente antes de que subas nada.
El viaje completo de un vistazo
Cada complemento pasa por los mismos cinco puntos, y estos documentos están organizados en el mismo orden — la barra de pestañas anterior los agrupa en Entender → Crear → Enviar → Referencia. Cada punto enlaza con la sección que lo cubre:
yourbot dev localmente, pruebas unitarias con MockContext.
paso 3
Enviar
yourbot validate, sube un zip o extrae desde GitHub.
paso 4
Publicar
Pasa revisión, ve en directo en el mercado, actualización automática de instalaciones.
paso 5
Ganar
Set plans, keep 70–85%, automatic payouts.
Bueno saberlo antes de construir
- Tu código no tiene acceso de red directo. Todo HTTP va a través de
ctx.httpa dominios que declares; las conexiones activas van a través dectx.ws. - Nada persiste en el disco. Los contenedores se limpian entre reinicios. El estado duradero pertenece en
ctx.kvoctx.sql. - Los recursos tienen límites. 64 MB de memoria y una fracción de vCPU por trabajador. Los números completos se encuentran en Límites y cuotas.
- Los temporizadores no se ejecutan por sí solos. Los complementos de Marketplace están orientados a eventos: el trabajo periódico se basa en tráfico de eventos con un período de enfriamiento. Consulta Modo de grupo.
- Leer lo que escribe la gente es una capacidad de privacidad. El texto del mensaje llega vacío a menos que solicites
events:message_contenty el servidor lo apruebe. Consulta el catálogo de capacidades. - Tu primera versión es revisada por una persona. Planifica una breve espera antes de que se publique. Consulta Publicar y revisar.
Pregunta frecuente existente
Salta directamente a la sección que responde tu pregunta. El cuadro de filtro anterior solo busca en la pestaña en la que te encuentras.
| Quiero… | Ve al |
|---|---|
| Reaccionar cuando alguien se une, publica o hace clic | Todos los eventos |
| comando de barra | Comandos de barra |
| Mensajes nuevos | events:message_content |
| Almacenar configuración por servidor o contadores | Almacén clave-valor |
| Mantener una clave API sin codificarla | Usuarios con acceso |
| Ejecutar consultas SQL reales | Almacenamiento e I/O: SQL en caja de arena |
| Llamar a una API externa | Simular HTTP saliente |
| Mantener una conexión en vivo a un servidor de juego | Almacenamiento e I/O: WebSockets |
| Hacer algo en un horario | Programaciones cron |
| Abre un formulario emergente (modal) | Crear: Diálogos modales |
| Actualiza un mensaje cuando se hace clic en un botón | Crear: Botones y menús |
| Agrega un enfriamiento o límite de velocidad a un comando | Almacenamiento e E/S: Estado efímero |
| Ver configuración | Manifiesto del panel (JSON) |
| Crea una interfaz de panel completamente personalizada | Paneles: Modo iframe |
| Probar mi complemento antes de cargarlo | Primeros pasos |
| Escribe pruebas unitarias para mis controladores | Producción: Pruebas |
| Maneja errores del SDK sin fallar | Producción: Manejo de errores |
| Entiende por qué se reinician los globales del módulo | Producción: Modo grupo |
| Ver qué puede tocar mi complemento | Referencia: Catálogo de capacidades |
| Verificar cada límite de tamaño y velocidad | Referencia: Límites y cuotas |
| Eliminar Plugin | Nombra tu plugin |
| Publicar & revisar | Publicar & revisar |
| Ve qué cambió en cada versión del SDK | Referencia: registro de cambios del SDK |
SDK v0.9.0 · Última actualización: julio de 2026 · Volver al Portal de desarrolladores