Jump to content

Recommended Posts

Posted

I have searched through the site but I haven't really found a concrete answer as I am working a mod that relies heavily on NPCs spawning on their own in the world. I am pretty new to modding and I have spent all day building the NPC, adding its AI, but for the life of me I cant figure out how to go about making sure it spawns when the world generates. Any and all suggestions are super welcome.

Posted

I pretty much want them to spawn naturally as the world loads like animals and villagers. Actually this class is extending EntityCreature at the moment.

Posted

Like as in look around in Forge, or on this site.

 

Also I did run into your Github from another forum earlier tonight and I just want to say thank you for the help it has given me tonight. You are awesome!

Posted
  On 8/26/2016 at 5:50 AM, GmaN98 said:

Like as in look around in Forge, or on this site.

 

Also I did run into your Github from another forum earlier tonight and I just want to say thank you for the help it has given me tonight. You are awesome!

Oh your welcome i made that because people have a lot of difficulty with those things. I meant use the search feature in your IDE.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

I use eclipse so Ill have to look that up too.

 

 

And I love how you code, you made everything more clearer. If it wasn't for you, id still be back at the beginning.

Posted
  On 8/26/2016 at 5:59 AM, GmaN98 said:

I use eclipse so Ill have to look that up too.

 

 

And I love how you code, you made everything more clearer. If it wasn't for you, id still be back at the beginning.

I put the comments there for people looking at that code if what i code isnt open source i dont add those unless i need it for myself.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

ok so I found getCanSpawnHere in EntityLiving so would it be safe to say I can apply that code to the actual Npc class, or would I have to make a separate class just to get it to spawn

Posted

What you should do is look for where it is being called not where it is being made/overriden. This way you can check the other requirements for an entity to spawn. As i dont know what else is checked, but you should look at the super method of getCanSpawnHere and override it if one of those is a problem.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

You can simply add them to the spawnableCreatureList from the BiomeEvent#CreateDecorator event.

Create the event-handler, subscribe to the event. The passed argument BiomeGenBase is the biome in question.

Check if the biome is ok for your entity to spawn in, and then call biome.spawnableCreatureList.add(new Biome.SpawnListEntry(YourEntity.class, weight, min group count, max group count));

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted
  On 8/26/2016 at 8:18 AM, Matryoshika said:

You can simply add them to the spawnableCreatureList from the BiomeEvent#CreateDecorator event.

Create the event-handler, subscribe to the event. The passed argument BiomeGenBase is the biome in question.

Check if the biome is ok for your entity to spawn in, and then call biome.spawnableCreatureList.add(new Biome.SpawnListEntry(YourEntity.class, weight, min group count, max group count));

 

I'd recommend using

EntityRegistry.addSpawn

instead of the event handler, this adds an entry for your mob to the appropriate spawn list of each

Biome

you specified.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted
  On 8/26/2016 at 8:57 AM, Choonster said:

I'd recommend using

EntityRegistry.addSpawn

instead of the event handler, this adds an entry for your mob to the appropriate spawn list of each

Biome

you specified.

>_< Forgot about the EntityRegistry way. Thanks for reminding me.

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted
  On 8/26/2016 at 2:43 PM, GmaN98 said:

Can I add that to the Npc entity class or would I have to make that its own class like EntitySpawn?

 

You should have a class called something like

ModEntities

(the name doesn't really matter) that registers all of your entity classes, add the spawn from this class.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Ok I have created that, and I am looking at other examples on how to go about writing the code for this NPC. Most I have seen are for animals and items, BUT I am also using the EntityRegistry.class file in forge as reference as well....this is going to take a while just to spawn one NPC haha!

Posted

As chance would have it, I just finished (I hope) debugging a goat that will mow my tall grass for me. I chose to implement its spawning along with other registration calls by adding a static method to my mob's parent class (I have a parent-child class structure because I'm planning to add similar mobs that will share code). This gets called during my main class's preInit():

 

  static protected void regEntityEtc (Class<? extends classEntityBrowser> clazz, String name, int[] egg, BiomeGenBase[] biomes) {

    int weight = 3;    // TODO: Parameterize these when I add more mob species
    int min = 2;
    int max = 4;

    EntityRegistry.registerModEntity (clazz, name, mod.getNextEntityId (), mod, 80, 3, true);
    EntityRegistry.addSpawn (clazz, weight, min, max, EnumCreatureType.CREATURE, biomes);

    // TODO: Implement egg after upgrade from mc 1.8

  }

 

As you can see, "biomes" is an array of BiomeGenBase. I chose to declare one statically in each mob's child class:

  protected static final BiomeGenBase[] biomes = { BiomeGenBase.plains, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.savanna };

 

