Bienvenido al repositorio oficial del Índice de Data Packs de la Comunidad. Este repositorio es un catálogo público, descentralizado y de código abierto gestionado automáticamente para la comunidad de jugadores.
Para mantener el juego justo, consistente y legalmente sostenible para todos:
.zip. Solo almacena los metadatos neutros (título, autor, versión, checksum y enlace de descarga externa directa proporcionado por el creador).title, description y author de tu propuesta no pueden contener nombres de clubes, ligas, federaciones ni jugadores reales. Usa términos genéricos (época, temporada, estilo, edición). Ejemplos válidos: "Temporada 2026", "Época Dorada 2006", "Edición Retro". Ejemplos que el bot rechazará automáticamente: "Pack Real Madrid", "Champions Edition", "Nombres de la Premier League".
database.json, empaquetado en tu propio .zip, en tu propio hosting — nunca en este repositorio.checksum queda fijo en el índice. Si reemplazas el archivo en tu hosting después de la aprobación, el juego rechazará la descarga por no coincidir el hash — deberás enviar una nueva propuesta con la versión actualizada.Tu paquete debe estar comprimido en un único archivo .zip (peso máximo: 50 MB comprimido, 150 MB descomprimido) con la siguiente estructura interna:
mi_pack.zip
├── manifest.json
├── database.json
└── photos/
├── campe_01.png
├── campe_02.png
└── ...
Reglas de seguridad del paquete (validadas automáticamente, tu PR será rechazado si no las cumple):
../ o rutas absolutas (protección anti zip slip)..json en la raíz y .png dentro de photos/ — ningún ejecutable, script u otro tipo de archivo.manifest.json{
"schemaVersion": 2,
"packId": "pack_temporada_2026",
"title": "Temporada 2026",
"author": "TuAlias",
"version": "1.0.0",
"description": "Sustituciones cosméticas de jugadores y fotos actualizadas.",
"totalCards": 80,
"hasPhotos": true
}
Nota: incluso dentro de tu propio
manifest.json(que va en tu hosting, no en este repo), evita usar aquí nombres de clubes/ligas reales entitle/description— este archivo puede quedar indexado por buscadores si tu hosting es público. Los nombres reales van solo endatabase.json.
database.json{
"cards": [
{
"cardId": "campe_01",
"playerName": "Nombre Jugador",
"initials": "NJ",
"position": "DEL"
}
]
}
Cada cardId debe existir en el catálogo oficial de cartas del juego (catalog/card_ids.json en este mismo repositorio) — cualquier ID desconocido hará que la propuesta falle.
photos/Contiene las imágenes de los futbolistas en formato PNG cuadrado (mínimo 256×256 px, recomendado 512×512 px). El nombre de cada archivo debe coincidir exactamente con el cardId (ejemplo: campe_01.png).
El enlace debe ser una descarga directa (direct download URL).
Todo el proceso de revisión e indexación es 100% automático mediante GitHub Actions. Ningún humano de este repositorio aprueba, lee ni cura el contenido de tu paquete manualmente:
proposals/ con el identificador de tu pack, por ejemplo proposals/pack_temporada_2026.json:
{
"id": "pack_temporada_2026",
"title": "Temporada 2026",
"author": "TuAlias",
"version": "1.0.0",
"sizeMb": 8.4,
"downloadUrl": "https://github.com/tu-usuario/tu-repo/releases/download/v1.0/mi_pack.zip"
}
main de este repositorio..zip temporalmente, solo en memoria del proceso de validación (nunca lo guarda en este repositorio) y ejecuta las comprobaciones:
manifest.json y database.json cumplan el schema exacto.cardId existan en el catálogo oficial del juego.title, description y author no contengan términos de la lista de marcas/nombres bloqueados (Principio 4).
5.Si todas las pruebas pasan en verde, el bot calcula el sha256 del archivo, añade solo los campos neutros (id, title, author, version, sizeMb, cardsCount, downloadUrl, checksumSha256, submittedAt, isRecommended, bannerColor) al datapacks_index.json, y fusiona (merge) tu Pull Request automáticamente.Si un tercero notifica que tu pack infringe derechos de autor, marca registrada o derecho de imagen, será retirado del índice de forma preventiva mientras se revisa. Este repositorio no tiene forma de verificar la titularidad de cada nombre o fotografía que un creador decide usar — esa responsabilidad es de quien sube el contenido a su propio hosting.