[Feature Request]: Way to limit spawn range of high tier spawners
jpenilla opened this issue ยท 3 comments
Is your feature request related to a problem?
When building farms or other contraptions that require spawning without a player nearby, we need to upgrade our Soul Crystal to the ultimate tier. This brings with it the "best" range of spawning within 11 blocks, but in many situations, a larger spawn area is worse; for example, when dealing with Shulkers we would either need to build out an 8-block thick wall around the 23x23 spawn area or build an inner wall of 8 block thickness in the spawn area to prevent them from teleporting out.
Shulkers are an extreme example, but in general, it's kind of annoying to have to make our spawn areas oversized to allow them to run without a player/at ultimate tier speeds. For both preference and for performance reasons. Performance as if we want to force-load a spawner for running while offline we need to load at minimum 4 chunks to fit the spawn area, if we only load the chunk with the spawner block it will actually be worse since the neighbor chunks will end up loading and unloading, putting needless pressure on the chunk system.
Solution(s)
I'm not sure how exactly it should work, but a way to limit the spawn range would be extremely useful. The two things that come to mind are some items we can apply to a spawner to change its range, or some other blocks we place nearby to modify its range (kind of like Vitalize pylons).
Describe alternatives you've considered
Having oversized spawn areas and building extremely thick walls when needed.
Edit: I've looked at the code and the tiers can be modified with a datapack; which feels a little cheaty to do but is a workaround.
Mod Version
2.2.4
Mod Loader Version
1.19.2 0.14.18
Mod Loader
Fabric
Additional context
For my use case, the smaller the spawn area the better, ie a 1 block range would be perfect for me. But I think some way to limit an ultimate spawners range to that of the average spawner would be acceptable.
If someone is still in need, here's instruction:
- Open Spirit .jar file (in mods folder) using any archivator (7z, WinRAR)
- Follow this folder:
.jar/data\spirit\recipes\tiers
- Every single tier provided fits as you can expect it:
tier_1 - Useless tier
tier_2 - Mediocre tier
tier_3 - Advanced tier
tier_4 - Ultimate tier - Open the file of tier you want to edit by using any WordPad software (tier_4 in that case)
- Edit
"spawnRange"
line
In case if you want to fit exactly 1 Soul Cage in 1 Chunk, placing it in a middle of chunk, you have to set 7
instead of 11
(Chunk is exactly 16x16x16, so by picking one of the middle blocks the only lasted range until spawn radius will touch borders is 7-8 blocks)
You can pretty much edit however you want those configs, most important thing is to follow rules provided HERE to avoid corrupting code. (On the link page you can see every line description in case if that needed)
UPD: You can also create a new tier, following link instructions.
Simply create file in mentioned folder with the name tier_5
, copy lines from the previous (tier_4)
one and replace "displayName": "spirit.soul_cage.tier_4",
with "displayName": "spirit.soul_cage.tier_5",
. Other configs on your wish.
Then, follow this folder: .jar/assets\spirit\lang
and open the en_us.json
file (Using WordPad).
Search for those lines:
"spirit.soul_cage.tier_0": "Useless",
"spirit.soul_cage.tier_1": "Mediocre",
"spirit.soul_cage.tier_2": "Average",
"spirit.soul_cage.tier_3": "Advanced",
"spirit.soul_cage.tier_4": "Ultimate",
Manually add this new line just under: "spirit.soul_cage.tier_5": "AnyTierNameYouWant",
Done. Tier, going just after Ultimate, with the name "AnyTierNameYouWant"
was created. Don't forget to set amount of souls needed to reach new tier properly.