Kytale

Kytale

Por AmoAsterVT 17 de enero de 2026
#Desarrollo de Plugins#gaming#Hytale#Kotlin#Kytale#programación

Framework de Kotlin para el desarrollo de plugins de servidor Hytale.

Kytale agrupa el runtime de Kotlin y proporciona DSLs idiomáticas para construir plugins, sistemas de juego, interfaces de usuario, comandos, eventos, configuraciones y más, todo con soporte de primera clase para Kotlin.

Ver el código fuente y la documentación completa en GitHub

✨ Características

  • Runtime de Kotlin – stdlib, reflect, coroutines (2.2.0), kotlinx.serialization
  • DSL de Eventos – Suscripciones a eventos seguras por tipo con genéricos reificados
  • DSL de Comandos – Comandos estructurados con soporte para async / coroutines
  • DSL de Configuración – Configuración JSON a través de delegados de propiedades
  • DSL de Programación – Programación de tareas basada en coroutines
  • DSL de UI – Generación de UI en tiempo de compilación y elementos interactivos
  • Hexweave – Capa de ayuda opcional para eventos de jugadores, comandos, tareas, sistemas ECS
  • Extensiones – Utilidades para entidades, vectores, velocidad, objetivos, daño

🛠️ Inicio Rápido

Configuración de Gradle

Agrega Kytale a tu build.gradle.kts:

plugins {
    kotlin("jvm") version "2.2.0"
    kotlin("plugin.serialization") version "2.2.0"
    id("hytale-mod") version "0.+"
}

repositories {
    mavenCentral()
    maven("https://cursemaven.com")
    maven("https://maven.hytale-modding.info/releases")
}

dependencies {
    compileOnly("curse.maven:kytale-PROJECTID:FILEID")
}

Dependencia de Runtime

Agrega Kytale a tu manifest.json:

{
  "Dependencies": {
    "AmoAster:Kytale": "*"
  }
}

Plugin de Ejemplo

class MyPlugin(init: JavaPluginInit) : KotlinPlugin(init) {

    override fun setup() {
        super.setup()

        event<PlayerConnectEvent> { event ->
            logger.info { "Jugador conectado: ${event.playerRef.uuid}" }
        }

        command("greet", "Saludar al jugador") {
            executes { ctx ->
                ctx.sendMessage(Message.raw("¡Hola!"))
            }
        }
    }
}

📌 Ciclo de Vida

  • Constructor – Configurar el estado básico
  • setup() – Registrar eventos, comandos, UI
  • start() – Post-inicialización
  • shutdown() – Limpieza

📘 Aprende Más

La documentación completa, la estructura del proyecto, ejemplos de DSL, sistema de UI y uso avanzado están disponibles en GitHub: https://github.com/briarss/Kytale/tree/main

📄 Licencia

Licencia MIT

Relacionados:

TaleLibs

TaleLibs

#Biblioteca#Biblioteca de Cuentos#Desarrollo de Plugins

Una potente biblioteca de Kotlin para el desarrollo de plugins de Hytale. TaleLib proporciona herramientas y utilidades ...

empyrean

empyrean

#Aventura#biomas#exploración

Adéntrate en el Reino Empíreo, una impresionante dimensión celestial que redefine la exploración vertical en Hytale. Isl...

Atomitale: Wasteland Weaponry

Atomitale: Wasteland Weaponry

#armas#Atomitale: Wasteland Weaponry#cuerpo a cuerpo

Actualmente añade: 5 Armas Cuerpo a Cuerpo Barra de Neumático (Espada) Bate de Béisbol (Maza) Martillo de Guerra (Maza) ...

Eternal Seeds Protection

Eternal Seeds Protection

#Eternal Seeds#Farming#Hytale

🌱 Eternal Seeds Protection Romper accidentalmente semillas eternas completamente crecidas y perderlas para siempre pued...

Dark Woods

Dark Woods

#Actualizaciones#Bosques Oscuros#madera

Las futuras actualizaciones añadirán más variantes de madera (tablas, cercas, techos, etc.) con el objetivo de tener var...

DiscordWhitelist

DiscordWhitelist

#Bot#Configuración#Discord

Hytale Discord Whitelist Mod para servidores de Hytale para poner en la lista blanca a los usuarios utilizando un código...