Repository navigation
Wiki ES
Guía para jugadores y creadores de modpacks. Mod umc (NeoForge 1.21.1), autor NadienDev.
- Qué es y dependencias
- Contenido propio
- Configuración
- Compatibilidad con KubeJS
- Cultivos de Mystical Agriculture
- Preguntas frecuentes y problemas conocidos
Ultimate Mod Compats (id umc) es un addon para Enchanted que hace dos cosas:
- Añade contenido propio: criaturas (hombre lobo, vampiro, cazador y mobs nuevos), un mundo espiritual y artesanía de brujas (familiares, ropa, plantas).
- Añade compatibilidad con KubeJS para otros mods (recetas y eventos que esos mods no traen), y 54 cultivos extra para Mystical Agriculture.
| Mod | Tipo | Para qué |
|---|---|---|
| NeoForge 21.1.240 o superior (Minecraft 1.21.1) | Obligatorio | Cargador |
Enchanted 4.2.7 o superior (enchanted) |
Obligatorio | Es el mod sobre el que se construye |
GeckoLib 4.7 o superior (geckolib) |
Obligatorio | Modelos y animaciones de las criaturas |
KubeJS 2101.7.2 o superior (kubejs) |
Opcional | Todo el apartado 4 |
Thaumaturge (thaumaturge) |
Opcional | Módulo KubeJS y 14 cultivos de Mystical Agriculture |
Applied Energistics 2 (ae2) |
Opcional | Módulo KubeJS |
Advanced AE (advanced_ae) |
Opcional | Módulo KubeJS |
Extended AE (extendedae) |
Opcional | Módulo KubeJS |
Create (create) |
Opcional | Módulo KubeJS |
Generator Galore (generatorgalore) |
Opcional | Módulo KubeJS |
Excessive Utilities (excessive_utilities) |
Opcional | Módulo KubeJS |
Functional Storage (functionalstorage) |
Opcional | Módulo KubeJS |
Mystical Agriculture (mysticalagriculture) |
Opcional | Módulo KubeJS y cultivos extra |
Cada módulo de KubeJS solo se activa si el mod al que apoya está instalado. Si no lo está, el evento o la receta de ese mod no existe y el script da error.
Los textos del mod están en inglés y en español (es_es, es_ar y es_mx).
Resumen corto de lo que añade el mod por sí mismo. Todo se puede apagar desde la configuración (apartado 3).
- Maldiciones de hombre lobo y vampiro. Un mordisco puede maldecirte (30 % el hombre lobo y 25 % el vampiro por defecto). Te transformas con una tecla o con el talismán lunar (hombre lobo) y el sello de sangre (vampiro).
- Habilidades. El hombre lobo salta sobre su presa; el vampiro drena sangre.
-
Debilidades. Plata (espada y lingote de plata), acónito (
enchanted:wolfsbane_flower) para el hombre lobo, luz del sol, estaca de madera y ajo para el vampiro. - Conservas tu skin. Transformado mantienes tu skin y se te ponen ojos con brillo: rojos (vampiro) y verdes (hombre lobo). Color e interruptor son configurables.
- Cura. Tónico purificador o el rito de purificación.
-
Cazador. Un tercer estado: golpeas más fuerte a hombres lobo y vampiros, recibes menos daño de ellos y no te pueden maldecir. Solo se activa con el comando
/umc form hunter. - Mobs nuevos. Hombre lobo, vampiro, fantasma, diablillo (imp) y ent. Además los siervos invocables: siervo resucitado (zombi) y siervo óseo (esqueleto).
- Nigromancia. Ritos de círculo mágico para levantar siervos, fantasmas, diablillos y ents; cetro del nigromante, cuerno de invocación (gasta polvo de tumba) y demonomicón (ata diablillos pagando vida y un cuerno de diablillo). También el Pacto de la luna y el Pacto de sangre.
- Una dimensión propia. Se entra por el portal espiritual (se carga con polvo espiritual) o con el rito Viaje espiritual. Para volver, tecla de regreso.
- Atrapasueños y telar de sueños: cambian la probabilidad de buenos sueños y pesadillas al dormir. Un buen sueño puede dar recompensas, experiencia o un viaje al mundo espiritual.
- Infusiones: salto espiritual, caminar por paredes y visión espiritual. Se cargan con esencias y se cambian con una tecla.
- Aquelarres: funda uno en un altar de aquelarre, invita brujas y compartid bonus (recarga de altares y vínculo de aquelarre).
- Familiares: sapo, lechuza, cuervo y sabueso, cada uno con sus bonus y su rito de vinculación.
- Ropa de bruja: sombrero, túnica, capa y botas, con bonus por pieza y por conjunto completo (altares más rápidos, resistencia a maldiciones, pociones beneficiosas más largas, capa que amortigua caídas).
- Plantas: ajenjo, verbena, flor de luna y artemisa, para el caldero, la rueca y la destilería de Enchanted.
- Guía dentro del juego: el Almanaque de la bruja rural (libro de Modopedia con capítulos Rituales, Familiares, Ropa de bruja, Plantas, Criaturas y Mundo espiritual).
| Comando | Quién | Qué hace |
|---|---|---|
/umc form <vampire|werewolf|hunter|human> [jugadores] |
Operadores (nivel 2) | Pone a un jugador en esa forma. human lo cura y lo deja humano. Si la forma está desactivada en la config, avisa y no hace nada |
/umc coven create <nombre> |
Jugador | Funda un aquelarre |
/umc coven invite <jugador> |
Jugador | Invita a un jugador |
/umc coven join <nombre> |
Jugador | Se une a un aquelarre al que te han invitado |
/umc coven leave |
Jugador | Abandona tu aquelarre |
/umc coven kick <jugador> |
Líder | Expulsa a un miembro |
/umc coven disband |
Líder | Disuelve el aquelarre |
/umc coven info [nombre] |
Jugador | Muestra datos del aquelarre |
| Tecla por defecto | Acción |
|---|---|
| G | Transformarse |
| H | Habilidad de la criatura |
| V | Cambiar de infusión |
| B | Volver del mundo espiritual |
Una pestaña propia llamada Ultimate Mod Compats (id umc:main) con los objetos del mod. El icono es el objeto umc:tab_icon (en español, "Gato Espacial").
Hay un solo archivo: config/umc.toml (tipo COMMON, se genera la primera vez que arranca el juego). Cada función tiene su interruptor enabled. Los comentarios del archivo están en inglés.
| Sección | Qué controla |
|---|---|
creatures |
Hombre lobo, vampiro, infección, cura, cazador, mobs, nigromancia, demonología y ritos |
spirit |
Mundo espiritual, sueños, infusiones y aquelarres |
crafting |
Familiares, ropa de bruja y plantas |
compat.kubejs |
Interruptor general y uno por mod para la compatibilidad con KubeJS |
compat.mysticalagriculture |
Cultivos extra de Mystical Agriculture y sus recetas |
Las claves de creatures y crafting usan camelCase (healthBonus); las de spirit y compat usan snake_case (portal_active_seconds).
| Clave | Por defecto | Qué es |
|---|---|---|
creatures.enabled |
true |
Apaga todo el módulo de criaturas |
creatures.werewolf.enabled |
true |
Licantropía y forma de hombre lobo |
creatures.werewolf.healthBonus / damageBonus / speedBonus
|
10.0 / 4.0 / 0.25
|
Bonus mientras estás transformado |
creatures.werewolf.forceOnFullMoon |
true |
Los maldecidos se transforman a la fuerza en luna llena |
creatures.werewolf.revertAtDawn |
true |
La transformación forzada termina al amanecer |
creatures.werewolf.requireNightToTransform |
false |
Solo se puede transformar voluntariamente de noche |
creatures.werewolf.silverDamageMultiplier |
2.0 |
Multiplicador de daño de las armas de plata |
creatures.werewolf.repellentItem |
"enchanted:wolfsbane_flower" |
Objeto que debilita a los hombres lobo si lo llevas cerca |
creatures.werewolf.spawnOnlyOnFullMoon |
false |
Los hombres lobo salvajes solo aparecen en luna llena |
creatures.werewolf.useModel |
false |
Usa el modelo GeckoLib propio en lugar de tu skin (necesita un resource pack con el modelo) |
creatures.werewolf.glowingEyes / eyeColor
|
true / "33FF33"
|
Ojos brillantes y su color (hexadecimal RRGGBB) |
creatures.vampire.enabled |
true |
Vampirismo y forma de vampiro |
creatures.vampire.healthBonus / damageBonus / speedBonus
|
4.0 / 3.0 / 0.15
|
Bonus mientras estás transformado |
creatures.vampire.sunlightBurns |
true |
La forma de vampiro arde con el sol directo |
creatures.vampire.helmetProtects / rainProtects
|
true / true
|
Casco o lluvia evitan quemarse |
creatures.vampire.stakeBonusDamage |
10.0 |
Daño extra de la estaca de madera |
creatures.vampire.repellentItem |
"enchanted:garlic" |
Objeto que debilita a los vampiros |
creatures.vampire.drainRange / drainDamage
|
3.5 / 5.0
|
Alcance y daño del drenaje de sangre |
creatures.vampire.glowingEyes / eyeColor
|
true / "FF1A1A"
|
Ojos brillantes y su color |
creatures.infection.werewolfBiteChance / vampireBiteChance
|
0.3 / 0.25
|
Probabilidad de maldecir al morder |
creatures.infection.fromPlayers |
false |
Los jugadores transformados también maldicen |
creatures.infection.loseCurseOnDeath |
false |
Morir levanta la maldición |
creatures.cure.tonic / rite
|
true / true
|
El tónico y el rito de purificación curan |
creatures.hunter.damageMultiplier / damageTakenMultiplier
|
1.5 / 0.7
|
Daño que hace y que recibe el cazador frente a lobos y vampiros |
creatures.mobs.<mob>.enabled |
true |
Activa el mob y su aparición natural. <mob>: werewolf, vampire, ghost, imp, ent, zombie_servant, skeleton_servant
|
creatures.mobs.<mob>.health / damage / speed
|
según mob | Vida, daño y velocidad |
creatures.necromancy.maxServantsPerOwner |
8 |
Máximo de siervos por jugador |
creatures.necromancy.servantLifetimeSeconds |
600 |
Los siervos se desvanecen pasado este tiempo (0 = nunca) |
creatures.necromancy.horn.graveDustCost |
1 |
Polvo de tumba que gasta cada soplido |
creatures.demonology.grimoire.healthCost |
6.0 |
Vida que se paga al atar un diablillo |
creatures.demonology.grimoire.requiresImpHorn |
true |
Atar gasta un cuerno de diablillo |
creatures.rites.enabled |
true |
Activa los ritos de círculo que añade el módulo |
| Clave | Por defecto | Qué es |
|---|---|---|
spirit.enabled |
true |
Apaga todo el módulo del mundo espiritual |
spirit.world.enabled |
true |
El mundo espiritual y sus portales |
spirit.world.portal_active_seconds |
30 |
Segundos que el portal queda abierto tras cargarlo |
spirit.world.portal_dust_cost |
1 |
Polvo espiritual que gasta cargar el portal |
spirit.world.return_delay_seconds |
5 |
Segundos que tarda la tecla de regreso |
spirit.world.rite_enabled / rite_duration_seconds
|
true / 300
|
Rito de Enchanted que manda al mundo espiritual y cuánto dura (0 = ilimitado) |
spirit.world.nightmare_spawns_enabled |
true |
Las pesadillas aparecen solas en el mundo espiritual |
spirit.dreams.enabled |
true |
Tejido de sueños |
spirit.dreams.nightmare_chance / good_dream_chance
|
0.15 / 0.1
|
Probabilidad base de pesadilla y de buen sueño al dormir |
spirit.dreams.max_catchers |
4 |
Máximo de atrapasueños que cuentan |
spirit.dreams.good_dream_rewards |
lista | Premios de los buenos sueños con formato objeto;cantidad;peso
|
spirit.infusions.enabled |
true |
Infusiones dimensionales |
spirit.infusions.leap_enabled / climb_enabled / sight_enabled
|
true |
Activa cada infusión por separado |
spirit.infusions.essence_seconds / max_energy_seconds
|
120 / 900
|
Energía por esencia y máximo almacenable |
spirit.infusions.hud_enabled |
true |
Muestra el HUD de infusiones |
spirit.covens.enabled |
true |
Aquelarres |
spirit.covens.max_members |
8 |
Máximo de miembros |
spirit.covens.found_cost_item / found_cost_count
|
"umc:spirit_dust" / 3
|
Objeto que se gasta al fundar un aquelarre (vacío = ninguno) |
spirit.covens.open_join |
false |
Cualquiera puede unirse en el altar sin invitación |
| Clave | Por defecto | Qué es |
|---|---|---|
crafting.enabled |
true |
Apaga todo el módulo de artesanía |
crafting.familiars.enabled / ritesEnabled
|
true / true
|
Familiares extra y sus ritos de vinculación |
crafting.familiars.<especie>.enabled |
true |
<especie>: toad, owl, raven, hound
|
crafting.familiars.<especie>.bonusEffects |
según especie | Efectos que recibe el dueño, formato "efecto,amplificador"
|
crafting.familiars.<especie>.tameChance / tameFoods
|
0.33 / lista |
Probabilidad y comida para domar (sapo, lechuza y cuervo) |
crafting.familiars.<especie>.spawnEnabled / spawnWeight
|
true / según especie |
Aparición natural (sapo, lechuza y cuervo) |
crafting.clothing.enabled |
true |
Bonus de la ropa de bruja |
crafting.clothing.setEffects |
["minecraft:luck,0"] |
Efectos del conjunto completo |
crafting.clothing.altar.power / radius
|
30.0 / 16
|
Poder que se suma a los altares cercanos y radio |
crafting.clothing.curses.chance |
0.15 |
Probabilidad por comprobación de debilitar una maldición con el conjunto completo |
crafting.clothing.potions.durationMultiplier |
1.25 |
Duración extra de las pociones beneficiosas |
crafting.clothing.cloak.reduction |
0.5 |
Fracción de daño por caída que quita la capa |
crafting.plants.enabled |
true |
Plantas de bruja |
crafting.plants.wildPlants |
true |
Genera flor de luna y artemisa en el mundo |
crafting.plants.seedDropChance |
0.08 |
Probabilidad de soltar semillas al romper hierba |
crafting.plants.seedDropHoeOnly |
false |
Solo suelta semillas si se rompe con azada |
[compat.kubejs]
enabled = true
[compat.kubejs.modules]
enchanted = true
thaumaturge = true
ae2 = true
advanced_ae = true
extendedae = true
create = true
generatorgalore = true
excessive_utilities = true
functionalstorage = true
mysticalagriculture = true| Clave | Mod que controla |
|---|---|
compat.kubejs.enabled |
Interruptor general: en false no se registra ningún módulo de KubeJS de este mod |
compat.kubejs.modules.enchanted |
Enchanted |
compat.kubejs.modules.thaumaturge |
Thaumaturge |
compat.kubejs.modules.ae2 |
Applied Energistics 2 |
compat.kubejs.modules.advanced_ae |
Advanced AE |
compat.kubejs.modules.extendedae |
Extended AE |
compat.kubejs.modules.create |
Create (incluye la acción por clic derecho sobre entidades y la ayuda de JEI) |
compat.kubejs.modules.generatorgalore |
Generator Galore |
compat.kubejs.modules.excessive_utilities |
Excessive Utilities |
compat.kubejs.modules.functionalstorage |
Functional Storage |
compat.kubejs.modules.mysticalagriculture |
Mystical Agriculture (recetas y evento MysticalEvents) |
Para desactivar una sola compatibilidad pon su clave en false. Se aplica al arrancar el juego.
| Clave | Por defecto | Qué es |
|---|---|---|
compat.mysticalagriculture.enabled |
true |
Interruptor general: en false no se registra ningún cultivo |
compat.mysticalagriculture.crop_namespace |
"umc" |
Namespace de los ids de cultivo (los objetos siguen siendo mysticalagriculture:) |
compat.mysticalagriculture.recipes.seed_crafting |
true |
Receta de crafteo de cada semilla |
compat.mysticalagriculture.recipes.seed_infusion |
true |
Receta de cada semilla en el Altar de Infusión |
compat.mysticalagriculture.recipes.seed_reprocessor |
true |
Receta de cada semilla en el Reprocesador de Semillas |
compat.mysticalagriculture.recipes.essence_crafting |
true |
Receta que convierte la esencia en el objeto del cultivo |
compat.mysticalagriculture.crops.<id> |
true |
Registra o no cada cultivo (ver el apartado 5 para los ids) |
Los cultivos se registran al arrancar, así que cambiar estas claves requiere reiniciar el juego.
Todo este apartado necesita KubeJS (2101.7.2 o superior para 1.21.1) y el mod al que apoya cada subsección.
| Carpeta | Se carga | Para qué se usa aquí |
|---|---|---|
kubejs/startup_scripts/ |
Al arrancar el juego (hay que reiniciar para ver cambios) |
EnchantedStartup.*, ThaumaturgeStartup.*, StartupEvents.registry('item', ...)
|
kubejs/server_scripts/ |
Al entrar al mundo y con /reload
|
ServerEvents.recipes, EnchantedEvents.*, ThaumaturgeEvents.*, MysticalEvents.recipes, ServerEvents.generateData
|
kubejs/client_scripts/ |
Al cargar recursos en el cliente | ClientEvents.lang |
- Los ítems se escriben
'namespace:item'. Con cantidad:'3x namespace:item'. Etiquetas:'#namespace:etiqueta'. - Todas las recetas aceptan
.id('namespace:nombre')al final, como cualquier receta de KubeJS. - Si un id propio no lleva namespace, se usa
kubejs:. - Los fluidos se escriben con
Fluid.of('minecraft:water', 1000)(cantidad en mB). - Los scripts de ejemplo completos están en la carpeta
kubejs-ejemplos/del repositorio (un archivo por mod).
Módulo compat.kubejs.modules.enchanted. Mod necesario: enchanted (siempre presente, porque es obligatorio).
Qué añade:
| Qué | Dónde se escribe | Para qué |
|---|---|---|
event.recipes.enchanted.kettle / wheel / distilling / byproduct |
ServerEvents.recipes |
Recetas del caldero, la rueca, el destilador y el subproducto del horno |
EnchantedEvents.rites |
server | Ritos de círculo mágico nuevos y desactivar ritos |
EnchantedEvents.shapes |
server | Formas de círculo nuevas |
EnchantedEvents.altar |
server | Fuentes de poder y mejoras del altar |
EnchantedEvents.mutagens |
server | Mutaciones de plantas (mutandis) |
EnchantedStartup.riteFactories |
startup | Ritos con código JS propio |
EnchantedStartup.curses |
startup | Maldiciones nuevas |
EnchantedStartup.familiars |
startup | Familiares nuevos |
StartupEvents.registry('item', ...) con tipos enchanted:*
|
startup | Poppets, brebajes y frascos |
Los ritos, formas, mutaciones y mejoras de altar se generan como datos al cargar el servidor.
Alias disponibles: enchantedKettle, enchantedWheel (o enchantedSpinning), enchantedDistilling, enchantedByproduct.
| Receta | Llamada | Argumentos |
|---|---|---|
| Caldero | event.recipes.enchanted.kettle(resultado, [ingredientes]) |
resultado (ítem con cantidad), ingredientes (lista de ítems) |
| Rueca | event.recipes.enchanted.wheel(resultado, [3 ingredientes]) |
resultado, exactamente 3 ingredientes |
| Destilador | event.recipes.enchanted.distilling([resultados], [ingredientes]) |
de 1 a 4 resultados y de 1 a 3 ingredientes |
| Subproducto | event.recipes.enchanted.byproduct(resultado, ingrediente) |
resultado, ingrediente (ítem o etiqueta) |
Opciones encadenables:
| Receta | Método | Tipo | Qué es | Por defecto |
|---|---|---|---|---|
| kettle | .requiresBottle(bool) |
booleano | Necesita un frasco | false |
| kettle | .power(int) |
entero | Poder de altar que gasta | 0 |
| kettle | .cookColour(color) |
color | Color del líquido mientras se cuece ('#B046A5', 'B046A5' o 0xB046A5; también cookColor) |
#2D155E |
| kettle | .finalColour(color) |
color | Color del líquido al terminar (también finalColor) |
#4A1AAD |
| wheel | .power(int) |
entero | Poder de altar que gasta | 0 |
| wheel | .duration(ticks) |
entero | Duración en ticks | 300 |
| distilling | .duration(ticks) |
entero | Duración en ticks | 300 |
| distilling | .power(int) |
entero | Poder de altar que gasta | 750 |
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
Ejemplo kettle
|
minecraft:poppy, golden_carrot, lily_pad, cocoa_beans, enchanted:whiff_of_magic, enchanted:water_artichoke y un frasco |
3x enchanted:brew_of_love
|
Caldero (el líquido pasa de #B046A5 a F78FEB) |
Ejemplo wheel
|
enchanted:poppet + enchanted:demonic_blood + minecraft:magma_block, 500 de poder, 300 ticks |
kubejs:lava_poppet |
Rueca de hilar |
Ejemplo distilling
|
3x enchanted:clay_jar + enchanted:breath_of_the_goddess + minecraft:lapis_lazuli, 300 ticks, 750 de poder |
enchanted:tear_of_the_goddess, enchanted:whiff_of_magic, minecraft:slime_ball
|
Destilador |
Ejemplo byproduct
|
Cualquier #minecraft:logs_that_burn
|
enchanted:foul_fume como subproducto |
Horno de la bruja con un clay_jar
|
ServerEvents.recipes(event => {
//da 3x enchanted:brew_of_love mezclando minecraft:poppy, golden_carrot, lily_pad, cocoa_beans, enchanted:whiff_of_magic y water_artichoke en el caldero (kettle) con frasco
event.recipes.enchanted.kettle('3x enchanted:brew_of_love', [
'minecraft:poppy',
'minecraft:golden_carrot',
'minecraft:lily_pad',
'minecraft:cocoa_beans',
'enchanted:whiff_of_magic',
'enchanted:water_artichoke'
]).requiresBottle(true).cookColour('#B046A5').finalColour('F78FEB')
//da kubejs:lava_poppet tejiendo enchanted:poppet + enchanted:demonic_blood + minecraft:magma_block en la rueda de hilar con 500 de poder de altar durante 300 ticks
event.recipes.enchanted.wheel('kubejs:lava_poppet', ['enchanted:poppet', 'enchanted:demonic_blood', 'minecraft:magma_block'])
.power(500)
.duration(300)
//da enchanted:tear_of_the_goddess, enchanted:whiff_of_magic y minecraft:slime_ball destilando 3x enchanted:clay_jar + breath_of_the_goddess + minecraft:lapis_lazuli
event.recipes.enchanted.distilling(
['enchanted:tear_of_the_goddess', 'enchanted:whiff_of_magic', 'minecraft:slime_ball'],
['3x enchanted:clay_jar', 'enchanted:breath_of_the_goddess', 'minecraft:lapis_lazuli']
).duration(300).power(750)
//da enchanted:foul_fume como subproducto al quemar cualquier tronco inflamable en el horno de la bruja con un clay_jar
event.recipes.enchanted.byproduct('enchanted:foul_fume', '#minecraft:logs_that_burn')
})event.create(id) crea un rito y se le encadenan requisitos y un efecto final (la "factory"). Todo rito necesita un efecto final; si falta, el evento da error.
Requisitos y condiciones:
| Método | Argumentos | Qué hace |
|---|---|---|
.item(stack) / .items(...stacks)
|
ítems con cantidad ('2x minecraft:redstone') |
Objetos que se ofrecen en el círculo |
.smallCircle(tiza) / .mediumCircle(tiza) / .largeCircle(tiza)
|
tiza ('ritual_chalk', 'nether_chalk') |
Círculo pequeño, mediano o grande con esa tiza. Sin namespace se usa enchanted:
|
.circle(forma, tiza) |
forma y tiza | Forma de círculo por id (por ejemplo una propia kubejs:cross_circle) |
.entity(...tipos) |
ids de entidad | Entidades necesarias |
.dimension(...ids) |
ids de dimensión | Solo en esas dimensiones |
.power(int) |
entero | Poder de altar que gasta al empezar |
.tickPower(int) |
entero | Poder extra por tick |
.weather(clima) |
none, clear, raining, thundering
|
Clima necesario |
.night() / .day()
|
sin argumentos | Solo de noche (ticks 13000 a 23000) o de día (0 a 12000) |
.time(desde, hasta) |
ticks | Franja horaria propia |
Efecto final (se usa uno por rito):
| Método | Argumentos | Qué hace |
|---|---|---|
.factory(id) / .factory(id, {parametros})
|
id de factory y objeto de parámetros | Activa una factory de Enchanted o una tuya (EnchantedStartup.riteFactories) |
.createItem(...stacks) |
ítems | Crea esos ítems |
.command(...comandos) |
comandos | Ejecuta comandos |
.applyCurse(id) |
id de maldición | Aplica una maldición |
.protection(radio, duración, bloqueaJugadores) |
radio, ticks, booleano | Zona protegida (también .protection(radio)) |
.entityBoundCreateItem(...), .locationBoundCreateItem(...)
|
ítems | Crea ítems ligados a una entidad o un lugar |
.duplicateItem(item, cantidad) |
ítem y entero | Duplica un ítem |
.removeCurse(id) |
id de maldición | Quita una maldición |
.commandSequence(retraso, pasos) |
ticks y lista de listas de comandos | Comandos por pasos |
.fertility(radio, probabilidad), .forest(radio, separación), .blight(radio, probDecaimiento, probZombi), .broiling(probQuemado)
|
números | Efectos de terreno de Enchanted |
.transposeBlocks(etiquetaBloques, herramienta) |
etiqueta e ítem | Transposición de bloques |
.skyWrath(), .sanctity(), .imprisonment(), .totalEclipse(), .summonEntity(), .bindFamiliar(), .summonFamiliar(), .bindTalisman(), .transposeCaster()
|
sin argumentos | Factories sueltas de Enchanted |
Para anular un rito de Enchanted: event.disable('enchanted:blight'). El rito original se cambia por uno imposible de cumplir.
| Ejemplo | Entra | Sale | Dónde |
|---|---|---|---|
kubejs:diamond_gift |
1 minecraft:coal_block, 800 de poder |
1 minecraft:diamond y 2 minecraft:emerald
|
Círculo pequeño de tiza ritual |
kubejs:blessing_rite |
enchanted:tear_of_the_goddess + minecraft:golden_apple, 1500 de poder (+2 por tick), de noche con cielo despejado |
Activa la factory kubejs:blessing
|
Círculo mediano de tiza ritual |
kubejs:thunder_rite |
minecraft:iron_ingot + 2x minecraft:redstone, 2500 de poder, tormenta, solo Overworld |
Activa la factory kubejs:thunder_call
|
Forma kubejs:cross_circle con tiza del Nether |
kubejs:curse_heavy_feet |
enchanted:taglock + minecraft:anvil, 1800 de poder |
Aplica la maldición kubejs:heavy_feet
|
Círculo mediano de tiza del Nether |
kubejs:quick_day |
minecraft:clock, 600 de poder |
Ejecuta time set day y weather clear
|
Círculo pequeño de tiza ritual |
kubejs:big_protection |
minecraft:obsidian + minecraft:diamond, 2000 de poder (+3 por tick) |
Zona protegida de radio 12 durante 12000 ticks (10 min) que también bloquea jugadores | Círculo mediano de tiza ritual |
EnchantedEvents.rites(event => {
//hace un rito nocturno con cielo despejado: Tear of the Goddess + manzana dorada en circulo mediano de tiza ritual, gasta 1500 de poder (+2 por tick) y activa la factory kubejs:blessing
event.create('kubejs:blessing_rite')
.item('enchanted:tear_of_the_goddess')
.item('minecraft:golden_apple')
.mediumCircle('ritual_chalk')
.power(1500)
.tickPower(2)
.night()
.weather('clear')
.factory('kubejs:blessing', { message: 'Que la luna te proteja', level: 1 })
//hace un rito con tormenta en el Overworld: lingote de hierro + 2 redstone en el circulo kubejs:cross_circle de tiza del Nether, gasta 2500 y activa kubejs:thunder_call
event.create('kubejs:thunder_rite')
.items('minecraft:iron_ingot', '2x minecraft:redstone')
.circle('kubejs:cross_circle', 'enchanted:nether_chalk')
.power(2500)
.weather('thundering')
.dimension('minecraft:overworld')
.factory('kubejs:thunder_call')
//da 1 minecraft:diamond y 2 minecraft:emerald sacrificando un minecraft:coal_block en circulo pequeno de tiza ritual, gasta 800
event.create('kubejs:diamond_gift')
.item('minecraft:coal_block')
.smallCircle('ritual_chalk')
.power(800)
.createItem('minecraft:diamond', '2x minecraft:emerald')
//hace aplicar la maldicion kubejs:heavy_feet con taglock + yunque en circulo mediano de tiza del Nether, gasta 1800
event.create('kubejs:curse_heavy_feet')
.items('enchanted:taglock', 'minecraft:anvil')
.mediumCircle('nether_chalk')
.power(1800)
.applyCurse('kubejs:heavy_feet')
//hace poner dia y cielo despejado con un reloj en circulo pequeno de tiza ritual, gasta 600
event.create('kubejs:quick_day')
.item('minecraft:clock')
.smallCircle('ritual_chalk')
.power(600)
.command('time set day', 'weather clear')
//hace una zona protegida de radio 12 durante 12000 ticks (10 min) que tambien bloquea a jugadores, con obsidiana + diamante en circulo mediano, gasta 2000 (+3 por tick)
event.create('kubejs:big_protection')
.items('minecraft:obsidian', 'minecraft:diamond')
.mediumCircle('ritual_chalk')
.power(2000)
.tickPower(3)
.protection(12, 12000, true)
//hace inutilizable el rito enchanted:blight (lo sustituye por uno imposible de cumplir)
event.disable('enchanted:blight')
})event.create(id).rows(...filas)
| Argumento | Tipo | Qué es |
|---|---|---|
id |
texto | Id de la forma (por ejemplo 'kubejs:cross_circle') |
filas |
textos | Número impar de filas, todas del mismo largo que el número de filas (cuadrada), con al menos una X. X es una casilla de tiza y el espacio es vacío |
Entra: las filas. Sale: una forma que se usa con .circle('kubejs:cross_circle', tiza) en un rito.
EnchantedEvents.shapes(event => {
//hace la forma kubejs:cross_circle, cuadrada de 7x7 (X = casilla de tiza, O = interior sin tiza, espacio = vacio)
event.create('kubejs:cross_circle').rows(
' XXX ',
' XOX ',
'XXXOXXX',
'XOOOOOX',
'XXXOXXX',
' XOX ',
' XXX '
)
})| Llamada | Argumentos | Qué hace |
|---|---|---|
event.block(bloque, poder, límite) |
bloque, entero, entero | Cada bloque cercano da ese poder al altar, contando hasta el límite |
event.tag(etiqueta, poder, límite) |
etiqueta de bloques (sin #), entero, entero |
Igual, para una etiqueta |
event.upgrade(id).type(tipo).block(bloque).power(decimal).recharge(decimal).priority(int) |
ver ejemplo | Mejora de altar |
EnchantedEvents.altar(event => {
//da 6 de poder al altar por cada minecraft:amethyst_block cercano, contando hasta 16 bloques
event.block('minecraft:amethyst_block', 6, 16)
//da 3 de poder al altar por cada bloque del tag minecraft:flowers cercano, contando hasta 40
event.tag('minecraft:flowers', 3, 40)
//hace una mejora de altar con minecraft:soul_lantern de tipo torch: poder 0, recarga x1.5 y prioridad 1
event.upgrade('kubejs:soul_lantern').type('torch').block('minecraft:soul_lantern').power(0).recharge(1.5).priority(1)
})event.create(id).mutation(resultado, peso, ...bloquesMutagenos).extremisMutation(resultado, peso, ...bloquesMutagenos)
| Argumento | Tipo | Qué es |
|---|---|---|
id |
texto | Id de la mutación |
mutation |
resultado, peso, bloques | Mutación con mutandis |
extremisMutation |
resultado, peso, bloques | Mutación con mutandis extremis |
| Entra | Sale |
|---|---|
minecraft:stone o minecraft:deepslate alrededor, con mutandis |
minecraft:amethyst_block (peso 10) |
minecraft:amethyst_block alrededor, con mutandis extremis |
minecraft:budding_amethyst (peso 2) |
EnchantedEvents.mutagens(event => {
event.create('kubejs:crystals')
.mutation('minecraft:amethyst_block', 10, 'minecraft:stone', 'minecraft:deepslate')
.extremisMutation('minecraft:budding_amethyst', 2, 'minecraft:amethyst_block')
})event.create(id).duration(ticks).output(...items).onStart(ctx => bool).onTick(ctx => bool).onStop(ctx => ...)
| Método | Qué es |
|---|---|
.duration(ticks) |
Duración del rito |
.output(...items) |
Ítems que se declaran como salida |
.onStart(ctx => bool) |
Al empezar. Devuelve true para seguir o false para terminar al momento (ctx.cancel() cancela) |
.onTick(ctx => bool) |
Cada tick |
.onStop(ctx => ...) |
Al terminar |
Contexto ctx: caster, level, pos, ticks, data (NBT propio del rito), getString(clave, defecto), getInt(clave, defecto) (también getDouble y getBoolean), particles(partícula, cantidad, dispersión), drop(ítem), runCommand(comando), cancel(). Los parámetros salen del segundo argumento de .factory(id, {parametros}) del rito.
EnchantedStartup.riteFactories(event => {
//hace un rito de 200 ticks que da Regeneracion al lanzador cada segundo, avisa por chat y declara como salida minecraft:golden_apple
event.create('kubejs:blessing')
.duration(200)
.output('minecraft:golden_apple')
.onStart(ctx => {
const caster = ctx.caster
if (caster == null) {
return ctx.cancel()
}
caster.tell(ctx.getString('message', 'La bendicion comienza'))
ctx.data.putInt('pulses', 0)
return true
})
.onTick(ctx => {
if (ctx.ticks % 20 == 0) {
ctx.particles('minecraft:happy_villager', 12, 1.5)
const caster = ctx.caster
if (caster != null) {
caster.potionEffects.add('minecraft:regeneration', 60, ctx.getInt('level', 0))
}
ctx.data.putInt('pulses', ctx.data.getInt('pulses') + 1)
}
return true
})
.onStop(ctx => {
ctx.runCommand('say La bendicion termino tras ' + ctx.data.getInt('pulses') + ' pulsos')
})
//hace un rito instantaneo que invoca un rayo y suelta un minecraft:lightning_rod sobre el circulo (onStart devuelve false y termina al momento)
event.create('kubejs:thunder_call')
.onStart(ctx => {
ctx.level.getServer().runCommandSilent('summon minecraft:lightning_bolt ' + ctx.pos.x + ' ' + ctx.pos.y + ' ' + ctx.pos.z)
ctx.drop(Item.of('minecraft:lightning_rod'))
return false
})
})event.create(id).maxStrength(int).onInitialise(ctx => ...).onRemove(ctx => ...).tick(ctx => ...)
| Método | Qué es |
|---|---|
.maxStrength(int) |
Fuerza máxima de la maldición |
.onInitialise(ctx => ...) |
Al aplicarse |
.onRemove(ctx => ...) |
Al quitarse |
.tick(ctx => ...) |
Cada tick |
Contexto ctx: target (el jugador), strength (fuerza actual), age (ticks desde que se aplicó).
EnchantedStartup.curses(event => {
//hace una maldicion de fuerza maxima 3 que avisa al aplicarse y al quitarse, y da Lentitud (nivel = fuerza - 1) cada 40 ticks
event.create('kubejs:heavy_feet')
.maxStrength(3)
.onInitialise(ctx => ctx.target.tell('Tus pies pesan como el plomo'))
.onRemove(ctx => ctx.target.tell('Vuelves a sentirte ligero'))
.tick(ctx => {
if (ctx.age % 40 == 0) {
ctx.target.potionEffects.add('minecraft:slowness', 60, ctx.strength - 1)
}
})
})event.create(id, entidadOrigen, entidadFamiliar).copy((from, familiar) => ...)
| Argumento | Tipo | Qué es |
|---|---|---|
id |
texto | Id del familiar |
entidadOrigen |
id de entidad | Animal domable que se convierte |
entidadFamiliar |
id de entidad | Entidad en la que se convierte |
copy |
función | Copia datos del original al familiar |
Se usa con un rito bindFamiliar.
EnchantedStartup.familiars(event => {
//hace un familiar que convierte un minecraft:parrot en otro minecraft:parrot con el nombre Familiar
event.create('kubejs:parrot_familiar', 'minecraft:parrot', 'minecraft:parrot')
.copy((from, familiar) => {
familiar.setCustomName(Text.of('Familiar'))
})
})Se crean con StartupEvents.registry('item', ...) indicando el tipo como segundo argumento. Los objetos creados así van a la pestaña del mod con una textura por defecto; pon la tuya en kubejs/assets/kubejs/textures/item/<id>.png.
| Tipo | Métodos |
|---|---|
enchanted:player_poppet |
.poppetColour(colorPrimario, colorSecundario), .maxDamage(usos), .protectsAgainst(...tiposDeDaño o #etiquetas), .protectsWhen(source => bool), .effect(efecto, ticks, amplificador), .onProtect(player => ...)
|
enchanted:item_poppet |
.poppetColour(c1, c2), .protects(stack => bool), .restoreMultiplier(fracción), .onProtect(...)
|
enchanted:brew |
.effect(efecto, ticks, amplificador) (repetible), .onDrink(entity => ...)
|
enchanted:throwable_brew |
.effect(...) (repetible), .radius(bloques), .brewColour(colorRGB), .onSplash(ctx => ...) con ctx = {owner, level, pos}
|
| Ejemplo | Qué da |
|---|---|
lava_poppet (player_poppet) |
Poppet de 2 usos que protege del fuego y la lava, da Resistencia al fuego 30 s y avisa al jugador |
anvil_poppet (player_poppet) |
Poppet que protege del daño de yunque; sin .effect da Regeneración II 5 s por defecto |
iron_poppet (item_poppet) |
Poppet de objeto que protege ítems minecraft:iron_* y les restaura la mitad de la durabilidad |
moon_brew (brew) |
Poción bebible: Visión nocturna 5 min y Caída lenta 1 min |
storm_flask (throwable_brew) |
Frasco arrojable: Resplandor 20 s a las criaturas en radio 5 y un rayo donde se rompe |
StartupEvents.registry('item', event => {
//da un poppet de 2 usos que protege del fuego y la lava, da Resistencia al fuego 30 s y avisa al jugador
event.create('lava_poppet', 'enchanted:player_poppet')
.poppetColour(0xFFFF6A00, 0xFFB22200)
.maxDamage(2)
.protectsAgainst('#minecraft:is_fire', 'minecraft:lava')
.effect('minecraft:fire_resistance', 600, 0)
.onProtect(player => player.tell('El poppet absorbe el fuego'))
//da un poppet que protege del dano de yunque (sin .effect da Regeneracion II 5 s por defecto)
event.create('anvil_poppet', 'enchanted:player_poppet')
.protectsWhen(source => source.type().msgId() == 'anvil')
//da un poppet de objeto que protege items de hierro (minecraft:iron_*) y les restaura la mitad de la durabilidad
event.create('iron_poppet', 'enchanted:item_poppet')
.poppetColour(0xFFD8D8D8, 0xFF9A9A9A)
.protects(stack => stack.id.startsWith('minecraft:iron_'))
.restoreMultiplier(0.5)
//da una pocion bebible que da Vision nocturna 5 min y Caida lenta 1 min y avisa al bebedor
event.create('moon_brew', 'enchanted:brew')
.effect('minecraft:night_vision', 6000, 0)
.effect('minecraft:slow_falling', 1200, 0)
.onDrink(entity => entity.tell('Sabe a luz de luna'))
//da un frasco arrojable que da Resplandor 20 s a las criaturas en radio 5 y hace caer un rayo donde se rompe
event.create('storm_flask', 'enchanted:throwable_brew')
.effect('minecraft:glowing', 400, 0)
.radius(5)
.brewColour(0x55AAFF)
.onSplash(ctx => ctx.level.spawnLightning(ctx.pos.x(), ctx.pos.y(), ctx.pos.z(), true))
})Notas de uso:
- Los ritos propios (
kubejs:...) se guardan como datos endata/<namespace>/enchanted/circle_magic/rite/<nombre>.json. Los ritos que añade el propio mod UMC (criaturas, familiares, viaje espiritual) usan el namespaceenchanted. - Las tizas y formas sin namespace se leen como
enchanted:('ritual_chalk'esenchanted:ritual_chalk). - Una factory o una maldición propia se registran en
startup_scripts; los ritos que las usan van enserver_scripts.
Módulo compat.kubejs.modules.thaumaturge. Mod necesario: thaumaturge.
| Qué | Dónde se escribe | Para qué |
|---|---|---|
ThaumaturgeStartup.wandCaps |
startup | Remates de varita nuevos |
ThaumaturgeStartup.wandRods |
startup | Varas de varita nuevas |
ThaumaturgeStartup.golemTraits |
startup | Rasgos de golem |
ThaumaturgeStartup.mobTraits |
startup | Rasgos de mob (campeones) |
ThaumaturgeEvents.aspects |
server | Aspectos nuevos y repartir aspectos a objetos, mobs y biomas |
ThaumaturgeEvents.scans |
server | Escaneos |
ThaumaturgeEvents.blueprints |
server | Planos de multibloque |
ThaumaturgeEvents.research |
server | Categorías y entradas de investigación |
ThaumaturgeEvents.data |
server | JSON a mano para cualquier registro de datos sin evento propio |
event.recipes.thaumaturge.<tipo> |
ServerEvents.recipes |
Recetas (tabla más abajo) |
Los aspectos se escriben con o sin namespace: 'ignis' es thaumaturge:ignis. Con cantidad: '30x ignis', '10x kubejs:lux'.
event.create(id) y encadenar:
| Método | Tipo | Qué es |
|---|---|---|
.baseCost(multiplicador) |
decimal | Multiplicador del coste de vis |
.specialCost(multiplicador, ...aspectos) |
decimal y aspectos | Coste distinto para esos aspectos |
.aspectCost(aspecto, multiplicador) |
aspecto y decimal | Coste de un solo aspecto |
.craftCost(coste) |
entero | Coste de fabricar el remate |
.texture(ruta) |
texto | Textura del remate |
ThaumaturgeStartup.wandCaps(event => {
//hace que se cree el remate kubejs:emerald
event.create('kubejs:emerald')
.baseCost(0.95) //el remate multiplica el coste de vis por 0.95
.specialCost(0.9, 'aqua', 'terra') //el coste baja a 0.9 para los aspectos aqua y terra
.craftCost(5) //fabricar el remate cuesta 5
.texture('kubejs:textures/models/wand_cap_emerald.png')
//hace que se cree el remate kubejs:prism
event.create('kubejs:prism')
.baseCost(1.0)
.aspectCost('ignis', 0.8)
.aspectCost('aer', 0.85)
.craftCost(4)
})| Método | Tipo | Qué es |
|---|---|---|
.capacity(vis) |
entero | Reserva de vis de la vara |
.craftCost(coste) |
entero | Coste de fabricar la vara |
.glow(bool) |
booleano | La vara brilla |
.texture(ruta) |
texto | Textura de la vara |
.onUpdate((stack, player) => ...) |
función | Se ejecuta con la varita en el inventario |
.staff(bool), .runes(bool), .assemblyResearch(investigación)
|
Otras opciones |
ThaumaturgeStartup.wandRods(event => {
//hace que se cree la vara kubejs:crystal
event.create('kubejs:crystal')
.capacity(90)
.craftCost(7)
.glow(true)
.texture('kubejs:textures/models/wand_rod_crystal.png')
//cada 200 ticks con la varita en el inventario se da velocidad al jugador
.onUpdate((stack, player) => {
if (player.tickCount % 200 == 0) {
player.potionEffects.add('minecraft:speed', 100, 0)
}
})
})golemTraits: event.create(id).icon(rutaTextura) (solo necesita id e icono).
mobTraits: event.create(id) con:
| Método | Qué es |
|---|---|
.champion(bool) |
El rasgo cuenta como campeón |
.tick(mob => ...) |
Cada tick |
.onAttack(ctx => nuevoDaño) |
Devuelve el daño que hace el mob (ctx.amount) |
.onHurt(ctx => nuevoDaño) |
Devuelve el daño que recibe (ctx.amount, ctx.source) |
ThaumaturgeStartup.golemTraits(event => {
event.create('kubejs:fragile')
.icon('kubejs:textures/misc/golem/tag_fragile.png')
})
ThaumaturgeStartup.mobTraits(event => {
//hace que se cree el rasgo de mob kubejs:vampiric
event.create('kubejs:vampiric')
.champion(true)
//cada 100 ticks el mob herido recupera 1 de vida
.tick(mob => {
if (mob.tickCount % 100 == 0 && mob.health < mob.maxHealth) {
mob.heal(1)
}
})
//el dano que hace el mob se multiplica por 1.25
.onAttack(ctx => ctx.amount * 1.25)
//el dano que recibe el mob se duplica si es por fuego
.onHurt(ctx => (ctx.source.getMsgId() == 'inFire' || ctx.source.getMsgId() == 'onFire') ? ctx.amount * 2 : ctx.amount)
})| Llamada | Argumentos | Qué hace |
|---|---|---|
event.create(id) |
id | Crea un aspecto nuevo. Se encadena .color(hex), .chatColor(código), .components(aspecto1, aspecto2) y .texture(ruta)
|
event.item(objeto o #etiqueta, ...aspectos) |
ítem o etiqueta y aspectos con cantidad | Aspectos de un objeto |
event.removeItem(objeto o #etiqueta) |
ítem o etiqueta | Quita los aspectos de un objeto |
event.entity(mob, ...aspectos) |
id de entidad y aspectos | Aspectos de un mob |
event.biome(bioma, ...aspectos) |
id de bioma y aspectos | Aspectos de un bioma |
ThaumaturgeEvents.aspects(event => {
//hace que se cree el aspecto kubejs:lux, compuesto de ignis y aer
event.create('kubejs:lux')
.color(0xFFEE55)
.chatColor('e')
.components('ignis', 'aer')
.texture('kubejs:textures/aspects/lux.png')
//hace que minecraft:glowstone tenga 10x kubejs:lux y 2x thaumaturge:ignis
event.item('minecraft:glowstone', '10x kubejs:lux', '2x thaumaturge:ignis')
//hace que los lingotes de cobre (#c:ingots/copper) tengan 3x thaumaturge:metallum y 1x thaumaturge:potentia
event.item('#c:ingots/copper', '3x thaumaturge:metallum', '1x thaumaturge:potentia')
//hace que minecraft:dirt pierda sus aspectos
event.removeItem('minecraft:dirt')
//hace que minecraft:bee tenga 5x thaumaturge:volatus y 3x kubejs:lux
event.entity('minecraft:bee', '5x thaumaturge:volatus', '3x kubejs:lux')
//hace que el bioma minecraft:desert tenga thaumaturge:ignis y kubejs:lux
event.biome('minecraft:desert', 'thaumaturge:ignis', 'kubejs:lux')
})event.create(id).key(clave).items(...objetos).blocks(...bloques)
| Método | Qué es |
|---|---|
.key(clave) |
Clave que se marca al escanear (después se puede pedir como requisito en una investigación) |
.items(...) |
Objetos que se pueden escanear como objeto |
.blocks(...) |
Bloques que se pueden escanear como bloque |
ThaumaturgeEvents.scans(event => {
//hace que escanear glowstone con el escaner marque la clave kubejs:scanned/glowstone
event.create('kubejs:scan_glowstone')
.key('kubejs:scanned/glowstone')
.items('minecraft:glowstone', 'minecraft:glowstone_dust')
.blocks('minecraft:glowstone')
})event.create(id).layer(...filas).blockKey(símbolo, bloque, bloqueResultante).keepKey(símbolo, bloque)
| Método | Qué es |
|---|---|
.layer(fila1, fila2, ...) |
Una capa de la estructura. El espacio significa "no importa". La primera layer() es la de ARRIBA y la última la de ABAJO
|
.blockKey(símbolo, bloque, bloqueResultante) |
El símbolo se construye con bloque y se convierte en bloqueResultante al activarse |
.keepKey(símbolo, bloque) |
El símbolo es bloque y se conserva al activarse |
El plano no es un objeto ni un bloque, es la forma a construir. Se activa con una receta dust_trigger_multiblock (más abajo).
ThaumaturgeEvents.blueprints(event => {
event.create('kubejs:lux_altar')
//capa de arriba: anillo de G con el centro vacio
.layer('GGG', 'G G', 'GGG')
//capa de abajo: cruz de G con L en el centro
.layer(' G ', 'GLG', ' G ')
//G se construye con glowstone y se convierte en linterna marina al activarse
.blockKey('G', 'minecraft:glowstone', 'minecraft:sea_lantern')
//L es piedra iman y se conserva
.keepKey('L', 'minecraft:lodestone')
})Categorías: event.createCategory(id)
| Método | Qué es |
|---|---|
.icon(textura) |
Icono |
.background(textura) |
Fondo |
.overlayBackground(textura) |
Capa superpuesta de fondo |
.index(posición) |
Posición en la lista de categorías |
.formula(...aspectos) |
Aspectos de la fórmula, por ejemplo '30x ignis', '10x kubejs:lux'
|
.requiredResearch(entrada) |
Investigación necesaria para ver la categoría |
Entradas: event.create(id)
| Método | Qué es |
|---|---|
.category(id) |
Categoría a la que pertenece |
.name(claveDeIdioma) |
Clave de idioma del título |
.position(x, y) |
Posición en el mapa |
.parent('entrada@etapa') |
Entrada de la que depende, con la etapa ('kubejs:luminous_basics@1') |
.icon(objeto o textura) |
Icono (también .clearIcons()) |
.meta(forma) |
Forma de la entrada, por ejemplo 'round'
|
.complexity(n) |
Complejidad |
.noteAspect(...aspectos) |
Aspectos de los apuntes |
.stage(stage => ...) |
Una etapa (se pueden poner varias) |
.addendum(addendum => ...) |
Un apéndice |
Etapa (stage): .text(claveDeIdioma), .obtain(objeto, cantidad), .craft(objeto, cantidad), .recipe(receta), .requiredKnowledge(tipo, categoría, cantidad), .knowledge(tipo, categoría, cantidad), .requiredResearch(...entradas), .warp(cantidad).
Apéndice (addendum): .text(claveDeIdioma), .recipe(...), .requiredResearch(entrada).
Para modificar una entrada que ya existe: event.modify(id, entry => entry.complexity(1)).
Los textos salen de claves de idioma; se añaden con ClientEvents.lang('en_us', ...) (o es_es) en client_scripts.
ThaumaturgeEvents.research(event => {
//hace que se cree la categoria de investigacion kubejs:radiance
event.createCategory('kubejs:radiance')
.icon('kubejs:textures/research/cat_radiance.png')
.background('thaumaturge:textures/gui/gui_research_back_3.png')
.overlayBackground('thaumaturge:textures/gui/gui_research_back_over.png')
.index(9)
.formula('30x ignis', '10x kubejs:lux')
//hace que se cree la entrada kubejs:luminous_basics con dos etapas
event.create('kubejs:luminous_basics')
.category('kubejs:radiance')
.name('research.kubejs.luminous_basics.title')
.position(0, 0)
.icon('minecraft:glowstone')
.meta('round')
.complexity(1)
.noteAspect('4x kubejs:lux', '2x ignis')
//etapa 0: obtener 8 de glowstone y pedir 1 de conocimiento observation de basics
.stage(stage => stage
.text('research.kubejs.luminous_basics.stage_0')
.obtain('minecraft:glowstone', 8)
.requiredKnowledge('observation', 'basics', 1))
//etapa 1: pedir la receta de kubejs:luminous_blade y dar 1 de conocimiento theory de basics
.stage(stage => stage
.text('research.kubejs.luminous_basics.stage_1')
.recipe('kubejs:luminous_blade')
.knowledge('theory', 'basics', 1))
//hace que se cree la entrada kubejs:luminous_blades, que depende de la etapa 1 de la anterior
event.create('kubejs:luminous_blades')
.category('kubejs:radiance')
.name('research.kubejs.luminous_blades.title')
.position(2, 1)
.parent('kubejs:luminous_basics@1')
.icon('minecraft:golden_sword')
.complexity(2)
//pide fabricar una espada de oro y suma 1 de disonancia
.stage(stage => stage
.text('research.kubejs.luminous_blades.stage_0')
.craft('minecraft:golden_sword', 1)
.warp(1))
//apendice que exige haber completado kubejs:luminous_basics
.addendum(addendum => addendum
.text('research.kubejs.luminous_blades.addendum_0')
.requiredResearch('kubejs:luminous_basics'))
//hace que la entrada thaumaturge:alumentum pase a complejidad 1
event.modify('thaumaturge:alumentum', entry => entry.complexity(1))
})
//client_scripts: textos en ingles de la investigacion
ClientEvents.lang('en_us', event => {
event.add('research.kubejs.luminous_basics.title', 'Luminous Basics')
event.add('research.kubejs.luminous_basics.stage_0', 'Gather glowstone and observe how it holds light.')
event.add('research.kubejs.luminous_basics.stage_1', 'Glowstone can be infused to hold a blade of radiance.')
event.add('research.kubejs.luminous_blades.title', 'Luminous Blades')
event.add('research.kubejs.luminous_blades.stage_0', 'Forge a golden sword to carry the radiance.')
event.add('research.kubejs.luminous_blades.addendum_0', 'The blade glows brighter near glowstone.')
})event.add(registro, id, json) añade un archivo de datos tal cual a cualquier registro de Thaumaturge que no tenga evento propio.
ThaumaturgeEvents.data(event => {
//hace que se anada un resultado de inestabilidad que da zap de 4 a 7 de dano con peso 2
event.add('instability_outcome', 'kubejs:shocking_failure', {
effect: {
type: 'thaumaturge:zap',
damage: { type: 'minecraft:uniform', min_inclusive: 4, max_inclusive: 7 }
},
weight: 2
})
})Opciones comunes: .research(investigación) (la receta solo se ve con esa investigación), .crystals([cristales extra]) (hasta 6 aspectos primarios), .group(grupo).
Una investigación se escribe 'id', 'id@etapa' (por ejemplo 'thaumaturge:unlock_alchemy@0') o '!id' para negarla. Sin namespace se usa thaumaturge:.
Alias: thaumaturgeArcaneShaped, thaumaturgeArcaneShapeless, thaumaturgeCrucible, thaumaturgeInfusion, thaumaturgeInfusionEnchantment, thaumaturgeRunicAugment, thaumaturgeDustTrigger, thaumaturgeDustTriggerTag, thaumaturgeDustTriggerMultiblock.
| Receta | Llamada | Argumentos |
|---|---|---|
| Mesa arcana con forma | arcane_workbench_shaped(resultado, filas, claves, vis) |
resultado; filas (lista de textos); claves (objeto letra a ingrediente); vis (entero mayor que 0) |
| Mesa arcana sin forma | arcane_workbench_shapeless(resultado, [ingredientes], vis) |
de 1 a 9 ingredientes |
| Crisol | crucible(resultado, catalizador, [aspectos]) |
catalizador (ingrediente); aspectos con cantidad |
| Infusión | infusion(resultado, catalizador, [componentes], [aspectos]) |
de 1 a 64 componentes. Opciones .instability(0 a 100) y .catalystPatch({componentes})
|
| Infusión (el catalizador se queda) | infusion(catalizador, [componentes], [aspectos]) |
sin resultado: el catalizador recibe el parche de .catalystPatch
|
| Encantamiento por infusión | infusion_enchantment(encantamiento, [componentes], [aspectos], objetoDeEjemplo) |
el objeto de ejemplo solo se muestra |
| Aumento rúnico | runic_augment([componentes], ingredientePorNivel, [aspectos], objetoDeEjemplo) |
gasta un ingrediente por nivel |
| Polvo sobre bloque | dust_trigger_simple(resultado, bloqueObjetivo) |
clic derecho con Salis Mundus |
| Polvo sobre etiqueta | dust_trigger_tag(resultado, etiquetaDeBloques) |
etiqueta sin #
|
| Polvo sobre multibloque | dust_trigger_multiblock(resultado, idDelPlano) |
el plano se define en ThaumaturgeEvents.blueprints
|
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
arcane_workbench_shaped |
minecraft:charcoal sobre minecraft:stick, 15 de vis, cristales 2x ignis, investigación thaumaturge:first_steps
|
4x minecraft:torch
|
Mesa arcana |
arcane_workbench_shapeless |
minecraft:torch + minecraft:iron_nugget, 20 de vis, cristales ignis y ordo
|
minecraft:lantern |
Mesa arcana |
crucible |
minecraft:coal + 5x ignis + 5x perditio
|
3x minecraft:gunpowder
|
Crisol (investigación thaumaturge:alumentum) |
infusion |
minecraft:golden_sword en el centro, minecraft:glowstone x2 y glowstone_dust en los pedestales, 50x kubejs:lux + 30x ignis, inestabilidad 3 |
kubejs:luminous_blade |
Altar de infusión |
infusion (parche) |
minecraft:iron_pickaxe en el centro, minecraft:redstone_block + minecraft:diamond, 20x fabrico + 20x terra
|
El mismo pico, ahora irrompible (minecraft:unbreakable); el catalizador se queda |
Altar de infusión |
infusion_enchantment |
minecraft:enchanted_book + #c:storage_blocks/redstone, 40x potentia + 60x aer
|
Encantamiento arcing
|
Altar de infusión |
runic_augment |
thaumaturge:salis_mundus + #c:gems/amber, 40x praemunio + 20x vitreus, una ámbar por nivel |
Pieza (ejemplo minecraft:iron_chestplate) mejorada |
Altar de infusión |
dust_trigger_simple |
minecraft:cauldron + Salis Mundus (tras thaumaturge:unlock_alchemy@0) |
thaumaturge:crucible |
Clic derecho sobre el caldero |
dust_trigger_tag |
Cualquier c:bookshelves + Salis Mundus |
thaumaturge:thaumonomicon |
Clic derecho sobre una estantería |
dust_trigger_multiblock |
Plano kubejs:lux_altar construido + Salis Mundus |
minecraft:beacon (solo se muestra y cuenta como fabricado) |
Clic derecho sobre cualquier bloque de la estructura |
ServerEvents.recipes(event => {
//da 4x minecraft:torch poniendo minecraft:charcoal sobre minecraft:stick en la mesa arcana con forma, gastando 15 de vis
event.recipes.thaumaturge.arcane_workbench_shaped(
'4x minecraft:torch',
[' C', ' S'],
{ C: 'minecraft:charcoal', S: 'minecraft:stick' },
15
).crystals(['2x ignis']).research('thaumaturge:first_steps')
//da minecraft:lantern mezclando minecraft:torch y minecraft:iron_nugget en cualquier disposicion en la mesa arcana sin forma, gastando 20 de vis
event.recipes.thaumaturge.arcane_workbench_shapeless(
'minecraft:lantern',
['minecraft:torch', 'minecraft:iron_nugget'],
20
).crystals(['ignis', 'ordo']).group('lanterns')
//da 3x minecraft:gunpowder disolviendo minecraft:coal en el crisol con 5x ignis y 5x perditio
event.recipes.thaumaturge.crucible(
'3x minecraft:gunpowder',
'minecraft:coal',
['5x ignis', '5x perditio']
).research('thaumaturge:alumentum')
//da kubejs:luminous_blade infundiendo minecraft:golden_sword (centro del altar) rodeada de glowstone y polvo de glowstone en los pedestales con 50x kubejs:lux y 30x ignis
event.recipes.thaumaturge.infusion(
'kubejs:luminous_blade',
'minecraft:golden_sword',
['minecraft:glowstone', 'minecraft:glowstone', 'minecraft:glowstone_dust'],
['50x kubejs:lux', '30x ignis']
).instability(3).research('kubejs:luminous_blades')
//da minecraft:iron_pickaxe irrompible infundiendo con minecraft:redstone_block y minecraft:diamond, 20x fabrico y 20x terra (el catalizador se queda y solo recibe el parche)
event.recipes.thaumaturge.infusion(
'minecraft:iron_pickaxe',
['minecraft:redstone_block', 'minecraft:diamond'],
['20x fabrico', '20x terra']
).catalystPatch({ 'minecraft:unbreakable': {} })
//da el encantamiento arcing infundiendo con minecraft:enchanted_book y #c:storage_blocks/redstone, 40x potentia y 60x aer (la espada de madera es solo el ejemplo que se muestra)
event.recipes.thaumaturge.infusion_enchantment(
'arcing',
['minecraft:enchanted_book', '#c:storage_blocks/redstone'],
['40x potentia', '60x aer'],
'minecraft:wooden_sword'
).research('thaumaturge:infusion_enchantment')
//da una minecraft:iron_chestplate mejorada aplicando thaumaturge:salis_mundus y ambar, 40x praemunio y 20x vitreus, gastando una ambar (#c:gems/amber) por nivel
event.recipes.thaumaturge.runic_augment(
['thaumaturge:salis_mundus', '#c:gems/amber'],
'#c:gems/amber',
['40x praemunio', '20x vitreus'],
'minecraft:iron_chestplate'
)
//da thaumaturge:crucible aplicando thaumaturge:salis_mundus con clic derecho sobre minecraft:cauldron (tras investigar alquimia)
event.recipes.thaumaturge.dust_trigger_simple('thaumaturge:crucible', 'minecraft:cauldron').research('thaumaturge:unlock_alchemy@0')
//da thaumaturge:thaumonomicon aplicando thaumaturge:salis_mundus con clic derecho sobre cualquier estanteria (c:bookshelves)
event.recipes.thaumaturge.dust_trigger_tag('thaumaturge:thaumonomicon', 'c:bookshelves')
//da minecraft:beacon (solo el objeto que se muestra y cuenta como fabricado) aplicando thaumaturge:salis_mundus sobre el plano kubejs:lux_altar construido
event.recipes.thaumaturge.dust_trigger_multiblock('minecraft:beacon', 'kubejs:lux_altar')
//receta normal de mesa de crafteo: thaumaturge:wand con remate kubejs:emerald y vara thaumaturge:wood
event.shaped(
'thaumaturge:wand[thaumaturge:wand_parts={cap:"kubejs:emerald",rod:"thaumaturge:wood"}]',
[' C', ' S', 'C '],
{ C: 'minecraft:emerald', S: 'minecraft:stick' }
)
})Para que el ejemplo del plano y de la infusión funcione hace falta registrar el objeto kubejs:luminous_blade en startup_scripts:
StartupEvents.registry('item', event => {
//hace que se cree el objeto kubejs:luminous_blade
event.create('luminous_blade')
})Notas de uso en el juego:
-
Blueprints: se construye la estructura y se hace clic derecho con Salis Mundus (
thaumaturge:salis_mundus) sobre cualquier bloque de ella. La primeralayer()es la de ARRIBA y la última la de ABAJO. - Con la receta
dust_trigger_multiblockde los ejemplos, activar el plano gasta 1 polvo y, a los 2,5 segundos, cada glowstone pasa a linterna marina (la piedra imán se queda). - Las recetas con
.research(...)solo aparecen y se pueden usar cuando el jugador tiene esa investigación. - Los avisos
arcane_key_*al cargar son de Thaumaturge y son inofensivos (ver las preguntas frecuentes).
Módulo compat.kubejs.modules.mysticalagriculture. Mod necesario: mysticalagriculture.
| Qué | Dónde se escribe | Para qué |
|---|---|---|
event.recipes.mysticalagriculture.<tipo>(...) |
ServerEvents.recipes |
Recetas propias de Mystical Agriculture (altares, reprocesador, extractor de almas, etc.) |
MysticalEvents.recipes |
server | Recetas de semillas (crafteo, infusión y reprocesado) con las condiciones de mods puestas solas |
| Tipo | Llamada | Argumentos |
|---|---|---|
infusion |
infusion(resultado, entrada, [ingredientes]).transferComponents(bool) |
de 1 a 8 ingredientes; transferComponents por defecto false
|
awakening |
awakening(resultado, entrada, [ingredientes], [esencias]).transferComponents(bool) |
de 1 a 4 ingredientes y de 1 a 4 esencias con cantidad |
enchanter |
enchanter(encantamiento, [{item, count}]) |
de 1 a 2 ingredientes con cantidad |
reprocessor |
reprocessor(resultado, entrada) |
|
soul_extraction |
soul_extraction({type, souls}, entrada) |
tipo de alma y cantidad decimal |
farmland_till |
farmland_till(resultado, [ingredientes], grupo) |
de 1 a 9 ingredientes; el grupo es opcional |
soulium_spawner |
soulium_spawner({item, count}, [{entity, weight}]) |
objeto que gasta y lista de entidades con peso |
soul_jar_empty |
soul_jar_empty() |
sin argumentos |
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
infusion |
minecraft:iron_block + 4x minecraft:diamond y 4x mysticalagriculture:diamond_essence alternados |
minecraft:diamond_block |
Altar de Infusión |
infusion sin componentes |
minecraft:gold_ingot + 4x minecraft:netherite_scrap
|
minecraft:netherite_ingot |
Altar de Infusión |
awakening |
mysticalagriculture:supremium_block + 4x cognizant_dust + 10x esencia de aire, tierra, agua y fuego |
mysticalagriculture:awakened_supremium_block |
Altar del Despertar |
enchanter |
16x minecraft:redstone + 64x mysticalagriculture:experience_essence
|
Encantamiento minecraft:efficiency
|
Encantador de Mystical |
reprocessor |
mysticalagriculture:iron_seeds |
2x mysticalagriculture:iron_essence
|
Reprocesador de Semillas |
soul_extraction |
minecraft:blaze_rod |
0.5 de alma mysticalagriculture:blaze
|
Extractor de Almas |
farmland_till |
Cualquier azada (mysticalagriculture:all_hoes) + minecraft:dirt
|
minecraft:farmland |
Mesa de crafteo |
soulium_spawner |
12x mysticalagriculture:cow_essence
|
Hace aparecer una minecraft:cow (peso 1) |
Spawner de Soulium |
soul_jar_empty |
Soul Jar lleno | Soul Jar vacío | Mesa de crafteo (receta especial) |
ServerEvents.recipes(event => {
//da minecraft:diamond_block infundiendo minecraft:iron_block con 4 minecraft:diamond y 4 mysticalagriculture:diamond_essence alternados en el Altar de Infusion
event.recipes.mysticalagriculture.infusion('minecraft:diamond_block', 'minecraft:iron_block', [
'minecraft:diamond', 'mysticalagriculture:diamond_essence',
'minecraft:diamond', 'mysticalagriculture:diamond_essence',
'minecraft:diamond', 'mysticalagriculture:diamond_essence',
'minecraft:diamond', 'mysticalagriculture:diamond_essence'
])
//da minecraft:netherite_ingot infundiendo minecraft:gold_ingot con 4 minecraft:netherite_scrap en el Altar de Infusion, sin copiar componentes del item
event.recipes.mysticalagriculture.infusion('minecraft:netherite_ingot', 'minecraft:gold_ingot', [
'minecraft:netherite_scrap', 'minecraft:netherite_scrap',
'minecraft:netherite_scrap', 'minecraft:netherite_scrap'
]).transferComponents(false)
//da mysticalagriculture:awakened_supremium_block despertando supremium_block con 4 cognizant_dust y 10 de cada esencia (aire, tierra, agua, fuego) en el Altar del Despertar
event.recipes.mysticalagriculture.awakening(
'mysticalagriculture:awakened_supremium_block',
'mysticalagriculture:supremium_block',
['mysticalagriculture:cognizant_dust', 'mysticalagriculture:cognizant_dust', 'mysticalagriculture:cognizant_dust', 'mysticalagriculture:cognizant_dust'],
['10x mysticalagriculture:air_essence', '10x mysticalagriculture:earth_essence', '10x mysticalagriculture:water_essence', '10x mysticalagriculture:fire_essence']
)
//da el encantamiento minecraft:efficiency consumiendo 16 minecraft:redstone y 64 mysticalagriculture:experience_essence en el Encantador de Mystical
event.recipes.mysticalagriculture.enchanter('minecraft:efficiency', [
{ item: 'minecraft:redstone', count: 16 },
{ item: 'mysticalagriculture:experience_essence', count: 64 }
])
//da 2x mysticalagriculture:iron_essence reprocesando mysticalagriculture:iron_seeds en el Reprocesador de Semillas
event.recipes.mysticalagriculture.reprocessor('2x mysticalagriculture:iron_essence', 'mysticalagriculture:iron_seeds')
//da 0.5 de alma de tipo mysticalagriculture:blaze extrayendola de minecraft:blaze_rod en el Extractor de Almas
event.recipes.mysticalagriculture.soul_extraction({ type: 'mysticalagriculture:blaze', souls: 0.5 }, 'minecraft:blaze_rod')
//da minecraft:farmland combinando cualquier azada (mysticalagriculture:all_hoes) con minecraft:dirt en la mesa de crafteo
event.recipes.mysticalagriculture.farmland_till('minecraft:farmland', [{ type: 'mysticalagriculture:all_hoes' }, 'minecraft:dirt'])
//hace aparecer una minecraft:cow (peso 1) gastando 12 mysticalagriculture:cow_essence en el Spawner de Soulium
event.recipes.mysticalagriculture.soulium_spawner({ item: 'mysticalagriculture:cow_essence', count: 12 }, [
{ entity: 'minecraft:cow', weight: 1 }
])
//convierte un Soul Jar lleno en uno vacio (receta especial sin argumentos)
event.recipes.mysticalagriculture.soul_jar_empty()
})| Método | Argumentos | Qué hace |
|---|---|---|
event.seed(semillas, baseSemilla, esencia, material) |
semillas admite 'Nx namespace:item'
|
Crea la receta de crafteo y la de infusión de las semillas |
event.seedCrafting(semillas, baseSemilla, esencia, material) |
Solo crafteo, en mesa con forma MEM / ESE / MEM (M material, E esencia, S base de semilla) |
|
event.seedInfusion(semillas, baseSemilla, esencia, material) |
Solo infusión: la base en el centro del Altar de Infusión y 4 pares alternados de material y esencia | |
event.seedReprocessing(semillas, esencia) |
esencia admite 'Nx namespace:item'
|
Reprocesador de Semillas: de semillas a esencia |
Las recetas se crean solas con las condiciones neoforge:mod_loaded necesarias: se añade una por cada mod de los objetos que no sea minecraft, neoforge, c ni mysticalagriculture, y para las semillas de un cultivo del catálogo de UMC (apartado 5) también los mods que ese cultivo exige. Los ids que se generan son umc:mystical/<seed_crafting|seed_infusion|seed_reprocessing>/<namespace>/<objeto>.
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
seed |
prosperity_seed_base + inferium_essence + minecraft:iron_ingot
|
mysticalagriculture:thaumaturge_thaumium_seeds |
Mesa de crafteo y Altar de Infusión |
seedCrafting |
prosperity_seed_base + inferium_essence + #c:ingots/copper
|
mysticalagriculture:copper_seeds |
Mesa de crafteo |
seedInfusion |
prosperity_seed_base + 4 pares de #c:ingots/copper e inferium_essence
|
mysticalagriculture:copper_seeds |
Altar de Infusión |
seedReprocessing |
mysticalagriculture:copper_seeds |
2x mysticalagriculture:copper_essence
|
Reprocesador de Semillas |
MysticalEvents.recipes(event => {
//da mysticalagriculture:thaumaturge_thaumium_seeds (por crafteo e infusion) mezclando prosperity_seed_base con inferium_essence y minecraft:iron_ingot; lleva mod_loaded thaumaturge si el catalogo lo exige
event.seed(
'mysticalagriculture:thaumaturge_thaumium_seeds',
'mysticalagriculture:prosperity_seed_base',
'mysticalagriculture:inferium_essence',
'minecraft:iron_ingot'
)
//da mysticalagriculture:copper_seeds en la mesa de crafteo (forma MEM/ESE/MEM) con prosperity_seed_base, inferium_essence y lingotes de cobre #c:ingots/copper
event.seedCrafting(
'mysticalagriculture:copper_seeds',
'mysticalagriculture:prosperity_seed_base',
'mysticalagriculture:inferium_essence',
'#c:ingots/copper'
)
//da mysticalagriculture:copper_seeds infundiendo prosperity_seed_base con 4 pares alternados de #c:ingots/copper e inferium_essence en el Altar de Infusion
event.seedInfusion(
'mysticalagriculture:copper_seeds',
'mysticalagriculture:prosperity_seed_base',
'mysticalagriculture:inferium_essence',
'#c:ingots/copper'
)
//da 2x mysticalagriculture:copper_essence reprocesando mysticalagriculture:copper_seeds en el Reprocesador de Semillas
event.seedReprocessing('mysticalagriculture:copper_seeds', '2x mysticalagriculture:copper_essence')
})Módulo compat.kubejs.modules.ae2. Mod necesario: ae2. Todas las recetas van en ServerEvents.recipes con event.recipes.ae2.<tipo>(...).
| Tipo | Llamada | Argumentos |
|---|---|---|
inscriber |
inscriber(resultado, centro, arriba, abajo) |
arriba y abajo son opcionales (inscriber(resultado, centro) y inscriber(resultado, centro, arriba) también valen). Se termina con .press() o .inscribe()
|
transform |
transform(resultado, [ingredientes]) |
Por defecto, tirados al agua. Opciones: .explosion(), .fluid(etiquetaDeFluido) (con o sin #), .water(), .lava()
|
charger |
charger(resultado, ingrediente) |
|
matter_cannon |
matter_cannon(munición, peso) |
munición es un ítem o etiqueta; peso es decimal (peso atómico) |
entropy |
entropy(modo) |
modo: 'heat' o 'cool'. Se encadena .inputBlock(bloque) o .inputFluid(fluido), y .outputBlock(bloque), .outputFluid(fluido) o .drop(objeto)
|
storage_cell_upgrade |
storage_cell_upgrade(celdaQueEntra, componenteQueEntra, celdaQueSale, componenteQueSale) |
Cuatro ids de ítem |
storage_cell_disassembly |
storage_cell_disassembly(celda, [objetosQueSeDevuelven]) |
|
crafting_unit_transform |
crafting_unit_transform(objetoQueSeUsa, bloqueResultante) |
|
quartz_cutting |
quartz_cutting(resultado, [ingredientes]) |
de 1 a 9 ingredientes |
Además se registran sin argumentos add_item_upgrade, remove_item_upgrade y facade, para que KubeJS no dé error con las recetas que AE2 ya trae de esos tipos.
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
inscriber + .press()
|
minecraft:redstone en el centro, ae2:printed_calculation_processor arriba y ae2:printed_silicon abajo |
ae2:calculation_processor |
Inscriptor |
inscriber + .inscribe()
|
minecraft:iron_block (se consume) con ae2:logic_processor_press arriba (se conserva) |
ae2:logic_processor_press |
Inscriptor |
transform (agua) |
ae2:charged_certus_quartz_crystal + ae2:flawed_budding_quartz
|
ae2:flawless_budding_quartz |
Tirados al agua unos 3 segundos sin que se alejen |
transform + .explosion()
|
ae2:charged_certus_quartz_crystal + minecraft:coal_block
|
2x minecraft:diamond
|
Tirados al suelo con una explosión de TNT al lado (no los destruye) |
transform + .fluid('minecraft:lava')
|
minecraft:netherite_ingot + minecraft:netherite_scrap
|
minecraft:netherite_block |
Tirados a la lava unos 3 segundos (solo objetos a prueba de fuego) |
charger |
minecraft:book |
ae2:guide |
Cargador de AE2 con energía |
matter_cannon |
#c:nuggets/iron |
Munición del cañón de materia con peso 55.845 (a más peso, más daño) | Cañón de materia |
entropy('cool') |
minecraft:stone |
minecraft:cobblestone |
Manipulador de entropía (enfriar) |
entropy('heat') |
minecraft:ice |
minecraft:water |
Manipulador de entropía (calentar) |
entropy('cool') + .inputFluid().drop()
|
minecraft:flowing_water |
minecraft:snowball (cae como objeto) |
Manipulador de entropía (enfriar) |
storage_cell_upgrade |
ae2:item_storage_cell_4k + ae2:cell_component_64k
|
ae2:item_storage_cell_64k y devuelve ae2:cell_component_4k
|
Mesa de crafteo |
storage_cell_disassembly |
ae2:item_storage_cell_4k vacía |
ae2:item_cell_housing + ae2:cell_component_4k
|
Usada en la mano agachado |
crafting_unit_transform |
ae2:cell_component_16k |
ae2:16k_crafting_storage |
Usada sobre una unidad de crafteo |
quartz_cutting |
#ae2:knife (se desgasta, no se consume) + #ae2:metal_ingots
|
4x ae2:cable_anchor
|
Cuadrícula de crafteo |
ServerEvents.recipes(event => {
//da ae2:calculation_processor prensando minecraft:redstone con ae2:printed_calculation_processor arriba y ae2:printed_silicon abajo en el inscriptor
event.recipes.ae2.inscriber('ae2:calculation_processor', 'minecraft:redstone', 'ae2:printed_calculation_processor', 'ae2:printed_silicon')
.press()
.id('umc_ejemplos:ae2/inscriber_procesador')
//da ae2:logic_processor_press inscribiendo minecraft:iron_block (se consume) con ae2:logic_processor_press arriba (se conserva) en el inscriptor
event.recipes.ae2.inscriber('ae2:logic_processor_press', 'minecraft:iron_block', 'ae2:logic_processor_press')
.inscribe()
.id('umc_ejemplos:ae2/inscriber_molde')
//da ae2:flawless_budding_quartz mezclando ae2:charged_certus_quartz_crystal y ae2:flawed_budding_quartz tirados al agua durante unos 3 segundos sin que se alejen
event.recipes.ae2.transform('ae2:flawless_budding_quartz', ['ae2:charged_certus_quartz_crystal', 'ae2:flawed_budding_quartz'])
.id('umc_ejemplos:ae2/transform_agua')
//da 2x minecraft:diamond mezclando ae2:charged_certus_quartz_crystal y minecraft:coal_block tirados al suelo con una explosion de TNT al lado (no los destruye)
event.recipes.ae2.transform('2x minecraft:diamond', ['ae2:charged_certus_quartz_crystal', 'minecraft:coal_block'])
.explosion()
.id('umc_ejemplos:ae2/transform_explosion')
//da minecraft:netherite_block mezclando minecraft:netherite_ingot y minecraft:netherite_scrap tirados a la lava durante unos 3 segundos (solo objetos a prueba de fuego)
event.recipes.ae2.transform('minecraft:netherite_block', ['minecraft:netherite_ingot', 'minecraft:netherite_scrap'])
.fluid('minecraft:lava')
.id('umc_ejemplos:ae2/transform_lava')
//da ae2:guide cargando minecraft:book en el cargador de AE2 con energia
event.recipes.ae2.charger('ae2:guide', 'minecraft:book')
.id('umc_ejemplos:ae2/charger_guia')
//hace que las pepitas de hierro (#c:nuggets/iron) sirvan de municion del canon de materia con peso atomico 55.845 (a mas peso, mas dano)
event.recipes.ae2.matter_cannon('#c:nuggets/iron', 55.845)
.id('umc_ejemplos:ae2/municion_hierro')
//convierte minecraft:stone en minecraft:cobblestone enfriando con el manipulador de entropia
event.recipes.ae2.entropy('cool')
.inputBlock('minecraft:stone')
.outputBlock('minecraft:cobblestone')
.id('umc_ejemplos:ae2/entropia_piedra')
//convierte minecraft:ice en minecraft:water calentando con el manipulador de entropia
event.recipes.ae2.entropy('heat')
.inputBlock('minecraft:ice')
.outputFluid('minecraft:water')
.id('umc_ejemplos:ae2/entropia_hielo')
//convierte minecraft:flowing_water en minecraft:snowball (cae como objeto) enfriando con el manipulador de entropia
event.recipes.ae2.entropy('cool')
.inputFluid('minecraft:flowing_water')
.drop('minecraft:snowball')
.id('umc_ejemplos:ae2/entropia_nieve')
//da ae2:item_storage_cell_64k y devuelve ae2:cell_component_4k juntando ae2:item_storage_cell_4k con ae2:cell_component_64k en una mesa de crafteo
event.recipes.ae2.storage_cell_upgrade('ae2:item_storage_cell_4k', 'ae2:cell_component_64k', 'ae2:item_storage_cell_64k', 'ae2:cell_component_4k')
.id('umc_ejemplos:ae2/mejora_celda')
//da ae2:item_cell_housing y ae2:cell_component_4k desmontando una ae2:item_storage_cell_4k vacia usada en la mano agachado
event.recipes.ae2.storage_cell_disassembly('ae2:item_storage_cell_4k', ['ae2:item_cell_housing', 'ae2:cell_component_4k'])
.id('umc_ejemplos:ae2/desmontar_celda')
//da ae2:16k_crafting_storage usando ae2:cell_component_16k sobre una unidad de crafteo
event.recipes.ae2.crafting_unit_transform('ae2:cell_component_16k', 'ae2:16k_crafting_storage')
.id('umc_ejemplos:ae2/unidad_crafteo')
//da 4x ae2:cable_anchor cortando con el cuchillo de AE2 (#ae2:knife, se desgasta pero no se consume) y un lingote de metal (#ae2:metal_ingots) en la cuadricula de crafteo
event.recipes.ae2.quartz_cutting('4x ae2:cable_anchor', ['#ae2:knife', '#ae2:metal_ingots'])
.id('umc_ejemplos:ae2/corte_cuarzo')
})Notas de uso en el juego:
-
Transform en lava: necesita objetos a prueba de fuego (netherita) y unos 3 segundos de espera dentro de la lava; los que no lo son se queman antes. Al cargar el script, UMC avisa en el log de KubeJS si usas
.fluid('minecraft:lava')o.lava(). - Transform con explosión: los objetos tienen que estar tirados al suelo, no se destruyen con la explosión.
-
Entropy:
'cool'y'heat'son los dos modos del manipulador de entropía (enfriar y calentar). -
storage_cell_disassembly: hay que usar la celda vacía en la mano agachado.
Módulo compat.kubejs.modules.advanced_ae (con guion bajo). Mod necesario: advanced_ae.
| Tipo | Llamada | Argumentos |
|---|---|---|
reaction |
event.recipes.advanced_ae.reaction(resultado, [ingredientes], fluido, energía) |
resultado: ítem con cantidad ('64x ae2:...'); ingredientes: lista de ítems con cantidad; fluido: Fluid.of(id, mB); energía: entero en FE. Alias de los métodos: .inputItems()/.items(), .inputFluid()/.fluid(), .inputEnergy()/.energy()
|
| Entra | Sale | Dónde |
|---|---|---|
64x ae2:certus_quartz_crystal + 1000 mB de agua + 1 300 000 FE |
64x ae2:charged_certus_quartz_crystal
|
Reaction Chamber |
4x minecraft:copper_ingot + 4x advanced_ae:shattered_singularity + 4x ae2:singularity + 1000 mB de advanced_ae:quantum_infusion_source + 200 000 FE |
1x advanced_ae:quantum_alloy
|
Reaction Chamber |
advanced_ae:quantum_infused_dust + 4000 mB de agua + 20 000 FE |
1000x advanced_ae:quantum_infusion_source
|
Reaction Chamber |
ServerEvents.recipes(event => {
//da 64x ae2:charged_certus_quartz_crystal mezclando 64x ae2:certus_quartz_crystal con 1000 mB de agua y 1300000 de energia (FE), en la Reaction Chamber
event.recipes.advanced_ae.reaction(
'64x ae2:charged_certus_quartz_crystal',
['64x ae2:certus_quartz_crystal'],
Fluid.of('minecraft:water', 1000),
1300000
).id('umc_ejemplos:advancedae/cuarzo_cargado')
//da 1x advanced_ae:quantum_alloy mezclando 4x cobre, 4x shattered_singularity y 4x singularity con 1000 mB de quantum_infusion y 200000 de energia (FE), en la Reaction Chamber
event.recipes.advanced_ae.reaction(
'advanced_ae:quantum_alloy',
['4x minecraft:copper_ingot', '4x advanced_ae:shattered_singularity', '4x ae2:singularity'],
Fluid.of('advanced_ae:quantum_infusion_source', 1000),
200000
).id('umc_ejemplos:advancedae/aleacion_cuantica')
//da 1000x advanced_ae:quantum_infusion_source mezclando advanced_ae:quantum_infused_dust con 4000 mB de agua y 20000 de energia (FE), en la Reaction Chamber
event.recipes.advanced_ae.reaction(
'1000x advanced_ae:quantum_infusion_source',
['advanced_ae:quantum_infused_dust'],
Fluid.of('minecraft:water', 4000),
20000
).id('umc_ejemplos:advancedae/fluido_cuantico')
})Módulo compat.kubejs.modules.extendedae. Mod necesario: extendedae.
| Tipo | Llamada | Argumentos |
|---|---|---|
crystal_assembler |
crystal_assembler(resultado, [ingredientes], fluido) |
ingredientes: ítems o etiquetas con cantidad ('4x #c:dusts/entro'); fluido: Fluid.of(id, mB), opcional
|
circuit_cutter |
circuit_cutter(resultado, ingrediente) |
ingrediente con cantidad |
crystal_fixer |
crystal_fixer(resultado, entrada, combustible, probabilidad) |
probabilidad: entero de 1 a 10000 (8000 es el 80 %) |
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
crystal_assembler con fluido |
4x #c:dusts/entro + 4x #c:ingots/gold + 4x minecraft:lapis_lazuli + 100 mB de agua |
4x extendedae:entro_ingot
|
Crystal Assembler |
crystal_assembler sin fluido |
extendedae:machine_frame + 8x ae2:engineering_processor + minecraft:stonecutter
|
extendedae:circuit_cutter |
Crystal Assembler |
circuit_cutter |
1x ae2:fluix_block
|
9x ae2:printed_silicon
|
Circuit Slicer |
crystal_fixer |
ae2:chipped_budding_quartz con ae2:charged_certus_quartz_crystal de combustible, 80 % de probabilidad |
ae2:flawed_budding_quartz |
Crystal Fixer |
ServerEvents.recipes(event => {
//da 4x extendedae:entro_ingot mezclando 4x polvo de entro, 4x lingote de oro y 4x lapislazuli con 100 mB de agua, en el Crystal Assembler
event.recipes.extendedae.crystal_assembler(
'4x extendedae:entro_ingot',
['4x #c:dusts/entro', '4x #c:ingots/gold', '4x minecraft:lapis_lazuli'],
Fluid.of('minecraft:water', 100)
).id('umc_ejemplos:extendedae/lingote_entro')
//da extendedae:circuit_cutter mezclando extendedae:machine_frame, 8x ae2:engineering_processor y minecraft:stonecutter sin fluido, en el Crystal Assembler
event.recipes.extendedae.crystal_assembler(
'extendedae:circuit_cutter',
['extendedae:machine_frame', '8x ae2:engineering_processor', 'minecraft:stonecutter']
).id('umc_ejemplos:extendedae/cortador_circuitos')
//da 9x ae2:printed_silicon cortando 1x ae2:fluix_block, en el Circuit Slicer
event.recipes.extendedae.circuit_cutter('9x ae2:printed_silicon', 'ae2:fluix_block')
.id('umc_ejemplos:extendedae/corte_acumulacion')
//convierte ae2:chipped_budding_quartz en ae2:flawed_budding_quartz gastando ae2:charged_certus_quartz_crystal como combustible, con 8000 de 10000 (80%) de probabilidad, en el Crystal Fixer
event.recipes.extendedae.crystal_fixer(
'ae2:flawed_budding_quartz',
'ae2:chipped_budding_quartz',
'ae2:charged_certus_quartz_crystal',
8000
).id('umc_ejemplos:extendedae/arreglo_cristal')
})Módulo compat.kubejs.modules.create. Mod necesario: create.
| Tipo | Llamada | Argumentos |
|---|---|---|
item_application (alias itemApplication) |
item_application(resultado, [bloqueEnElMundo, objetoEnLaMano]) |
Exactamente 2 ingredientes: primero el bloque (o etiqueta) sobre el que se hace clic, después el objeto de la mano. Opción .keepHeldItem(): no gasta el objeto de la mano |
conversion (alias mysteriousConversion) |
conversion(resultado, entrada) |
Un resultado y una entrada. Opciones .haunting() y .entity(entidad)
|
haunting |
haunting(resultado, entrada) |
Hechizo con ventilador. Hasta 12 resultados |
conversion y haunting los registra UMC solo si el addon KubeJS Create (kubejs_create) no está instalado; si lo está, las aporta ese addon. item_application y los alias de UMC se registran siempre.
| Receta | Entra | Sale | En el juego |
|---|---|---|---|
item_application |
#c:stripped_logs + create:andesite_alloy en la mano |
create:andesite_casing |
Aleación en la mano y clic derecho sobre el tronco sin corteza |
item_application + .keepHeldItem()
|
#c:stripped_logs + create:brass_ingot en la mano |
create:brass_casing |
Clic derecho con el lingote; el lingote no se gasta |
itemApplication (alias) |
#c:stripped_logs + minecraft:copper_ingot
|
create:copper_casing |
Clic derecho con el lingote |
conversion + .haunting()
|
minecraft:emerald |
minecraft:amethyst_shard |
Se muestra en JEI y funciona en el juego con un ventilador (Encased Fan) tras fuego de almas |
mysteriousConversion + .haunting()
|
minecraft:grass_block |
minecraft:glowstone |
Tirar el bloque al suelo y pasar el aire de un ventilador a través de fuego de almas; no se hace clic en nada |
haunting |
minecraft:emerald |
minecraft:amethyst_shard |
Ventilador (Encased Fan) detrás de fuego de almas |
conversion + .entity('minecraft:pig')
|
minecraft:coal |
minecraft:diamond |
Clic derecho con el carbón en la mano sobre un cerdo |
Qué hace cada opción de conversion:
| Cadena | Qué hace |
|---|---|
| Sin nada | La conversión solo se muestra en JEI (categoría "Conversión misteriosa" de Create). Create no ejecuta conversiones genéricas, así que no pasa nada en el juego |
.haunting() |
Además crea una receta create:haunting con el mismo contenido (id con el sufijo _haunting). Ahora funciona en el juego con el ventilador tras fuego de almas |
.entity('minecraft:pig') |
Funciona como el blaze burner (objeto + entidad): clic derecho con la entrada en la mano (mano principal) sobre esa entidad, gasta 1 objeto (en creativo no) y da el resultado. JEI muestra el texto "Clic derecho sobre: Cerdo" |
ServerEvents.recipes(event => {
//da create:andesite_casing aplicando create:andesite_alloy sobre un tronco sin corteza; en el juego: aleacion en la mano y clic derecho sobre el tronco
event.recipes.create.item_application('create:andesite_casing', ['#c:stripped_logs', 'create:andesite_alloy'])
.id('umc_ejemplos:create/casing_andamio')
//da create:brass_casing aplicando create:brass_ingot sobre un tronco sin corteza sin gastar el lingote (keepHeldItem); en el juego: clic derecho con el lingote
event.recipes.create.item_application('create:brass_casing', ['#c:stripped_logs', 'create:brass_ingot'])
.keepHeldItem()
.id('umc_ejemplos:create/casing_laton_conserva')
//da create:copper_casing aplicando minecraft:copper_ingot sobre un tronco sin corteza (alias camelCase); en el juego: clic derecho con el lingote
event.recipes.itemApplication('create:copper_casing', ['#c:stripped_logs', 'minecraft:copper_ingot'])
.id('umc_ejemplos:create/casing_cobre_alias')
//convierte minecraft:emerald en minecraft:amethyst_shard: sale en JEI (Conversion misteriosa) y con haunting() tambien funciona en el juego (ventilador tras fuego de almas)
//nota: sin haunting() solo se muestra en JEI, Create no ejecuta conversiones genericas
event.recipes.create.conversion('minecraft:amethyst_shard', 'minecraft:emerald')
.id('umc_ejemplos:create/conversion_esmeralda_amatista')
.haunting()
//convierte minecraft:grass_block en minecraft:glowstone (alias camelCase de conversion): sale en JEI y con haunting() funciona en el juego
//nota: en el juego se tira el bloque de hierba al suelo y se le pasa el aire de un Encased Fan (ventilador) a traves de fuego de almas; no se hace clic en nada
event.recipes.mysteriousConversion('minecraft:glowstone', 'minecraft:grass_block')
.id('umc_ejemplos:create/conversion_hierba_piedra_luminosa')
.haunting()
//da minecraft:amethyst_shard hechizando minecraft:emerald con un ventilador (Encased Fan) detras de fuego de almas
event.recipes.create.haunting('minecraft:amethyst_shard', 'minecraft:emerald')
.id('umc_ejemplos:create/haunting_esmeralda_amatista')
//da minecraft:diamond convirtiendo minecraft:coal cuando se hace clic derecho con el carbon en la mano sobre un cerdo, como el blaze burner (item + entidad); tambien sale en JEI (Conversion misteriosa)
event.recipes.create.conversion('minecraft:diamond', 'minecraft:coal')
.id('umc_ejemplos:create/conversion_carbon_diamante')
.entity('minecraft:pig')
})Notas de uso en el juego:
-
La conversión misteriosa solo se muestra en JEI salvo que se encadene
.haunting()o.entity('minecraft:pig'). Sin ellas es solo informativa. - Con
.entity(...), JEI muestra en esa receta el texto "Clic derecho sobre: Cerdo" (el nombre de la entidad que pongas). La lista de conversiones con entidad se sincroniza del servidor al cliente al unirse o recargar los datos. - La conversión por entidad solo vale con la mano principal.
- Si desactivas
compat.kubejs.modules.create, también se desactiva el clic derecho sobre entidades.
Módulo compat.kubejs.modules.generatorgalore. Mod necesario: generatorgalore.
Añade el objeto global GeneratorGalore, que se usa dentro de ServerEvents.generateData('after_mods', ...). Genera los data maps de combustibles de Generator Galore: solid_fuel_map y fluid_fuel_map. Se escriben con replace = false, así que se suman a los del mod en lugar de sustituirlos.
| Llamada | Argumentos | Qué hace |
|---|---|---|
GeneratorGalore.fuels() |
Empieza la definición. No se escribe nada hasta llamar a .write(event)
|
|
.solid(idGenerador) |
id del generador | Elige un generador de combustible sólido |
.fuel(objeto o #etiqueta, ticksDeQuemado, FEPorTick, velocidadDeConsumo) |
tras .solid
|
Combustible sólido. La velocidad de consumo es opcional (1 por defecto) |
.fluid(idGenerador) |
id del generador | Elige un generador de combustible líquido |
.fuel(fluido o #etiqueta, FEPorTick, mBPorTickConsumidos) |
tras .fluid
|
Combustible líquido. El último es opcional (1 por defecto) |
.done() |
Cierra la lista de ese generador para elegir otro | |
.write(event) |
Escribe los dos data maps |
| Generador | Combustible (entra) | Sale |
|---|---|---|
generatorgalore:iron_generator (sólido) |
1x minecraft:coal
|
40 FE/t durante 1600 ticks |
generatorgalore:iron_generator (sólido) |
Cualquier #minecraft:logs
|
20 FE/t durante 300 ticks |
generatorgalore:ender_generator (sólido) |
1x minecraft:ender_pearl
|
96 FE/t durante 1600 ticks |
generatorgalore:ender_generator (sólido) |
1x minecraft:ender_eye
|
80 FE/t durante 3200 ticks |
generatorgalore:magmatic_generator (líquido) |
Cualquier fluido de #c:lava, 0.4 mB/t |
40 FE/t |
ServerEvents.generateData('after_mods', event => {
GeneratorGalore.fuels()
//el generador indicado acepta combustibles solidos
.solid('generatorgalore:iron_generator')
//40 FE/t durante 1600 ticks quemando 1 minecraft:coal, velocidad de consumo 1
.fuel('minecraft:coal', 1600, 40, 1)
//20 FE/t durante 300 ticks quemando cualquier #minecraft:logs (velocidad de consumo 1 por omision)
.fuel('#minecraft:logs', 300, 20)
.done()
.solid('generatorgalore:ender_generator')
.fuel('minecraft:ender_pearl', 1600, 96, 1)
.fuel('minecraft:ender_eye', 3200, 80, 1)
.done()
//combustibles liquidos
.fluid('generatorgalore:magmatic_generator')
//40 FE/t consumiendo 0.4 mB/t de cualquier fluido de la tag #c:lava
.fuel('#c:lava', 40, 0.4)
.done()
//escribe los dos data maps (solidos y liquidos) en el paquete de datos generado
.write(event)
})Módulo compat.kubejs.modules.excessive_utilities. Mod necesario: excessive_utilities. Recetas con event.recipes.excessive_utilities.<tipo>(...) en ServerEvents.recipes.
| Tipo | Llamada | Argumentos |
|---|---|---|
crusher |
crusher(resultado, ingrediente[, resultadoSecundario, probabilidad]) |
probabilidad de 0 a 1. Opciones .ticks(n) (200 por defecto) y .fePerTick(n) (20 por defecto) |
enchanter |
enchanter(resultado, izquierda, derecha, fePorTick, ticks) |
izquierda y derecha con cantidad. Opción .enchantingPower(poder) (15 por defecto) |
qed |
qed(resultado, [patrón], {letra: ingrediente}, ticksDeCristal) |
Patrón vertical de letras |
resonator |
resonator(resultado, ingrediente, costeGP) |
costeGP: Grid Power |
world_interaction_item |
world_interaction_item(resultado, bloqueDebajo, [bloquesAdyacentes]) |
Opción .behind(bloque)
|
world_interaction_fluid |
world_interaction_fluid(fluidoResultado, bloqueDebajo, [bloquesAdyacentes]) |
Opción .behind(bloque)
|
| Tipo | Llamada | Argumentos |
|---|---|---|
single_item_fuel |
single_item_fuel(tipoGenerador, ingrediente, fePorTick, duraciónTicks) |
tipoGenerador: ender, explosive, pink, nether_star, frosty, halitosis o death
|
item_and_fluid_fuel |
item_and_fluid_fuel(tipoGenerador, ingrediente, fluido, fePorTick, duraciónTicks) |
tipoGenerador: slimy o heated_redstone
|
magmatic_fuel |
magmatic_fuel(fluido, fePorTick, duraciónTicks) |
| Tipo | Llamada | Argumentos |
|---|---|---|
shaped_division |
shaped_division(resultado, [patrón], {letra: ingrediente}).inversion(modo) |
modo: inverted, uninverted o either (por defecto) según el estado del Division Sigil |
shaped_unstable |
shaped_unstable(resultado, [patrón], {letra: ingrediente}).stability(modo) |
modo: stable, unstable o either (por defecto) |
keep_paintbrush |
keep_paintbrush(resultado, [patrón], {letra: ingrediente}) |
El Paintbrush no se consume |
damage_glass_cutter |
damage_glass_cutter(resultado, [patrón], {letra: ingrediente}) |
El Glass Cutter pierde durabilidad |
snow_globe |
snow_globe(resultado, [patrón], {letra: ingrediente}) |
Necesita un Magical Snow Globe ya activado |
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
crusher (simple) |
minecraft:allium |
2x minecraft:magenta_dye
|
Crusher (200 ticks y 20 FE/t) |
crusher (completo) |
minecraft:cobblestone |
minecraft:gravel y minecraft:flint con 25 % |
Crusher (100 ticks, 40 FE/t) |
enchanter |
1x #c:storage_blocks/gold + 9x #c:gems/lapis, 40 FE/t, 600 ticks |
excessive_utilities:block_of_enchanted_metal |
Enchanter |
qed |
Perla de ender (E) sobre 2x excessive_utilities:ender_infused_obsidian (O) en vertical, 300 ticks de cristal |
excessive_utilities:ender_marker |
QED |
resonator |
minecraft:iron_bars, 16 de Grid Power |
excessive_utilities:heating_coil |
Resonator |
world_interaction_item |
minecraft:soul_soil debajo, minecraft:blue_ice y minecraft:lava en los lados |
minecraft:basalt |
World Interaction Upgrade |
world_interaction_item + .behind
|
Cualquier #c:stones debajo, minecraft:water y minecraft:lava en los lados y minecraft:water detrás |
minecraft:stone |
World Interaction Upgrade |
world_interaction_fluid |
minecraft:water debajo con dos minecraft:water en los lados |
1 mB de minecraft:water
|
World Interaction Upgrade |
single_item_fuel |
1x #c:bones
|
40 FE/t durante 400 ticks | Death Generator |
item_and_fluid_fuel |
#c:dusts/redstone + 250 mB de lava |
3200 FE/t durante 125 ticks | Heated Redstone Generator |
magmatic_fuel |
1 mB de minecraft:lava
|
100 FE/t durante 1 tick | Magmatic Generator |
shaped_division |
Pepita de hierro (N), excessive_utilities:division_sigil (S) y diamante (D), en vertical N/S/D, solo con el Division Sigil invertido |
excessive_utilities:semi_unstable_nugget |
Mesa de crafteo |
shaped_unstable |
8x #c:ingots/iron y 1x #c:gems/diamond en el centro, solo en estado estable |
excessive_utilities:unstable_ingot |
Mesa de crafteo (3x3) |
keep_paintbrush |
7x #c:brick_blocks (el patrón III/IDI/IPI lleva 7), #c:dyes/black y el Paintbrush (no se consume) |
7x excessive_utilities:colored_bricks_black
|
Mesa de crafteo (3x3) |
damage_glass_cutter |
#c:ender_pearls y el Glass Cutter (pierde durabilidad) |
8x excessive_utilities:ender_shard
|
Mesa de crafteo (vertical P/C) |
snow_globe |
#c:end_stones, excessive_utilities:stoneburnt y un Magical Snow Globe activado |
excessive_utilities:quantum_quarry |
Mesa de crafteo (3x3) |
ServerEvents.recipes(event => {
//da 2x minecraft:magenta_dye triturando minecraft:allium, en el Crusher (200 ticks y 20 FE/t por defecto)
event.recipes.excessive_utilities.crusher('2x minecraft:magenta_dye', 'minecraft:allium')
.id('umc_ejemplos:excessive_utilities/triturador_simple')
//da minecraft:gravel triturando minecraft:cobblestone, mas minecraft:flint con 25% de probabilidad, en 100 ticks gastando 40 FE/t, en el Crusher
event.recipes.excessive_utilities.crusher('minecraft:gravel', 'minecraft:cobblestone', 'minecraft:flint', 0.25)
.ticks(100)
.fePerTick(40)
.id('umc_ejemplos:excessive_utilities/triturador_completo')
//da excessive_utilities:block_of_enchanted_metal mezclando 1x bloque de oro (#c:storage_blocks/gold) con 9x lapislazuli (#c:gems/lapis), gastando 40 FE/t durante 600 ticks, en el Enchanter
event.recipes.excessive_utilities.enchanter('excessive_utilities:block_of_enchanted_metal', '#c:storage_blocks/gold', '9x #c:gems/lapis', 40, 600)
.enchantingPower(15)
.id('umc_ejemplos:excessive_utilities/encantador')
//da excessive_utilities:ender_marker colocando 1 perla de ender (E) sobre 2 ender_infused_obsidian (O) en vertical, con 300 ticks de cristal, en el QED
event.recipes.excessive_utilities.qed('excessive_utilities:ender_marker', ['E', 'O', 'O'], {
E: '#c:ender_pearls',
O: 'excessive_utilities:ender_infused_obsidian'
}, 300).id('umc_ejemplos:excessive_utilities/qed')
//da excessive_utilities:heating_coil resonando minecraft:iron_bars con un coste de 16 de Grid Power, en el Resonator
event.recipes.excessive_utilities.resonator('excessive_utilities:heating_coil', 'minecraft:iron_bars', 16)
.id('umc_ejemplos:excessive_utilities/resonador')
//da minecraft:basalt cuando el World Interaction Upgrade actua sobre minecraft:soul_soil con minecraft:blue_ice y minecraft:lava en los lados
event.recipes.excessive_utilities.world_interaction_item('minecraft:basalt', 'minecraft:soul_soil', ['minecraft:blue_ice', 'minecraft:lava'])
.id('umc_ejemplos:excessive_utilities/interaccion_objeto')
//da minecraft:stone cuando el World Interaction Upgrade actua sobre cualquier #c:stones con minecraft:water y minecraft:lava en los lados y minecraft:water detras
event.recipes.excessive_utilities.world_interaction_item('minecraft:stone', '#c:stones', ['minecraft:water', 'minecraft:lava'])
.behind('minecraft:water')
.id('umc_ejemplos:excessive_utilities/interaccion_objeto_detras')
//da 1 mB de minecraft:water cuando el World Interaction Upgrade actua sobre minecraft:water con dos minecraft:water en los lados
event.recipes.excessive_utilities.world_interaction_fluid(Fluid.of('minecraft:water', 1), 'minecraft:water', ['minecraft:water', 'minecraft:water'])
.id('umc_ejemplos:excessive_utilities/interaccion_fluido')
//da 40 FE/t durante 400 ticks quemando 1 hueso (#c:bones), en el Death Generator
event.recipes.excessive_utilities.single_item_fuel('death', '#c:bones', 40, 400)
.id('umc_ejemplos:excessive_utilities/combustible_muerte')
//da 3200 FE/t durante 125 ticks quemando polvo de redstone (#c:dusts/redstone) con 250 mB de lava, en el Heated Redstone Generator
event.recipes.excessive_utilities.item_and_fluid_fuel('heated_redstone', '#c:dusts/redstone', Fluid.of('minecraft:lava', 250), 3200, 125)
.id('umc_ejemplos:excessive_utilities/combustible_redstone')
//da 100 FE/t durante 1 tick consumiendo 1 mB de minecraft:lava, en el Magmatic Generator
event.recipes.excessive_utilities.magmatic_fuel(Fluid.of('minecraft:lava', 1), 100, 1)
.id('umc_ejemplos:excessive_utilities/combustible_magmatico')
//da excessive_utilities:semi_unstable_nugget en la mesa de crafteo (con forma, vertical N/S/D) con pepita de hierro, Division Sigil y diamante, solo si el Division Sigil esta invertido
event.recipes.excessive_utilities.shaped_division('excessive_utilities:semi_unstable_nugget', ['N', 'S', 'D'], {
N: '#c:nuggets/iron',
S: 'excessive_utilities:division_sigil',
D: '#c:gems/diamond'
}).inversion('inverted').id('umc_ejemplos:excessive_utilities/division')
//da excessive_utilities:unstable_ingot en la mesa de crafteo (con forma, 3x3) con 8 lingotes de hierro y 1 diamante en el centro, solo en estado estable
event.recipes.excessive_utilities.shaped_unstable('excessive_utilities:unstable_ingot', ['III', 'IDI', 'III'], {
I: '#c:ingots/iron',
D: '#c:gems/diamond'
}).stability('stable').id('umc_ejemplos:excessive_utilities/inestable')
//da 7x excessive_utilities:colored_bricks_black en la mesa de crafteo (con forma, 3x3) con 8 bloques de ladrillo, tinte negro y el Paintbrush, que NO se consume
event.recipes.excessive_utilities.keep_paintbrush('7x excessive_utilities:colored_bricks_black', ['III', 'IDI', 'IPI'], {
D: '#c:dyes/black',
I: '#c:brick_blocks',
P: 'excessive_utilities:paintbrush'
}).id('umc_ejemplos:excessive_utilities/pincel')
//da 8x excessive_utilities:ender_shard en la mesa de crafteo (con forma, vertical P/C) con una perla de ender y el Glass Cutter, que pierde durabilidad
event.recipes.excessive_utilities.damage_glass_cutter('8x excessive_utilities:ender_shard', ['P', 'C'], {
P: '#c:ender_pearls',
C: 'excessive_utilities:glass_cutter'
}).id('umc_ejemplos:excessive_utilities/cortavidrios')
//da excessive_utilities:quantum_quarry en la mesa de crafteo (con forma, 3x3) con piedras del End, stoneburnt y un Magical Snow Globe (G) ya activado
event.recipes.excessive_utilities.snow_globe('excessive_utilities:quantum_quarry', ['ESE', 'SGS', 'ESE'], {
E: '#c:end_stones',
G: 'excessive_utilities:magical_snow_globe',
S: 'excessive_utilities:stoneburnt'
}).id('umc_ejemplos:excessive_utilities/bola_nieve')
})Módulo compat.kubejs.modules.functionalstorage. Mod necesario: functionalstorage.
| Tipo | Llamada | Argumentos |
|---|---|---|
custom_compacting |
custom_compacting(itemInferior, itemSuperior) |
Dos ítems con cantidad: '4x minecraft:amethyst_shard' y 'minecraft:amethyst_block'
|
copy_components |
copy_components(resultado, [patrón], {letra: ingrediente}, [componentesACopiar], índiceCasillaOrigen) |
Receta de mesa de crafteo con forma que copia componentes de una casilla al resultado |
Además se registra framed_recipe sin argumentos, para que KubeJS no dé error con las recetas de cajones con marco que el mod ya trae.
| Receta | Entra | Sale | Dónde |
|---|---|---|---|
custom_compacting |
4x minecraft:amethyst_shard
|
1x minecraft:amethyst_block (y al revés al descompactar) |
Compacting Drawer |
custom_compacting |
9x minecraft:iron_nugget
|
1x minecraft:iron_ingot (y al revés) |
Compacting Drawer |
copy_components |
functionalstorage:compacting_drawer (D) rodeado de #c:nuggets/iron (S), copiando el componente functionalstorage:tile
|
functionalstorage:compacting_framed_drawer |
Mesa de crafteo. El índice 4 es la casilla central del 3x3 |
ServerEvents.recipes(event => {
//hace que el Compacting Drawer compacte 4x minecraft:amethyst_shard en 1x minecraft:amethyst_block (y lo descompacte al reves)
event.recipes.functionalstorage.custom_compacting('4x minecraft:amethyst_shard', 'minecraft:amethyst_block')
.id('umc_ejemplos:functionalstorage/compactar_amatista')
//hace que el Compacting Drawer compacte 9x minecraft:iron_nugget en 1x minecraft:iron_ingot (y lo descompacte al reves)
event.recipes.functionalstorage.custom_compacting('9x minecraft:iron_nugget', 'minecraft:iron_ingot')
.id('umc_ejemplos:functionalstorage/compactar_hierro')
//da 1x functionalstorage:compacting_framed_drawer en la mesa de crafteo (con forma) rodeando un Compacting Drawer (D) con pepitas de hierro (S) y copiandole al resultado el componente functionalstorage:tile (indice 4 = casilla central 3x3)
event.recipes.functionalstorage.copy_components('functionalstorage:compacting_framed_drawer', ['S S', 'SDS', ' S '], {
D: 'functionalstorage:compacting_drawer',
S: '#c:nuggets/iron'
}, ['functionalstorage:tile'], 4).id('umc_ejemplos:functionalstorage/cajon_marco_compactador')
})Si Mystical Agriculture está instalado, UMC añade 54 cultivos extra de forma nativa (sin KubeJS). Cada cultivo solo se registra cuando están cargados los mods que necesita (columna "Mods requeridos").
| Qué | Id |
|---|---|
| Cultivo (crop) |
umc:<id> (el namespace se cambia con compat.mysticalagriculture.crop_namespace) |
| Semillas | mysticalagriculture:<id>_seeds |
| Esencia | mysticalagriculture:<id>_essence |
| Nombre en pantalla | Clave de idioma umc.mysticalagriculture.crop.<id> (en inglés y español) |
Ejemplo: el cultivo thaumaturge_thaumium da mysticalagriculture:thaumaturge_thaumium_seeds y mysticalagriculture:thaumaturge_thaumium_essence.
Cada cultivo se puede apagar por separado con compat.mysticalagriculture.crops.<id> = false, y todo el sistema con compat.mysticalagriculture.enabled = false.
- Nivel: el nivel de tier. De 1 a 5 son de Mystical Agriculture; el 6 es de Mystical Agradditions (por eso exige ese mod).
-
Material: ingrediente con el que se crea la semilla. Con
#es una etiqueta. - Esencia da: lo que sale al craftear la esencia en anillo (cantidad y objeto). "sin receta" significa que no hay receta de esencia.
| Id | Nombre | Nivel | Material | Mods requeridos | Esencia da |
|---|---|---|---|---|---|
allthemodium |
Allthemodium | 6 (Agradditions) | allthecompressed:allthemodium_block_4x | allthecompressed, mysticalagradditions | 2x allthemodium:allthemodium_ingot |
andesite_alloy |
Aleación de andesita | 5 | create:andesite_alloy_block | create | 2x create:andesite_alloy |
arcane_gold_ingot |
Oro arcano | 5 | eidolon:arcane_gold_block | eidolon | 2x eidolon:arcane_gold_ingot |
black_quartz |
Cuarzo negro | 3 | #c:gems/black_quartz | uno de: actuallyadditions / occultism | (sin receta) |
blaze_gold |
Oro de blaze | 6 (Agradditions) | justdirethings:blazegold_block | justdirethings, mysticalagradditions | 2x justdirethings:blazegold_ingot |
cajita_feliz |
Cajita feliz | 1 | ultimatefoods:cajita_feliz | ultimatefoods | 12x ultimatefoods:cajita_feliz |
celestigem |
Gema celestial | 6 (Agradditions) | justdirethings:celestigem_block | justdirethings, mysticalagradditions | 2x justdirethings:celestigem |
chaos_shard |
Fragmento del caos | 6 (Agradditions) | draconicevolution:chaos_shard | draconicevolution, mysticalagradditions | 2x draconicevolution:chaos_shard |
chromium |
Cromo | 6 (Agradditions) | mysticalexpansion:etherium_ingot_block | mysticalexpansion, mysticalagradditions | 2x mysticalexpansion:etherium_ingot |
cognition |
Aleación cognitiva | 5 | experienceobelisk:cognitive_alloy_block | experienceobelisk | 2x experienceobelisk:cognitive_alloy |
crystal_matrix |
Matriz de cristal | 5 | avaritia:crystal_matrix | avaritia | 2x avaritia:crystal_matrix_ingot |
cuarzorosa |
Cuarzo rosa | 6 (Agradditions) | create:polished_rose_quartz | create, mysticalagradditions | 2x create:polished_rose_quartz |
dark_gem |
Gema oscura | 3 | evilcraft:dark_block | evilcraft | 4x evilcraft:dark_gem |
deorum_ingot |
Deorum | 4 | forbidden_arcanus:deorum_block | forbidden_arcanus | 3x forbidden_arcanus:deorum_ingot |
eclipse_alloy |
Aleación de eclipse | 6 (Agradditions) | justdirethings:eclipsealloy_block | justdirethings, mysticalagradditions | 2x justdirethings:eclipsealloy_ingot |
elevatium_ingot |
Elevatium | 4 | kubejs:ingot_of_elevation | kubejs | 3x kubejs:ingot_of_elevation |
ender_ingot |
Lingote de ender | 5 | extendedcrafting:ender_ingot_block | extendedcrafting | 2x extendedcrafting:ender_ingot |
entro |
Entro | 5 | allthecompressed:entro_block_1x | allthecompressed | 2x allthecompressed:entro_block_1x |
ferricore |
FerriCore | 6 (Agradditions) | justdirethings:ferricore_block | justdirethings, mysticalagradditions | 2x justdirethings:ferricore_ingot |
flux_dust |
Flux | 1 | fluxnetworks:flux_block | fluxnetworks | 12x fluxnetworks:flux_dust |
imperium_essence |
Esencia de imperium | 4 | mysticalagriculture:imperium_essence | (ninguno) | 3x mysticalagriculture:imperium_essence |
insanium_essence |
Esencia de insanium | 6 (Agradditions) | mysticalagriculture:supremium_essence | mysticalagradditions | 2x mysticalagriculture:supremium_essence |
kivi |
Kivi | 2 | xycraft_world:kivi | xycraft_world | 6x xycraft_world:kivi |
nadienite_ingot |
Nadienita | 5 | ultimatearmoury:nadienite_block | ultimatearmoury | 2x ultimatearmoury:nadienite_ingot |
naquadah |
Naquadah | 6 (Agradditions) | mekanism_extras:block_naquadah | mekanism_extras, mysticalagradditions | 2x mekanism_extras:ingot_naquadah |
pink_slime |
Slime rosa | 4 | industrialforegoing:pink_slime_ingot | industrialforegoing | 3x industrialforegoing:pink_slime_ingot |
predicciondematrix |
Matriz de predicción | 3 | hostilenetworks:prediction_matrix | hostilenetworks | 4x hostilenetworks:prediction_matrix |
prometheum |
Prometeo | 4 | oritech:prometheum_ingot | oritech | 3x oritech:prometheum_ingot |
prosperity_shard |
Fragmento de prosperidad | 5 | mysticalagriculture:prosperity_block | (ninguno) | 2x mysticalagriculture:prosperity_shard |
prudentium_essence |
Esencia de prudentium | 2 | mysticalagriculture:prudentium_essence | (ninguno) | 6x mysticalagriculture:prudentium_essence |
redstoneingot |
Lingote de redstone | 2 | extendedcrafting:redstone_ingot_block | extendedcrafting | 6x extendedcrafting:redstone_ingot |
sky_steel_ingot |
Acero celeste | 5 | allthecompressed:sky_steel_block_1x | allthecompressed | 2x megacells:sky_steel_ingot |
source_gem |
Gema de fuente | 2 | ars_nouveau:source_gem_block | ars_nouveau | 6x ars_nouveau:source_gem |
spirit_gem |
Gema espiritual | 3 | occultism:spirit_campfire | occultism | 4x occultism:spirit_campfire |
super_cacotas |
Súper cacotas | 5 | ultimate_utilities:super_caca | ultimate_utilities | 2x ultimate_utilities:super_caca |
supremium_essence_esc |
Esencia de supremium | 5 | mysticalagriculture:supremium_essence | (ninguno) | 2x mysticalagriculture:supremium_essence |
tertium_essence |
Esencia de tertium | 3 | mysticalagriculture:tertium_essence | (ninguno) | 4x mysticalagriculture:tertium_essence |
thaumaturge_alumentum |
Alumentum | 4 | thaumaturge:alumentum | thaumaturge | 3x thaumaturge:alumentum |
thaumaturge_amber |
Ámbar | 3 | thaumaturge:amber | thaumaturge | 4x thaumaturge:amber |
thaumaturge_brass |
Latón taumatúrgico | 2 | thaumaturge:ingot_brass | thaumaturge | 6x thaumaturge:ingot_brass |
thaumaturge_crystal_aer |
Cristal de Aer | 3 | thaumaturge:crystal_aer | thaumaturge | 4x thaumaturge:crystal_aer |
thaumaturge_crystal_aqua |
Cristal de Aqua | 3 | thaumaturge:crystal_aqua | thaumaturge | 4x thaumaturge:crystal_aqua |
thaumaturge_crystal_ignis |
Cristal de Ignis | 3 | thaumaturge:crystal_ignis | thaumaturge | 4x thaumaturge:crystal_ignis |
thaumaturge_crystal_ordo |
Cristal de Ordo | 3 | thaumaturge:crystal_ordo | thaumaturge | 4x thaumaturge:crystal_ordo |
thaumaturge_crystal_perditio |
Cristal de Perditio | 4 | thaumaturge:crystal_perditio | thaumaturge | 3x thaumaturge:crystal_perditio |
thaumaturge_crystal_terra |
Cristal de Terra | 3 | thaumaturge:crystal_terra | thaumaturge | 4x thaumaturge:crystal_terra |
thaumaturge_crystal_vitium |
Cristal de Vitium | 4 | thaumaturge:crystal_vitium | thaumaturge | 3x thaumaturge:crystal_vitium |
thaumaturge_quicksilver |
Azogue | 2 | thaumaturge:quicksilver | thaumaturge | 6x thaumaturge:quicksilver |
thaumaturge_salis_mundus |
Salis Mundus | 2 | thaumaturge:salis_mundus | thaumaturge | 6x thaumaturge:salis_mundus |
thaumaturge_thaumium |
Taumio | 3 | thaumaturge:ingot_thaumium | thaumaturge | 4x thaumaturge:ingot_thaumium |
thaumaturge_void_metal |
Metal del vacío | 4 | thaumaturge:ingot_void | thaumaturge | 3x thaumaturge:ingot_void |
unobtainium |
Unobtainium | 6 (Agradditions) | #c:storage_blocks/unobtainium | allthemodium, mysticalagradditions | 2x allthemodium:unobtainium_ingot |
vibranium |
Vibranio | 6 (Agradditions) | #c:storage_blocks/vibranium | allthemodium, mysticalagradditions | 2x allthemodium:vibranium_ingot |
xychorium_gem |
Gema de xychorium | 3 | #c:gems/xychorium | xycraft_world | (sin receta) |
Resumen por mods: 14 cultivos necesitan thaumaturge; los de nivel 6 necesitan mysticalagradditions; imperium_essence, prosperity_shard, prudentium_essence, supremium_essence_esc y tertium_essence no necesitan ningún mod aparte de Mystical Agriculture.
Mystical Agriculture genera las recetas de cada semilla con el material de la tabla. UMC las activa o apaga con estas claves:
| Receta | Clave | Dónde se hace |
|---|---|---|
| Crafteo | compat.mysticalagriculture.recipes.seed_crafting |
Mesa de crafteo |
| Infusión | compat.mysticalagriculture.recipes.seed_infusion |
Altar de Infusión |
| Reprocesador | compat.mysticalagriculture.recipes.seed_reprocessor |
Reprocesador de Semillas (de semilla a esencia) |
Cada una está activada por defecto. Para recetas de semilla distintas a las del catálogo usa MysticalEvents.recipes (apartado 4.3), que añade solo las condiciones neoforge:mod_loaded necesarias.
Craftear la esencia devuelve el objeto del que sale el cultivo. Es una receta con forma de anillo de 8 esencias:
EEE
E E
EEE
-
Eesmysticalagriculture:<id>_essence. - La cantidad que sale es 12 dividido entre el nivel (mínimo 1), con división entera:
| Nivel | Cantidad que sale |
|---|---|
| 1 | 12 |
| 2 | 6 |
| 3 | 4 |
| 4 | 3 |
| 5 | 2 |
| 6 | 2 |
- Se generan por datagen en
data/umc/recipe/mystical/essence/<id>.json: hay 52 recetas. Los cultivosblack_quartzyxychorium_gemno tienen receta de esencia porque su material es una etiqueta (no hay un único objeto de resultado). - Se activan con
compat.mysticalagriculture.recipes.essence_crafting. - Llevan condiciones
neoforge:mod_loaded(una por cada mod que exige el cultivo, aparte de Mystical Agriculture) y la condición propiaumc:mystical_crop.
Ejemplo real (andesite_alloy, nivel 5, da 2 aleaciones de andesita):
{
"neoforge:conditions": [
{ "type": "neoforge:mod_loaded", "modid": "create" },
{ "type": "umc:mystical_crop", "crop": "andesite_alloy" }
],
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"E": { "item": "mysticalagriculture:andesite_alloy_essence" }
},
"pattern": ["EEE", "E E", "EEE"],
"result": { "count": 2, "id": "create:andesite_alloy" }
}Condición de datos de NeoForge que añade el mod. Se puede usar en cualquier receta de un datapack.
{ "type": "umc:mystical_crop", "crop": "andesite_alloy" }| Campo | Tipo | Qué es |
|---|---|---|
crop |
texto | Id del cultivo del catálogo (sin namespace), de la columna "Id" de la tabla |
Es verdadera solo si se cumplen todas estas cosas:
-
compat.mysticalagriculture.enabledestá entrue. -
compat.mysticalagriculture.recipes.essence_craftingestá entrue. -
compat.mysticalagriculture.crops.<crop>está entrue. - Están cargados los mods que exige ese cultivo (columna "Mods requeridos").
Cada módulo de compatibilidad solo se registra si el mod correspondiente está instalado y su interruptor está activo (compat.kubejs.enabled y compat.kubejs.modules.<mod>). Si falta el mod, objetos como EnchantedEvents, ThaumaturgeEvents, GeneratorGalore o event.recipes.ae2 no existen. También salen errores del tipo Serializer for type X is not found cuando una receta apunta a un mod que no está instalado.
Ese cultivo usa kubejs:ingot_of_elevation, un ítem del modpack (de KubeJS), no del mod. El cultivo se registra cuando KubeJS está cargado, pero necesitas definir el objeto tú mismo en startup_scripts, por ejemplo:
StartupEvents.registry('item', event => {
event.create('ingot_of_elevation')
})Si no lo quieres, apaga el cultivo con compat.mysticalagriculture.crops.elevatium_ingot = false.
En el log de KubeJS aparecen avisos así:
Failed to parse recipe 'thaumaturge:arcane_workbench/arcane_key_iron[thaumaturge:arcane_workbench_shaped]'! Falling back to vanilla: Failed to read required component 'result: item_stack' - java.lang.IllegalStateException: Item stack with stack size of 2 was larger than maximum: 1
También para arcane_key_gold. Son recetas del propio Thaumaturge, cuyo resultado tiene una cantidad mayor que el máximo de pila. KubeJS las deja pasar como recetas normales ("Falling back to vanilla"), así que son inofensivos y no hay que hacer nada.
Los ritos que añade el propio mod UMC (familiares, viaje espiritual, nigromancia, purificación) están en el namespace enchanted. Los que creas tú con EnchantedEvents.rites usan el namespace que pongas (kubejs: si no escribes ninguno), y se guardan en data/<namespace>/enchanted/circle_magic/rite/. Las tizas y formas sin namespace se leen como enchanted:.
La conversión misteriosa (conversion / mysteriousConversion) solo se muestra en JEI salvo que le encadenes .haunting() (ventilador tras fuego de almas) o .entity('minecraft:pig') (clic derecho sobre esa entidad). Mira el apartado 4.7.
Necesita objetos a prueba de fuego (netherita) y unos 3 segundos dentro de la lava. Los demás se queman antes.
La primera layer() es la capa de arriba y la última la de abajo. Se activa con clic derecho con Salis Mundus sobre cualquier bloque de la estructura.
Los interruptores de compat.kubejs y de compat.mysticalagriculture se aplican al arrancar el juego (los cultivos y los módulos de KubeJS se registran en ese momento): reinicia el juego tras cambiarlos.