Custom Biome
Define unique environments, paint them into the world, or show them to a single player.
The Custom Biome Extension lets you define biomes of your own — colours, fog, sky, climate and visual attributes — and use them like vanilla ones. A biome is registered as soon as you save it, and a datapack is generated so it survives a restart and exists for world generation.
Entries
- Custom Biome Definition — define a biome.
- Custom Biome Preset — share colours and attributes between biomes.
- Actions — apply, paint a region, restore, per-player overlay, refresh.
- Events — enter and leave.
- Facts — player biome, is in custom biome, discovery, count.
- Audience — biome audience.
- Variables — current biome, biome property, custom biome list.
- Cinematic — biome transition.
- Objective — explore biome.
Getting Started
- Define a biome with
custom_biome_definition. - Paint it with
apply_biome_actionorpaint_biome_region_action. - React to players entering it with
enter_biome_event.
[!NOTE] Registration happens live. If your server does not allow it, the extension says so in the console and falls back to the generated datapack, which takes effect on the next restart. Run
/tw biome listto see which biomes are live and which are waiting.
World changes versus per-player views
Two different tools, and picking the right one matters:
| Changes the world | Who sees it | |
|---|---|---|
apply_biome_action, paint_biome_region_action | Yes, saved to disk | Everyone |
player_biome_overlay_action, biome_transition_cinematic | No | One player |
Per-player overlays are the right choice for story moments — a corrupted forest during a quest — because nothing is written and removing the overlay restores the real world instantly.
Commands
All commands live under /typewriter biome (/tw biome).
| Command | Description |
|---|---|
/tw biome list | List custom biomes and whether each one is live |
/tw biome info [player] | Show the biome a player is standing in |
/tw biome apply <biome> [radius] | Paint a biome around a player |
/tw biome refresh [radius] | Resend biome data to a player |
Permissions
| Permission | Description |
|---|---|
typewriter.biome | Access to biome commands |
typewriter.biome.list | List custom biomes |
typewriter.biome.info | View current biome info |
typewriter.biome.apply | Paint biomes via command |
typewriter.biome.refresh | Resend biome data |
Placeholders
| Placeholder | Description |
|---|---|
%typewriter_custombiome_current% | Current biome key |
%typewriter_custombiome_name% | Current biome display name |
%typewriter_custombiome_is_custom% | true when the biome is a custom one |
%typewriter_custombiome_temperature% | Temperature, custom biomes only |
%typewriter_custombiome_downfall% | Downfall, custom biomes only |
%typewriter_custombiome_base% | Base biome of the definition |
%typewriter_custombiome_count% | Number of registered custom biomes |
%typewriter_custombiome_list% | Their display names |
%typewriter_custombiome_discovered_count% | Biomes this player has visited |
%typewriter_custombiome_discovered_list% | Their keys |
Player placeholders follow what the player is actually shown, so a player under an overlay reports the overlay biome rather than the one stored in the world.
Requirements
PacketEvents is required for biome updates and per-player overlays. WorldEdit / FAWE is optional and only used when a region action reads a selection.