跳到主要内容

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 个方块)。

键默认值描述
distanceSurface27SURFACE 结构的网格间距
distanceShallow22UNDERGROUND_SHALLOW 结构的网格间距
distanceDeep22UNDERGROUND_DEEP 结构的网格间距
distanceSky90SKY 结构的网格间距
distanceLiquid60LIQUID_SURFACE 结构的网格间距
distanceDungeonV280DUNGEON 放置的网格间距
maxOffsetSurface5应用于地表网格点的随机抖动
maxOffsetShallow5应用于浅层地下网格点的随机抖动
maxOffsetDeep5应用于深层地下网格点的随机抖动
maxOffsetSky5应用于空中网格点的随机抖动
maxOffsetLiquid5应用于液面网格点的随机抖动
maxOffsetDungeonV218应用于地下城网格点的随机抖动

距离越小,结构越多。偏移越小,放置越接近规整网格;偏移越大,放置越难以预测。

校验。 距离至少必须为 1。偏移必须在 0 到 1073741823 之间,这是放置随机器能安全使用的最大值。超出范围的值会让 BetterStructures 记录一条警告,把该键的默认值写回 config.yml,然后使用默认值继续运行,而不是让生成失败。

偏移由世界种子和结构类型名称推导而来,因此同一个种子在每次重启后都会产生相同的布局。

出生点保护​

键默认值描述
spawnProtectionRadius100以坐标 0, 0 为中心、不放置任何结构的最小方块距离。对所有世界生效。设为 0 可禁用。

请注意,该距离是从世界原点算起的,而不是从各个世界的出生点算起。

高度范围​

这些设置按维度限制地下结构最终可以出现的位置。锚点会落在范围之外的结构会被拉回范围内。

键默认值描述
lowestYNormalCustom-60NORMAL 和 CUSTOM 世界的最低 Y
highestYNormalCustom320NORMAL 和 CUSTOM 世界的最高 Y
lowestYNether4下界的最低 Y
highestYNether120下界的最高 Y
lowestYEnd0末地的最低 Y
highestYEnd320末地的最高 Y

空中结构使用它们自己的设置,而且这些是相对于该列最高方块之上的偏移量,不是绝对 Y 坐标。每次放置都会在最小值和最大值之间随机取一个数。

键默认值描述
normalCustomAirBuildingMinAltitude80NORMAL 和 CUSTOM 世界的最低空中偏移
normalCustomAirBuildingMaxAltitude120NORMAL 和 CUSTOM 世界的最高空中偏移
endAirBuildMinAltitude80末地的最低空中偏移
endAirBuildMaxAltitude120末地的最高空中偏移

下界会忽略这四个键:那里的空中结构会被放进通过扫描 Y 45 到 Y 100 之间找到的空气腔中。

性能​

键默认值描述
percentageOfTickUsedForPasting0.2BetterStructures 每个服务器 tick 中可用于粘贴方块的比例,取值从 0.01(1%)到 1(100%)。数值越低越不容易卡顿,但建筑「弹出」的过程会更明显。
percentageOfTickUsedForPregeneration0.1/bs pregenerate 每 tick 使用的比例,取值范围同样是 0.01 到 1
pregenerationTPSPauseThreshold12.0服务器 TPS 低于此值时暂停预生成
pregenerationTPSResumeThreshold14.0TPS 达到或高于此值时恢复预生成。请让它高于暂停阈值,以避免频繁地暂停/恢复来回切换。
modularChunkPastingSpeed10当前未被使用。 该键仍会写入 config.yml,但没有任何代码读取它,所以修改它不会产生任何效果。

管理与集成​

键默认值描述
warnAdminsAboutNewBuildingstrue当服务器任意位置有结构粘贴完成或模块化地牢开始生成时,是否向拥有 betterstructures.warn 权限(默认为 OP)的在线玩家发送可点击的传送消息。/bs silent 会翻转并保存该值。
setupDonefalse首次设置流程是否已完成。设为 false 并重载即可让 /bs initialize 再次提示。
protectEliteMobsRegionstrueBetterStructures 是否为由 EliteMobs 支撑的战斗区域创建 WorldGuard 保护。需要同时安装 WorldGuard 和 EliteMobs。
regionProtectedMessage&8[BetterStructures] &cDefeat the zone's bosses to edit blocks!玩家尝试在这类受保护区域内编辑方块时显示的消息
nightbreak.autoDownloadPluginUpdatesfalse启动时是否自动下载插件和内容更新。这是 /bs setup 中 Automatic Updates(自动更新)开关背后的键。已下载的内容和插件更新会在下次重启后生效,除非 nightbreak.applyPluginUpdatesWithoutRestart 让插件更新更早应用。
nightbreak.applyPluginUpdatesWithoutRestartnever已下载的插件更新在何时应用。never 会等到下次重启。when-empty 会在下一次没有玩家在线时应用,每 30 秒检查一次。immediately 会在下载完成后立即应用。其他任何值都视为 never。应用更新会重载 BetterStructures 以及依赖它的 MagmaGuy 插件,因此正在进行的 Boss 战、竞技场和地牢实例都会结束。若有其他作者的插件依赖 BetterStructures,则无法换入更新。/bs applypluginupdate 可按需应用已暂存的更新。

ValidWorlds.yml

这个文件决定 BetterStructures 会在哪些世界中生成内容。

New worlds spawn structures: true
Valid worlds v2:
world: true
world_nether: true
world_the_end: true
键默认值描述
New worlds spawn structurestrueBetterStructures 此前没见过的世界是否会被注册为启用
Valid worlds v2自动填充每个世界一条 worldname: true/false 条目。把某个世界设为 false 即可停止其中的所有结构生成。

升级时,含有旧键 Valid worlds 的 ValidWorlds.yml 会完整移至 plugins/MagmaCore/outdated files/BetterStructures/<archive batch>/ValidWorlds.yml。BetterStructures 会按照当前世界默认值生成替代文件。请在归档中查看之前的设置,把想保留的选择重新填写到 Valid worlds v2 下,然后运行 /bs reload。不要将旧文件原样放回,否则它仍会被识别为已废弃的格式。

自动行为​

  • 新世界在加载时被注册。 首次加载的世界会立即写入一条条目,其值取自 New worlds spawn structures。
  • 由 EliteMobs 管理的世界会被排除。 冒险者公会大厅和副本地下城的世界副本会被注册为 false,即使 New worlds spawn structures 为 true 也一样,因为它们尚未构建的虚空区块会被算作新区块,曾导致 BetterStructures 在地下城大厅里生成建筑。条目依然会被写入,所以如果你确实想要,把它改回 true 是有效的。
  • 保留当前格式的设置。 BetterStructures 不会根据 em_ 名称推断世界归属,也不会改写已有的 Valid worlds v2 开关。它使用 EliteMobs 的世界注册表决定新世界的默认值。明确启用的 EliteMobs 世界会保持启用,并产生警告,供你决定是否更改。旧的 Valid worlds 文件按上述流程归档并重新生成。
  • 失效条目会被清理。 在启动时,以及世界卸载后大约十秒,那些既未加载、磁盘上也不存在的世界条目会被移除,以免文件无限增长。