McJtyMods / InControl

Be In Control of Mob Spawns and others
MIT License
46 stars 17 forks source link

SeeSky condition overrides the min/max height condition #430

Closed DootLoot closed 3 months ago

DootLoot commented 3 months ago

ModLoader Version: Forge 47.2.17 Launcher: Curseforge Minecraft Version: 1.20.1 Mod Version: 1.20-9.2.6

Description: Adding the "seesky" rule into spawn.json will override the min/max height conditions when used together or in the same script. Here is the exact layout of the spawn.json file I used in testing: [ { "dimension": "minecraft:overworld", "minheight": 58, "seesky": true, "result": "deny" } ] In this case no other mods were being used besides InControl and all other scripts were empty besides sapwn.json. Then, when testing the script in a new world, mobs would spawn above the height limit under trees despite the condition "minheight" being set.

How To Replicate: 1) Create a spawn rule with both min/max height and the seesky condition ( true or false ) 2) Create a new world 3) Load into new world

DootLoot commented 3 months ago

On further testing, I realized that this problem isn't a bug, but just a weird feature of the rule system. Since conditions apply to the whole rule, min/max height would only work on mobs that aren't spawning under a block if you used seesky with it. So the rule would only prevent spawns above the minheight (or bellow the max) if they wern't under a block. Here is my example: ` [ { "dimension": "minecraft:overworld", "mod": "minecraft", "minheight": 62, "hostile": true, "result": "deny" }, { "dimension": "minecraft:overworld", "mod": "minecraft", "maxheight": 62, "hostile": true, "seesky": true, "result": "deny" }

] `

Sorry about that ;(