ChiriVulpes / soulus

A Minecraft mod. You must sift through the ashes of the dead to restore life to the world.
https://soulus.info
Other
3 stars 3 forks source link

[Question] Disabling creatures configuration #78

Closed Winddbourne closed 5 years ago

Winddbourne commented 5 years ago

I want to use game stages for the specific player, and from what I'm reading/understanding the current support is rather limited . . . either it opens up the creature for the entire server when one person gets the stage, or else everyone on the server needs the stage before anything unlocks.

That is problematic for servers where a new player could join at any time. I certainly don't want a brand new player to be facing some high-end mob from Lyconites or Grimoire of Gaia on day one just because somebody on the server unlocked it.

On the other hand, I don't want Noob Zero to log in and suddenly NOBODY gets higher level mob spawns until he manages to unlock them.

It would be much better for me to just let mob stages handle spawning normally. If possible it would also be nice to be able to disable drops from summoned mobs too.

Would a configuration file like this do what I want:

"*": { "drops": { "all": { "has_xp": true, "whitelisted_drops": [ "spawned" ], "blacklisted_drops": [] }

I'm hoping that simply leaving out the spawn chance setup line blank will disable it and allow minecraft spawning to work normally but I'm afraid it will instead either crash the game or default everything to a spawn chance of 0.0.

ChiriVulpes commented 5 years ago
  1. What item is "spawned"? I'm guessing this is a mistake (in the whitelisted drops array)
  2. If you want to enable all spawns, start with the all_creatures_all_drops profile as base.
  3. Once it's been generated, add an object with the key "summoned" to the "drops", containing "*" in the "blacklisted drops" array.

This will allow all creatures to spawn, and disable all drops for summoned creatures. (Tho tbh not sure the point of disabling summoned creature drops, what's the point of mob farming then?)

ChiriVulpes commented 5 years ago

Oh also, I was aware of the problem you're referring to, where one player either prevents or causes certain spawns, but I couldn't think of a good solution to the problem. If you have any ideas, I'm all ears

Winddbourne commented 5 years ago

I got the "spawned" bit from the soulus.info. It says:

"drops is an object that can take any of three properties, all, summoned, or spawned"

So I figured that spawned meant that only creatures that spawn naturally will have drops. My purpose for setting things up that way is due to blood magic rather than mob farming . . . the mod itself allows you to turn off drops for things like the well of suffering but I wanted to turn off drops for mob spawners sitting above the altar . . . the dagger of sacrifice is a one-hit kill there and that is kind of cheesy.

You really won't need mob farms in the pack I'm working on anyway since it includes some magic mods that eventually do the job for you. . .

In this instance, Soulus is in the pack so that blood mages can manufacture mob spawners, and especially ones that will eventually work while they are away doing something else that is more fun than repeatedly cutting themselves or standing by the altar eating constantly while the well of suffering fills up their blood bank.

Mob farming, especially AFK farming, is strongly discouraged. lol. I'd rather people were having fun while playing than just sitting on a server overnight.

For the problem of one player either stopping all spawns or causing them for others . . . it seems like Soulus has three different aspects:

I'm not looking at your code but I don't see any reason why they would all have to be hooked together in some tangle of spaghetti code. Why not have an overall configuration file where you can simply use a true/false setting to tell Soulus not to mess with drops, or not to do anything about natural spawning, or even to disable/remove the spawners if someone really saw a reason to do that. . .

I've used other mods that do something similar . . . Usually, they call the different parts of the mod you can enable or disable "modules" . . . Forestry has them all together in the way I just described. Rockhounding has them broken down into different mod installations . . . and right now I'm only using three out of four parts of the thing for this pack.

I hope that helps. :)

ChiriVulpes commented 5 years ago

I got the "spawned" bit from the soulus.info. It says:

"drops is an object that can take any of three properties, all, summoned, or spawned

"whitelisted_drops" and "blacklisted_drops" are not "drops". Look for "drops" in the example config files and see their properties: They're "spawned", "summoned", and "all". each of those is a separate configuration object; detailing whether the creatures can spawn, what they'll drop when they die, etc.

You seem to be under the impression that there should be an option just for the specific configuration you want. It's not that simple. Soulus can do so much at this point that there's no way "modules" can cover every mixture of config settings. However, the basic configs all have profiles, which is basically a more powerful form of "module" enabling/disabling. If the default profiles aren't good enough for you it means you're the first person in Soulus's time trying to do what you're doing, or other people have done what you want to with the configs manually.

I will also note that there are definitely other features of the mod that just have an "enabled"/"disabled" profile. It's just that creatures.json covers way, way, way too much stuff to be able to compress it down into a true/false or a series of true/false.

In case you still don't understand "profiles", you can consider them like "modes" that you can only enable one of; not using a profile or tweaking a profile is like using a custom config. It just so happens that what you want to do falls into the custom config territory, so you have to edit the nitty gritty config stuff manually to do it.

BTW, if you're able to come up with a way for you to disable or reduce specific creature spawns by biome, dimension, type, and spawn method, and whitelist/blacklist drops and xp independently for each, and change these settings when game stages are changed, let me know! As far as I'm aware, this "tangled mess of spaghetti code" (which is just a complex config file) is the only easy way.

Soulus has the following aspects:

This is why Soulus has so much JSON configuration. Would you rather have this or only, for instance, two profiles for each config file? So much of the configurability of the mod would be lost in an instant.

Winddbourne commented 5 years ago

Actually, all I want is for it to do what it advertises. The mod sells itself as a way to create spawners that can run without the player nearby . . . which makes it an alternative to Soul Shards The Old ways. . . but it has a nicely themed crafting method that fits well with magic mods and isn't quite as grindy as filling soul crystals . . . which is a positive.

Looking deeper the first thing you see in the configuration document is that it is specifically compatible with Mob Stages, and you give an example with the pig . . . that is a huge plus since I plan to heavily use game stages and mob stages specifically. I can add this to my pack and not worry about any unexpected conflicts or problems. Sure I have to do a bit of work but I'm already writing recipes and moving the mob code from scripts to your configuration isn't that much of a hassle. I'll just have to look deeper at the method when the time comes.

Deeper down I see you are messing with mob spawning, but you recognize that most users won't want that aspect and have an easy way to configure it to not do that . . . sure thing . . . It's compatible with Mob Stages and it's not going to mess with my normal spawning . . . great. Not a real negative there.

Oh . . . the next section says you can control what mobs drop items and there are three settings: Spawn, summon, and nothing . . . great that means I don't have to use a mod like Spawner Control or Despawning Spawners to do that job . . . this will save me memory and shorten my mod list for players. Sold! I'm adding Soulus to my pack.

Now I get to where I'm going to be starting to configure game stages and I find a BUG . . . this isn't compatible at all. In fact, if I use this it's going to break the pack completely for servers. Now my first thought, granted I'm a literal-minded autistic person, is that since you promised it was compatible you have a solution to this already in place. So I ask how to do it as a question rather than submitting a bug report.

At the same time, I'm unsure on the exact format for turning off mob drops for the spawners so I throw that question in as an afterthought. I'm not asking it to have a specific setup for what I want . . . I just want it to do what you say it will. For me personally, I can wait for you to fix the "bug" and I'm even willing to give suggestions on how to do so . . . modules is simply the first one that comes to mind. But ultimately I can do what I want . . . if I change over to Soul Shards I lose a really great atmosphere and crafting mechanic . . . maybe I have to add a new mod beside it, or I decide to deal with drops at the altar itself . . . but the mod isn't broken for servers and that is a big consideration . . . alternately I could decide to drop mob stages and change my design to keep the atmosphere. It's not a big deal.

But I'd much rather work with you as the author of this mod to get things working the way you want; fully compatible with mob stages/game stages and able to be used on servers in packs like mine, or added to something like "Sevtech Ages". It'll be disappointing if you think the problem can't be fixed . . . but not the end of the world. If so you may just want to put a note about that in the documentation . . . though people with normal brains might have read it between the lines somehow. lol

Oh . . . disabling and configuring spawns by biome and such can be done using Biome Tweaker or by using Mob Stages. Mob Drops Your Way does the same thing for drops. But those mods are completely dedicated to doing that and making it simple for me to use. You could look at how they do it but it seems to be a side issue for what you said you wanted to do . . . None of those things is central to creating mob spawners and using them to create life.

For you, the easiest thing to do would to just disable those functions with a simple one-line configuration in the file. That way if the pack developer wants to do more than you're able to include they can use a mod that is specifically dedicated to those functions.

I plan to use mob stages to control when mobs spawn for different players . . . it's dedicated to that function. I've got biome tweaker to control what biomes each mob spawns, and for Zawa, I'm using its own dedicated configuration for that. I don't need Soulus to do those things. I just need it to be a top rate mob spawner mod that is compatible with those dedicated mods. Sure you could spend the next year making the pack do everything those other mods do . . . but that's a ton of work to include and maintain. Why would you want that headache?

I've included the forestry configuration file from one of my other mod packs as an example of how they do things. It may not be the path you want to take but it doesn't hurt to include it. :)

On Mon, Jun 24, 2019 at 8:17 AM Mackenzie McClane notifications@github.com wrote:

I got the "spawned" bit from the soulus.info. It says:

"drops is an object that can take any of three properties, all, summoned, or spawned

"whitelisted_drops" and "blacklisted_drops" are not "drops". Look for "drops" in the example config files and see their properties: They're "spawned", "summoned", and "all". each of those is a separate configuration object; detailing whether the creatures can spawn, what they'll drop when they die, etc.

You seem to be under the impression that there should be an option just for the specific configuration you want. It's not that simple. Soulus can do so much at this point that there's no way "modules" can cover every mixture of config settings. However, the basic configs all have profiles, which is basically a more powerful form of "module" enabling/disabling. If the default profiles aren't good enough for you it means you're the first person in Soulus's time trying to do what you're doing, or other people have done what you want to with the configs.

I will also note that there are definitely other features of the mod that just have an "enabled"/"disabled" profile. It's just that creatures.json covers way, way, way too much stuff to be able to compress it down into a true/false or a series of true/false.

In case you still don't understand "profiles", you can consider them like "modes" that you can only enable one of; not using a profile or tweaking a profile is like using a custom config. It just so happens that what you want to do falls into the custom config territory, so you have to edit the nitty gritty config stuff manually to do it.

BTW, if you're able to come up with a way for you to disable or reduce specific creature spawns by biome, dimension, type, and spawn method, and whitelist/blacklist drops and xp independently for each, and change these settings when game stages are changed, let me know! As far as I'm aware, this "tangled mess of spaghetti code" (which is just a config file) is the only easy way.

Soulus has the following aspects:

  • Mob remains as ores
  • Mob spawning
  • Mob movement
  • Mob grinding
  • Mob detection
  • Autocrafting using mobs as fuel
  • Chunk loading using soulus-autocrafted things as fuel
  • The ability for modpackers to tweak every little thing in the mod, and change these tweaks based on game stages
    • The ability to disable some or all natural spawns based on multiple factors
    • The ability to disable some or all natural mob drops
    • Hundreds of other config options that aren't worth mentioning here; ie you can even create your own essence for mobs that don't have essence by default
    • The ability to reload these configs in-game with a command
    • MP clients get their configs synced to the servers'

This is why Soulus has so much JSON configuration. Would you rather have this or only, for instance, two profiles for each config file? So much of the configurability of the mod would be lost in an instant.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Yuudaari/soulus/issues/78?email_source=notifications&email_token=AF3TJXM3DJJPKVIAOV4LSZ3P4C3ODA5CNFSM4H22PEWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYMXLCQ#issuecomment-504984970, or mute the thread https://github.com/notifications/unsubscribe-auth/AF3TJXNNRZOWX7J5ZJRTUTLP4C3ODANCNFSM4H22PEWA .

ChiriVulpes commented 5 years ago

In my very first reply to you I gave you the two things you needed to do to get it to do what you asked. Since you seem to have missed it, I'll repeat myself in greater detail:

  1. Set the creatures.json profile to all_creatures_all_drops.
    • This profile is basically the same as disabling the mob spawning manipulation functionality
  2. Once the configs have been reloaded (either starting the game or with /soulus reload), open the generated creatures#all_creatures_all_drops.json file, and add a configuration for "summoned" creatures by adding an object to the "drops" object. Then add "*" to your new configuration's "blacklisted drops" array.
    • This prevents summoned creatures from dropping items. You might want to disable xp as well by setting the "summoned" configuration's "has_xp" property to false.

I'm on vacation this week so I'm stuck on mobile most of the time; I don't have a development setup; even writing a JSON file manually is a pain in the ass. As a result I didn't even attempt it. I figured you could learn it and handle it. If you really can't figure it out, post your attempt at the config after following my instructions and I'll try to help.

Other notes:

I don't even know what "Mob Stages" is, this mod is only compatible with game stages. I'm not sure where you would have read about compatibility with that mod. Based on your description it sounds like it handles the game stage mob spawning prevention better than Soulus — great! If you follow the instructions above and use the all_creatures_all_drops profile, they should be fully compatible. If they're not, it's not because of Soulus, but Mob Stages. If this is the case, let me know regardless and when I have time I'll work with the dev towards compatibility.

The mod lacks the capability of changing mob spawns per player because I couldn't think of a way to do that — in the second comment I actually asked you if you had suggestions, idk if you missed it or misunderstood or what. Apparently Mob Stages handles it tho, so that'd be a low pri thing even if we can come up with a solution.

Lastly, did I offend you in some way? I thought I was being helpful and nice by taking time out of my vacation to respond to your questions on mobile, but it seems like you might be getting worked up. I'm sorry if I did offend you.

ChiriVulpes commented 5 years ago

If it'd be easier for you, you can join my discord, I think there's a link in the readme. Maybe it'd be easier to figure this out in real time?

ChiriVulpes commented 5 years ago

Ah, looks like I made a mistake, it's actually yes_creatures_yes_drops. My bad

ChiriVulpes commented 5 years ago

I borrowed a PC:

{
    "*": {
        "*": {
            "*": {
                "spawn_chance": 1.0,
                "drops": {
                    "summoned": {
                        "has_xp": false,
                        "whitelisted_drops": [],
                        "blacklisted_drops": [
                            "*"
                        ]
                    }
                }
            }
        }
    }
}

Just replace creatures.json with this and it should do what you want. Let me know if it doesn't. I took the liberty of also disabling xp drops from summoned creatures, but it should be pretty self explanatory to disable that if you still wanted xp (just set has_xp to true)

Winddbourne commented 5 years ago

I think I'm done with this thread for now. . . game stages is the main API . . . it doesn't do anything by itself. Mob stages is the module that you have to download and enable before you can do something like setting a pig to spawn when a certain stage is enabled. . . no wonder you can't actually answer my question. It sounds like you've never even used the mod!

The other part . . . as I said the mob drops are incidental. If I couldn't do that it wouldn't be a big deal. The big issue is that if your mod isn't compatible with the game stages module "Mob stages" and it's associated JSON coding . . . which you reference in your example then my pack will break on servers.

That is a big bug . . . Nobody wants to be bothered by players all the time saying their mod pack is broken and won't work on whatever server they have set up. I actually wound up deleting my first pack, "Deadly Druid" because I didn't have the experience to make it server compatible . . . only to find out a few years later that one of the people who was bugging me ran a server I played on and wanted to host it there.

Players just don't like being told "Go bother the mod designer for Soulus" when they ask me why their server isn't working. So I have to do it while testing the mod . . . and from the sound of it, at least for now, the answer is that I should change my spawner crafting mod.

I hope you have a great vacation. It's really no hard feelings, I just have trouble saying things with the right tone and I'm running out the door to pick my son up from his summer camp right now. :)

