Razas personalizadas

De DragonMineZ Wiki
Revisión del 00:58 22 oct 2026 de FuzzyBot (discusión | contribs.) (Updating to match new version of source page)

Las razas personalizadas son razas jugables que añades a DragonMineZ solo con archivos de configuración. No necesitas código Java ni un jar de addon: una carpeta con unos pocos archivos JSON define la apariencia de la raza, sus clases, su habilidad racial y sus transformaciones, y la raza aparece entonces en la creación de personaje.

Cómo encuentra DragonMineZ las razas

DragonMineZ carga primero sus razas incluidas (human, saiyan, namekian, frostdemon, bioandroid, majin, glind) y luego revisa las subcarpetas de config/dragonminez/races/. Cualquier otro nombre de carpeta que haya ahí se trata como la clave de una raza personalizada (usa minúsculas). Cada carpeta de raza contiene:

config/dragonminez/races/<race_key>/
  character.json      # appearance, model, racial skill, form skill prices
  stats.json          # per-class base stats and scaling
  forms/*.json        # the race's transformation groups

Si creas una carpeta vacía, DragonMineZ genera un character.json y un stats.json con valores neutros la próxima vez que se cargue la configuración. No genera ninguna forma para una raza personalizada: esas las añades tú (consulta el paso 3).

Un buen punto de partida es copiar la carpeta de una raza existente (por ejemplo races/saiyan/), cambiarle el nombre y ajustar los valores que contiene.

Código fuente: src/main/java/com/dragonminez/common/config/ConfigManager.java (loadAllRaces, createOrLoadRace).

Versión de la configuración Cada archivo lleva un texto "configVersion" (actualmente "2.2.0"). Un archivo personalizado con una versión anterior o sin versión se respalda en config/dragonminez/oldBackup/ y se vuelve a guardar con la versión actual; tus valores se conservan. Un archivo con sintaxis JSON rota nunca se sobrescribe: se reporta y se omite hasta que lo corrijas. Consulta Cómo usar JSON y Recargar y actualizar cambios.

Paso 1: configura el personaje

character.json define la apariencia, el modelo, la habilidad racial y los precios de las habilidades de forma de la raza:

{
  "configVersion": "2.2.0",
  "hasGender": false,
  "useVanillaSkin": false,
  "customModel": "saibaman",
  "isLayered": true,
  "headBones": ["ears1"],
  "racialSkill": "namekian",
  "hasSaiyanTail": false,
  "auraType": "kakarot",
  "auraType3D": "userPreference",
  "defaultModelScaling": [0.9375, 0.9375, 0.9375],
  "defaultBodyType": 0,
  "slimBodyTypes": [],
  "defaultHairType": 0,
  "defaultEyesType": 0,
  "defaultNoseType": 0,
  "defaultMouthType": 0,
  "defaultTattooType": 0,
  "defaultBodyColor": "#3E8E2E",
  "defaultBodyColor2": "#2A5C20",
  "defaultBodyColor3": "#9BD36A",
  "defaultHairColor": "#222629",
  "defaultEye1Color": "#B40000",
  "defaultEye2Color": "#B40000",
  "defaultAuraColor": "#7FFF00",
  "formSkillsCosts": {
    "superforms": { "buyFromMaster": false, "prices": [20000, 45000, 80000] },
    "godforms": { "buyFromMaster": false, "prices": [] },
    "legendaryforms": { "buyFromMaster": false, "prices": [] }
  }
}
Campo Tipo Qué hace
hasGender Booleano true le da a la raza la opción de elegir hombre/mujer. Los modelos y texturas personalizados usan entonces los sufijos _male / _female (consulta Modelos y recursos propios).
useVanillaSkin Booleano Con true, el tipo de cuerpo 0 muestra la propia skin de Minecraft del jugador; las texturas de cuerpo propias de la raza empiezan en el tipo de cuerpo 1.
customModel Texto Clave del modelo. Vacía significa que la raza se ve como un Humano. Una clave incluida (por ejemplo namekian, majin o frostdemon) reutiliza ese modelo y sus texturas; cualquier otra clave carga tu propio modelo. Las claves incluidas aparecen en Modelos y recursos propios.
isLayered Booleano true: el cuerpo se dibuja con tres capas de textura teñibles (colores de cuerpo 1, 2 y 3) y la raza usa sus propias texturas de cara. false: una sola textura de cuerpo sin capas y caras prestadas del Humano.
headBones Lista de textos Nombres de huesos que el jugador puede elegir en la personalización del personaje (uno a la vez, más una opción "ninguno"), por ejemplo orejas, cuernos o antenas. Une huesos con + para mostrar varios a la vez ("ears1+horns2"). La entrada especial "hair" activa el editor de pelo para la raza. Los huesos se buscan primero en geo/entity/raceparts.geo.json y luego en el modelo de la raza.
racialSkill Texto Qué habilidad racial usa la raza: human, saiyan, namekian, frostdemon, bioandroid, majin o glind. Una raza personalizada usa el mismo ajuste que la raza de la que la toma (general-server.json → racialSkills.<skill>). Consulta Habilidades raciales.
hasSaiyanTail Booleano Le da a la raza una cola Saiyajin.
auraType Texto Conjunto de sprites del aura 2D: kakarot o god.
auraType3D Texto Estilo del aura 3D de la forma base: smooth, sparking, god o userPreference (sigue el ajuste de cada jugador).
aura3DStyle Objeto Ajuste fino de la forma del aura 3D base. Las claves aparecen en Formas personalizadas.
defaultModelScaling [x, y, z] Tamaño base del modelo.
defaultBodyType Entero Tipo de cuerpo elegido por defecto en la creación de personaje.
slimBodyTypes Lista de enteros Tipos de cuerpo (aparte del 0) que usan brazos delgados. El tipo de cuerpo 0 siempre sigue el modelo de skin del jugador.
defaultHairType, defaultEyesType, defaultNoseType, defaultMouthType, defaultTattooType Entero Índices de personalización por defecto.
defaultBodyColor, defaultBodyColor2, defaultBodyColor3, defaultHairColor, defaultEye1Color, defaultEye2Color, defaultAuraColor Texto hexadecimal Colores por defecto en la creación de personaje.
formSkillsCosts Objeto Una entrada por cada habilidad de forma que la raza puede subir de nivel (ver abajo).

Origen del esquema: src/main/java/com/dragonminez/common/config/RaceCharacterConfig.java.

Resource packs In 2.2 the built-in humansaiyan body shading textures were renamed from bodytype_*_layer2.png to bodytype_*_layer1_shadow.png (in textures/entity/races/humansaiyan/). A resource pack that replaced the old files must rename them.

Precios de las habilidades de forma

Cada clave de formSkillsCosts es una habilidad de forma: superforms, legendaryforms, godforms o androidforms. El valor es un array simple de precios o un objeto con estos campos:

Campo Tipo Qué hace
prices Lista de números Precio en TP de cada nivel, en orden. La cantidad de entradas es el nivel máximo de la habilidad, así que una lista vacía significa que la raza no puede subir de nivel esa habilidad.
buyFromMaster Booleano true: el primer nivel se tiene que comprar a un maestro antes de poder subir la habilidad desde el menú de Habilidades.

Una forma se desbloquea cuando esta habilidad alcanza el unlockOnSkillLevel de la forma (consulta el paso 3).

Mejora androide para razas personalizadas

La mejora androide del Dr. Gero se ofrece a cualquier raza cuyo formSkillsCosts tenga al menos un precio en androidforms (por defecto solo los Humanos). La mejora pone al jugador en la forma androidbase del grupo androidforms, así que la raza también necesita un grupo de formas androidforms en su carpeta forms/. Lo más fácil es copiar races/human/forms/androidforms.json en la carpeta forms/ de tu raza. Consulta Androide para ver la mejora en sí.

Paso 2: configura las clases

stats.json contiene un objeto classes con un bloque por clase. DragonMineZ genera las ocho clases por defecto: warrior, spiritualist, martialartist, berserker, paladin, tank, cleric y unversed (consulta Clases). Puedes añadir tu propia clase duplicando un bloque con una clave nueva; aparece en la creación de personaje de esa raza. Un jugador cuya clase no esté en el archivo de la raza usa los valores de warrior.

Dentro de cada bloque de clase:

Campo Tipo Qué hace
baseStats Objeto Estadísticas iniciales: STR, SKP, RES, VIT, PWR, ENE.
statScaling Objeto STR_scaling, SKP_scaling, STM_scaling, DEF_scaling, VIT_scaling, PWR_scaling, ENE_scaling. Los opcionales VIT_scaling_max y DEF_scaling_max hacen que el escalado crezca desde el valor normal hacia ese máximo a medida que sube la estadística (hasta el punto de inflexión de la curva definido en general-server.json); omítelos para un escalado fijo.
baseHp5, hp5VitScaling Número Vida regenerada cada 5 segundos, más una parte de VIT.
baseEp5, ep5EneScaling Número Ki regenerado cada 5 segundos, más una parte de ENE.
baseSp5, sp5StmScaling, sp5ResScaling Número Stamina regenerada cada 5 segundos, más una parte de VIT (sp5StmScaling, a pesar de su nombre) y una parte de RES (sp5ResScaling, 0 si falta).
tpCostMultiplier, tpGainMultiplier Número Multiplicadores de toda la clase sobre los costos y las ganancias de TP.
passive Objeto enabled más un mapa values con el ajuste de la pasiva de la clase (las claves dependen de la clase).

Origen del esquema: src/main/java/com/dragonminez/common/config/RaceStatsConfig.java. Consulta Estadísticas y atributos para ver qué hace cada estadística.

Paso 3: añade grupos de formas

Artículo principal: Formas personalizadas

Cada archivo de races/<race_key>/forms/ define un grupo de formas. Las formas de raza usan exactamente el mismo esquema que las formas acumulables, así que la referencia completa de campos está en Formas personalizadas. Los campos más importantes para un grupo de raza son:

  • groupName: la clave del grupo (en minúsculas). Los grupos se identifican por este valor, no por el nombre del archivo.
  • formType: la habilidad de forma que desbloquea el grupo: superforms, legendaryforms, godforms o androidforms. La raza necesita precios para esa habilidad en formSkillsCosts.
  • forms: las formas del grupo, en orden de transformación. El unlockOnSkillLevel de cada forma es el nivel de habilidad que la desbloquea.
  • customModel: una clave de modelo para la forma (se busca igual que el customModel de la raza).

Los archivos cuyo nombre empieza por old_ se ignoran. Consulta Transformaciones para ver cómo funcionan las formas en el juego.

Paso 4: añade claves de traducción

Los nombres de razas y formas se traducen con estas claves:

  • race.dragonminez.<race_key>: el nombre de la raza.
  • race.dragonminez.<race_key>.desc: una breve descripción que se muestra en la creación de personaje.
  • race.dragonminez.<race_key>.group.<group_key>: el nombre de un grupo de formas.
  • race.dragonminez.<race_key>.form.<group_key>.<form_key>: el nombre de una forma.

El archivo de idioma por defecto es src/main/resources/assets/dragonminez/lang/en_us.json. Puedes editar tu en_us.json o crear un nuevo archivo de idioma para tu raza personalizada. No necesitas añadir claves de traducción para nada más: DragonMineZ combina automáticamente las traducciones ya hechas en Crowdin con las tuyas.

Paso 5: recarga y valida

  1. Guarda tus archivos JSON.
  2. Ejecuta /dmzreload config (consulta Recargar y actualizar cambios).
  3. Abre la creación de personaje y comprueba que aparece tu raza.
  4. Revisa sus formas, colores y escalado en el juego.