Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
📌 About Biomentry
Biomentry is not just a biome notifier – it’s a full immersion system for Minecraft.
It makes each biome feel alive, unique, and reactive.
From animated titles and ambient sounds to advanced conditional rules, Biomentry connects the environment to the player’s journey — whether they’re crossing deserts, exploring lush caves, or wandering in modded dimensions.
Perfect for RPG, adventure, survival, and storytelling servers, Biomentry turns exploration into an experience.
✨ Core Features
📍 Intelligent Biome Detection
- Real-time detection above ground and underground.
- Enhanced with custom logic for accurate cave recognition (light levels, block density, sky access, Y-level, structures).
- Supports special cave biomes:
lush_caves,deep_dark,dripstone_caves.
🕳️ Advanced Cave Detection
A multi-criteria scoring system determines whether a player is truly in a cave, factoring in:
- ambient light level,
- block density around the player,
- sky access,
- Y-level and natural structure context.
This allows accurate detection even in artificial caves or open ravines.
🖥️ Immersive Visual Notifications
- Animated titles & subtitles (fade, typewriter, etc.) on biome entry.
- Customizable styles per biome or biome group.
- Biome grouping to reduce message spam (e.g., forests, oceans).
🔊 Ambient Sounds
- Unique looping sounds per biome:
- Desert camels
- Jungle parrots
- Swamp frogs
- Mountain winds
- Goodbye repetitive rain noise → hello immersion.
⚙️ Player Customization
/biomentry toggle→ Enable/disable notifications./biomentry language <en|fr>→ Change language.- Preferences saved per player for full control.
🛡️ Region & Server Integration
- WorldGuard support → disable notifications in spawn, arenas, safe zones, or custom areas.
- Multi-language ready → English & French included; templates for German, Russian, Spanish.
- Optimized performance → smart caching reduces redundant calculations.
🔥 New in v0.3 – Sappling Update
1️⃣ Advanced Condition System
- Brand-new
conditions.ymlunlocks deep customization:- Triggers → biome entry, surface vs cave, time of day, player stats
- Logic gates → combine
and,or,notfor complex rules - Conditions → permissions, health, armor, potion effects, world time
- Actions → run commands, apply effects, grant temporary permissions, heal, give saturation
2️⃣ Custom Biome & Cave Support
- Full support for modded and datapack biomes (Terralith, Biomes O’ Plenty, etc.).
- Custom caves recognized automatically using
in_cave: true/false. - Full biome ID usage (
terralith:skylands) ensures conditions, sounds, and notifications apply to any biome, vanilla or modded.
3️⃣ Enhanced Immersion & Stability
- Ambient sounds fully overhauled.
- Smarter cave detection.
- Reliable Boss Bars & notifications.
- Bug fixes → condition actions now always execute correctly.
🚀 Why Biomentry?
Biomes in Minecraft are stories, atmospheres, and identities.
Biomentry gives them a voice.
Ideal for servers that want:
- Immersion → RPG, semi-RP, adventure worlds
- Storytelling tools → triggers when entering zones
- Atmosphere → ambient sounds & visuals
- Customization → advanced configs & player preferences
With Biomentry, every step into a new biome — surface or cave, vanilla or modded — feels like a new chapter.
Config files
config.yml
#configuration for Biomentry
# General settings
general:
language: 'en' # Plugin language: 'fr' (French) or 'en' (English)
enableParticles: false # Enable or disable particle effects globally
enableCommands: false # Enable or disable command execution globally
enableAmbientSounds: true # Enable or disable ambient sounds globally
# Title display settings
titleInfo:
fadeIn: 10 # Fade-in time (in ticks)
stay: 70 # Display duration (in ticks)
fadeOut: 20 # Fade-out time (in ticks)
animationType: 'fade' # Animation type: 'fade', 'typewriter', or 'slide'
typewriterSpeed: 2 # Typewriter speed (characters per tick)
# Priority system for display management
priority:
enabled: true # Enable priority system
level: 'medium' # Priority level: 'low', 'medium', 'high'
pauseOnOtherPlugins: true # Pause biome displays when other plugins show titles
resumeDelay: 40 # Delay (in ticks) before resuming after other plugin finishes
checkInterval: 5 # Interval (in ticks) to check for other plugin activities
# Biome groups – Biomes in the same group won’t trigger a notification
# when transitioning between each other
biomeGroups:
# Birch forests
- ['birch_forest', 'old_growth_birch_forest']
# Taigas
- ['taiga', 'old_growth_spruce_taiga', 'old_growth_pine_taiga', 'snowy_taiga']
# Dark forests
- ['dark_forest']
# Oceans
- ['ocean', 'deep_ocean', 'warm_ocean', 'lukewarm_ocean', 'cold_ocean', 'frozen_ocean', 'deep_cold_ocean', 'deep_frozen_ocean', 'deep_lukewarm_ocean']
# Deserts
- ['desert']
# Mountains and peaks
- ['windswept_hills', 'windswept_forest', 'windswept_gravelly_hills', 'windswept_savanna', 'jagged_peaks', 'frozen_peaks', 'stony_peaks']
# Caves
- ['deep_dark', 'dripstone_caves', 'lush_caves']
# Badlands
- ['badlands', 'eroded_badlands', 'wooded_badlands']
# Savannas
- ['savanna', 'savanna_plateau', 'windswept_savanna']
# WorldGuard regions where notifications are disabled
disabledRegions:
- spawn
- safe_zone
- pvp_arena
# List of worlds where the plugin is completely disabled (just exemple here)
disabled-worlds:
- "a_minigame_world"
- "world_the_end"
biomes.yml
# And extract of the biome configurations
# Here you define the BEHAVIOR of each biome.
# The actual text for titles and subtitles is in the language files.
biomes:
plains:
title: 'biomes.plains.title'
subtitle: 'biomes.plains.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'BLOCK_GRASS_BREAK'
commands: []
particle:
type: "VILLAGER_HAPPY"
count: 10
offset: 0.5
speed: 0.1
bossBar:
color: 'WHITE'
style: 'SOLID'
ambient_sound:
sound: 'ambient.weather.rain'
volume: 0.1
pitch: 1.0
delay: 200
forest:
title: 'biomes.forest.title'
subtitle: 'biomes.forest.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'BLOCK_CHERRY_WOOD_BREAK'
commands: []
particle:
type: "VILLAGER_HAPPY"
count: 10
offset: 0.5
speed: 0.1
bossBar:
color: 'WHITE'
style: 'SOLID'
ambient_sound:
sound: 'ambient.weather.rain'
volume: 0.1
pitch: 1.0
delay: 200
dark_forest:
title: 'biomes.dark_forest.title'
subtitle: 'biomes.dark_forest.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'AMBIENT_CAVE'
commands: []
particle:
type: "VILLAGER_HAPPY"
count: 10
offset: 0.5
speed: 0.1
bossBar:
color: 'WHITE'
style: 'SOLID'
ambient_sound:
sound: 'ambient.weather.rain'
volume: 0.1
pitch: 1.0
delay: 200
birch_forest:
title: 'biomes.birch_forest.title'
subtitle: 'biomes.birch_forest.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'BLOCK_CHERRY_WOOD_BREAK'
commands: []
particle:
type: "VILLAGER_HAPPY"
count: 10
offset: 0.5
speed: 0.1
bossBar:
color: 'WHITE'
style: 'SOLID'
ambient_sound:
sound: 'ambient.weather.rain'
volume: 0.1
pitch: 1.0
delay: 200
old_growth_birch_forest:
title: 'biomes.old_growth_birch_forest.title'
subtitle: 'biomes.old_growth_birch_forest.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'BLOCK_CHERRY_WOOD_BREAK'
commands: []
particle:
type: "VILLAGER_HAPPY"
count: 10
offset: 0.5
speed: 0.1
bossBar:
color: 'WHITE'
style: 'SOLID'
ambient_sound:
sound: 'ambient.weather.rain'
volume: 0.1
pitch: 1.0
delay: 200
flower_forest:
title: 'biomes.flower_forest.title'
subtitle: 'biomes.flower_forest.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'BLOCK_GRASS_BREAK'
commands: []
particle:
type: "VILLAGER_HAPPY"
count: 10
offset: 0.5
speed: 0.1
bossBar:
color: 'WHITE'
style: 'SOLID'
ambient_sound:
sound: 'ambient.weather.rain'
volume: 0.1
pitch: 1.0
delay: 200
'clifftree:desert_cliff':
title: 'biomes.clifftree.desert_cliff.title'
subtitle: 'biomes.clifftree.desert_cliff.subtitle'
display: 'actionbar'
animationType: 'typewriter'
separator: ' | '
sound: 'BLOCK_SAND_BREAK'
bossBar:
color: 'YELLOW'
style: 'SOLID'
duration: 120
particle:
type: "DUST"
count: 15
offset: 0.6
speed: 0.1
conditions.yml
# Configuration file for the Biomentry condition system.
# Each "rule" defines a trigger, conditions, and actions.
rules:
# --- EXAMPLE 1: Simple "IF ... AND ..." condition (AND) ---
# The player receives speed in the desert, but only if it's daytime AND they have the permission.
desert_speed_day:
trigger:
type: 'ENTER_BIOME'
biome: 'minecraft:desert'
conditions:
and: # "and" is a list of conditions that must ALL be true
- type: 'WORLD_TIME'
operator: 'LESS_THAN'
value: 12500 # Before sunset
- type: 'HAS_PERMISSION'
permission: 'biomentry.condition.desert_speed'
actions:
- type: 'APPLY_EFFECT'
effect: 'SPEED'
duration: 600 # in ticks (30 seconds)
amplifier: 0
# --- EXAMPLE 2: "IF IN CAVE" condition ---
# The player receives a torch if they enter any cave and have the permission.
generic_cave_torch:
trigger:
type: 'ENTER_BIOME'
in_cave: true # This rule only applies when the player is in a cave.
conditions:
or: # AT LEAST ONE condition must be true
- type: 'HAS_PERMISSION'
permission: 'biomentry.condition.torch_giver'
- type: 'HAS_EFFECT'
effect: 'NIGHT_VISION'
actions:
- type: 'RUN_COMMAND'
command: 'give %player_name% minecraft:torch 4'
- type: 'SEND_MESSAGE'
message: '<gray>You feel like an explorer in these caves.</gray>'
# --- EXAMPLE 3: "IF NOT ..." condition (NOT) ---
# The player receives a warning if they enter the Nether WITHOUT full diamond armor.
nether_warning:
trigger:
type: 'ENTER_BIOME'
biome: 'minecraft:nether_wastes'
in_cave: false # Only applies on the "surface" of the Nether
conditions:
not: # "not" inverts the condition it contains
type: 'HAS_ARMOR'
material: 'DIAMOND'
pieces: 4 # 4 pieces for full armor
actions:
- type: 'SEND_MESSAGE'
message: '<#FF6347><b>Warning!</b> The Nether is dangerous without proper equipment.'
# --- EXAMPLE 4: "IF NEITHER ... NOR ..." condition (NOT + OR) ---
# The player takes damage in the Deep Dark if they have NEITHER the Regeneration effect, NOR the Resistance effect.
deep_dark_danger:
trigger:
type: 'ENTER_BIOME'
biome: 'minecraft:deep_dark'
conditions:
# The logic is: NOT (A OR B)
not:
or:
- type: 'HAS_EFFECT'
effect: 'REGENERATION'
- type: 'HAS_EFFECT'
effect: 'RESISTANCE'
actions:
- type: 'APPLY_EFFECT'
effect: 'WITHER' # Applies the Wither effect
duration: 100
amplifier: 0
- type: 'SEND_MESSAGE'
message: '<#8B0000>You feel a malevolent presence draining your life...'
# --- EXAMPLE 5: Requested Actions ---
# Gives a temporary permission and health/saturation upon entering a specific biome.
ancient_forest_bonus:
trigger:
type: 'ENTER_BIOME'
biome: 'minecraft:old_growth_pine_taiga'
conditions:
# No conditions, triggers for everyone
and: []
actions:
- type: 'ADD_PERMISSION'
permission: 'essentials.fly'
duration: 300 # in seconds (5 minutes)
- type: 'HEAL'
amount: 4.0 # in half-hearts (here, 2 hearts)
- type: 'GIVE_SATURATION'
amount: 5.0
- type: 'SEND_MESSAGE'
message: '<#2E8B57>The strength of the ancient forest flows through you.'



