{}const=>[]async()letfn</>var
Desarrollo

Cómo añadir un nuevo mob en Minecraft

Aprende a trabajar con la API de Forge, escribir código en Java, crear modelos 3D y añadir comportamientos únicos a las criaturas. Ideal para aquellos que quieren comenzar su viaje en el desarrollo de juegos y aprender programación orientada a objetos en un proyecto real.

К

Kodik

Autor

4 min de lectura

Minecraft no es solo un juego, ¡es toda una plataforma para la creatividad y el aprendizaje de la programación! Hoy vamos a descubrir cómo crear tu propio mob desde cero. Es una excelente manera de familiarizarse con Java y comprender los conceptos básicos del desarrollo de juegos.

¿Qué necesitamos?

Antes de empezar, asegúrate de que tienes instalado:

  • Java Development Kit (JDK) versión 17 o superior

  • IntelliJ IDEA (Community Edition es adecuado)

  • Minecraft Forge MDK (Mod Development Kit)

  • Conocimientos básicos de Java (variables, clases, métodos)

🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

Paso 1: Configuración del entorno

Primero descarga Forge MDK desde el sitio web oficial files.minecraftforge.net. Descomprime el archivo en una carpeta separada y abre el proyecto en IntelliJ IDEA.

Ejecute el comando en el terminal IDE:

./gradlew genIntellijRuns

💡 Consejo: Esto configurará el proyecto para el desarrollo. Espere a que Gradle descargue todas las dependencias; esto puede tardar unos minutos.

Paso 2: Crear una clase de mob

Vamos a crear un mob sencillo: una luciérnaga amistosa que vuela y brilla por la noche.

En la carpeta src/main/java/com/yourname/yourmod/entity crea el archivo FireflyEntity.java:

package com.yourname.yourmod.entity;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.goal.FloatGoal;
import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal;
import net.minecraft.world.level.Level;

public class FireflyEntity extends PathfinderMob {
    
    public FireflyEntity(EntityType<? extends PathfinderMob> type, Level world) {
        super(type, world);
    }
    
    // Registramos el comportamiento de la turba
    @Override
    protected void registerGoals() {
        this.goalSelector.addGoal(0, new FloatGoal(this));
        this.goalSelector.addGoal(1, new WaterAvoidingRandomStrollGoal(this, 1.0D));
    }
    
    // Configuramos los atributos (salud, velocidad)
    public static AttributeSupplier.Builder createAttributes() {
        return PathfinderMob.createMobAttributes()
            .add(Attributes.MAX_HEALTH, 5.0D)
            .add(Attributes.MOVEMENT_SPEED, 0.25D);
    }
}

¿Qué está pasando aquí?

  • PathfinderMob - clase básica para mobs que pueden caminar

  • registerGoals() — método en el que determinamos el comportamiento de la turba (nadar, caminar, atacar)

  • createAttributes() — aquí establecemos las características: salud, velocidad, daño

Paso 3: Registrar el móvil

Ahora tenemos que «contarle» al juego sobre nuestro mob. Crea una clase ModEntities.java:

package com.yourname.yourmod.entity;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

public class ModEntities {
    public static final DeferredRegister<EntityType<?>> ENTITIES = 
        DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, "yourmod");
    
    public static final RegistryObject<EntityType<FireflyEntity>> FIREFLY = 
        ENTITIES.register("firefly", () -> EntityType.Builder
            .of(FireflyEntity::new, MobCategory.CREATURE)
            .sized(0.4F, 0.3F) // tamaño de la caja de hit
            .build("firefly"));
}

No olvides registrar ENTITIES en la clase principal de tu mod:

@Mod("yourmod")
public class YourMod {
    public YourMod() {
        IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
        ModEntities.ENTITIES.register(bus);
    }
}

Paso 4: Crear un modelo y una textura

