生成条件

生成条件

自定义玩家生成条件

模组预览图

可自定义的玩家出生条件。

配置

加载器 文件
Forge, NeoForge config/spawnconditions-common.toml
Fabric config/spawnconditions.json
选项 默认值 含义
enabled true 总开关。
worldSpawn.randomize false 随机化世界出生点,而不是使用 0,0。
worldSpawn.area RING 选择出生点的形状。
worldSpawn.centerX / centerZ 0 环形:起始的 x 和 z 坐标。
worldSpawn.minRadius / maxRadius 0 / 10000 环形:出生点距离中心的最小和最大距离。
worldSpawn.minX / maxX / minZ / maxZ -10000 / 10000 方形:出生点可用的最低和最高 x 和 z 坐标。
worldSpawn.attempts 32 放弃前的尝试次数。每次尝试会加载一个区块。
placement.fluidBlocksColumn true 当不允许流体时,跳过整个位置。关闭后则继续在其下方寻找。
placement.liquidLanding SURFACE 降落在液体顶部或液体下方的地面上。
placement.groundRequirement FULL_FACE 什么算作可站立的地面。
placement.requiredHeadroom 0 玩家上方所需的空余空间。0 为原版行为。
placement.headroomAllowsFluid true 将玩家上方的液体视为空余空间。
placement.maxSearchDepth 0 搜索放弃前可下降的方块数。0 为无限制。
placement.minY / maxY -2048 / 2048 出生点可用的最低和最高 y 坐标。
placement.limitHorizontally false 开启下方的 x 和 z 限制。
placement.minX / maxX / minZ / maxZ -30000000 / 30000000 出生点可用的最低和最高 x 和 z 坐标。
placement.biomeAllowList [] 仅在这些生物群系中出生。留空表示允许任何生物群系。
placement.biomeDenyList [] 绝不在此生物群系中出生。
placement.blockAllowList [] 仅在这些方块上出生。留空表示允许任何方块。
placement.blockDenyList [] 绝不在此方块上出生。
placement.fluidAllowList [] 仅在这些流体中出生。留空表示绝不在流体中出生。
placement.fluidDenyList [] 绝不在这些流体中出生。
respawn.preventSpawnSetting false 玩家无法设置其出生点。床和重生锚不会保存出生点。
respawn.spawnBlockedMessage &cYou cannot set your spawn. 当玩家无法设置出生点时显示的消息。留空则不显示消息。

列表

条目是像 modid:name 这样的 ID,或者前面带有 # 的标签,如 #modid:name。任何模组添加的内容的运作方式与原版条目相同。拒绝列表优先检查,因此同时出现在两个列表中的条目将被拒绝。

流体列表的运作方式与生物群系和方块列表相反。空的 fluidAllowList 表示不允许流体出生,这也是原版行为。对于流体请使用标签,因为流体有静止和流动两种状态,所以 #minecraft:water 会同时涵盖两者,而 minecraft:water 只会处理静止状态。

方块列表会检查玩家最终站在其上的方块。

地面要求

值 地面定义为
FULL_FACE 具有完整顶面的方块。这是原版行为,因此台阶、楼梯、栅栏和墙会被跳过。
ANY_COLLISION 任何具有碰撞箱的方块,因此台阶、楼梯、栅栏和墙都算数。
ANY_BLOCK 任何非空气的方块,包括你会掉落的方块,如草、花和火把。

树叶具有完整的碰撞箱,因此它们已经算作 FULL_FACE 下的地面。

洞穴出生点

maxY 是实现洞穴出生的关键。搜索始终从 maxY 开始向下进行,因此将其设置在地表以下会从地下开始搜索,并找到第一处地面:

"placement": {
  "maxY": -10,
  "minY": -60,
  "requiredHeadroom": 2
}

这里需要 requiredHeadroom。没有它,搜索会在 maxY 处遇到的第一个完整方块(通常是石头)处停止,并将玩家生存在方块内部。设置为 2 时,搜索会跳过坚固的岩石并继续向下,直到找到上方有空气的底部。添加 "biomeAllowList": ["minecraft:lush_caves"] 可以选择洞穴生物群系。生物群系是三维的,因此检查会在出生点位置进行,而不是在地表。

备注

worldSpawn 设定了测量其他所有事物的基准点。它仅对新世界的主世界生效。已经存在的世界已保存其出生点。

可以使用原版的 spawnRadius 游戏规则来指定以 0,0 为中心的方块半径,例如 /gamerule spawnRadius 2000。如果你想在每个世界都生效,可以使用 Global GameRules 模组。

preventSpawnSetting 会阻止床和重生锚保存出生点,因此每次死亡都会根据你设定的规则重新进行。/spawnpoint 命令仍然有效。

spawnBlockedMessage:这是玩家无法设置出生点时在快捷栏上方看到的消息。在颜色或格式代码前加上 &,例如 &c 代表红色,&l 代表粗体,&r 用于重置格式。留空则无消息。

所有默认值均为原版行为,因此开启 enabled 的新配置文件在修改任何选项之前,不会造成任何改变。

对于那些特别想要 RLCraft 风格出生的玩家,将 #minecraft:water 放入 placement.fluidAllowList,将 placement.liquidLanding 设置为 FLOOR 以便玩家降落在海床上,并运行 /gamerule spawnRadius 20000。