Posted September 2, 20196 yr Hello there, I'm looking for resources to learn how to create a custom mob with custom model and so on in the latest forge version 1.14.4. Haven't found anything yet, did create a model with blockbench but I don't know how to implement it.
September 3, 20196 yr I'm trying to figure that out too. We can probably get there by looking at how Choonster does it: https://github.com/Choonster-Minecraft-Mods/TestMod3/blob/1.14.4/src/main/java/choonster/testmod3/init/ModEntities.java (Though the 1.14 branch is still being worked on and may not be reliable)
September 3, 20196 yr I just finished experimenting with this. Here's my repository if you want to have a look: https://github.com/TheMikeste1/Wabbits You'll need to register an EntityType. Please note that the way I'm doing this is a little strangely because of the way I set up my spawn eggs. There's a lot of code you don't need in my repository. Once you've registered an EntityType, you'll need a probably need a custom entity class. For rendering, you'll need a renderer, renderer factory, and a model (unless you want to use one of the existing models. Once you've made those, you can register your renderer like so (note that this is client side only!): RenderingRegistry.registerEntityRenderingHandler(WabbitEntity.class, RenderWabbitFactory.INSTANCE); Edited September 3, 20196 yr by TheMikeste1
October 27, 20195 yr Just followed these steps and made a new mob, it renders and behaves corruptly AI-wise, however it cannot be hit for some reason. Anyway I try to attack it, the mob is simply unfazed. Please help. SOLVED. Edited October 27, 20195 yr by MineModder2000
October 28, 20195 yr Having trouble spawning my new mob naturally (though I can through events and what not) : Main Mod Spoiler private static EntityType<Skeleton2> skeleton2; @Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD) @SubscribeEvent public static void registerEntities(final RegistryEvent.Register<EntityType<?>> event) { LOGGER.debug("Hello from Register Entities"); event.getRegistry().registerAll( skeleton2 = register("skeleton2", EntityType.Builder.<Skeleton2>create(Skeleton2::new, EntityClassification.MISC) .setCustomClientFactory((spawnEntity, world) -> new Skeleton2(skeleton2, world))) ); setSpawnBiomes(); } @SuppressWarnings("deprecation") private static <T extends Entity> EntityType<T> register(String key, EntityType.Builder<T> builder) { return Registry.register(Registry.ENTITY_TYPE, key, builder.build(key)); } } private static void setSpawnBiomes() { EntitySpawnPlacementRegistry.register(skeleton2, EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, (entityType, world, spawnReason, pos, random) -> { if (entityType != skeleton2) { throw new IllegalArgumentException(skeleton2.getRegistryName() + " only!"); } return true; } ); for (Biome biome : Biome.BIOMES) { biome.getSpawns(EntityClassification.MONSTER).add(new Biome.SpawnListEntry(skeleton2, 100, 1, 2)); } } EntityClass Spoiler package mymod; import java.util.Random; import net.minecraft.entity.EntityType; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SpawnReason; import net.minecraft.entity.monster.AbstractSkeletonEntity; import net.minecraft.entity.projectile.AbstractArrowEntity; import net.minecraft.entity.projectile.ArrowEntity; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Effects; import net.minecraft.util.DamageSource; import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvents; import net.minecraft.util.math.BlockPos; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.IWorld; import net.minecraft.world.World; public class Skeleton2 extends AbstractSkeletonEntity { protected Skeleton2(EntityType<? extends AbstractSkeletonEntity> type, World worldIn) { super(type, worldIn); } @Override protected void registerAttributes() { super.registerAttributes(); this.getAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(50); } @Override protected SoundEvent getAmbientSound() { return SoundEvents.ENTITY_SKELETON_AMBIENT; } @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { return SoundEvents.ENTITY_SKELETON_HURT; } @Override protected SoundEvent getDeathSound() { return SoundEvents.ENTITY_SKELETON_DEATH; } @Override protected SoundEvent getStepSound() { return SoundEvents.ENTITY_SKELETON_STEP; } @Override protected AbstractArrowEntity func_213624_b(ItemStack p_213624_1_, float p_213624_2_) { AbstractArrowEntity abstractarrowentity = super.func_213624_b(p_213624_1_, p_213624_2_); if (abstractarrowentity instanceof ArrowEntity) { ((ArrowEntity)abstractarrowentity).addEffect(new EffectInstance(Effects.POISON, 60)); } return abstractarrowentity; } }
October 28, 20195 yr 10 hours ago, diesieben07 said: Make your own thread. Really... okay. I thought since it was related.....
December 9, 20195 yr On 9/3/2019 at 6:26 PM, TheMikeste1 said: I just finished experimenting with this. Here's my repository if you want to have a look: https://github.com/TheMikeste1/Wabbits You'll need to register an EntityType. Please note that the way I'm doing this is a little strangely because of the way I set up my spawn eggs. There's a lot of code you don't need in my repository. Once you've registered an EntityType, you'll need a probably need a custom entity class. For rendering, you'll need a renderer, renderer factory, and a model (unless you want to use one of the existing models. Once you've made those, you can register your renderer like so (note that this is client side only!): RenderingRegistry.registerEntityRenderingHandler(WabbitEntity.class, RenderWabbitFactory.INSTANCE); Have you make the model with blockbench or with tabula? I am interessed New in Modding? == Still learning!
December 9, 20195 yr 7 hours ago, DragonITA said: Have you make the model with blockbench or with tabula? I am interessed No, I have not. It's all code.
December 15, 20195 yr On 10/28/2019 at 12:18 AM, MineModder2000 said: Just followed these steps and made a new mob, it renders and behaves corruptly AI-wise, however it cannot be hit for some reason. Anyway I try to attack it, the mob is simply unfazed. Please help. SOLVED. Why you resolved it. New in Modding? == Still learning!
December 17, 20195 yr On 12/15/2019 at 7:38 AM, DragonITA said: Why you resolved it. Because I have it working now of course ?
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.