Cómo hacer tu propia mazmorra
Una mazmorra nueva son dos archivos JSON: la horda que vive dentro y la propia mazmorra. El juego la construye sola en el mundo: los pisos, las salas con sus rejas, la arena del jefe, la sala del tesoro y el portal de vuelta. No hace falta programar.
Paso 1: la horda
La horda son los enemigos que salen en cada sala. Crea mods/horde/hordes/legion_osario.json:
{
"id": "legion_osario",
"name": "Legión del Osario",
"countScale": 1.0,
"units": [
{
"mob": "crypt_skeleton",
"weight": 60
},
{
"mob": "bone_sniper",
"weight": 25
},
{
"mob": "acolyte_necromancer",
"weight": 15,
"fromLevel": 12
}
]
}| Campo | Qué es |
|---|---|
id | Identificador único de la horda. La mazmorra la nombra con él. |
name | Nombre visible. |
countScale | Multiplica cuántos enemigos salen por sala (de 0,01 a 20; 1 = normal). La cantidad base según el nivel está en mods/horde/rules.json. |
units | Las tropas. Cada una lleva mob (el id de una criatura de mods/mobs o de mods/factions), weight (su proporción: aquí, 60 esqueletos por cada 25 francotiradores) y, si quieres, fromLevel (desde qué nivel de mazmorra aparece; por defecto, desde el 1). |
Criaturas de hueso que ya existen: crypt_skeleton (Esqueleto Guardián de Cripta), bone_sniper (Arquero Óseo de Tiro Rápido), acolyte_necromancer (Nigromante de Túnica Rota), lich_commander (Señor de la Cripta Esquelético), undead_horde (Esqueleto de la horda), undead_archer (Arquero esquelético), undead_caster (Nigromante de hueso). Cada una muestra su id al pie de su página del bestiario.
Paso 2: la mazmorra
Crea mods/dungeons/osario.json:
{
"format": 1,
"id": "osario",
"name": "El Osario sin Nombre",
"biomes": [
"forest",
"plains"
],
"km": [
0.5,
3
],
"level": 8,
"floors": 2,
"rooms": 7,
"faction": "legion_osario",
"boss": "torvald",
"weight": 10,
"theme": {
"wall": "cobblestone",
"wallAlt": "mossy_stone",
"floor": "stone",
"ceiling": "stone",
"pillar": "wood",
"light": "lantern",
"accent": "mushroom_brown"
}
}| Campo | Qué es | Si no lo pones |
|---|---|---|
id | Obligatorio. Identificador único. | — |
biomes | Obligatorio. En qué biomas puede salir (al menos uno). Los ids están en la referencia de datos. | — |
name | Nombre que sale al entrar y en el mapa. | el id |
faction | El id de la horda del paso 1. | salas vacías |
boss | El jefe de la arena: una criatura con bloque "boss". Aquí, Capitán Esquelético Torvald. Todos los jefes están en Jefes y únicos. | sin jefe |
level | Nivel de la mazmorra, de 1 a 500: el de sus enemigos y su botín. | 1 |
floors | Pisos, de 1 a 5. | 1 |
rooms | Salas de combate repartidas entre los pisos, de 2 a 14 (además de la arena y el tesoro). | 6 |
km | [mín, máx]: a cuántos kilómetros del inicio del mundo puede salir. Nunca sale a menos de 0,25 km. | a cualquier distancia |
weight | Cuánto sale frente a las demás mazmorras que encajan en el mismo sitio, de 0 a 1000. | 10 |
style | crypt (cripta), mine (mina) o sunken (hundida: sólo sale bajo el agua). | crypt |
flood | Agua dentro: none, arena (sólo la arena) o all. | all en las hundidas; none en las demás |
y | Altura de la mazmorra, de 8 a 60. | la elige el juego |
theme | Los bloques: wall (pared), wallAlt (pared alterna), floor (suelo), ceiling (techo), pillar (columnas), light (luces), accent (adornos) y, en las minas, ore y oreAlt (vetas). Los ids de bloque están en la referencia. | piedra labrada y faroles |
"format": 1 no hace falta, pero así quedan igual que los archivos del juego.
Paso 3: en inglés (opcional)
Para que el nombre salga traducido a quien juega en inglés, crea mods/lang/en/dungeons/osario.json y mods/lang/en/horde/hordes/legion_osario.json:
{
"id": "osario",
"name": "The Nameless Ossuary"
}{
"id": "legion_osario",
"name": "Ossuary Legion"
}Paso 4: probarla
- Los datos se leen al arrancar: cierra el juego y ábrelo de nuevo (F4 recarga los modelos, no los datos).
- Las mazmorras se colocan al generar el terreno: búscala en un mundo nuevo o en zonas que aún no hayas visitado.
- Para encontrarla rápido mientras pruebas, sube
weighta 1000 y ponkmcerca del inicio, por ejemplo[0.3, 2]. Sale en el mapa cuando pasas cerca de su entrada. Después vuelve a dejar elweighten 10.
style mal escrito, una coma de más), el juego la salta sin avisar. Los errores de la horda, en cambio, sí salen en el aviso de arriba de la pantalla al arrancar. Y si la mazmorra nombra una horda que no existe, al entrar en cada sala verás «no hay horda …» y la sala se da por despejada.Para jugarla en LAN o en un servidor, todos necesitan la misma carpeta mods: el juego avisa si no coincide.
¿Y los spawners?
En la Alfa 0.2.3.1 no hay spawners: los enemigos de la horda salen al entrar en cada sala y, cuando caen todos, se abren las rejas. ¿Tienes ideas de cómo deberían funcionar? Cuéntaselas a Santiago en el Discord.
¿Ya la tienes? Compártela en el portal de mods.
Make your own dungeon (English)
A new dungeon is two JSON files: the horde that lives inside and the dungeon itself. The game builds it in the world on its own: floors, gated rooms, the boss arena, the treasure room and the portal back. No coding needed. Works from Alpha 0.2.3.1 (the free one) on.
- Horde:
mods/horde/hordes/<id>.jsonwithid,name,countScale(0.01–20, multiplies how many enemies per room) andunits: each one hasmob(a creature id frommods/mobsormods/factions),weight(its share) and optionallyfromLevel(from which dungeon level it shows up). See the first example above. - Dungeon:
mods/dungeons/<id>.json. Required:idandbiomes(at least one). Optional:name,faction(the horde id),boss(a creature with a"boss"block),level1–500,floors1–5,rooms2–14,km[min, max] from the world start,weight0–1000,stylecrypt / mine / sunken (sunken only spawns underwater),floodnone / arena / all,y8–60 andthemewith block ids. See the second example above; biome and block ids are in the data reference. - English name (optional):
mods/lang/en/dungeons/<id>.jsonwith{"id": "...", "name": "..."}, and the same for the horde inmods/lang/en/horde/hordes/. - Test it: restart the game (data is read at startup) and look in a new world or in unexplored areas. To find it fast, use
"weight": 1000and"km": [0.3, 2]while testing. If it never shows up, check the dungeon file: a dungeon with an error is skipped without a warning for now. Horde errors do show up at startup.
Spawners: Alpha 0.2.3.1 has none. The horde appears when you enter each room, and the gates open when it is cleared. Ideas are welcome on our Discord.
