The Meaning of Life, the Universe, and Everything.
Join Date:
2/18/2013
Posts:
53
Member Details
Woo, a few days out of the loop and I have a page and a half to catch up on!
Quick note on the DRPG mobs: I can say with complete certainty that most of them DO in fact despawn. What I might be seeing with the "deep cave" mobs is that without any above ground mobs able to spawn in daylight the spawner decides something is better than nothing and drops stuff underground. The town is at around 58 elevation so it's within the sphere of spawning range in all directions, allowing stuff to spawn down in the depths despite no one actually being nearby.
@Gurrok: Great news! I've been fiddling with weights a lot more lately myself. Hopefully that works out well and some of us can replicate the results!
I got my friend to get everything setup on the server, but didn't have much chance to test it. Friend's been busy, and I think a Windows update auto-restarted his server, thus bringing the game down.
SSP though has been going quite well. Bringing down the spawn weights fixed the overpopulation, though one particular spot is still heavy with mobs. My guess here is that there's a few more mobs I'm unaware of that do not despawn. Maybe we should get a running list going of non-despawning mobs so we can keep things straight.
For sake of clarity, here's what I'm doing in case anyone else wants to test for themselves.
Decide on which mods you're using, though Mob Spawn Controls must be used to control spawns.
If you're using Mo'Creatures, set all three options to False for Custom Mob Spawner (Change vanilla, despawn vanilla, use custom spawner). Set all mobs in all lists in CMS to 1. If you wish to disable any mobs, set them to 0. In addition, I turned the spawn caps in CMS to 1 each and the frequency to 200 (just in case).
Edit the MSCOverrides.txt to import each creature mob as a monster. This places them as possible choices on the monster spawn list.
In SpawnConfiguration.txt, make sure the creature spawn frequency is set to 200 (default value). Set your spawn caps, but make them a bit lower than you're used to. The reason for this is because you're going to get more creatures than you initially expect, as they will be spawning using the monster spawn mostly (but don't count towards the monster spawn cap, but the creature spawn cap).
Either edit SpawnConfiguration.txt or use MSC's in-game GUI (I highly suggest editing the file directly as it's faster if you can copy/paste stuff) to set the item weights/min/max of all your mobs.
Make use of that 1-100 item weight! This is going to give you much more control than just using 1-10. I suggest common mobs around 70, uncommon around 30, and rare somewhere between 1-10. At the very least, add a zero to each weight you have as long as that doesn't take it over 100.
This part is very important: Set the item weight of all non-despawning mobs to 1.
Set your monsters, creatures, water, and ambient as you would normally (meaning forget that you added creatures to the monster list for now), following the points above.
Finally, enable the creatures you added to the monster list, using between 1/2 and 1/3 the item weight you used for them as Creatures and keeping non-despawning mobs disabled on this list.
Fire up Minecraft and enjoy!
For those wondering, what you're basically doing is setting the game to spawn creatures from mods primarily using the monster spawner. The creature spawner is set back to normal speed, and is primarily used for spawning the non-despawning mobs like vanilla animals, Atmos bison,etc.
There are a few bugs to iron out using this setup though.
The monster spawner in MC is setup to spawn mobs in packs of 1-4 unless specifically told otherwise in the mob's code (vanilla wolves can spawn up to 8, and ghasts are limited to 1 per spawn, for example). Most creatures (specifically those from mods) will not have this coded, as it's not normally necessary. What this means is that some mobs you may only want to see alone will spawn in packs of 1-4. I'm thinking there might be a fix for that (possibly removing them from the monster spawn list and just upping their weight in the creature list... totally untested theory though)
Due to random number generation (RNG) and your current in-game area's terrain (both above and below ground), daytime will typically (and night will sometimes) have more creatures up than your cap is set to, and monsters may be a bit sparse. If you're constantly getting undesirable results (overflooding of creatures for example), lower the creature weights on the monster spawn list to give the monsters a better chance to spawn.
I know that's a lot of work, but this so far seems to take care of both the "death of spawns" for creatures in general and the overcrowding of vanilla animals/non-despawners in the creature spawns. Here's to hoping updates in the various mods/Forge/Minecraft etc. will give us better and easier options in the future!
I don't know if anyone been following ModJam. In the spirit of those participating I've created a Custom Spawning system, called Just Another Spawner (JAS). JAS is a Minecraft Mod aimed at providing an alternative entity spawning system for Minecraft. The JAS spawning system runs in parallel with the vanilla system. By design, it fundamentally works the same as its vanilla counterpart, but allows for greater customization by exposing and consolidating many of the properties that are involved.
Since it runs in parallel, by default, JAS will not do anything. It will import settings from entities that are declared in minecraft, including those added by mods, but by default will not set any of them to spawn within JAS spawner.
The way JAS works is by assigning a LivingHandler to every type of entity in minecraft. This controls what creature type it belonds to, if it should use the default mod location check, if it should spawn at all, or even if it should be forced to despawn. For each LivingHandler their are multiple SpawnListEntries which controls biome specific settings: which biomes to spawn in, the relative spawn chance, spawn pack size, and chunk pack size.
Most of these settings are world specific and are stored under the WorldSettings directory in the JAS forge config folder. There is a Master directory within which is used to generate default value on every world load to the world specific config.
@Crudedragos - I'm very interested in what you've made there with JAS, though I have to admit I'm unfamiliar with most of the technical terms and cannot understand what all JAS is capable of. Can you give some examples or layman's terms on the features?
From what I read, it sounds like it can replace the vanilla spawn system entirely. It detects mobs (including mod-added mobs), but the user must edit the configs to enable anything. It can also set mobs to spawn only above/below ground, as well as which biomes to spawn in, spawn chance, pack size, whether it can spawn in chunk generation, and can be forced to despawn. Am I missing anything or incorrect on this?
I'm guessing that "spawn pack size" is used for spawn cycle attempts, and "chunk pack size" for chunk generation spawns?
Does JAS have config options to change frequency of the different spawn cycles, or at least the creature spawn cycle?
Finally, what would be the benefits of using another spawn mod (MSC, Spawn Rules, etc.) with JAS, if any? It sounds like JAS does more than the current spawners do already.
Rollback Post to RevisionRollBack
The config files are your friends! Get to know them, and shape your world!
@Crudedragos - I'm very interested in what you've made there with JAS, though I have to admit I'm unfamiliar with most of the technical terms and cannot understand what all JAS is capable of. Can you give some examples or layman's terms on the features?
From what I read, it sounds like it can replace the vanilla spawn system entirely. It detects mobs (including mod-added mobs), but the user must edit the configs to enable anything. It can also set mobs to spawn only above/below ground, as well as which biomes to spawn in, spawn chance, pack size, whether it can spawn in chunk generation, and can be forced to despawn. Am I missing anything or incorrect on this?
I'm guessing that "spawn pack size" is used for spawn cycle attempts, and "chunk pack size" for chunk generation spawns?
That is all correct. Fun fact I learned, did you know the chunk spawning doesn't occur on superflat?
Finally, what would be the benefits of using another spawn mod (MSC, Spawn Rules, etc.) with JAS, if any? It sounds like JAS does more than the current spawners do already.
There really wouldn't. And Just as CMS interferes with vanilla spawning this would interfere with them. If CMS uses its own custom categories (not the vanilla Enumcreatures monsters/creature/ambient) we've been talking about they may be able to both run. Though I'm not sure you'd want to. MSC and Spawn ruels could be used to disable the vanilla system. Though I prefer the solution of using the doMobSpawning to false to disable them. MSC / Spawn ruels could be used to set the default spawns that my mod will import. Sort of a roundabout methodology if you really wanted to use a GUI. Though I don't know when MSC sets the biomes (there seems to be a small window for world specific loading events) so that may not work.
it sounds like JAS can basically do what CMS does by isolating vanilla mobs and spawning every other mob using a "different system" (??). I think that will get around the vanilla/non-depsawning(this is exciting because it might manage atmos bison and slamanders, maybe even DRPG mobs too if they indeed dont despawn).
All entities are created equal. Vanilla are treated the same as any modded entity. Those mods that actually use mod entities get their own folder, hopefully to make it simple to share. It is a compeltely independent system. Whether a creature despawns or not is still handled by itself. I have included an option in the living handler (look under /ModEntitySettings/<modID>.cfg for the string of the form CreatureType-ShouldSpawn-ForceDespawn-UseModLocationCheck) to force a creature to despawn. This will periodically (~3s) perform the regular EntityLiving check to see if an entity will despawn. Unlike the regular check, this does not respect the "persistance required" NBT tag. For better or worse.
We are generating a landmass for my server now after various toothing problems. We shoulkd have it up fully in the next day or two. Ill begin testing JAS then.
Make sure to remember that JAS does not stop/alter the vanilla system in any way. If its left on, it will count the types of entities that JAS labels them as soemthing entirely different for itself. So be sure to disable it, Gametule "doMobSpawning" to false is I think the best way.
EDIT 2 Ill have a look at ModJam CrudeDragos. Ive heard about in one of the mod threads i read I cant remember which. Your mod should probably win, but I bet it wont because people wont get it. Ill see if I can vote for you somehow.
I'm not actually competing for a few reasons. First, I was already playing around in eclipse the morning of thinking of in what way I wanted to do this, so I had already started when CPW made the modjam announcemnt. Two, they required live stream or autocommits ~15min for my repo with break notices and such, and since I have little interst in winning and am pseudo anal about a clean git history I refuse to comply . Modjam, like similar events, is more about the fun in sitting down for a few days and cranking out a program, which is simply fantastic fun in itself and gave me the movtivation I needed to actually write it. What better way to spend a weekend
Can you give some examples or layman's terms on the features?
Laymens Terms:
1. JAS works in parallel with MInecraft Spawner. Both will spawn entities. This it is recommended to disable vanilla with gamerule "doMobSpawning" to false.
2. JAS exposes all of the relevnt spawn options that were previously hidden (or required different modders to both support) with the vanilla system. Allowing it to expose additional paramters that were not possible.
5. JAS exposes all/most of these options directly to the end user via Configuration file independent of the modder implementing the cretures. Meaning no additional work is requried of modders for the end user to have a balanced experience.
3. JAS is Open Source. Changleable and Editable by Anyone.
4. JAS is extensible. It supports additional categories / spawn Lists that can have unique properties. The Underground category, for example, requires that LOS to sky is false to allow a creature to spawn.
JAS sounds amazing! I will be trying this soon, because it really sounds like the full solution to all my mob spawning problems, with a few more good features thrown in.
Realistically speaking of course, it will be a while before JAS gains popularity (because people are creatures of habit). If I think JAS is as good as it sounds, I'll be defaulting to and recommending it first. For those still hesitant to stray from MSC, I'll secondarily pass along my current setup for that.
EDIT: Going to post links in the OP for both the JAS post and my alternate setup in MSC, and start a running list of non-despawning mobs for those that need that info.
Just thought that I should point out that there are updated versions of Just Another Spawner (JAS) available in the downloads section of the Project Zulu thread (link below).
I was worried that the link to Crudedragos' post on JAS would be outdated, but after trying a link it went to the current file (v0.1.2 for MC1.4.7). So it should be working correctly!
Also, forgot to add Mooshroom to non-despawners; doing it now.
Almost forgot... sirdave79, Rhaz, MohawkyMagoo and anyone else: If you have a setup/configuration that you feel works well, please post (or post a link to) it. Make sure it's well-described, particularly if you're using an unconventional setup. I'll add it to the OP.
I was worried that the link to Crudedragos' post on JAS would be outdated, but after trying a link it went to the current file (v0.1.2 for MC1.4.7). So it should be working correctly!
This is because I don't link to files, I link to folders. Thus I have folders for most recent (1.5), most recent (1.4.7), and an archive. Instead of changing links I just move the files to a new folder; much easier for me and links are always up to date.
News from Zhark - he's released a dev version of Mo'C and CMS for 1.5.1 which makes some interesting changes. Vanilla animals within 10 blocks of a fence will not despawn (but otherwise will despawn like other creatures by default). Biome groupings are also available, as well as the ability to have CMS run mobs from other mods. Mo'C now adds new blocks, a new dimension, and some other things, thankfully all configurable.
If this works as described, players will have a number of options concerning how they want their mobs to spawn/despawn (or not despawn), depending on which mob controller they wish to use...
It won't be long until the remaining mods update for 1.5.x, which will likely mean even more issues to sort through. Here's to hoping it's not as messy as it has been.
@MohawkyMagoo - Sadly, I believe your statements are pretty accurate. There are a few mods that have decided to focus on getting their current version running well (Fossils & Archeology is a good example), but most are simply chasing Mojang updates to appease the masses that seem to run with "Force Update" auto-checked and scream when the mods aren't current.
While I like any software company that works quickly to squash bugs, and I applaud Mojang for doing so, it really does screw with modders when they have to rewrite their entire work only weeks after nearly rewriting it beforehand. Fast, sweeping updates are actually a problem in this case. As you probably already know, 1.5.2 is coming soon due to requests by the Realms devs, and Jeb tweeted about 2 weeks ago that 1.6 is already in the works.
Personally speaking, I'm keeping an eye on a number of mods and once all of them are 1.5.1 stable, I'll update... assuming of course 1.5.2 doesn't stall their progress before then. I want to play with new toys too, but I don't feel it's worth throwing away my current mostly functional setup (including the loss of entire mods) for a few new blocks from the official update. For a while there, I definitely spent less time enjoying the game and more time doing tests and coming up with workarounds for stuff. It's been pretty frustrating, and only now am I at a point where I can say well it's "good enough for now" but I'm far from satisfied and still have other options to try (JAS and the updates from the other spawners). I figure it's better to take a small break than to burnout entirely.
That said, there's going to be people in every version of MC that wants better (or just plain different) spawn options, or has questions about it. Since that's probably going to be an ongoing issue, I'd guess that some people will end up here looking for answers. Even if some of us cannot provide current information, we can give insight on what worked previously and apply that experience toward what new issues arise. Also, others will (hopefully) come here with information of their own and fill in the gaps.
I guess what I'm trying to say is, don't feel obligated to chase the latest update, and instead take some time to enjoy the game (using whatever version and mods you want). Stop and smell the roses, Minecraft is still an awesome game
Rollback Post to RevisionRollBack
The config files are your friends! Get to know them, and shape your world!
Finally sat down and learned how MultiMC works today. So far I like it, and it really allows me to keep test setups separate from everything else.
Anyway, having some issues between JAS and Twilight Forest. First, a bit of backstory - I wanted to try TF, and it seems to work just fine using MSC even with no monsters on the TF biomes listed. So, somehow that mod can spawn mobs (maybe just monsters, I'm not sure) in its biomes/dimension bypassing MSC's settings entirely. That in itself may be a good or bad thing, depending on if you actually wanted to alter TF spawning using MSC.
Trying JAS with TF using the same idea (no monsters on spawn lists enabled), monsters would not spawn. Now, whether they'll spawn if I add mobs to monster spawn lists I haven't tried yet, and I'm waiting to see if anyone on TF's thread can add any info. Here's the thing though - in TF, some monsters only spawn in certain structures (maze slimes and minotaurs in labyrinths, goblins in hollow hills, etc). I'm wondering if adding them to the JAS lists will enable them across the biome or only where they are supposed to be? My guess would be biome-wide due to how spawn lists work, but I'm not certain until I try.
Either way, it seems there might need to be a workaround for using JAS and TF together, at least to get TF to spawn as intended by the mod author(s).
Rollback Post to RevisionRollBack
The config files are your friends! Get to know them, and shape your world!
Anyway, having some issues between JAS and Twilight Forest. First, a bit of backstory - I wanted to try TF, and it seems to work just fine using MSC even with no monsters on the TF biomes listed. So, somehow that mod can spawn mobs (maybe just monsters, I'm not sure) in its biomes/dimension bypassing MSC's settings entirely. That in itself may be a good or bad thing, depending on if you actually wanted to alter TF spawning using MSC.
Trying JAS with TF using the same idea (no monsters on spawn lists enabled), monsters would not spawn. Now, whether they'll spawn if I add mobs to monster spawn lists I haven't tried yet, and I'm waiting to see if anyone on TF's thread can add any info. Here's the thing though - in TF, some monsters only spawn in certain structures (maze slimes and minotaurs in labyrinths, goblins in hollow hills, etc). I'm wondering if adding them to the JAS lists will enable them across the biome or only where they are supposed to be? My guess would be biome-wide due to how spawn lists work, but I'm not certain until I try.
Either way, it seems there might need to be a workaround for using JAS and TF together, at least to get TF to spawn as intended by the mod author(s).
This is indeed an issue.
If enabled in JAS it would probably enable them on biome-wide level. An easy test would be to put them in spawner, if they spawn in places outside where they usually spawn, then its not a creature check and JAS will spawn them anywhere.
I'm assuming TF uses the same injection that vanilla biomes do to subplace creatures.
What's happening is that between where the spawn cycle asks the biome spawnlist(what MSC allows you to edit) for a creature it passes through the chunk provider where it can much with what creature (if any) it returns all it wants. Vanilla does this for witches in spawnList
ScatteredFeatureGenerator used here is unique to overworld and could (and) vary from one chunk provider to the next. Nether for example used genNetherBridge.getSpawnList(). So there is no way for me to generically poll the chunk provider and ask it for a "special" spawn. There is a findClosestStructure method that each provider is supposed to implement. That's no gaurante, however, the overworld provider only provides the stronghold, and the nether doesn't even bother and returns null.
The reason I don't spawn any is, as I don't need to call the biome, I don't bother calling the chunkprovider either. Since I cannot effectively call the getCreatureList and know if I'm getting a "structure spawn" or a "biome spawn" I don't really see a way to call it either.
Short Term Solutions:
As you've noted, MSC has no control over these. And neither do I obviously, so one option would be to use MSC to disable everything else but keep the vanilla spawn cycle running. Even though MSC has no control over the entity weight/spawns/biome/type, it can still change category cap. Thus giving some effective control over the amount that spawn will spawn in the limited area. With JAS controlling everything else, there is a silver lining in that this gives you additional control over a subset of the population in those areas without effecting your global population. JAS will, however, still be able to spawn inside those structures.
Of course there's always the option of leaving MSC to TF Biome and JAS everywhere else. TF being its own dimension should have its own world and independent spawn caps.
Longer Term Solutions in JAS:
I'll likely implement some kind of BiomeHandler to deal with this. Since, as I said, this cannot be done in a generic way I'd likely need access to source or API for any biome I need to support. For closed source mods, their authors may not be open to that. This way I could tell that a structure entity is supposed to spawn here, then choose from a subset of entities set to spawn (presumably via configuration) in that biome.
Otherwise, If the getClosestStructure function was valid, a custom spawn check could potentially be placed on either the biome or entity level. Considering the vanilla ones don't function as described, I wouldn't put faith that biome modders would bother. Thus I doubt that this option is viable.
I'm in the middle of configuring JAS for everything I run except Twilight Forest... will likely use the workaround Crudedragos mentioned.
Anyway, my friend's been busy on the server and while building a tree house high in the redwood forest (EBXL biome), he noticed 20+ Atmosmobs beavers hanging around the base of the trees. No other creatures, just beavers. The server is running MSC, and that biome has a nice big list of competing mobs, and the beavers themselves are set more or less as uncommon.
This begs the question - do Atmosmobs beavers not despawn? I just posted to the Atmos thread about it as well, but thought I'd ask here too (definitely on-topic question).
Rollback Post to RevisionRollBack
The config files are your friends! Get to know them, and shape your world!
We made a mistake in 4.5.1 where MoCreatures was changing that gamerule.. just a bad call really
From the Mo' Creatures thread. The gamerule he's referring to is Mo'C auto-changing /gamerule doMobSpawning to 'false' each time the game/server loaded/restarted. Explains why so many people were having problems with Mo'C and not seeing other mod mobs spawning.
I think atmosmobs beavers do despawn. I would have said ive found gnawed trees with no beavers in the past. Maybe just a freakish spawn if not many creatures are available for the spawn list.
Ive not been doing any playing with spawns. Its starting to look more like mo creatures/cms wont do everything i want. I think when i can summon the will to make a big push with spawning ill be trying to setup JAS.
Hows it going Gurrok ?
Are you getting a nice even spread of mobs ? Can it be setup so non despawning mobs dont over take the cap ? Does it avoid the death of spawns ?
Thanks
The beavers may have been a freak spawn, because I went back to the area a few hours later and there was a mix of creatures with only a few beavers.
I've done some SSP testing with JAS... and so far I got to say I am VERY happy with the results.
With the right configuration, death of spawns and non-despawners become no issue... let me explain.
In addition to the 4 mob spawn types, JAS adds OPENSKY and UNDERGROUND. OPENSKY follows the creature spawn requirements, but adds that it must be able to see sky to spawn. UNDERGROUND follows the monster requirements, but additionally cannot see sky to spawn.
Each mob spawn category has separate spawn caps, spawn cycle frequencies, and "spawn attempt with chunk generation?" settings. Each specific mob entry (Sheep, Spider, Atmosmobs.Bison, etc) can be forced to despawn if you so desire.
All that in mind, it took me 2-3 days of editing config files to my liking, including the EBXL biomes settings. However it seems well worth it. Here's how I set it up:
1) All mod-added mobs that can be bred I made sure were set to not despawn by their own mods' configs.
2) I edited the JAS configs so that all monsters were in the MONSTER category, breedable/non-despawners in the CREATURE category, and the other non-hostile critters in the OPENSKY category. WATERCREATUREs were added accordingly with the mod-added mobs, and vanilla Bats remained alone on AMBIENT. I've no real use for UNDERGROUND atm, but I do hope to add Dungeon Mobs back to my list, and most of those mobs would do well to be there.
3) I set the spawn types as follows:
# Configuration file
# Generated on 4/6/13 6:11 PM
4) I then went in to the configs for each "mod" (Vanilla has it's own which includes any mobs without a mod prefix, such as Mo' C or the older DRPG mobs), altering the spawn settings for each mob by biome.
What this setup does is remove the non-despawner cap overtake issue, because they are on a totally different cap than the despawning animals. In addition, it also removes the issue of critters spawning in odd places, (like mantis in a small tunnel at y:11, rabbits on an elevated path made of stone bricks, etc.) which has been common for me with Mo'C and sometimes with Atmos.
Death of spawns I think happens either somewhere in Forge working with vanilla, or vanilla spawn code itself, but I have no evidence to prove that. I am citing process of elimination, where it happens regardless of other mods present or removed, leaving these as the most likely causes.
JAS circumvents this entirely by not relying on vanilla spawning whatsoever.
I'd also like to add that JAS seems to have another nice side effect of better overall performance over MSC. Again, I think this has to do with JAS not using vanilla spawn code, thus not activating the parts of code from mods that "inject" their mobs into the system, thus better performance.
As always, there are downsides. Twilight Forest and JAS doesn't necessarily get along atm. TF uses vanilla spawning to populate the monsters in their hollow hills, labyrinths, etc. and turning off vanilla spawning disables them. Unfortunately, adding monsters to the TF biome lists populates biome-wide, thus minotaurs can spawn in non-labyrinth areas. Crudedragos is looking into possible fixes, but for now has proposed using MSC to disable all vanilla spawning in non-TF biomes (allowing TF mobs to spawn correctly), then use JAS spawning for everything else (Overworld, End, Nether, etc.). I haven't tested this yet but in theory it should work.
Anyways, I got to say I really like JAS, and once a couple more mods update, my friend's server is going 1.5.1 with JAS running the spawns.
Bloodshot asked me to try out the new CMS, which I'm also eager to take a look at soon.
Awesome reply, thanks Gurrok. Sounds like JAS is playing out for you like I hoped it would. The only possible change id like to include to your setup is spawning creatures, non despawning and depsawning on the same cap with more aggressive spawn settings for despawners. Ill have to have a play and see what I can do.
I did consider trying to make non -despawners ambient under msc but i think the entity class registration issues and the death of spawns prevented me ever trying it.
Also if the creatures can be spawned on the same cap with different spawn settings im thinking i can use that technique to maybe balance DRPG non despawning hostiles if I get that far.
I wish you the best of luck. I think the main problem with despawners and non-despawners on the same list comes down to the possibility that non-despawners can (and therefore eventually will - whether immediately or way into the future, it's a statistical probability based on RNG) fill up the spawn cap and prevent new spawns until some of them are killed. The best one can do, numerically speaking, is find that balance in spawn chances that keep the non-despawners in check, factoring in the "hunter creatures" that will potentially eat them sometimes.
That's a tough balancing act, and in the real world we see similar problems of new creatures introduced to a region and the effects of its presence on the ecosystem. If nature itself can't keep up, that doesn't bode well for us in a rudimentary simulation.
I finally decided dividing the two lists just made it easier. If I see too many "critters", I bring down the spawn cap of OPENSKY (or bump up CREATURE) and/or change the weights for those that seem overpopulated. If creatures aren't spawning agressively enough, I can lower the frequency so it cycles more often without affecting the others.
As for messing with ambient, it's a path I fear to tread. The lack of detailed documentation from vanilla leads me to believe there's either some really odd code going on, or it was added in at a working but not really finished state. If anyone figures out something reliable, I'd love to see it.
Rollback Post to RevisionRollBack
The config files are your friends! Get to know them, and shape your world!
Gurrok,
just clicked on your signature link to this post as you suggested in the Mo creature thread. Had a quick read of the OP and will check the rest out. yet another rep to you! You have inspired me to get back into MSC and multiple mob mods, which I shied away from when building my mod pack and deciding on trying mo' creatures (thought just one mob mod to rule them all would be simpler......wrong!).
PS in previous worlds used project zulu and atmosmods - although there's a lot really great about mo creatures, I am really missing these mods.
Quick note on the DRPG mobs: I can say with complete certainty that most of them DO in fact despawn. What I might be seeing with the "deep cave" mobs is that without any above ground mobs able to spawn in daylight the spawner decides something is better than nothing and drops stuff underground. The town is at around 58 elevation so it's within the sphere of spawning range in all directions, allowing stuff to spawn down in the depths despite no one actually being nearby.
@Gurrok: Great news! I've been fiddling with weights a lot more lately myself. Hopefully that works out well and some of us can replicate the results!
SSP though has been going quite well. Bringing down the spawn weights fixed the overpopulation, though one particular spot is still heavy with mobs. My guess here is that there's a few more mobs I'm unaware of that do not despawn. Maybe we should get a running list going of non-despawning mobs so we can keep things straight.
For sake of clarity, here's what I'm doing in case anyone else wants to test for themselves.
There are a few bugs to iron out using this setup though.
I don't know if anyone been following ModJam. In the spirit of those participating I've created a Custom Spawning system, called Just Another Spawner (JAS). JAS is a Minecraft Mod aimed at providing an alternative entity spawning system for Minecraft. The JAS spawning system runs in parallel with the vanilla system. By design, it fundamentally works the same as its vanilla counterpart, but allows for greater customization by exposing and consolidating many of the properties that are involved.
Since it runs in parallel, by default, JAS will not do anything. It will import settings from entities that are declared in minecraft, including those added by mods, but by default will not set any of them to spawn within JAS spawner.
The way JAS works is by assigning a LivingHandler to every type of entity in minecraft. This controls what creature type it belonds to, if it should use the default mod location check, if it should spawn at all, or even if it should be forced to despawn. For each LivingHandler their are multiple SpawnListEntries which controls biome specific settings: which biomes to spawn in, the relative spawn chance, spawn pack size, and chunk pack size.
Most of these settings are world specific and are stored under the WorldSettings directory in the JAS forge config folder. There is a Master directory within which is used to generate default value on every world load to the world specific config.
Source: https://github.com/C...tAnotherSpawner
Wiki: https://github.com/C...herSpawner/wiki
1.5.1: JustAnotherSpawner (Most Recent 1.5.1)
1.4.7: JustAnotherSpawner (Most Recent 1.4.7)
From what I read, it sounds like it can replace the vanilla spawn system entirely. It detects mobs (including mod-added mobs), but the user must edit the configs to enable anything. It can also set mobs to spawn only above/below ground, as well as which biomes to spawn in, spawn chance, pack size, whether it can spawn in chunk generation, and can be forced to despawn. Am I missing anything or incorrect on this?
I'm guessing that "spawn pack size" is used for spawn cycle attempts, and "chunk pack size" for chunk generation spawns?
Does JAS have config options to change frequency of the different spawn cycles, or at least the creature spawn cycle?
Finally, what would be the benefits of using another spawn mod (MSC, Spawn Rules, etc.) with JAS, if any? It sounds like JAS does more than the current spawners do already.
That is all correct. Fun fact I learned, did you know the chunk spawning doesn't occur on superflat?
Yes. per world. CreatureType.cfg. "Spawn Rate=X". X is in ticks.
There really wouldn't. And Just as CMS interferes with vanilla spawning this would interfere with them. If CMS uses its own custom categories (not the vanilla Enumcreatures monsters/creature/ambient) we've been talking about they may be able to both run. Though I'm not sure you'd want to. MSC and Spawn ruels could be used to disable the vanilla system. Though I prefer the solution of using the doMobSpawning to false to disable them. MSC / Spawn ruels could be used to set the default spawns that my mod will import. Sort of a roundabout methodology if you really wanted to use a GUI. Though I don't know when MSC sets the biomes (there seems to be a small window for world specific loading events) so that may not work.
All entities are created equal. Vanilla are treated the same as any modded entity. Those mods that actually use mod entities get their own folder, hopefully to make it simple to share. It is a compeltely independent system. Whether a creature despawns or not is still handled by itself. I have included an option in the living handler (look under /ModEntitySettings/<modID>.cfg for the string of the form CreatureType-ShouldSpawn-ForceDespawn-UseModLocationCheck) to force a creature to despawn. This will periodically (~3s) perform the regular EntityLiving check to see if an entity will despawn. Unlike the regular check, this does not respect the "persistance required" NBT tag. For better or worse.
Make sure to remember that JAS does not stop/alter the vanilla system in any way. If its left on, it will count the types of entities that JAS labels them as soemthing entirely different for itself. So be sure to disable it, Gametule "doMobSpawning" to false is I think the best way.
I'm not actually competing for a few reasons. First, I was already playing around in eclipse the morning of thinking of in what way I wanted to do this, so I had already started when CPW made the modjam announcemnt. Two, they required live stream or autocommits ~15min for my repo with break notices and such, and since I have little interst in winning and am pseudo anal about a clean git history I refuse to comply . Modjam, like similar events, is more about the fun in sitting down for a few days and cranking out a program, which is simply fantastic fun in itself and gave me the movtivation I needed to actually write it. What better way to spend a weekend
Edit:
Laymens Terms:
1. JAS works in parallel with MInecraft Spawner. Both will spawn entities. This it is recommended to disable vanilla with gamerule "doMobSpawning" to false.
2. JAS exposes all of the relevnt spawn options that were previously hidden (or required different modders to both support) with the vanilla system. Allowing it to expose additional paramters that were not possible.
5. JAS exposes all/most of these options directly to the end user via Configuration file independent of the modder implementing the cretures. Meaning no additional work is requried of modders for the end user to have a balanced experience.
3. JAS is Open Source. Changleable and Editable by Anyone.
4. JAS is extensible. It supports additional categories / spawn Lists that can have unique properties. The Underground category, for example, requires that LOS to sky is false to allow a creature to spawn.
Realistically speaking of course, it will be a while before JAS gains popularity (because people are creatures of habit). If I think JAS is as good as it sounds, I'll be defaulting to and recommending it first. For those still hesitant to stray from MSC, I'll secondarily pass along my current setup for that.
EDIT: Going to post links in the OP for both the JAS post and my alternate setup in MSC, and start a running list of non-despawning mobs for those that need that info.
http://www.minecraft...ui-mob-spawner/
I believe the latest versions are:
Also, forgot to add Mooshroom to non-despawners; doing it now.
Almost forgot... sirdave79, Rhaz, MohawkyMagoo and anyone else: If you have a setup/configuration that you feel works well, please post (or post a link to) it. Make sure it's well-described, particularly if you're using an unconventional setup. I'll add it to the OP.
This is because I don't link to files, I link to folders. Thus I have folders for most recent (1.5), most recent (1.4.7), and an archive. Instead of changing links I just move the files to a new folder; much easier for me and links are always up to date.
If this works as described, players will have a number of options concerning how they want their mobs to spawn/despawn (or not despawn), depending on which mob controller they wish to use...
It won't be long until the remaining mods update for 1.5.x, which will likely mean even more issues to sort through. Here's to hoping it's not as messy as it has been.
While I like any software company that works quickly to squash bugs, and I applaud Mojang for doing so, it really does screw with modders when they have to rewrite their entire work only weeks after nearly rewriting it beforehand. Fast, sweeping updates are actually a problem in this case. As you probably already know, 1.5.2 is coming soon due to requests by the Realms devs, and Jeb tweeted about 2 weeks ago that 1.6 is already in the works.
Personally speaking, I'm keeping an eye on a number of mods and once all of them are 1.5.1 stable, I'll update... assuming of course 1.5.2 doesn't stall their progress before then. I want to play with new toys too, but I don't feel it's worth throwing away my current mostly functional setup (including the loss of entire mods) for a few new blocks from the official update. For a while there, I definitely spent less time enjoying the game and more time doing tests and coming up with workarounds for stuff. It's been pretty frustrating, and only now am I at a point where I can say well it's "good enough for now" but I'm far from satisfied and still have other options to try (JAS and the updates from the other spawners). I figure it's better to take a small break than to burnout entirely.
That said, there's going to be people in every version of MC that wants better (or just plain different) spawn options, or has questions about it. Since that's probably going to be an ongoing issue, I'd guess that some people will end up here looking for answers. Even if some of us cannot provide current information, we can give insight on what worked previously and apply that experience toward what new issues arise. Also, others will (hopefully) come here with information of their own and fill in the gaps.
I guess what I'm trying to say is, don't feel obligated to chase the latest update, and instead take some time to enjoy the game (using whatever version and mods you want). Stop and smell the roses, Minecraft is still an awesome game
Anyway, having some issues between JAS and Twilight Forest. First, a bit of backstory - I wanted to try TF, and it seems to work just fine using MSC even with no monsters on the TF biomes listed. So, somehow that mod can spawn mobs (maybe just monsters, I'm not sure) in its biomes/dimension bypassing MSC's settings entirely. That in itself may be a good or bad thing, depending on if you actually wanted to alter TF spawning using MSC.
Trying JAS with TF using the same idea (no monsters on spawn lists enabled), monsters would not spawn. Now, whether they'll spawn if I add mobs to monster spawn lists I haven't tried yet, and I'm waiting to see if anyone on TF's thread can add any info. Here's the thing though - in TF, some monsters only spawn in certain structures (maze slimes and minotaurs in labyrinths, goblins in hollow hills, etc). I'm wondering if adding them to the JAS lists will enable them across the biome or only where they are supposed to be? My guess would be biome-wide due to how spawn lists work, but I'm not certain until I try.
Either way, it seems there might need to be a workaround for using JAS and TF together, at least to get TF to spawn as intended by the mod author(s).
I love MultiMC. I don't know what I'd do without it.
This is indeed an issue.
If enabled in JAS it would probably enable them on biome-wide level. An easy test would be to put them in spawner, if they spawn in places outside where they usually spawn, then its not a creature check and JAS will spawn them anywhere.
I'm assuming TF uses the same injection that vanilla biomes do to subplace creatures.
What's happening is that between where the spawn cycle asks the biome spawnlist(what MSC allows you to edit) for a creature it passes through the chunk provider where it can much with what creature (if any) it returns all it wants. Vanilla does this for witches in spawnList
Important Part is essential if swamp call instead of
ScatteredFeatureGenerator used here is unique to overworld and could (and) vary from one chunk provider to the next. Nether for example used genNetherBridge.getSpawnList(). So there is no way for me to generically poll the chunk provider and ask it for a "special" spawn. There is a findClosestStructure method that each provider is supposed to implement. That's no gaurante, however, the overworld provider only provides the stronghold, and the nether doesn't even bother and returns null.
The reason I don't spawn any is, as I don't need to call the biome, I don't bother calling the chunkprovider either. Since I cannot effectively call the getCreatureList and know if I'm getting a "structure spawn" or a "biome spawn" I don't really see a way to call it either.
Short Term Solutions:
As you've noted, MSC has no control over these. And neither do I obviously, so one option would be to use MSC to disable everything else but keep the vanilla spawn cycle running. Even though MSC has no control over the entity weight/spawns/biome/type, it can still change category cap. Thus giving some effective control over the amount that spawn will spawn in the limited area. With JAS controlling everything else, there is a silver lining in that this gives you additional control over a subset of the population in those areas without effecting your global population. JAS will, however, still be able to spawn inside those structures.
Of course there's always the option of leaving MSC to TF Biome and JAS everywhere else. TF being its own dimension should have its own world and independent spawn caps.
Longer Term Solutions in JAS:
I'll likely implement some kind of BiomeHandler to deal with this. Since, as I said, this cannot be done in a generic way I'd likely need access to source or API for any biome I need to support. For closed source mods, their authors may not be open to that. This way I could tell that a structure entity is supposed to spawn here, then choose from a subset of entities set to spawn (presumably via configuration) in that biome.
Otherwise, If the getClosestStructure function was valid, a custom spawn check could potentially be placed on either the biome or entity level. Considering the vanilla ones don't function as described, I wouldn't put faith that biome modders would bother. Thus I doubt that this option is viable.
As for TF, I enabled their Minotaurs into a JAS biome list, and they spawned above and below ground (seemed to be restricted only by light level).
Anyway, my friend's been busy on the server and while building a tree house high in the redwood forest (EBXL biome), he noticed 20+ Atmosmobs beavers hanging around the base of the trees. No other creatures, just beavers. The server is running MSC, and that biome has a nice big list of competing mobs, and the beavers themselves are set more or less as uncommon.
This begs the question - do Atmosmobs beavers not despawn? I just posted to the Atmos thread about it as well, but thought I'd ask here too (definitely on-topic question).
From the Mo' Creatures thread. The gamerule he's referring to is Mo'C auto-changing /gamerule doMobSpawning to 'false' each time the game/server loaded/restarted. Explains why so many people were having problems with Mo'C and not seeing other mod mobs spawning.
The beavers may have been a freak spawn, because I went back to the area a few hours later and there was a mix of creatures with only a few beavers.
I've done some SSP testing with JAS... and so far I got to say I am VERY happy with the results.
With the right configuration, death of spawns and non-despawners become no issue... let me explain.
In addition to the 4 mob spawn types, JAS adds OPENSKY and UNDERGROUND. OPENSKY follows the creature spawn requirements, but adds that it must be able to see sky to spawn. UNDERGROUND follows the monster requirements, but additionally cannot see sky to spawn.
Each mob spawn category has separate spawn caps, spawn cycle frequencies, and "spawn attempt with chunk generation?" settings. Each specific mob entry (Sheep, Spider, Atmosmobs.Bison, etc) can be forced to despawn if you so desire.
All that in mind, it took me 2-3 days of editing config files to my liking, including the EBXL biomes settings. However it seems well worth it. Here's how I set it up:
1) All mod-added mobs that can be bred I made sure were set to not despawn by their own mods' configs.
2) I edited the JAS configs so that all monsters were in the MONSTER category, breedable/non-despawners in the CREATURE category, and the other non-hostile critters in the OPENSKY category. WATERCREATUREs were added accordingly with the mod-added mobs, and vanilla Bats remained alone on AMBIENT. I've no real use for UNDERGROUND atm, but I do hope to add Dungeon Mobs back to my list, and most of those mobs would do well to be there.
3) I set the spawn types as follows:
# Configuration file
# Generated on 4/6/13 6:11 PM
####################
# livingtype
####################
livingtype {
####################
# opensky
####################
opensky {
I:"Creature Spawn Cap"=30
B:"Do Chunk Spawning"=false
I:"Spawn Rate"=1
}
####################
# watercreature
####################
watercreature {
I:"Creature Spawn Cap"=20
B:"Do Chunk Spawning"=false
I:"Spawn Rate"=1
}
####################
# creature
####################
creature {
I:"Creature Spawn Cap"=30
B:"Do Chunk Spawning"=true
I:"Spawn Rate"=400
}
####################
# monster
####################
monster {
I:"Creature Spawn Cap"=70
B:"Do Chunk Spawning"=false
I:"Spawn Rate"=1
}
####################
# underground
####################
underground {
I:"Creature Spawn Cap"=10
B:"Do Chunk Spawning"=false
I:"Spawn Rate"=1
}
####################
# ambient
####################
ambient {
I:"Creature Spawn Cap"=15
B:"Do Chunk Spawning"=false
I:"Spawn Rate"=1
}
}
What this setup does is remove the non-despawner cap overtake issue, because they are on a totally different cap than the despawning animals. In addition, it also removes the issue of critters spawning in odd places, (like mantis in a small tunnel at y:11, rabbits on an elevated path made of stone bricks, etc.) which has been common for me with Mo'C and sometimes with Atmos.
Death of spawns I think happens either somewhere in Forge working with vanilla, or vanilla spawn code itself, but I have no evidence to prove that. I am citing process of elimination, where it happens regardless of other mods present or removed, leaving these as the most likely causes.
JAS circumvents this entirely by not relying on vanilla spawning whatsoever.
I'd also like to add that JAS seems to have another nice side effect of better overall performance over MSC. Again, I think this has to do with JAS not using vanilla spawn code, thus not activating the parts of code from mods that "inject" their mobs into the system, thus better performance.
As always, there are downsides. Twilight Forest and JAS doesn't necessarily get along atm. TF uses vanilla spawning to populate the monsters in their hollow hills, labyrinths, etc. and turning off vanilla spawning disables them. Unfortunately, adding monsters to the TF biome lists populates biome-wide, thus minotaurs can spawn in non-labyrinth areas. Crudedragos is looking into possible fixes, but for now has proposed using MSC to disable all vanilla spawning in non-TF biomes (allowing TF mobs to spawn correctly), then use JAS spawning for everything else (Overworld, End, Nether, etc.). I haven't tested this yet but in theory it should work.
Anyways, I got to say I really like JAS, and once a couple more mods update, my friend's server is going 1.5.1 with JAS running the spawns.
Bloodshot asked me to try out the new CMS, which I'm also eager to take a look at soon.
I wish you the best of luck. I think the main problem with despawners and non-despawners on the same list comes down to the possibility that non-despawners can (and therefore eventually will - whether immediately or way into the future, it's a statistical probability based on RNG) fill up the spawn cap and prevent new spawns until some of them are killed. The best one can do, numerically speaking, is find that balance in spawn chances that keep the non-despawners in check, factoring in the "hunter creatures" that will potentially eat them sometimes.
That's a tough balancing act, and in the real world we see similar problems of new creatures introduced to a region and the effects of its presence on the ecosystem. If nature itself can't keep up, that doesn't bode well for us in a rudimentary simulation.
I finally decided dividing the two lists just made it easier. If I see too many "critters", I bring down the spawn cap of OPENSKY (or bump up CREATURE) and/or change the weights for those that seem overpopulated. If creatures aren't spawning agressively enough, I can lower the frequency so it cycles more often without affecting the others.
As for messing with ambient, it's a path I fear to tread. The lack of detailed documentation from vanilla leads me to believe there's either some really odd code going on, or it was added in at a working but not really finished state. If anyone figures out something reliable, I'd love to see it.
just clicked on your signature link to this post as you suggested in the Mo creature thread. Had a quick read of the OP and will check the rest out. yet another rep to you! You have inspired me to get back into MSC and multiple mob mods, which I shied away from when building my mod pack and deciding on trying mo' creatures (thought just one mob mod to rule them all would be simpler......wrong!).
PS in previous worlds used project zulu and atmosmods - although there's a lot really great about mo creatures, I am really missing these mods.
cheers