ServerVariables | Custom Data and Variables for Players

ServerVariables | Custom Data and Variables for Players

Por DonKolia 18 de enero de 2026
#gaming#Hytale#Minecraft#MySQL#plugins#ServerVariables#ServerVariables | Datos y Variables Personalizadas para Jugadores#Variables

ServerVariables

Basado en el plugin de Ajneb97 – ServerVariables de Minecraft

Mod de Hytale que permite almacenar y gestionar variables de jugadores en MySQL con validaciones y limitaciones configurables.

Autor: DonKolia
Versión: 1.0.0

Características

  • ✅ Almacenamiento persistente de variables en MySQL
  • ✅ Sistema de validación con tipos de datos (INTEGER, DOUBLE, TEXT)
  • ✅ Limitaciones configurables (valores mínimos/máximos, caracteres máximos)
  • ✅ Gestión automática de valores fuera de rango
  • ✅ API pública para otros plugins
  • ✅ Configuración a través de archivos YAML
  • ✅ Comandos completos con modo silencioso
  • ✅ Valores iniciales derivados automáticamente

Instalación

  • Coloca ServerVariables.jar en la carpeta mods/ de tu servidor Hytale
  • Inicia el servidor para generar automáticamente la configuración
  • Edita plugins/DonKolia_ServerVariables/config.json con tus credenciales de MySQL
  • Configura tus variables en plugins/DonKolia_ServerVariables/variables/
  • Reinicia el servidor o utiliza /svar reload
  • Configuración

    config.json

    El archivo config.json se genera automáticamente en plugins/DonKolia_ServerVariables/:

    {
      "databaseHost": "localhost",
      "databasePort": 3306,
      "databaseName": "hytale_vars",
      "databaseUser": "root",
      "databasePassword": "password"
    }

    Base de Datos

    El plugin crea automáticamente la tabla server_variables:

    CREATE TABLE server_variables (
        uuid VARCHAR(36) NOT NULL,
        player_name VARCHAR(16),
        var_key VARCHAR(64) NOT NULL,
        var_value TEXT,
        PRIMARY KEY (uuid, var_key)
    );

    Columnas:

    • uuid – UUID del jugador
    • player_name – Nombre del jugador (para consultas más fáciles)
    • var_key – Nombre de la variable
    • var_value – Valor almacenado

    Configuración de Variables

    Las variables se definen en archivos YAML dentro de plugins/DonKolia_ServerVariables/variables/.

    Archivos de Ejemplo

    En el primer inicio, se crean dos archivos de ejemplo:

    variables_numerales.yml

    variables:
      oro:
        value_type: INTEGER
        limitations:
          max_value: 999999
          min_value: 0
          manage_out_of_range: true
    
      nivel:
        value_type: INTEGER
        limitations:
          max_value: 100
          min_value: 1
          manage_out_of_range: true
    
      experiencia:
        value_type: INTEGER
        limitations:
          max_value: 1000000
          min_value: 0
          manage_out_of_range: true
    
      puntos-habilidad:
        value_type: INTEGER
        limitations:
          max_value: 500
          min_value: 0
          manage_out_of_range: true
    
      reputacion:
        value_type: DOUBLE
        limitations:
          max_value: 100.0
          min_value: -100.0
          manage_out_of_range: true

    variables_tipo_texto.yml

    variables:
      rango:
        value_type: TEXT
        limitations:
          max_characters: 20
    
      titulo:
        value_type: TEXT
        limitations:
          max_characters: 30
    
      clan:
        value_type: TEXT
        limitations:
          max_characters: 16
    
      prefijo:
        value_type: TEXT
        limitations:
          max_characters: 10
    
      sufijo:
        value_type: TEXT
        limitations:
          max_characters: 10

    Estructura de la Variable

    variables:
      variable-name:
        value_type: INTEGER|DOUBLE|TEXT
        limitations:
          # Para INTEGER y DOUBLE:
          max_value: 100
          min_value: 0
          manage_out_of_range: true
    
          # Para TEXT:
          max_characters: 50

    Tipos de Valor

    value_type:

    • INTEGER – Números enteros (ej.: 1, 100, -5)
    • DOUBLE – Números decimales (ej.: 1.5, 99.99, -10.25)
    • TEXT – Texto libre

    Limitaciones

    Para variables numéricas (INTEGER/DOUBLE):

    • max_value – Valor máximo permitido
    • min_value – Valor mínimo permitido (también el valor inicial)
    • manage_out_of_range – Si es true, ajusta automáticamente los valores fuera de rango al límite más cercano

    Para variables de texto (TEXT):

    • max_characters – Número máximo de caracteres permitidos

    Valores Iniciales

    Los valores iniciales se derivan automáticamente:

    • INTEGER/DOUBLE: El valor de min_value
    • TEXT: Cadena vacía ""

    Recargar Variables

    Después de crear o modificar archivos YAML:

    /svar reload
    

    Comandos

    Todos los comandos utilizan el formato /svar <subcomando> <argumentos>

    /svar set <variable> <valor> <jugador> [silent:true]

    Establece el valor de una variable.

    Validaciones:

    • La variable debe estar definida en los archivos YAML
    • El valor debe coincidir con el tipo de la variable
    • Se aplican las limitaciones configuradas

    Ejemplos:

    /svar set oro 1000 DonKolia
    /svar set nivel 5 DonKolia
    /svar set rango "Guerrero" DonKolia
    /svar set reputacion 75.5 DonKolia silent:true
    

    /svar get <variable> <jugador>

    Obtiene el valor de una variable.

    Comportamiento:

    • Si la variable no existe en la base de datos, devuelve el valor inicial
    • Valida que la variable esté definida en YAML

    Ejemplos:

    /svar get oro DonKolia
    /svar get nivel DonKolia
    

    /svar add <variable> <valor> <jugador> [silent:true]

    Agrega un valor a una variable numérica (INTEGER o DOUBLE).

    Validaciones:

    • Solo funciona con variables INTEGER o DOUBLE
    • Aplica limitaciones después de agregar

    Ejemplos:

    /svar add oro 100 DonKolia
    /svar add reputacion 5.5 DonKolia silent:true
    

    /svar reduce <variable> <valor> <jugador> [silent:true]

    Reduce el valor de una variable numérica (INTEGER o DOUBLE).

    Validaciones:

    • Solo funciona con variables INTEGER o DOUBLE
    • Aplica limitaciones después de restar

    Ejemplos:

    /svar reduce oro 50 DonKolia
    /svar reduce reputacion 10.0 DonKolia silent:true
    

    /svar reset <variable> <jugador> [silent:true]

    Restablece una variable a su valor inicial.

    Comportamiento:

    • INTEGER/DOUBLE: Se restablece a min_value
    • TEXT: Se restablece a cadena vacía

    Ejemplos:

    /svar reset oro DonKolia
    /svar reset nivel DonKolia silent:true
    

    /svar reload

    Recarga la configuración del plugin y las variables YAML.

    Ejemplo:

    /svar reload
    

    silent:true Parámetro

    Agrega silent:true al final del comando para suprimir los mensajes de confirmación.

    Ejemplo:

    /svar set oro 1000 DonKolia silent:true
    

    Gestión de Limitaciones

    manage_out_of_range: true

    Cuando está habilitado, los valores fuera de rango se ajustan automáticamente:

    oro:
      value_type: INTEGER
      limitations:
        max_value: 1000
        min_value: 0
        manage_out_of_range: true

    Ejemplos:

    • /svar set oro 1500 DonKolia → Guardado como 1000
    • /svar set oro -50 DonKolia → Guardado como 0

    manage_out_of_range: false

    Cuando está deshabilitado, la operación es rechazada:

    nivel:
      value_type: INTEGER
      limitations:
        max_value: 100
        min_value: 1
        manage_out_of_range: false

    Ejemplos:

    • /svar set nivel 150 DonKolia → Error: “El valor 150 supera el máximo de 100”

    Mensajes de Error Comunes

    “La variable ‘X’ no está definida en los archivos de configuración”
    La variable no existe en ningún archivo YAML. Créala primero.

    “Tipo de valor no válido para la variable ‘X’. Se esperaba: INTEGER”
    El valor proporcionado no coincide con el tipo de la variable.

    “El valor X excede el máximo de Y”
    El valor excede el máximo permitido y manage_out_of_range está configurado como false.

    “El texto excede la longitud máxima de X caracteres”
    El texto es demasiado largo… [Truncado]

    Relacionados:

    Hysouls

    Hysouls

    #gaming#Hysouls#Hytale

    ¡El mod todavía está en una fase alfa muy temprana! Hysouls tiene como objetivo añadir elementos de soulslike a Hytale.A...

    Connecting Planters

    Connecting Planters

    #Conectando Macetas#gaming#Hytale

    Este mod añade dos macetas conectadas al juego para permitir a los usuarios hacer macetas largas y muy bonitas para su i...

    Instant Respawn

    Instant Respawn

    #death screen#gaming#Hytale

    Este plugin elimina completamente la pantalla de muerte en Hytale, similar a la regla de juego doImmediateRespawn de Min...

    Weapon Flow

    Weapon Flow

    #cooldowns#Flujo de Armas#gaming

    WeaponFlow WeaponFlow reemplaza el sistema nativo de habilidades de arma de Hytale basado en golpe a carga con tiempos d...

    Alterverses

    Alterverses

    #actualización#cambio#comunidad

    Change your Hytale server name 18 January 2026 ...