¡Hay un mob, pero es invisible! Necesitas crear un modelo 3D. Puedes usar el programa Blockbench - editor gratuito para modelos de Minecraft.

  1. Crea un modelo simple (un cubo para el cuerpo, cubos pequeños para las alas)

  2. Exportar como archivo Java

  3. Coloque el modelo en src/main/java/com/yourname/yourmod/client/model/

  4. Crea una textura (16x16 píxeles) y guárdala en src/main/resources/assets/yourmod/textures/entity/

Paso 5: Renderizador de mobs

Crea una clase FireflyRenderer.java:

package com.yourname.yourmod.client.renderer;

import com.yourname.yourmod.entity.FireflyEntity;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.resources.ResourceLocation;

public class FireflyRenderer extends MobRenderer<FireflyEntity, FireflyModel> {
    
    private static final ResourceLocation TEXTURE = 
        new ResourceLocation("yourmod", "textures/entity/firefly.png");
    
    public FireflyRenderer(EntityRendererProvider.Context context) {
        super(context, new FireflyModel(context.bakeLayer(FireflyModel.LAYER)), 0.3F);
    }
    
    @Override
    public ResourceLocation getTextureLocation(FireflyEntity entity) {
        return TEXTURE;
    }
}

Paso 6: Spawn mob en el mundo

Añadiremos un mob al spawn natural del juego. En la clase principal del mod, añade un controlador de eventos:

@SubscribeEvent
public static void onBiomeLoading(BiomeLoadingEvent event) {
    if (event.getCategory() == Biome.BiomeCategory.FOREST) {
        event.getSpawns().getSpawner(MobCategory.CREATURE)
            .add(new MobSpawnSettings.SpawnerData(
                ModEntities.FIREFLY.get(), 15, 2, 4));
    }
}

✅ ¡Perfecto! ¡Ahora las luciérnagas aparecerán en los biomas del bosque!

Paso 7: Prueba

Inicia el juego a través de IntelliJ IDEA (usa la configuración runClient). Crea un nuevo mundo y comprueba:

  • ¿Aparece el mob en el bosque?

  • ¿Se muestra correctamente el modelo?

  • ¿Funciona el comportamiento (caminar, nadar)?

💡 Consejo: Si algo no funciona, comprueba los registros en la consola. Forge describe todos los errores en detalle.

Características adicionales

Puedes añadir el mob:

  • Sonidos propios (pasos, ataque, muerte)

  • Animaciones (aleteo, resplandor)

  • Comportamiento único (ataque, huida, búsqueda de comida)

  • Drop de objetos en caso de fallecimiento

  • Spawn a través del huevo de invocación

@Override
protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHit) {
    super.dropCustomDeathLoot(source, looting, recentlyHit);
    this.spawnAtLocation(Items.GLOWSTONE_DUST, 1);
}

Errores frecuentes de los principiantes

  1. Olvidó registrar el móvil — comprueba que ENTITIES.register(bus) se llama

  2. Ruta de textura incorrecta — asegúrese de que las rutas en el código y el sistema de archivos coincidan

  3. No se ha generado un entorno de trabajo — vuelva a ejecutar gradlew genIntellijRuns

  4. Versión obsoleta de Forge - utiliza la última versión estable para tu versión de Minecraft

¿Quieres profundizar en este tema y crear un mob realmente genial con una mecánica única?

En Codice analizamos en detalle muchos otros temas de programación, desde los conceptos básicos de Java hasta la creación de proyectos complejos. Cada tema se acompaña de tareas prácticas que ayudarán a consolidar el material.

Aquí aprenderás:

  • Trabajar con Java en ejemplos reales

  • Crear mods, plugins y juegos

  • Comprender la arquitectura del código y escribir código limpio

  • Resolver problemas como un verdadero desarrollador

Y si tienes alguna pregunta o necesitas ayuda, te damos la bienvenida a nuestro activo Canal de Telegram, ¡donde ya se ha reunido un gran equipo de personas de ideas afines! Siempre te ayudaremos a resolver el problema, te sugeriremos la mejor solución y te apoyaremos en el camino del aprendizaje.

Únete a Kodik: ¡la programación puede ser clara y emocionante! 🚀

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta