BetterStructures 配置
本页是 BetterStructures 写入 plugins/BetterStructures 的两个插件级配置文件的参考手册。内容级别的配置在别处:参见创建生成器、创建结构、创建宝藏和模块化地下城。
每当你运行 /bs reload 时,这两个文件都会在服务器主线程上被重新读取,因此这里的改动无需重启即可生效。
文件夹结构
| 路径 | 内容 |
|---|---|
config.yml | 插件全局设置,详见下文 |
ValidWorlds.yml | 各世界的开关,详见下文 |
schematics/ | 结构的 .schem 文件及其生成的 .yml 配置,递归扫描 |
modules/ | 模块化地下城的 .schem 文件及其生成的 .yml 配置,递归扫描 |
generators/ | 生成器配置 |
module_generators/ | 模块生成器配置 |
treasures/ | 宝藏(战利品表)配置 |
spawn_pools/ | 供 [pool: name] 告示牌使用的生成池配置 |
content_packages/ | 设置菜单和下载命令使用的内容包描述文件 |
components/ | 启动时创建的空文件夹,供附带支持组件的内容使用 |
imports/ | 手动导入内容的投放文件夹 |
.schematic_cache/ | 已转换原理图的托管缓存,可安全删除 |
config.yml
结构间距
BetterStructures 会把结构放置在一个由种子决定的菱形网格上,每种结构类型一张网格。距离类的键设定网格点之间相隔多远,偏移类的键则让每个点在网格上随机抖动,使放置结果看起来不那么机械。
两者的单位都是区块,而不是方块。 distanceSurface 为 27 表示大约每 27 个区块出现一座地表结构(约 432 个方块)。
| 键 | 默认值 | 描述 |
|---|---|---|
distanceSurface | 27 | SURFACE 结构的网格间距 |
distanceShallow | 22 | UNDERGROUND_SHALLOW 结构的网格间距 |
distanceDeep | 22 | UNDERGROUND_DEEP 结构的网格间距 |
distanceSky | 90 | SKY 结构的网格间距 |
distanceLiquid | 60 | LIQUID_SURFACE 结构的网格间距 |
distanceDungeonV2 | 80 | DUNGEON 放置的网格间距 |
maxOffsetSurface | 5 | 应用于地表网格点的随机抖动 |
maxOffsetShallow | 5 | 应用于浅层地下网格点的随机抖动 |
maxOffsetDeep | 5 | 应用于深层地下网格点的随机抖动 |
maxOffsetSky | 5 | 应用于空中网格点的随机抖动 |
maxOffsetLiquid | 5 | 应用于液面网格点的随机抖动 |
maxOffsetDungeonV2 | 18 | 应用于地下城网格点的随机抖动 |
距离越小,结构越多。偏移越小,放置越接近规整网格;偏移越大,放置越难以预测。
校验。 距离至少必须为 1。偏移必须在 0 到 1073741823 之间,这是放置随机器能安全使用的最大值。超出范围的值会让 BetterStructures 记录一条警告,把该键的默认值写回 config.yml,然后使用默认值继续运行,而不是让生成失败。
偏移由世界种子和结构类型名称推导而来,因此同一个种子在每次重启后都会产生相同的布局。
出生点保护
| 键 | 默认值 | 描述 |
|---|---|---|
spawnProtectionRadius | 100 | 以坐标 0, 0 为中心、不放置任何结构的最小方块距离。对所有世界生效。设为 0 可禁用。 |
请注意,该距离是从世界原点算起的,而不是从各个世界的出生点算起。
高度范围
这些设置按维度限制地下结构最终可以出现的位置。锚点会落在范围之外的结构会被拉回范围内。
| 键 | 默认值 | 描述 |
|---|---|---|
lowestYNormalCustom | -60 | NORMAL 和 CUSTOM 世界的最低 Y |
highestYNormalCustom | 320 | NORMAL 和 CUSTOM 世界的最高 Y |
lowestYNether | 4 | 下界的最低 Y |
highestYNether | 120 | 下界的最高 Y |
lowestYEnd | 0 | 末地的最低 Y |
highestYEnd | 320 | 末地的最高 Y |
空中结构使用它们自己的设置,而且这些是相对于该列最高方块之上的偏移量,不是绝对 Y 坐标。每次放置都会在最小值和最大值之间随机取一个数。
| 键 | 默认值 | 描述 |
|---|---|---|
normalCustomAirBuildingMinAltitude | 80 | NORMAL 和 CUSTOM 世界的最低空中偏移 |
normalCustomAirBuildingMaxAltitude | 120 | NORMAL 和 CUSTOM 世界的最高空中偏移 |
endAirBuildMinAltitude | 80 | 末地的最低空中偏移 |
endAirBuildMaxAltitude | 120 | 末地的最高空中偏移 |
下界会忽略这四个键:那里的空中结构会被放进通过扫描 Y 45 到 Y 100 之间找到的空气腔中。
性能
| 键 | 默认值 | 描述 |
|---|---|---|
percentageOfTickUsedForPasting | 0.2 | BetterStructures 每个服务器 tick 中可用于粘贴方块的比例,取值从 0.01(1%)到 1(100%)。数值越低越不容易卡顿,但建筑「弹出」的过程会更明显。 |
percentageOfTickUsedForPregeneration | 0.1 | /bs pregenerate 每 tick 使用的比例,取值范围同样是 0.01 到 1 |
pregenerationTPSPauseThreshold | 12.0 | 服务器 TPS 低于此值时暂停预生成 |
pregenerationTPSResumeThreshold | 14.0 | TPS 达到或高于此值时恢复预生成。请让它高于暂停阈值,以避免频繁地暂停/恢复来回切换。 |
modularChunkPastingSpeed | 10 | 当前未被使用。 该键仍会写入 config.yml,但没有任何代码读取它,所以修改它不会产生任何效果。 |
管理与集成
| 键 | 默认值 | 描述 |
|---|---|---|
warnAdminsAboutNewBuildings | true | 附近生成结构时是否通知管理员。/bs silent 会翻转并保存该值。 |
setupDone | false | 首次设置流程是否已完成。设为 false 并重载即可让 /bs initialize 再次提示。 |
protectEliteMobsRegions | true | BetterStructures 是否为由 EliteMobs 支撑的战斗区域创建 WorldGuard 保护。需要同时安装 WorldGuard 和 EliteMobs。 |
regionProtectedMessage | &8[BetterStructures] &cDefeat the zone's bosses to edit blocks! | 玩家尝试在这类受保护区域内编辑方块时显示的消息 |
nightbreak.autoDownloadPluginUpdates | false | 启动时是否自动下载插件和内容更新。这是 /bs setup 中 Automatic Updates(自动更新)开关背后的键。已下载的插件更新仍需重启才能应用。 |
ValidWorlds.yml
这个文件决定 BetterStructures 会在哪些世界中生成内容。
New worlds spawn structures: true
EliteMobs worlds excluded by default: true
Valid worlds:
world: true
world_nether: true
world_the_end: true
| 键 | 默认值 | 描述 |
|---|---|---|
New worlds spawn structures | true | BetterStructures 此前没见过的世界是否会被注册为启用 |
Valid worlds | 自动填充 | 每个世界一条 worldname: true/false 条目。把某个世界设为 false 即可停止其中的所有结构生成。 |
EliteMobs worlds excluded by default | 一次性迁移后写入 true | 内部标记,请勿编辑。 |
自动行为
- 新世界在加载时被注册。 首次加载的世界会立即写入一条条目,其值取自
New worlds spawn structures。 - 由 EliteMobs 管理的世界会被排除。 冒险者公会大厅和副本地下城的世界副本会被注册为
false,即使New worlds spawn structures为true也一样,因为它们尚未构建的虚空区块会被算作新区块,曾导致 BetterStructures 在地下城大厅里生成建筑。条目依然会被写入,所以如果你确实想要,把它改回true是有效的。 - 已有的
em_条目被迁移过一次。 任何仅仅因为旧版宽松默认值才为true的em_世界都被一次性翻转为false,而EliteMobs worlds excluded by default标记记录了该迁移已经执行过。之后你刻意重新启用的世界会在重启后保持启用。 - 失效条目会被清理。 在启动时,以及世界卸载后大约十秒,那些既未加载、磁盘上也不存在的世界条目会被移除,以免文件无限增长。