Mob limiting with perchunk tag is functioning weirdly
Razor235T opened this issue · 9 comments
Minecraft 1.20.1, Forge 47.3.5, InControl 9.2.6. Controlled with no other mods installed in singleplayer world.
For example, the code:
[
{
"mob": ["minecraft:zombie", "minecraft:husk"],
"spawner": true,
"when": "onjoin",
"result": "default"
},
{
"mob": ["minecraft:zombie", "minecraft:husk"],
"mincount": {
"amount": 1,
"perchunk": true
},
"when": "onjoin",
"result": "deny"
}
]
I don't think there is a mistake since the code is functioning. However, it limits the zombies with amount*9, in singleplayer flat world. So I can spawn 9 zombies totally. If I set amount to 2, I can spawn for some reason 19 zombies. And the amount can vary depending on mobs and mods. It is quite frustrating, because I want very tight control over the mobs from mods that bring a lot of difficulty to the game, like Monsters plus or Hostile mobs improve over time.
Okay, it starts to make sense. But you the quote says the cap is scaled by the total number of chunks "within" 17x17 chunk square around a player. So for one player the cap should be 17x17 square.
It actually does. See this page: https://minecraft.fandom.com/wiki/Spawn#:~:text=Most%20mobs%20have%20a%20spawning,mobs%20(animals)%20spawn%20rarely.
Quote:
The cap is scaled by the total number of chunks within a 17×17 chunk square around any player. The cap is then scaled as globalCap = mobCap × chunks ÷ 289.
In Control tries to mimic the same behaviour
If you mean that my loaded chunks are 12x12, then globalCap = 1 * 144 / 289, which is around 0.5.
Also I don't see where it says about a distance view. I can see there, that if view distance is below 9 then mobs are spawning less frequently. But my issue is that the zombies spawn too often
A view distance of 12 means 12 chunks in every direction. So that means (12+12+1)*(12+12+1) chunks and that's 625
From the wiki:
perchunk: if this is true the amount will be scaled with the amount of loaded chunks divided by 289 (this is how vanilla mobcap works)
Did you correct to 289?
I don't get what you mean, but vanilla scaling works by formula mobcap * loaded chunks / 289. I checked in singleplayer, so loaded chunks are 289. So we have 1 mob * 289 chunks / 289 chunks. But I can spawn 9 zombies with that piece of code.
14 chunks. I don't think vanilla mobcap depends on that.
Edit: sorry, 12 chunks is set on the client, which I checked the piece of code on.