CommunityProgramación y desarrollogithub.com

CGRLabs/horizon-content-mod

Crea, valida e instala mods de contenido de Horizon (.hmod) — mods basados en datos para el juego Horizon (reescritura en Rust de Minecraft Java Edition 26.3).

¿Qué es horizon-content-mod?

Esta habilidad permite a desarrolladores y creadores de mods construir, validar e instalar mods de contenido de Horizon (.hmod), que son completamente basados en datos y no contienen código ejecutable. Es útil para agregar recetas, bloques, objetos, tablas de botín, etiquetas, archivos de idioma, y para depurar mods que no aparecen en el juego. Funciona con el pipeline de mods de Horizon, utilizando un manifiesto `horizon-mod.toml` y directorios `data/` y `assets/`. Soporta plataformas como Claude Code, Cursor y otros agentes que ejecuten herramientas de línea de comandos como `cargo horizon-mod`. El flujo típico incluye scaffold, adición de contenido bajo el propio namespace del mod, construcción y verificación con comandos como `cargo horizon-mod build` y `cargo horizon-mod check`, seguido de instalación en el directorio `horizon-mods/` del juego. La habilidad también proporciona referencias extensas sobre formatos de datos, errores silenciosos y estrategias de depuración, basadas en la versión verificada Horizon 0.2.97.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CGRLabs/horizon-ai-skills/tree/HEAD/skills/horizon-content-mod

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Mods de Contenido de Horizon (.hmod)

Los mods de contenido de Horizon son solo datos y activos — sin código. Un .hmod es un zip que contiene un manifiesto horizon-mod.toml más directorios opcionales assets/ y data/, superpuestos sobre los recursos base del juego al inicio. WebAssembly (mod.wasm) está obsoleto y rechazado. Si el usuario quiere comportamiento ejecutable, eso es un mod nativo — consulta la habilidad horizon-native-mod en su lugar.

El ciclo de trabajo

  1. Scaffold la carpeta del proyecto (manifiesto + directorios data//assets/), o ejecuta cargo horizon-mod new <ruta> --name "Nombre". Si usaste el scaffold: elimina su contenido de ejemplo generado (estados de bloques, objetos, modelos, declaraciones de bloques, tablas de botín y cualquier cosa bajo data/minecraft/) antes de añadir el tuyo — demuestra los patrones de fallo silencioso descritos en references/pitfalls.md. Conserva solo el manifiesto y tus propios archivos.
  2. Añade contenido bajo el propio namespace del mod: data/<mod-id>/recipe/..., assets/<mod-id>/lang/.... Nunca escribas en data/minecraft/ — coloca las sobrescrituras en data/<mod-id>/.
  3. Construye: cargo horizon-mod build → produce target/horizon-mod/<id>.hmod.
  4. Verifica: cargo horizon-mod check target/horizon-mod/<id>.hmod.
  5. Instala: copia el .hmod en el directorio horizon-mods/ del juego. Dónde está: dentro de la carpeta de instalación de Horizon, junto a horizon-client.exe y horizon-mods.txt (ej. ...\horizon-windows-x64\horizon-mods\) — aquí es donde nuestras instalaciones cargan los mods. El directorio de datos del usuario (%APPDATA%\Roaming\horizon) es una ubicación diferente y no contiene una carpeta de mods. Crea la carpeta si una instalación nueva no la tiene.
  6. Habilita: los mods de contenido se cargan una vez al inicio — cierra el juego por completo, relanza, Opciones → Mods → habilitar, cierra por completo de nuevo, relanza, carga un mundo.

Después del paso 3, opcionalmente ejecuta horizon-inspect target/horizon-mod/<id>.hmod --json (código de salida 0 = válido) para obtener un informe de seguridad/manifiesto si la herramienta está instalada.

Empieza con lo que está probado que funciona

Las recetas basadas en datos con ids de objetos vanilla son la base verificada — funcionan sin texturas, modelos ni registros de objetos:

{
  "type": "minecraft:smelting",
  "cookingtime": 200,
  "experience": 0.35,
  "ingredient": "minecraft:rotten_flesh",
  "result": { "id": "minecraft:leather" }
}

(minecraft:blasting para alto horno; cookingtime en ticks, 200 = ~10 s.)

Añade un tipo de contenido a la vez y vuelve a probar después de cada uno. Horizon puede rechazar contenido que no entiende de forma silenciosa, por lo que un mod grande es indepurable.

Errores silenciosos comprobados (verificado en Horizon 0.2.97)

Lee references/pitfalls.md antes de diseñar algo más allá de recetas con objetos vanilla — los modos de fallo son silenciosos y cuestan horas. Titulares:

  • Las declaraciones de nuevos objetos/bloques pueden no aparecer en el juego; el juego puede rechazarlas sin registrar errores.
  • Los components de objetos no son compatibles en esta versión.
  • El manifiesto usa deny_unknown_fields; los ids de mod solo permiten [a-z0-9_].

Referencias — lee según sea necesario

  • references/manifest-reference.md — referencia completa de campos de horizon-mod.toml: líneas de API, capacidades, lado, reglas de id. Léelo antes de escribir cualquier manifiesto.
  • references/data-and-assets.md — formatos de datos verificados (recetas, idioma) y diseño de activos. Léelo al añadir contenido más allá de una receta de fundición.
  • references/pitfalls.md — catálogo de fallos silenciosos y estrategia de depuración. Léelo antes de probar y siempre que "el mod no aparece".
  • references/validation-and-publishing.md — uso del inspector/verificador, reglas de registro (index.json, revoked.toml, MOD-POLICY), empaquetado determinista. Léelo antes de publicar.

Reglas no negociables

  • Los mods de contenido declaran capacidades; nunca solicites más de las que el mod necesita — los jugadores las ven antes de habilitar.
  • Los jars de mods de Java no se ejecutan en Horizon; no intentes portar archivos .jar, porta sus datos.
  • Horizon no contiene activos de Mojang; nunca incluyas activos de Minecraft en un mod. Deriva todo o referencia ids vanilla.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados