Just Another Spawner

Just Another Spawner

665k Downloads

Mo' Creatures not spawning through JAS, even after disabling MoC spawns in its config files

ThePwnd opened this issue · 17 comments

commented

I don't know if this mod is still being actively maintained, or if there's anyone watching the GitHub page for issues, but I hope there is, because I have no idea where else to go to get help to figure this out.

I'm on Minecraft 1.7.10 using JAS 0.17.8 and Mo' Creatures 6.3.1. I'm configuring the spawns for the first creature type I've defined that contains entities from MoCreatures - AMBIENT- for the first biome in SpawnListEntries/Universal.cfg, which happens to be the Abyssal Shadowland from Netherlicious. Originally, I had given some weight to the embers, ashlings, and spores from Netherlicious - about 4 each - and more weight to the fly, maggot, and roach from MoC - about 10-15. However, when I loaded into the world and traveled to the aforementioned biome, I got lots of the Netherlicious entities, and, save for a single fly that I found on one out of about a dozen test runs, absolutely 0 MoC entities. I also confirmed this with the game log. After running /jas killall AMBIENT, my log was flooded with notices from JAS that it was passively spawning Netherlicious embers and spores, and not a single instance of a Mo' Creatures entity.

I've tried increasing the weights of the MoC entities; I've tried setting the weights of every non-MoC entity to 0; I've verified that the game is registering the correct weights by running /jas listspawns AMBIENT and only the MoC entities are returned, each with a weight of 100. After doing this, there are no entities spawning at all of type AMBIENT. I'm aware that when it comes to mods like Mo' Creatures, among others, they have their own spawn management system that needs to be suppressed in order for JAS to take over. As such, I've tried disabling spawning on all MoCreatures entities from its config file. I've also tried enabling the spawns, but setting the frequency to 0. Neither attempt fixed the issue.

Given the complete lack of other users reporting issues with spawning Mo' Creatures entities through JAS, I'm hopeful that there's just some configuration issue I need to fix, but at this point I'm not sure what that would be. If anyone is still here and has any idea what I might try, I would be incredibly appreciative.

commented
commented

So I've run a number of additional tests in a superflat world with custom preset. After trying grass, blackstone, stone, cobblestone, sand, and netherack as surface materials, the only block that would allow the MoC entities to spawn was grass...

I didn't see anything explicit in the wiki about surface blocks or ground blocks for spawning, so I'm not sure if this is an issue with JAS or MoCreatures. If anyone following/finding this has any ideas, please feel free to chime in here.

commented

After some further testing, I have discovered that the issue appears to be related to the blackstone blocks that compose the ground in the Abyssal Shadowlands. These are custom blocks from Netherlicious. I assume there's a whitelist where these blocks need to be added, but I need to refer back to the wiki to figure that one out. Hopefully if anyone else coming after me has some issues getting entities to spawn on custom blocks, this might save some time.

commented

More tests, and apparently this is not isolated to MoCreatures entities. I tried increasing the spawn weight for pigs, and faced the same problems. However, typical nether entities, such as zombie pigmen and lava slimes are able to spawn on blackstone... really want to figure out where these apparent block whitelists are controlled.

commented

Hey @rogermatic - sorry, I haven't had a chance to focus on this issue for a while. If you've got some handy docs and spreadsheets, I would love to take a look. Send them to [email protected].

@Crudedragos - Thanks for checking in! I had largely adopted the same loop, but found that setting up custom superflat presets was quite informative for this particular spawning problem. What I found was that when I had a superflat world set to the Abyssal Shadowlands biome, but that used grass for a surface block, suddenly all of my flies started spawning, but when I set the surface block to netherack, blackstone, gravel, sand, cobble, stone, any other surface materials I bothered to try, none of them spawned. That's what led me to believe that there must be some kind of a hidden whitelist that entities have. Enter the /jas canspawnhere command, and I've found that when I'm standing on grass in the abyssal shadowlands, the fly can spawn:

MoCreatures.Fly can spawn: AMBIENT can spawn.
Livinghandler can spawn. No B:Abyssal Shadowland tags.

But when I run the same command while standing on blackstone, or netherack, it says the entity can't spawn, and the Livinghandler can't spawn:

MoCreatures.Fly cannot spawn: AMBIENT can spawn.
Livinghandler cannot spawn. No B:Abyssal Shadowland tags.

Everything is exactly the same in both cases - the spawn weights, the config files, the dimensions - the only difference is the surface block.

At this point, I tried to write a spawn tag for the flies, as I outlined above, but I just tested it on my grass world, and found that it's actually preventing the flies from spawning even on grass... that one's got me really confused... On grass, they spawn all on their own just fine, but when I include this spawn tag - "Spawn Tag": "block({'minecraft:grass'},{3,3,3},{3,0,3})" - reload the config, and run /jas canspawnhere, I'm suddenly told that the entity and Livinghandler cannot spawn:

MoCreatures.Fly cannot spawn: AMBIENT can spawn.
Livinghandler cannot spawn. No B:Abyssal Shadowland tags.

