promotional bannermobile promotional banner

UtilityBiome

Biome Libary for the BetterMod EcoSystem

UtilityBiome

Playing, not modding? You only need UtilityBiome if another mod requires it, such as BetterBiomes. Install it next to that mod and you're done. It adds no content of its own.

UtilityBiome is a shared library for mods that change Hytale's world generation. It gives players and server admins commands to find and inspect biomes, and it gives mod authors a tested base for everything the vanilla generator can't do on its own, such as waterfalls, overhangs, floating islands and small structures.

For players and server admins

All commands start with /ub:

Command What it does
/ub where Shows the zone and biome at your position
/ub list [filter] Lists all loaded biomes, including those from mods
/ub next <biome> Teleports you to the next occurrence of a biome you haven't visited yet
/ub census Counts which biomes appear in an area around you
/ub caves <zone> Lists the cave types and ores of a zone
/ub cave <name> Teleports you into the nearest cave of a type
/ub features Lists the chunk features other mods have registered and how often they were placed
/ub feature <id> Teleports you to the nearest spot where a feature was placed

These commands are useful for exploring a new worldgen mod, for checking a seed before opening a server, or for adding detail to a bug report.

For mod authors

UtilityBiome takes care of the parts of worldgen modding that are easy to get wrong.

Chunk features. You can post-process freshly generated chunks, filtered by zone or biome. UtilityBiome handles the threading rules for you. Results are deterministic from the world seed, and a placer that throws leaves the chunk untouched, so you never get half a feature.

UtilityBiomeAPI.registerChunkFeature(ChunkFeature.named("mymod:crystal_spire")
        .inBiomes("Zone4_Tier*")
        .chance(0.2)
        .placer((chunk, random) -> {
            // read and write blocks through `chunk`, take all randomness from `random`
        }));

Biome lookup. You can ask which biome is at a position, for example for quests, spawns or machines that only work in certain biomes.

UtilityBiomeAPI.biomeAt(worldName, x, z)
        .ifPresent(sample -> log(sample.zone() + " / " + sample.biome()));

Structure helpers (api.structure) let you place small builds as a chunk feature:

  • Blueprint: layers plus a palette, with rotation.
  • Shapes: boxes, hollow boxes, ellipsoids, cylinders and foundations.
  • Structures: finds a flat building spot, checks the fit and places the build with a foundation.
  • Terrain: tells natural ground apart from player builds and settlements.

Setup. Add UtilityBiome as a dependency in your plugin manifest. The server then guarantees that UtilityBiome has finished loading before your plugin's setup() runs. Keep everything you import in the api package. The internal package can change in any release.

Compatibility

  • Hytale server 0.6.x (tested with 0.6.8).
  • UtilityBiome doesn't change any vanilla files.

Status

UtilityBiome is in alpha. The api package may still grow, but we try not to break it. Questions and feature requests are welcome in the comments.

License

Free to use, and free to depend on from your own mods. Please only download it from CurseForge.

The UtilityBiome Team

profile avatar
  • 1
    Followers
  • 4
    Projects
  • 76
    Downloads

More from MutigerAffe