If you have just one mob, you can collapse my parent-child class structure into something simpler.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Honestly just want to play with my brother but LAN won't work for us so we have to try this.. Anyone?
    • Got modded, shit ton custom pack. Tried making a world, and it kicked me out saying that. Singelplayer. https://pastesio.com/crash-3317
    • abro el juego pero al tocar un solo jugador me tira la de   [02:23:30] [Render thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID c3ff08d5-d285-458d-a3b5-fbba17743dff #@!@# Game crashed! Crash report saved to: #@!@# C:\juegos\Minecraft\instances\1.20.1 forge\.minecraft\crash-reports\crash-2025-05-02_02.23.30-client.txt Process exited with code -1 (0xffffffffffffffff). ¡Por favor, ten en cuenta que normalmente ni el código de salida ni su descripción son suficientes para diagnosticar problemas! Sube siempre el registro entero y no solo el código de salida.
    • So, First of I am new to modding so bare with me I am creating a 1.20.1 forge mod that needs Oculus/Embeddium as a dependancy because later on I need to add custom shaders in for lights and such. I am using ParchmentMC as I've heard its better because of namings of things but that doesn't seem to like it when I run it alongside Oculus (Its a very barebones script adding two blocks and an item, and tested it before I did this) The 4 errors I get when I run 'runClient' is Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [mixins.oculus.json:texture.MixinAbstractTexture] from phase [DEFAULT] in config [mixins.oculus.json] FAILED during APPLY Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on iris$afterGenerateId could not find any targets matching 'Lnet/minecraft/client/renderer/texture/AbstractTexture;m_117963_()I' in net.minecraft.client.renderer.texture.AbstractTexture. Using refmap oculus-mixins-refmap.json [PREINJECT Applicator Phase -> mixins.oculus.json:texture.MixinAbstractTexture -> Prepare Injections ->  -> handler$zgm000$iris$afterGenerateId(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse] And then a "Execution failed for task ':runClient'." error My dependancies are just these with latest forge for 1.20.1 implementation fg.deobf('curse.maven:oculus-581495:6020952') // Oculus for 1.20.1 - 1.8.0  implementation fg.deobf('curse.maven:embeddium-908741:5681725') // Embeddium for 1.20.1 - 0.3.31 I have tested these mods & forge in a different modpack alone and it works fine Any help is much appreciated!
    • Im trying to make a server for me and my friends. I have no mods on it, (yet) but i keep getting this on the terminal right before it closes out. it insist even open long enogth m=for me to log on .this is my most resent crash report thanks in advance.   ---- Minecraft Crash Report ---- // I blame Dinnerbone. Time: 2025-05-01 18:17:25 Description: Exception in server tick loop java.lang.IllegalStateException: Failed to initialize server     at TRANSFORMER/minecraft@1.21.5/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:676) ~[server-1.21.5-20250325.162830-srg.jar%23141!/:?] {re:classloading,pl:accesstransformer:B}     at TRANSFORMER/minecraft@1.21.5/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:276) ~[server-1.21.5-20250325.162830-srg.jar%23141!/:?] {re:classloading,pl:accesstransformer:B}     at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.21.5     Minecraft Version ID: 1.21.5     Operating System: Linux (amd64) version 6.11.0-19-generic     Java Version: 21.0.6, Ubuntu     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Ubuntu     Memory: 99161192 bytes (94 MiB) / 233832448 bytes (223 MiB) up to 1004535808 bytes (958 MiB)     CPUs: 2     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Pentium(R) CPU B950 @ 2.10GHz     Identifier: Intel64 Family 6 Model 42 Stepping 7     Microarchitecture: Sandy Bridge (Client)     Frequency (GHz): 2.10     Number of physical packages: 1     Number of physical CPUs: 2     Number of logical CPUs: 2     Graphics card #0 name: 2nd Generation Core Processor Family Integrated Graphics Controller     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MiB): 256.00     Graphics card #0 deviceId: 0x0106     Graphics card #0 versionInfo: unknown     Virtual memory max (MiB): 5743.06     Virtual memory used (MiB): 3361.15     Swap memory total (MiB): 3828.00     Swap memory used (MiB): 811.72     Space in storage for jna.tmpdir (MiB): <path not set>     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): <path not set>     Space in storage for io.netty.native.workdir (MiB): <path not set>     Space in storage for java.io.tmpdir (MiB): available: 421206.25, total: 467297.75     Space in storage for workdir (MiB): available: 421206.25, total: 467297.75     JVM Flags: 0 total;     Server Running: true     Active Data Packs: vanilla, mod_data, mod/neoforge     Available Data Packs: minecart_improvements, redstone_experiments, trade_rebalance, vanilla, mod/neoforge, mod_data     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     World Seed: -7131934175611965967     Suppressed Exceptions: ~~NONE~~     Is Modded: Definitely; Server brand changed to 'neoforge'     Type: Dedicated Server (map_server.txt)     ModLauncher: 11.0.4+main.d2e20e43     ModLauncher launch target: neoforgeserver     ModLauncher services:         sponge-mixin-0.15.2+mixin.0.8.7.jar mixin PLUGINSERVICE         loader-7.0.10.jar slf4jfixer PLUGINSERVICE         loader-7.0.10.jar runtime_enum_extender PLUGINSERVICE         at-modlauncher-11.0.2.jar accesstransformer PLUGINSERVICE         loader-7.0.10.jar runtimedistcleaner PLUGINSERVICE         modlauncher-11.0.4.jar mixin TRANSFORMATIONSERVICE         modlauncher-11.0.4.jar fml TRANSFORMATIONSERVICE     FML Language Providers:         javafml@7.0         minecraft@7.0     Mod List:         server-1.21.5-20250325.162830-srg.jar             |Minecraft                     |minecraft                     |1.21.5              |Manifest: NOSIGNATURE         neoforge-21.5.63-beta-universal.jar               |NeoForge                      |neoforge                      |21.5.63-beta        |Manifest: NOSIGNATURE     Crash Report UUID: 99fdd6a6-3898-4cfe-ab2c-80b1ace92081     FML: 7.0.10     NeoForge: 21.5.63-beta
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.