This is a mod for game developers. This will help you find biomes quickly. It adds two server commands:
findbiome <biome>: Find a biome and teleport to it
listbiomes: List all biomes
This is very helpful when you're tweaking biomes of your game and don't want to search all over the world. The biome finding functionality is also available to developers (see the readme file).
Note: To find biomes in v6 mapgen, you need to use the Biome Info API mod.
Limitations
It's rare, but the mod might not find your biome if it is very obcure, but even then it should be unlikely. If this happens, just move somewhere else and try again.
Mod infos:
Current version: 1.2.0
Works in Minetest 5.0.0
Optional dependency: biomeinfo (adds support for v6 mapgen)
Sounds like a very useful mod. If you start a new world and are searching for a particular biome, that biome certainly wouldn't be the one you started in :-) So - thanks for the mod!
You can now find biomes not in the same height as you. Much more convenient that way!
No longer teleport outside the map
/findbiome now supports searching the special “default” biome (fallback biome in non-v6 mapgens), if it exists. There's no 100% chance it will find it (even if it exists in the world) and the algorithm isn't very smart, however. But it helps to see if your biomes still have large “holes”. The “default” biome is intentionally not listed in /listbiomes because it's just a fallback
Is this mod supposed to be only for direct player use or do you plan on adding API functions for other mods that may want to search for biomes (and return data only, not necessarily teleport the player).
Hi Wuzzy, nice and usefull mod. Thanks.
I'm using your mod to tune up biomes in a ocean-underwater game, and I'm getting problems in finding underwater biomes, such as corals. Is there anything can be adjusted in your code or does it depends on the minetest.get_biome_data(pos), that is not able to retrive underwater biomes (because they are not suitable for spawning)?.
Starting at sea level or even under seems not working as well :( I solved for now stretching underwater coral biomes up to water level +1, this way /findbiome does its job right. It's a great help in developing, thanks again.
Version 1.1.0 has been released!
This version is for developers, making the function "findbiome.find_biome" public. So biomes can be found by other mods as well.
Additionally, I updated the calculation of the map boundaries by using Minetest's builtin function instead, making it a little bit more accurate.
2024-02-12 14:19:22: WARNING[Server]: Undeclared global variable "DEFAULT_SEARCH_GRID_SIZE" accessed at .../net.minetest.Minetest/.minetest/mods/findbiome/init.lua:128
2024-02-12 14:19:22: ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'findbiome' in callback on_chat_message(): /app/share/minetest/builtin/common/vector.lua:214: attempt to perform arithmetic on local 'b' (a nil value)
2024-02-12 14:19:22: ERROR[Main]: stack traceback:
2024-02-12 14:19:22: ERROR[Main]: /app/share/minetest/builtin/common/vector.lua:214: in function 'multiply'
2024-02-12 14:19:22: ERROR[Main]: .../net.minetest.Minetest/.minetest/mods/findbiome/init.lua:161: in function 'next_pos'
2024-02-12 14:19:22: ERROR[Main]: .../net.minetest.Minetest/.minetest/mods/findbiome/init.lua:199: in function 'search'
2024-02-12 14:19:22: ERROR[Main]: .../net.minetest.Minetest/.minetest/mods/findbiome/init.lua:242: in function 'find_biome'
2024-02-12 14:19:22: ERROR[Main]: .../net.minetest.Minetest/.minetest/mods/findbiome/init.lua:298: in function 'func'
2024-02-12 14:19:22: ERROR[Main]: /app/share/minetest/builtin/game/chat.lua:79: in function </app/share/minetest/builtin/game/chat.lua:52>
2024-02-12 14:19:22: ERROR[Main]: /app/share/minetest/builtin/common/register.lua:26: in function </app/share/minetest/builtin/common/register.lua:12>
Nice mod Wuzzy! One suggestion I would have, the ocean/deep ocean biomes are still very hard to find. It does find some blobs of water underground somewhere but when I fly above the surface there are mostly no oceans at all. I think in this case the search would be more efficient from top to bottom (ymax to ymin) so it finds the oceans/deep oceans from the surface rather then underground cave what happen to be in the ocean biome.
I've just released version 1.2.0. This update adds a new public function called "findbiome.list_biomes()" that allows you to get all biomes from Lua code.
Kindly contributed by Skivling.
@SaKeL: Yeah, this is tricky to figure out how to do it right, and tbh I don't really care enough right now to do it.