ChiriVulpes commented 5 years ago

I don't think I've ever been given a clear example of what exactly the problem is, so I just have to assume that the issue is still what I've thought it's been since the beginning: Soulus is disabling mob spawns and you want it to not do that. I feel like you keep missing this solution I keep giving, so I'm going to repeat it one more time:

Use the creatures.json that I posted above. It should work exactly as you mentioned in the first post. Soulus won't touch any mobs that spawn, it'll leave it to vanilla or to other mods like Mob Stages. The only thing that Soulus will do to mobs, under the config above, is remove drops from summoned mobs. If you want to do anything to manipulate mob spawning, use Mob Stages. Ignore the "config tweaking" examples talking about enabling/disabling mobs based on game stages in the Soulus docs, they don't have anything to do with this.

If the above does not work, for any reason, tell me what happens so I can fix it.

If that isn't your issue, please describe exactly what is happening to make them "incompatible".


What does that creatures.json do?

For every creature, in every biome, in every dimension:

To remind you, your initial request was:

It would be much better for me to just let mob stages handle spawning normally. If possible it would also be nice to be able to disable drops from summoned mobs too.

Does the above not match this statement? What am I missing?

About Config Tweaking & the Docs

Since the beginning, Soulus's configs have supported a massive amount of options for the mod, allowing you to do all kinds of things with it. Up until a few versions ago, however, the configs could not be changed ingame based on gameplay/progress, which means Soulus would always behave the same way. A few versions ago, I added Game Stages support to fix this issue, named "config tweaking".

The Game Stages support that I implemented has nothing to do with other mods, (or "modules") that also consume Game Stages. All it means that when a certain stage is added, any part of Soulus's configs can be changed to a different set of configs.

You're correct, I haven't actually used Game Stages for anything besides testing. I'm not a modpacker. I'm a modder that appreciates modpackers. That's why Soulus is so configurable in the first place. I don't have the time to learn the ins and outs of every mod. This is why I know nothing about how Mob Stages works. If I saw it before, I probably didn't think I had a need to know. Game Stages on its own is just a list of strings applied to players, so that's all I've added support for.

You have repeatedly said that Soulus is incompatible with Mob Stages, but I still don't understand why you've been saying it. At first I was assuming you meant they were incompatible because Soulus's default configs cancel non-summoned spawns, but apparently this isn't the case, because you seem to be saying that it's still incompatible even though I've given you the solution for that. (Or maybe you never tried it? Maybe I didn't explain it well enough? Well, in case that is what happened, that's why I reposted it at the top of this comment)

You mentioned that the Soulus docs give an example of using Game Stages to enable/disable mobs. This is true, but it has absolutely nothing to do with Mob Stages. It is exclusively because I needed a demonstration of Soulus's config tweaking functionality as described above. The best example I could think of was the creatures.json config, because mob spawning rules seemed pretty self-explanatory.

