The Immersive Music
A client-side music mod selected to match your biome and surroundings with smooth transitions.
介绍
Immersive Music
Let the soundtrack follow your journey.
Immersive Music brings 120 tracks inspired by fantasy, medieval, and Celtic music to your adventures. From open grasslands and quiet forests to deep caves and otherworldly dimensions, each setting has its own musical atmosphere. All included music was created by the author using Suno AI and is free to use.
The mod senses your biome type, dimension, temperature, time of day, light level, sky visibility, underwater status, and altitude. It combines these observations with each track’s conditions and weight to choose music that fits your surroundings. Biomes are identified through vanilla biome tags, so modded biomes with the appropriate tags can also be matched.
Enjoy a soundtrack throughout your session, from the main menu to world exploration, with smooth fades between tracks. Menu music is chosen randomly and plays to completion before the next selection. Once you enter a world, music is selected to suit the environment. You can also disable early switching to let each track finish before the mod chooses the next one.
Features
- Music that responds to your surroundings: Distinct moods for mornings, nights, the surface, caves, and underwater exploration.
- 120 fantasy and Celtic tracks: Peaceful, mysterious, and somber music for exploring, building, and wandering.
- Smooth transitions: Configurable fades, with a default duration of two seconds.
- Compatibility with other music: Replaces vanilla background music and fades out when another mod plays music through the music channel.
- A customizable music pool: Edit the music pool JSON to add your own tracks, define where they can play, and adjust their preferences and selection weights.
Custom Music and JSON Configuration
The music pool currently loads from JSON files inside the mod’s JAR. The following steps modify those bundled resources. Back up the JAR before editing, restart the game after saving, and reapply your changes when updating the mod.
1. Add Your Audio Files
Convert your music to Ogg Vorbis (.ogg). Use lowercase English letters, numbers, and underscores in filenames.
Open the mod’s JAR with an archive editor and place your audio files at the following paths. This example uses the track group moonlit_forest:
assets/immersive_music/
├── music_pool.json
├── sounds.json
└── sounds/music/
├── moonlit_forest_a.ogg
└── moonlit_forest_b.ogg
Each rule currently defines two variants, A and B. You can provide two tracks or point both sound events to the same audio file.
2. Register the Sound Events
Add the following members inside the top-level object in assets/immersive_music/sounds.json. Keep the existing entries and separate members with commas:
"music.moonlit_forest_a": {
"sounds": [
{
"name": "immersive_music:music/moonlit_forest_a",
"stream": true
}
]
},
"music.moonlit_forest_b": {
"sounds": [
{
"name": "immersive_music:music/moonlit_forest_b",
"stream": true
}
]
}
name is the audio resource location, without the .ogg extension. stream: true enables streaming playback for longer music files. If you only have one audio file, use its resource location as the name for both events.
3. Add a Music Pool Rule
Append an object to the top-level array in assets/immersive_music/music_pool.json. This example adds a track group that favors forests at night:
{
"number": 61,
"id": "moonlit_forest",
"realm": "overworld",
"layer": "surface",
"weight": 3,
"tagsAny": [
"minecraft:is_forest",
"minecraft:is_taiga"
],
"tagsNone": [],
"preferredTags": [
"minecraft:is_taiga"
],
"preferences": {
"temperature": {
"gte": 0.0,
"lt": 0.9
},
"height": {
"gte": 48
},
"brightness": {
"lt": 8
},
"skyVisible": true,
"dayTimeAny": [
[13000, 23000]
]
}
}
This group is eligible on the surface in Overworld-type realms, in forest or taiga biomes. It favors cool, dark nighttime conditions with visible sky. Unmet preferences reduce its weight rather than preventing playback.
4. Top-Level Parameters
| Parameter | Purpose |
|---|---|
number |
Track group number. Use an integer that is unique within the pool. |
id |
Track group identifier, matching music.<id>_a and music.<id>_b in sounds.json. |
realm |
Required. Realm type: overworld, nether, or end. |
layer |
Required. Environment layer: surface, underground, underwater, or any. |
weight |
Required. Base selection weight; positive values are recommended. Higher values increase the chance of selection when other conditions are equal. |
tagsAny |
At least one listed biome tag must match. Omit this field or use an empty array for no restriction. |
tagsNone |
Excludes the group if any listed biome tag matches. |
preferredTags |
Multiplies the weight by 2 if any listed tag matches. Multiple matches do not stack. |
temperatureLimit |
Optional hard temperature range. A mismatch excludes the group. Uses the biome’s base temperature, not degrees Celsius. |
heightLimit |
Optional hard altitude range. A mismatch excludes the group. |
preferences |
Required object containing environment preferences. Use {} for no preferences. |
Only vanilla minecraft: biome tags are accepted. Enter them without a leading #, for example minecraft:is_forest, minecraft:is_ocean, or minecraft:is_mountain. These tags can also match modded biomes that carry them.
5. Environment Preferences
Field inside preferences |
Meaning | Weight multiplier when unmet |
|---|---|---|
temperature |
Preferred biome base temperature range. | 0.25 |
height |
Preferred range for the player’s Y coordinate. | 0.35 |
brightness |
Preferred light level at eye position, using vanilla light levels from 0 to 15. |
0.35 |
skyVisible |
true favors visible sky; false favors covered locations. |
0.35 |
dayTimeAny |
Preferred time intervals. Matching any one interval satisfies this preference. | 0.15 |
All preference fields are optional. When several preferences are unmet, their multipliers are applied together. Hard conditions determine eligibility, while preferences influence selection chances. For example, use heightLimit to restrict a track to certain altitudes, or preferences.height to make those altitudes more favorable.
In a range object, gte means “greater than or equal to” and lt means “less than.” You can specify either bound or both:
"heightLimit": { "gte": 48, "lt": 128 }
This requires an altitude of 48 <= Y < 128.
dayTimeAny uses time-of-day ticks from 0 to 23999. Each interval includes its start and excludes its end. 0 is morning, 6000 is noon, 12000 is around sunset, and 18000 is midnight. Split an interval that crosses the day boundary into two parts:
"dayTimeAny": [[23000, 24000], [0, 1000]]
Environment rules and weights apply to music selection inside a world. The main menu selects randomly from the pool. World selection also includes randomness and repeat suppression, so a higher weight does not guarantee that a track will always play.
Free Use and Credits
All 120 included tracks were created by the author using Suno AI and are free for players to use. The mod’s source code is released under the MIT License. Music assets are not covered by the code’s MIT license.
常见问题
The Immersive Music 支持哪些 Minecraft 版本?
The Immersive Music 支持 Minecraft Java 版 1.20.1–1.21.1,共 2 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
The Immersive Music 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
First_sight 的其他作品
查看全部 →aimbot
Super Lock
Fargo Soul
Fargo's Soul 带来一系列可制作的饰品,为你提供各种增益和能力。
TwilightSoul
新增一系列 Fargo's Soul Mod 与暮色森林之间的联动物品。
Create Soul
新增多个 Fargo's Souls 与机械动力之间的联动物品。
评论
登录后评论和评分