Files
netease-bedrock-wiki/mcguide/20-玩法开发/15-自定义游戏内容/4-自定义维度/1-自定义维度.md
2025-09-26 17:47:57 +08:00

124 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
front:
hard: 入门
time: 分钟
---
# 自定义维度
## 声明新维度
<span id="jump_to_custom_dimension"></span>
引擎中默认带有overworldnetherthe end三个原生维度以及编号为3到20的自定义维度可以直接使用。
此外还可以通过配置添加编号为22到2147483647的新自定义维度
1. addon目录中的`behavior`目录下新增`netease_dimension`文件夹
2. 添加一个以维度id命名的json文件
如dm23333.json
```json
{
"format_version": "1.14.0",
"netease:dimension_info": {
"components": { //必须有这个字段
}
}
}
```
可以使用以下python代码来生成一个随机的维度id
```python
import random, sys
print random.randint(22, sys.maxint)
```
对于三个原生维度以及18个自带的自定义维度也可以配置相应文件名的json三个原生维度对应的文件名分别为overworld.jsonnether.jsonthe end.json请勿使用维度id命名编写components字段来修改他们的属性但是一些属性无法对原生维度修改详见下面的说明。
## 维度配置
components中可以配置的组件如下
| 组件 | 类型 | 默认值 | 说明 |
| ---------------------------------------------------------- | ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| netease:dimension_type | string | minecraft:overworld | 维度的类型,可以选择以下值:<br>minecraft:overworld主世界<br>minecraft:nether下界<br>minecraft:the_end末地<br>(对三个原生维度无效) |
| netease:generator_noise | 空object | | 噪声生成器,用于生成随机凹凸的地面<br>如果没有配置任何生成器,则默认使用该生成器<br>(对三个原生维度无效) |
| netease:generator_flat | 空object | | 超平坦生成器,仅主世界和下界类型可用<br>(对三个原生维度无效) |
| netease:generator_legacy | 空object | | 旧世界/经典(有限地图)生成器,仅主世界类型可用<br>(对三个原生维度无效) |
| netease:ban_vanilla_feature | 空object | | 清除原版feature可解决类似空岛玩法天空悬浮结构问题任何维度可用 |
| netease:spawn_biomes | array(string) | 该维度下的forest, forest_hills, plains, taiga, taiga_hills, jungle, jungle_hills | 该维度下可供玩家出生的群系名称的列表<br>请确保列表的群系会生成在该维度 |
| [netease:biome_source](./2-群系地貌.md#8-4.群系源节点类型) | array(dict) | | 该维度下的群系源,仅主世界类型可用<br>(对三个原生维度无效) |
| netease:ban_vanilla_structure | object | 屏蔽所有原版结构 | 选择性屏蔽原版结构,示例见下方,支持主世界、下界、末地维度类型 |
| netease:ban_vanilla_mineshaft | 空object | | 屏蔽废弃矿井 |
| netease:ban_vanilla_monument | 空object | | 屏蔽海底遗迹 |
| netease:ban_vanilla_mansion | 空object | | 屏蔽林地府邸 |
| netease:ban_vanilla_temple | 空object | | 屏蔽神庙 |
| netease:ban_vanilla_pillageroutpost | 空object | | 屏蔽掠夺者前哨 |
| netease:ban_vanilla_ruinedportal | 空object | | 屏蔽破坏的传送门(仅主世界类型维度可用) |
| netease:ban_vanilla_ruins | 空object | | 屏蔽水下遗迹 |
| netease:ban_vanilla_shipwreck | 空object | | 屏蔽沉船 |
| netease:ban_vanilla_stronghold | 空object | | 屏蔽要塞 |
| netease:ban_vanilla_village | 空object | | 屏蔽村庄 |
使用白名单,只允许生成沉船和要塞,其他所有原版结构都不生成,结构名称和[`/locate`](https://learn.microsoft.com/en-us/minecraft/creator/commands/commands/locate?view=minecraft-bedrock-stable#structurefeature)指令中的相同。
```json
"netease:ban_vanilla_structure": {
"allowlist": ["ancient_city", "stronghold"]
}
```
allowlist里面填写的是原版结构类型并非自定义结构的名称。如需屏蔽自定义结构请填写netease_large_feature。
目前allowlist字段可以填写字段如下
```
"end_city"
"fortress"
"mineshaft"
"monument"
"ruins"
"stronghold"
"temple"
"village"
"mansion"
"shipwreck"
"ruined_portal"
"buried_treasure"
"pillager_outpost"
"bastion_remnant"
"ancient_city"
"trail_ruins"
"trial_chambers"
"netease_large_feature"
```
使用黑名单,除了不生成废弃传送门和海底神殿外,其他原版结构正常生成。
```json
"netease:ban_vanilla_structure": {
"blocklist": ["ruined_portal", "monument"]
}
```
注意allowlist和blocklist只允许配置其中一个都不配置则默认屏蔽所有原版结构例如CustomBiomesMod中的dm23333.json
```json
{
"format_version": "1.14.0",
"netease:dimension_info": {
"components": {
"netease:dimension_type": "minecraft:overworld", //类型为主世界
"netease:generator_noise": {}, //使用噪声生成器
"netease:spawn_biomes": ["dm23333_ice_plains"], //玩家会在冰原下出生
"netease:ban_vanilla_structure": {} //屏蔽所有原版结构
}
}
}
```
注:
- 自定义末地推荐在群系中配置不生成末影龙及相关逻辑(参考:[群系地貌](./2-群系地貌.md#jump_to_no_spawn_dragon)),即使开了末影龙逻辑也不会生成传送门,有需要可以搭配自定义传送门使用。
- 如果已经进入过某个维度,该维度地形已被存档,那么再配置维度类型可能会出现存档地形和生成地形融合的奇怪现象,可以在进入维度前通过<a href="../../../../mcdocs/1-ModAPI/接口/世界/地图.html#upgrademapdimensionversion" rel="noopenner"> UpgradeMapDimensionVersion </a>接口提升该维度版本号,废弃原本的存档信息。