From everything I can find in the wiki and the old MC Forum thread, it looks like this spawn tag should work, but it's apparently preventing the entities from spawning... I thought I had made some progress before, but now I feel like I've taken a big step backwards... I'm pretty stumped =\

commented

Thanks for checking in! Was pretty sure everyone had left this mod and I was gonna be on my own.

So I've learned this actually has nothing to do with MoCreatures. I tried a test with vanilla pigs and had the same issue. They only want to spawn on grass. Meanwhile, vanilla nether entities, like zombie pigman and magma slimes will spawn on blackstone - which is a custom block from Netherlicious. Very strange, and almost seems to have nothing at all to do with JAS.

That said, I just became aware of the /jas canspawnhere command, and ran it on the MoC fly while standing in my superflat test world covered with blackstone and got this message:

MoCreatures.Fly cannot spawn: AMBIENT can spawn.
Livinghandler cannot spawn. No B:Abyssal Shadowland tags.

That sounds more like there is a step that I'm missing with JAS, but I'm not exactly sure what biome tags it's referring to. I thought I could maybe get around whatever this hidden block whitelist is by just hardcoding blackstone and netherack into a spawn tag for flies, but I'm not totally clear on the syntax for block() function, or if it's still functional. Struggling to find a working example of someone who used this spawn tag too.

commented
commented

Which old thread are you referring to? I checked the old Minecraft Forum posting but I didn't see any examples there (at least not in the original post - didn't have time to search the whole thread yet, but I'll check back later). Looks like it hasn't been updated since it was originally posted on v0.14. Do let me know if you come across any examples though.

commented
commented

So - progress...

First time I've had a chance to test the spawn tags this week. I added a spawn tag to the living handler "MoCreatures.Fly" as such: "Spawn Tag": "block({'netherlicious:Blackstone'},{3,3,3},{3,0,3})". Now when I run /jas canspawnhere MoCreatures.Fly on my superflat test world, it returns:

MoCreatures.Fly cannot spawn: AMBIENT can spawn.
Livinghandler can spawn. No B:Abyssal Shadowland tags.

The Livinghandler now says it can spawn, but the entity itself still can't, and there are still no flies spawning automatically in my biome... not sure if the search/offset values in my spawn tag are wrong, but they seem like they should work...

commented

@ThePwnd I have no real idea how any of this works anymore, but it looks like its not added to the particular biome spawn list. There should be a CFG with all the biomes and entities (I believe there was a CFG setting to hide 0-0-0-0 entries); you mentioned settings the weights, but if its not set for the right biome it still won't spawn.

And there is no block white/blacklist. The spawn tags determine there values (i.e. opaque) by calling the isOpaque code on the block itself. If you're not already using them to test, I highly recommend /jas loadconfig and /jas killall (I added them selfishly for myself) to make testing easier. https://github.com/ProjectZulu/JustAnotherSpawner/wiki/In-Game-Commands

My loop was usually:

  1. See if everything works how I want it (it usually didn't)
  2. make changes in CFG
  3. /jas loadconfig
  4. /jas killall (so that your new settings have a chance to spawn)
  5. Repeat step 1

(/jas saveconfig can be useful if you change one of the settings that change how CFGs are generated or if you mess up editing and haven't run loadconfig yet, you can overwrite your work)

commented
commented

Alright, super confused now, because apparently, the Spawn Tag dictates a condition under which an entity can't spawn, not under which it can (thanks @rogermatic for your notes that clarified this). So setting "Spawn Tag": "true" did not allow the flies to spawn, and running /jas canspawnhere MoCreatures.Fly returns:

MoCreatures.Fly cannot spawn: AMBIENT can spawn.
Livinghandler cannot spawn. No B:Abyssal Shadowland tags.

But even setting "Spawn Tag": "false" allows the Livinghandler to spawn, but still not the entity itself. Running /jas canspawnhere MoCreatures.Fly with this spawn tag applied returns:

MoCreatures.Fly cannot spawn: AMBIENT can spawn.
Livinghandler can spawn. No B:Abyssal Shadowland tags.

But again, removing the spawn tag altogether allows the flies to suddenly start spawning, and running /jas canspawnhere MoCreatures.Fly with no spawn tags on the Livinghandler returns:

MoCreatures.Fly can spawn: AMBIENT can spawn.
Livinghandler can spawn. No B:Abyssal Shadowland tags.

So bizarre... is there some extra code I'm supposed to include somewhere, or some basic step that I'm missing that makes the tags take effect on an entity?

commented

Omfg... I literally just changed "Spawn Operand" from "AND" to "OR" and that fixed the problem... I set the spawn tag like so, "Spawn Tag": "!block({'minecraft:grass','netherlicious:Blackstone'},{0,0},{0,0,0},{0,-1,0})", returned to my original test world. I'm in the nether, in the Abyssal Shadowlands biome, and now the flies are spawning, no problem. I have literally no idea why the spawn operand was preventing the spawns from occurring...

In closing, it seems my initial problem was actually unique to MoCreatures, and while there might be other mods whose entities have similar issues, vanilla entities were unaffected by the surface block, and didn't require any additional spawn tags to spawn normally. I am so happy I can now move on to actually using this mod as it was intended.

commented
commented
commented