Winddbourne commented 5 years ago

Ok . . . It looks like we have a communication problem . . . I don't have any issue with the spawns . . . that works perfectly fine. My problem is that when your mod is handling the spawns it breaks Mob Stages for servers . . . which is going to end up with players sending me a ton of bug reports demanding I "fix it" if I leave it in the pack. I made an assumption when I wrote the first message that you had a fix for this already in place because you both said the mod was compatible with Game Stages and used Mob Stages in your specific example . . . which is probably a problem in comprehension on my end as I am autistic.

I assumed you had a way to disable your mod from handling spawns because from my perspective as a pack developer it is 100% not compatible if the only two options are that one player unlocks everything for everyone, or a single new player locks everything up . . . The game stages API tracks things on a per player basis and all five (or six I'm not looking at my notes) mods that depend on it (modules made by the same author) reference it to give each player their own customized game experience.

I would say that the system you have in place makes it compatible for single player only mods . . . if I never planned to release this pack I could play it on my own and never encounter the bug, and if I wasn't experienced I might release it and then be surprised when players started harassing me to either replace Soulus or somehow fix it . . . though they wouldn't be so specific . . . they would write me a nasty note saying that game stages is broken on their server and ask me to hunt down and fix the problem; which would lead to me either bugging you... . or me telling them to bug you . . . or me replacing the mod in my pack to make them happy.

That is all sorts of nastiness and stress that nobody wants. lol

Anyway, sorry about the confusion. I just am literal-minded and when you said it was compatible I figured you already had a fix for the server problem in place . . . I also made an assumption as to what that fix would be based on what I know about other mods I've used in the past.

On Mon, Jun 24, 2019 at 3:09 PM Mackenzie McClane notifications@github.com wrote:

I don't think I've ever been given a clear example of what exactly the problem is, so I just have to assume that the issue is still what I've thought it's been since the beginning: Soulus is disabling mob spawns and you want it to not do that. I feel like you keep missing this, so I'm going to repeat it one more time:

Use the creatures.json that I posted above. It should work exactly as you mentioned in the first post. Soulus won't touch any mobs that spawn, it'll leave it to vanilla or to other mods like Mob Stages. The only thing that Soulus will do to mobs, under the config above, is remove drops from summoned mobs. If you want to do anything to manipulate mob spawning, use Mob Stages. Ignore the examples in the Soulus docs, they don't have anything to do with this.

If the above does not work, for any reason, tell me what happens so I can fix it.

If that isn't your issue, please describe exactly what is happening to make them "incompatible".

What does that creatures.json do?

For every creature, in every biome, in every dimension:

  • The spawn chance is 1.0 (that's 100% chance, that means that Soulus won't touch any of them.)
  • If a mob dies, and the mob was summoned by a summoner, the mob has no drops, and no xp.

To remind you, your initial request was:

It would be much better for me to just let mob stages handle spawning normally. If possible it would also be nice to be able to disable drops from summoned mobs too.

Does the above not match this statement? What am I missing? About Config Tweaking & the Docs

Since the beginning, Soulus's configs have supported a massive amount of options for the mod, allowing you to do all kinds of things with it. Up until a few versions ago, however, the configs could not be changed ingame based on gameplay/progress, which means Soulus would always behave the same way. A few versions ago, I added Game Stages support to fix this issue, named "config tweaking".

The Game Stages support that I implemented has nothing to do with other mods, (or "modules") that also consume Game Stages. All it means that when a certain stage is added, any part of Soulus's configs can be changed to a different set of configs.

You're correct, I haven't actually used Game Stages for anything besides testing. I'm not a modpacker. I'm a modder that appreciates modpackers. That's why Soulus is so configurable in the first place. I don't have the time to learn the ins and outs of every mod. This is why I know nothing about how Mob Stages works. If I saw it before, I probably didn't think I had a need to know. Game Stages on its own is just a list of strings applied to players, so that's all I've added support for.

You have repeatedly said that Soulus is incompatible with Mob Stages, but I still don't understand why you've been saying it. At first I was assuming you meant they were incompatible because Soulus's default configs cancel non-summoned spawns, but apparently this isn't the case, because you seem to be saying that it's still incompatible even though I've given you the solution for that. (Or maybe you never tried it? Maybe I didn't explain it well enough? Well, in case that is what happened, that's why I reposted it at the top of this comment)

You mentioned that the Soulus docs give an example of using Game Stages to enable/disable mobs. This is true, but it has absolutely nothing to do with Mob Stages. It is exclusively because I needed a demonstration of Soulus's config tweaking functionality as described above. The best example I could think of was the creatures.json config, because mob spawning rules seemed pretty self-explanatory.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Yuudaari/soulus/issues/78?email_source=notifications&email_token=AF3TJXKB2VXK4TGBBYOFKUDP4ELWJA5CNFSM4H22PEWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYN5JKQ#issuecomment-505140394, or mute the thread https://github.com/notifications/unsubscribe-auth/AF3TJXOEHUMCXDGARCKTURTP4ELWJANCNFSM4H22PEWA .

ChiriVulpes commented 5 years ago

When you say it "breaks Mob Stages" can you describe what is happening? Is it crashing? What is Soulus doing exactly that is not what you want it to be doing?

Winddbourne commented 5 years ago

Normally mob stages will customize when and how different mobs spawn for each individual player. So when someone starts my pack they can start out with five hearts and natural healing turned off and everything is fine. That player is going to have a period of time where they have a reduced number of mobs spawning . . .

I can start him out in an environment with passive mobs for the first day, and then enable bears from familiar fauna, lions from ZAWA, maybe wild dogs from Animalia . . . at night he may encounter a skeleton with a trumpet (from trumpet skeletons) as his first hostile mob. But each mob is enabled slowly over time and the only way he's going to encounter a mob that is unfairly out of his level range is if he gets near another player who CAN handle it.

This progression is important to my pack because while you only start with five hearts, you cap out with forty hearts, powerful magic, and skills built up using the Level Up mod. There is a lot of progressions for a person to go through and as they advance in the pack the environment changes and they continue to encounter new things.

You can see a similar line of progression in the popular pack SevTech Ages where you start out unable to access most of the packs content, including such things as vanilla chests and workbenches.

Where your mod breaks this is in the way it handles merging spawn settings in. Given your example if Sevtech ages had Soulus in the pack you either would have pigs spawning for every player on the server from day one or you would have every pig farm on the server shut down the moment a new player joined . . . and none of them would start working again until that player managed to unlock pigs for everyone . . . assuming nobody else new joined in the meantime.

Functionally either the pigs would always be around, you'd never be able to find a pig anywhere on the server . . . which would completely break a pack if pigs were required to progress along the quest line.

Ultimately that means you might as well either just completely disable pigs entirely or never mess with how they spawn at all.

I'd call that huge conflict between the two mods. Unless you only plan to play the pack in single player you might as well not include Game Stages/Mob Stages if you are using Soulus. The problem will even crop up if I open up my single player world to Lan and try to play with my wife or son.

ChiriVulpes commented 5 years ago

Soulus doesn't do anything like you describe unless you configure it to. I have explained this time and time again. Soulus won't do anything relating to game stages unless you configure it to. As long as you use the config that I posted above, Soulus won't touch mob spawning and it'll let Mob Stages handle it, like you describe. The config that I posted above means that the only thing that soulus will do to mobs is cause summoned ones to not drop items. I don't understand how this could be incompatible.

Winddbourne commented 5 years ago

I know I have a social disability but this is getting ridiculous. First you tell me you know the problem but have no idea how to fix it:

Oh also, I was aware of the problem you're referring to, where one player either prevents or causes certain spawns, but I couldn't think of a good solution to the problem. If you have any ideas, I'm all ears>

Then it looks like you are focusing on making spawners not drop things, which was a side question I had.

Then it looked like you either forgot or didn't understand my original big issue . . . And now you say the problem doesn't exist at all and I can just use the JSON code you sent and there will be no issue . . . which means I've heard two completely opposing facts about the mod.

If the problem doesn't exist that is great . . . that's the best outcome I can think of. If it does exist and you have no idea how to fix it I'm willing to toss around ideas with anyone; that's fun . . . but right now I'm just plain confused.

A social disability doesn't normally mean I hear someone say "The sky is blue" and also "The sky isn't blue". Misunderstandings are usually a matter of tone, volume, body language . . . not this extreme. lol

ChiriVulpes commented 5 years ago

I will repeat it one more time: Yes, there is no problem. The JSON code that I sent above should be enough to do what you originally asked for, and is the same code that I was originally suggesting for you to write in the beginning.

It seems the problem was that in the beginning I wasn't clear enough, which caused misunderstandings, and the misunderstandings propagated throughout this entire issue, to the point where I wasn't sure you were even reading what I was writing, and I'm sure you were starting to think the same about me. I'm really sorry I wasn't clear enough in the beginning.


With the quote you posted above, all I was referring to was that using Soulus's "config tweaking" to prevent mob spawns based on Game Stage is flawed, like you said, and was wondering if you had any ideas of how I could make it work. It's an incredibly complex problem, though, and knowing that Mob Stages is a thing makes that question kind of pointless now. I'll probably change the example at some point as a result of this confusion.

ChiriVulpes commented 5 years ago

I'm going to take this as solved. Feel free to comment again if you have further questions or need more help! Sorry again about the communication troubles we had here. Thanks for playing with Soulus!