
自定义世界
在运行时创建、配置和传送自定义维度。
服务端模组,用于在运行时创建、配置多个自定义维度并在它们之间传送——每个世界拥有独立的物品栏、游戏模式、难度、游戏规则和世界边界。所有操作均通过简单的 /cw 命令完成。原版客户端可以连接并使用 /cw tp 命令——无需安装客户端。
当前活跃版本:1.21.1 (NeoForge / Fabric)
功能演示

功能特性
- 运行时维度创建 - 支持
NORMAL、FLAT、NETHER或END生成类型,可设置可选种子。 - 每个世界独立状态 - 每个维度均可拥有独立的:
- 默认游戏模式(进入时应用)
- 物品栏池(与其他开启“共享”的世界共享,或完全独立)
- 游戏规则覆盖(使用
reset可还原) - 难度(仅限自定义维度)
- 世界边界(完全兼容
/worldborder功能) - 公开标记 - 允许非管理员玩家传送至此
- 智能传送 - 记住每位玩家在每个维度的最后位置;首次访问时检测安全出生点(包括地狱顶部处理)。
- 重启后数据持久化 - 世界、配置、玩家位置及物品栏。
- 死亡重生 - 在自定义维度死亡后会在该维度重生(除非床设在其他地方)。
- 兼容原版客户端 - 无需安装客户端 Mod。
- 删除安全 -
/cw delete需要确认,会清除文件及所有相关的玩家物品栏数据。
命令
所有命令均以 /cw 为前缀。公开命令对所有玩家可见;管理员命令需要配置的权限等级(默认 OP 4)。
公开命令
/cw help- 列出你可用的命令/cw tp <世界名称>- 传送(管理员:任意维度;玩家:仅限公开世界)/cw list- 列出世界(根据权限过滤)
管理员命令 - 世界管理
/cw create <名称> <类型> [种子]- 类型:
NORMAL、FLAT、NETHER、END - 示例:
/cw create myworld NORMAL/cw create skyblock FLAT 12345/cw create hellscape NETHER
- 类型:
/cw delete <名称>- 30 秒内再次运行相同命令进行确认
管理员命令 - 世界配置(需在维度内执行)
/cw config- 显示当前维度的完整配置/cw config sharedinventory <true|false>- 与其他共享世界共用物品栏,或使用完全独立的物品栏池/cw config gamemode <survival|creative|adventure|spectator>- 进入时应用的游戏模式/cw config publicWorld <true|false>- 允许非管理员玩家通过/cw tp传送至此/cw config difficulty <peaceful|easy|normal|hard>- 每个维度的难度(仅限自定义维度)/cw config worldborder ...- 参数与原版/worldborder相同,但应用于当前维度:set <距离> [<时间>]、add <距离> [<时间>]center <x> <z>damage amount <每格伤害>、damage buffer <距离>warning distance <方块数>、warning time <秒数>get
/cw config gamerule [<规则名称> [<值>|reset]]- 无参数:列出所有规则(被覆盖的规则会用
*标记) <规则名称>:查询<规则名称> <值>:为此维度覆盖该规则<规则名称> reset:移除覆盖,恢复为默认值
- 无参数:列出所有规则(被覆盖的规则会用

权限
管理员命令所需的 OP 等级可在 config/<存档名>/serverconfig/customworlds-server.toml 中配置:
permissionLevel = 4 # 0-4, 管理员命令所需 OP 等级
maxWorlds = 0 # 0 = 无限制;/cw create 的硬上限
deleteConfirmSeconds = 30 # 5-600
/cw tp 和 /cw list 始终对所有玩家可用(根据每个世界的 publicWorld 标记过滤)。
物品栏模型
每位玩家在每个“桶”中都有一个物品栏快照:
- 共享桶 - 被所有
sharedInventory = true的维度使用(主世界默认共享)。所有共享世界共用一个物品栏。 - 独立桶 - 每个
sharedInventory = false的维度拥有一个。该维度拥有自己的私有物品栏池;你进入或离开时,你的共享物品栏将保持不变。
桶数据会持久化到磁盘,重启后依然保留。在独立维度中登出会立即保存你的物品栏快照。

存储
与世界数据一起保存:
| 文件 | 用途 |
|---|---|
customworlds.json |
已创建世界的列表 |
customworlds_config.json |
每个维度的配置 |
customworlds_positions.json |
每位玩家在每个维度的最后位置 |
customworlds_inventories/<UUID>/<桶名称>.dat |
NBT 物品栏和 XP 快照 |
dimensions/customworlds/<名称>/ |
标准 MC 维度数据(区块、实体等) |
删除一个世界会清除该维度的上述所有文件。操作不可逆。
兼容性
Custom Worlds 与 Curios API (NeoForge) 和 Trinkets (Fabric) 兼容,安装这些模组后物品栏会自动同步。
局限性
doDaylightCycle在每个维度中没有可见效果 - 游戏时间通过DerivedLevelData与主世界共享。昼夜更替遵循主世界。- 每个维度的难度 仅适用于
customworlds:*维度(如果应用于minecraft:*维度,会与原版的全局难度冲突)。原版维度请使用/difficulty命令。 - 执行
/cw create后建议重启服务器 - 新创建的世界在下次重启前将运行在备用 tick 循环上,之后才会正常集成。模组会在创建时提示此信息。 - 动态维度注册使用了针对
MinecraftServer内部实现的反射。**更新 NeoForge 前请备份你的存档。**
常见问题
我的玩家需要安装这个模组吗? 不需要。CustomWorlds 是纯服务端模组。原版客户端可以连接并使用 /cw tp 命令前往公开世界。
这些世界与原版兼容吗? 是的。自定义维度复用了原版的 OVERWORLD/NETHER/END 维度类型,因此原版客户端无需额外注册数据即可识别它们。
如果玩家离线时,他们的世界被删除了会怎样? 重新连接时,原版会回退到主世界的出生点。玩家将带着上次登出时保存在 player.dat 中的物品栏到达。
我可以手动编辑 JSON 文件吗? 可以——它们是纯 JSON。加载器会容忍个别条目的格式错误,并记录跳过了哪个条目。
我如何获得关于 Custom Worlds 的更多帮助? 当然可以!加入我们的 Discord:https://discord.gg/XNAeUSYswB
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。