跳到主要内容

BTC Sky

空岛玩法:维度、合作、研究、赛季、事件、生成器、银行和限制。

私有v0.1.1世界与建造
依赖TypeWriter0.9.0-beta-177 (BTC build)BTC Core (Advanced Slime Paper)Region extensionEntity extensionRoadNetwork extensionBTCMobsProfiles extensionGUI extensionMySql extension可选UiCore可选PacketEvents可选MiniPlaceholders可选

专为 BornToCraft 服务器网络打造。此扩展仅作参考文档,不对外分发。

概述​

BTC Sky 是 TypeWriter 的 BTC 构建版中的空岛引擎。每个玩家档案拥有一座岛屿。岛屿由一个或多个维度(主世界、下界、末地,或你设计的任意自定义世界)组成,每个维度都从一个模板世界克隆而来,并由一个 Dimension Template 配置。每个维度都有自己的大小、升级、限制、生成器、赛季、事件和战斗设置。

玩家通过购买区块、升级和生成器层级、研究新技术、填满收藏、承接合约,以及访问或攻打其他岛屿来发展自己的岛屿。一切都在网页面板中配置:一个 BTC Sky Main Configuration 保存全局规则,每个维度一个模板保存玩法设定,而 BTC Sky Menu 用于构建控制面板。

BTC Sky 是一个私有扩展。它运行于 BTC Core(搭载 Advanced Slime Paper 的 Paper 或 Folia),此处的文档仅供参考。其他 BTC 扩展依赖它:Machine 使用它的岛屿来进行放置、限制和研究层级,FakeBlock 则可以把结构图(schematic)锚定到它的维度上。

功能​

  • 与档案绑定的岛屿 — 每个档案一座岛屿,由维度模板创建,并由合作档案的所有者共享。
  • 多个维度 — 每座岛屿可以解锁并设计任意多个维度,每个维度都有各自的成长进程。
  • 区块扩张 — 从单个区块开始并购买更多区块,带有可配置的费用曲线、自定义区块,以及带粒子和世界边界的实时预览。
  • 角色和设置 — 访客、成员、协管员、管理员和领袖角色,按维度的权限,以及岛屿标志(PvP、飞行、怪物生成、爆炸、访客规则)。
  • 研究树 — 通过投入碎片、装入燃料并等待烹制时间来解锁的分支和节点。
  • 赛季和事件 — 按维度的赛季,以及可组合的事件(流星雨、风暴、怪物浪潮、首领、宝藏雨)。
  • 生成器和升级 — 分层的圆石生成器,以及数据驱动的升级目录。
  • 限制 — 方块、实体、机器和宠物的限制,以及每个维度的怪物数量预算。
  • 岛屿银行和合约 — 兼作服务器经济的银行,以及在合约台(Contracts Table)进行的玩家之间的合约。
  • 收藏、排名、战争 — 带有等级奖励的全局收藏、等级排行榜和岛屿战争队列。
  • TypeWriter 钩子 — 38 个 fact、33 个事件、分组、一个目标以及许多动作,用于围绕岛屿构建任务。

安装​

  1. 安装带有 BTC Core 的 TypeWriter BTC 构建版。岛屿世界使用 Advanced Slime Paper 创建,因此服务器必须提供它。
  2. 安装 BTC Sky 声明为必需的扩展:Region、Entity、RoadNetwork 和 BTCMobs。实际上它还需要 Profiles 扩展(每座岛屿以档案 id 为键)和 GUI 扩展(菜单)。
  3. 可选扩展:MySql(服务器之间共享存储)、UiCore(高级菜单和横幅)、Party、Friend 和 Guild(社交关联)、NumericalStorage(货币)、CraftEngine(自定义方块)、CustomBiome(自定义生物群系),以及用于客户端边界和全息图的 PacketEvents。占位符需要 MiniPlaceholders。
  4. 将 BTC Sky 的 JAR 放入 plugins/Typewriter/extensions/,然后重启服务器。
  5. 为每个维度创建一个模板世界,并将其放入服务器的 slime_worlds 文件夹中,名称与你将设置给 templateWorldName 的名称一致。

工作原理​

实例​

**实例(instance)**是某个游戏对象在某座岛屿的某个维度内的一份放置副本。BTC Sky 有两种实例条目。BTC Sky Instance 会在给定的维度(targetDimension)中、相对于该维度出生点偏移 spawnOffset 的位置生成一个实体(NPC 或 BetterModel 模型),并可带有用于寻路的道路网络。Island NPC Instance 是 NPC 的变体,其位置按岛屿维度存储,因此每座岛屿都有自己的副本,所有者可以用 Move Island NPC 动作移动它。

维度模板​

Dimension Template 是一个维度的蓝图。将它添加到主配置的 dimensionTemplates 列表中。它定义:

分组字段控制的内容
标识dimensionId, displayName, priority, description, icon, menuSlots维度如何命名并在菜单中显示。
世界templateWorldName, defaultBiome, allowedBiomes, spawn为每座岛屿克隆的世界、玩家可选择的生物群系组,以及出生角点。
访问unlock是否默认解锁、主要维度、费用、所需的岛屿等级、权限、解锁时触发的动作。
大小expansion以每边区块数计的初始和最大大小、费用曲线、自定义区块、预览材质。
限制limits方块、实体、机器和宠物的限制,以及传送点(warp)限制。
数量spawner, mobLevelAtCenter, mobLevelAtEdge怪物的生成速率、距离和上限,以及从中心到边缘的怪物等级。
经济blockValues, generator, multipliers每种方块的岛屿等级价值、生成器层级、作物、掉落物、刷怪笼和经验倍率。
人员rolePermissions, overrideGlobalFlags, enabledFlags每个角色在此维度中可以做什么。
时间seasons, events季节主题和随机的岛屿事件。
成长upgrades此维度的升级目录。
战斗和水晶combat, crystal, crystalOffset, crystalMovable战争设置以及该维度的稳定水晶。

稳定水晶有三种状态(crystal):ACTIVE 会打开该维度的控制室(及其机器仪表盘),DECORATIVE 是拒绝交互的装饰物,ABSENT 则禁止放置它。

岛屿​

岛屿属于一个档案:它的 id 就是档案 id。它保存其维度、设置、成员、升级、银行余额、统计数据、研究进度、收藏、传送点、全息图、评分和封禁。岛屿保存在 Player Sky Data Artifact 中,你需要在主配置的 playerSkyDataArtifact 字段中引用它。

岛屿通过 Create Island 动作从模板创建。默认情况下没有任何东西会自动创建它:设置 autoProvisionIslandOnProfileCreation 可在档案创建后立即创建并进入主岛屿,或保持关闭,让教程或菜单稍后再解锁岛屿。

岛屿等级由扫描器根据每个维度的 blockValues 计算。堆叠的方块会计入等级,但只占用单个方块的空间。

成员、角色和合作​

角色含义
VISITOR任何不是成员的人。
MEMBER拥有基础权限的所有者的好友。
MODERATOR可以邀请和踢出。
ADMIN除解散之外的完全管理权限。
LEADER所有者。

所有者为好友(members)分配角色。高级别的角色只是一个权限等级:它不会让好友成为共同所有者,也不会共享成长进度。每个角色可以做什么(BUILD、BREAK、CHEST_ACCESS、INVITE、KICK、BAN、SET_WARP、SET_HOME、SET_BIOME、MANAGE_FLAGS、MANAGE_UPGRADES、TRANSFER、DISBAND…)是按维度在模板的 rolePermissions 中设置的。

**合作(coop)**则不同:合作岛屿有多位所有者,他们共享岛屿的成长进度(研究、收藏、等级)。合作需要 Profiles 扩展中的 Coop 档案。所有者或岛屿管理员通过 Invite Coop Partner 动作邀请玩家。邀请会在 60 秒后过期,可通过 Accept Invite 接受,或通过 Decline Invite 拒绝。Coop Countable Objective 在合作岛屿上会把目标翻倍。

岛屿设置(标志)按岛屿切换:IS_OPEN、ALLOW_FLY、IS_PVP_ENABLED、IS_MOB_SPAWNING_ENABLED、IS_EXPLOSIONS_ENABLED、IS_FIRE_SPREAD_ENABLED、VISITOR_ITEM_PICKUP、VISITOR_ITEM_DROP、VISITOR_DOOR_USE、VISITOR_CONTAINER_ACCESS、VISITOR_ANIMAL_INTERACT、BORDER_VISIBLE 和 WORLD_BORDER。

升级、生成器和限制​

每个维度会列出其 upgrades。升级有若干等级,每级带有 cost、effectValue 以及购买时可选的动作。它的 effectType 决定其作用:作物生长、怪物掉落物或刷怪笼速率的倍率、药水和岛屿效果、方块和实体限制的提升、队伍规模、传送点限制、生成器层级、岛屿飞行、事件频率和战利品、事件解锁,或通过动作实现的自定义效果。如果你不改动 upgrades,就会使用内置的默认目录。

圆石生成器有若干层级(generator.tiers),每个层级带有一个 cost 和一份 rates 列表(原版方块或 CraftEngine 方块 id,加上百分比)。让 tiers 留空,就会使用主世界、下界和末地的内置默认值。

限制仅来自模板:未列出的方块或实体类型没有限制。每个限制都有一个基础值,并且可以升级(upgradeCost、upgradeIncrease)。机器和宠物的限制在安装了这些扩展时生效。spawner 方块增加了怪物数量预算(maxNearbyMobs、maxPerChunk、各模板的上限),使得某个刷怪农场不会阻止其他所有生成。安装 UiCore 后,当某个上限拒绝了一次生成时,玩家会看到一个横幅。

研究​

研究树是在主配置的 research 部分中定义的,而不是在单独的条目中:

  • 分支(research.branches)是带有等级曲线的类别:每级所需的经验、授予的点数,以及升级时运行的动作。
  • 节点(research.nodes)属于某个分支,位于 x/y 位置,并列出它们的 parents、powerCost、requiredLevel、criteria、fuels、output、successChance、重复设置和奖励。
  • 碎片(research.fragments)是提供能量的物品。

节点的研究是分步骤进行的。玩家把碎片放入节点以填满其能量,装入一件燃料物品,节点会烹制燃料所对应的时长,然后玩家领取结果。成功时会运行 rewards(每个都有自己的概率),并解锁 recipes 中列出的配方;失败时则运行 failRewards。研究属于岛屿,因此所有所有者共享它,并且配方会在玩家加入时返还给每位玩家。其他扩展会读取已解锁的节点:例如 Machine 的层级就指定了一个研究节点。

Research Branch 和 Research Node manifest 条目虽然存在,但研究运行时读取的是主配置,所以请在那里定义你的树。使用 Research Grant Points、Research Grant XP、Unlock Research 和 Open Research Menu 动作,将它与你的任务连接起来。

赛季​

赛季按维度在 seasons 中配置,默认关闭(enabled)。有两种计时模式:

  • FIXED_DURATION — 每个赛季持续 fixedDurationHours 的真实时间(默认 168,即一周)。
  • CALENDAR_LINKED — 将 TinyEssentials 日历的一年(calendar、startMonth)在各个赛季之间平均分配。

每个赛季定义(definitions,默认包含春、夏、秋、冬)都可以覆盖生物群系,设置天气模式(CLEAR、RAIN、THUNDER、SNOW),对作物生长、怪物生成、怪物掉落物和经验设置倍率,显示粒子,并在赛季开始和结束时触发动作。Season Change 事件会报告每一次变化。

事件​

岛屿事件是一个可组合的外壳:Island Event 描述了它何时可以运行(chancePerCheck、weight、cooldownMinutes、minimumPlayers、conditions、requiredUpgradeId、允许和被阻止的维度),并列出它所播放的机制(mechanics)(mechanics)。把某个维度可以使用的事件添加到其模板的 events.events 中;minIntervalMinutes 和 maxIntervalMinutes 用来设定检查的间隔。

机制是你可以组合的单独条目:Meteor Shower、Treasure Rain、Mob Wave、Storm、Eclipse、Boss、Event Ambience(粒子和声音)、Event Flag、Event Trigger(动作)、Temporary Multiplier(经验或掉落物)、Temporary Client Block、Coop Buff 和 BetterModel Impact。它们列在下面的条目索引中。

经济、合约和收藏​

岛屿银行保存岛屿的资金。在没有经济插件的服务器上,银行会被发布为服务器经济,因此玩家的资金就是其岛屿的资金。使用 Island Bank Deposit 和 Island Bank Withdraw 动作进行存取。模板中的费用使用货币引用(currency),指向某个货币条目,例如 NumericalStorage 的货币条目。

合约是玩家之间的协议,在合约台承接。默认情况下(contractsRequireWorkstation),菜单只能从该台面方块(contractsTableBlock,默认为制图台)打开。奖励会按 contracts.rewardTaxPercent 征税。

收藏按物品追踪岛屿所收获、击杀和钓到的内容,并带有等级阈值(collections.categories)。每个等级可以运行一次动作(onReach)。玩家也可以通过 Unlock Collection 动作解锁或锁定某个收藏。

战争​

当模板上设置了 combat.enabled 时,该维度的岛屿可以参加战争。岛屿以攻击方或防守方的身份(从控制面板中)加入战争队列,并与以相反身份排队的岛屿匹配。岛屿必须达到 combatWar.minIslandLevel,并且 combatWar.warCooldownMinutes 会在两场战争之间留出间隔。战斗本身由模板设定:核心生命值和再生(coreHealth、coreRegeneration)、durationMinutes、attackCooldownHours、出生点,以及开始、胜利和失败时的动作。胜利者可以掠夺失败者银行的一部分(combatWar.pillagePercent)。胜、负和平局都会记录在岛屿统计数据中。

群岛(Archipel)​

Archipel des Métiers 是一个共享的只读世界(列在 readOnlyWorlds 中),其中有九座小岛,由岛屿来修复:访问权限、桥梁和层级都存储在岛屿上,并以 archipel_* 的 fact 和动作的形式提供。

快速上手​

创建带有一个维度的第一座岛屿,并让玩家打开控制面板:

  1. 在 TypeWriter 网页面板中,打开一个 static 页面,添加一个 Player Sky Data Artifact。
  2. 添加一个 Dimension Template。将 dimensionId 设为 overworld,templateWorldName 设为你的模板世界的名称,并保持 unlock.isPrimary 开启。调整 expansion(initialSizeChunks、maxSizeChunks、baseCost)。
  3. 添加一个 BTC Sky Main Configuration。将模板放入 dimensionTemplates,将 artifact 放入 playerSkyDataArtifact。
  4. 添加一个 id 为 control_panel 的 BTC Sky Menu(合约台会打开这个条目),构建其 layoutPool 和 views,并添加一个 BTC Sky Menu Configuration,其中包含动态列表的模板。
  5. 添加一个 Create Island 动作,将 template 设为你的模板,并把它连接到某个按钮、命令或教程步骤。
  6. 发布。创建一个档案并触发该动作,岛屿就会连同它的模板世界一起出现。
  7. 在管理员账号上用 /typewriter island admin search <name> 测试管理流程。
备注

BTC Sky 将其命令注册在 TypeWriter 命令之下。扩展并没有定义顶层的 /island:请使用一个触发 BTC Sky Menu 的命令条目来创建它(参见“命令”)。

命令​

岛屿命令以 @TypewriterCommand 的形式注册,因此位于 /typewriter(别名 /tw)之下。菜单会为玩家运行它们,这也是它们中的大多数属于内部命令的原因。

岛屿命令​

命令说明
/typewriter island打开控制面板。
/typewriter island visit <islandId>传送到一座开放的岛屿,除非你被封禁。
/typewriter island invite [player]打开邀请对话框,或邀请一位在线玩家作为合作伙伴。
/typewriter island dimension tp <dimId>传送到你岛屿的某个维度。
/typewriter island dimension buy <dimId>解锁你岛屿的某个维度。

控制面板还会运行这些内部命令:标签页和维度导航(dim_select、list_scroll、cp、close),扩张(expansion_map、expansion_nav、buy_chunk),等级(recalculate_level、recalc_level),传送点(warps、warp、warp_create、warp_delete、warp_edit、warp_set_icon、warp_toggle_public),成员(members、member_manage、member_promote、member_demote、member_kick),管理(visitor_kick、visitor_ban、unban),边界(border …),全息图(holograms、create_hologram、edit_hologram),合约(contracts_browse、contract_apply、contracts_create、contract_accept、contract_reject、contract_cancel 及相关命令),升级(upgrade、upgrade_confirm、upgrade_generator),研究(research_input、research_feed、research_fuel、research_claim),战争(declare_war、combat_queue、combat_history、attack),评分(rate),生物群系(biomes、set_biome、set_chunk_biome),设置(toggle_setting、fly_toggle、fly_scope)以及排名(ranking_sort、ranking_dim)。它们并非用于手动输入。

合作邀请的聊天按钮会运行 /island coop accept 和 /island coop deny。这些子命令并未由扩展注册,因此请把 Accept Invite 和 Decline Invite 连接到你自己的命令上。

主配置的 commandAliases(默认为 island、is、islands)只是告诉菜单系统应将哪些命令词路由到岛屿命令树。它不会注册新的命令。

管理命令​

整个 admin 分支都需要 btcsky.admin(或 OP 身份)。

命令说明
/typewriter island admin search <query>按 id、所有者或成员名称查找岛屿。
/typewriter island admin create <player> <template>为一位在线玩家根据模板(按条目 id 或维度 id)创建岛屿。
/typewriter island admin delete <profileId>删除一座岛屿。
/typewriter island admin tp <player or id>传送到一座岛屿。
/typewriter island admin setlevel <profileId> <level>设置岛屿等级。
/typewriter island admin eco <islandId> get, set <amount>, add <amount>读取、设置或增加岛屿银行的余额。
/typewriter island admin collection <islandId> <collectionId> <level>设置收藏等级。
/typewriter island admin upgrade <upgradeId> <level>为你所站的岛屿,在所选维度中设置升级等级。
/typewriter island admin unlock dimension <islandId> <dimId>为某座岛屿解锁一个维度。
/typewriter island admin event <eventId>立即在你的岛屿上启动一个岛屿事件。
/typewriter island admin limit show <profileId>显示实体限制以及实际数量。
/typewriter island admin limit budget <profileId> <dimensionId> <value>设置某个维度的怪物预算(unlimited 或 -1 表示移除)。
/typewriter island admin limit species <profileId> <dimensionId> <entityType> <value>设置某一实体类型的上限。
/typewriter archipel, acces, passerelle <islet>, palier <islet>, ouvrir检查并授予群岛的访问权限、桥梁和层级(权限 btcsky.admin.archipel)。

权限​

权限授予
btcsky.admin整个 /typewriter island admin 分支。
btcsky.admin.search, .create, .delete, .tp, .setlevel, .eco, .collection, .upgrade, .dimension, .event, .limit每个管理子命令,作为更细粒度的替代方案。上级分支仍然需要 btcsky.admin 或 OP 身份。
btcsky.admin.archipel/typewriter archipel 命令。
btcsky.admin.bypass绕过岛屿保护和传送点限制,前提是玩家同时拥有管理员绕过标志。
btcsky.admin.dimensions进入尚未解锁的维度。
btcsky.warp.unlimited忽略传送点限制。
btcsky.contracts.bypass无需经过合约台即可打开合约(可配置:contractsBypassPermission)。
contracts.permissionLimits 中的权限提高可同时开放的合约数量。

BTC Sky Permission Definitions 条目以及主配置的 permissions 和 commands 部分列出了更多节点(btcsky.island.*、btcsky.vip.*、btcsky.command.*)。它们只是文档:当前的代码并不会检查它们。

占位符​

btcsky expansion 的 MiniPlaceholders 标签,通过 TypeWriter 提供。没有岛屿的玩家,除 has_island 外的每个标签都会得到 0。凡是需要维度的地方,current 表示玩家所站的维度,省略该参数时默认也是该维度。

岛屿​

占位符返回值
<btcsky_has_island>true 或 false。
<btcsky_context_state>档案与岛屿关联的状态(没有时为 NO_PROFILE)。
<btcsky_island_id>岛屿(档案)id。
<btcsky_island_owner>, <btcsky_owner_name>所有者名称。
<btcsky_island_role>玩家在岛屿上的角色。
<btcsky_island_level>, <btcsky_level>岛屿等级。
<btcsky_island_balance>, <btcsky_bank_balance>银行余额。
<btcsky_island_members_count>, <btcsky_member_count>成员数量。
<btcsky_island_members_online>在线成员数。
<btcsky_member_max>包含升级在内的队伍规模上限。
<btcsky_team_members_list>以逗号分隔的成员名称。
<btcsky_is_coop_island>合作岛屿时为 true。
<btcsky_island_creation_date>创建日期(yyyy-MM-dd HH:mm:ss)。
<btcsky_island_worth>各维度等级之和。
<btcsky_visitor_count>当前在岛屿上的访客数。
<btcsky_biome_current>玩家脚下的生物群系名称。
<btcsky_season>当前维度的赛季,在岛屿之外则为日历日期对应的赛季。
<btcsky_setting:name>某项设置的带颜色的开/关状态:visit(或 open)、fly、pvp、mobs、explosions、fire、world_border、possession_border。

<btcsky_island_exp> 始终返回 0,<btcsky_island_level_progress> 始终返回 100,<btcsky_bank_interest_rate> 始终返回 0.0:它们只是为了兼容性而存在。

大小、生物群系和数量​

占位符返回值
<btcsky_size>当前维度中已解锁的区块数。
<btcsky_island_size>所有维度中已解锁的区块数。
<btcsky_size_max>, <btcsky_max_size>当前维度的最大区块数,来自其模板。
<btcsky_island_size_max>, <btcsky_island_max_size>所有维度的最大区块数。
<btcsky_biomes_acquired>, <btcsky_island_biomes_total>所有维度中已解锁的生物群系。
<btcsky_biomes_total>所有维度中可以存在的生物群系。
<btcsky_biomes:group>当前维度中某个生物群系组已解锁的生物群系。
<btcsky_island_biomes:group>所有维度中某个生物群系组已解锁的生物群系。
<btcsky_block_count:MATERIAL>当前维度中某种方块的数量。
<btcsky_upgrade_level:id>当前维度中某个升级的等级。
<btcsky_upgrades_acquired>, <btcsky_upgrades_total>所有维度中已购买的升级和可用的升级。
<btcsky_warp_count>, <btcsky_warp_list>传送点的数量和名称。
<btcsky_warp_limit>配置中的默认传送点限制。

成长和社交​

占位符返回值
<btcsky_contract_completed_count>已完成的合约数。
<btcsky_research_unlocked_nodes>, <btcsky_research_unlocked_count>已解锁的研究节点。
<btcsky_research_points>研究点数。
<btcsky_collection_total_unlocked>已解锁的收藏。
<btcsky_collection_progress:id>某个收藏 id 已收集的数量。
<btcsky_ban_count>被封禁的玩家数。
<btcsky_rating>, <btcsky_rating_count>平均评分(1 位小数)和投票数。
<btcsky_combat_wins>, <btcsky_combat_losses>, <btcsky_combat_draws>, <btcsky_combat_winrate>战争统计以及以百分比表示的胜率。

维度​

参数是维度 id 或 current。

占位符返回值
<btcsky_dimension_id:dim>, <btcsky_dimension_display:dim>维度 id,以及首字母大写的显示名称。
<btcsky_dimension_unlocked:dim>, <btcsky_dimension_is_locked:dim>true 或 false。
<btcsky_dimension_level:dim>维度等级。
<btcsky_dimension_generator_tier:dim>生成器层级。
<btcsky_dimension_event_next:dim>距下一个事件的时间(mm:ss)、Now 或 Unknown。
<btcsky_dimension_size:dim>, <btcsky_dimension_size_max:dim>已解锁的区块数和最大区块数。
<btcsky_dimension_biomes_total:dim>已解锁的生物群系。
<btcsky_dimension_upgrades_acquired:dim>, <btcsky_dimension_upgrades_total:dim>已购买和可用的升级。
<btcsky_dimension_visitor_count:dim>该维度中的访客数。
<btcsky_dimension_upgrade_level:dim:id>该维度中某个升级的等级。
<btcsky_dimension_biomes:dim:group>该维度中某个组已解锁的生物群系。
<btcsky_block_limit:dim:MATERIAL>该维度中的方块限制。
<btcsky_dimension_lock_mark:dim>维度被锁定时为 [X] ,开放时为空。
<btcsky_dimension_locked_palette:dim>锁定或开放维度对应的调色板名称,用于菜单按钮。

菜单​

控制面板是一个带有多个视图的单一菜单。

  • BTC Sky Menu 保存 layoutPool、views(每个界面一个)、defaultViewId 和 inventoryRows。标签页槽位带有标签 view:<viewId>;内容可变的框架使用布局 id @view。视图通过 <viewId> 或 <viewId>:<argument> 打开(例如 collection_detail:mining)。
  • 内容物品使用 btcsky_button:TYPE 形式的 buttonType。扩展会填入实时数据(岛屿信息、维度、升级、收藏、排名、传送点、合约、成员、封禁、研究、扩张区块、边界、战斗、全息图…),并附加点击行为。
  • BTC Sky Menu Configuration 保存动态列表的物品模板。
  • Open Specific Menu 会打开指定的视图,Open Friends Menu 则会打开好友界面。

当从全局菜单打开时,面板是一个目录(你只能浏览,不能购买任何东西)。从稳定水晶打开时,它会成为该维度的控制室,此时允许购买升级和区块;否则购买命令会拒绝执行。

安装 UiCore 后,BTC Sky 还会向 UiCore 菜单发布列表(升级、扩张地图、访问、收藏、排名、成员和边界),并在人口上限拒绝某次生成时显示横幅。

条目​

161 个条目,由扩展源码生成。

动作61
事件33
目标1
事实38
实体1
活动1
组2
构件1
清单20
定义1
其他条目2

故障排查​

岛屿世界没有被创建。 每个维度都会从 slime_worlds 文件夹中克隆 templateWorldName 里指定的世界。该文件必须存在,并且 BTC Core 必须提供 Advanced Slime Paper。请在服务器日志中查看维度 id 和岛屿 id。

玩家在创建档案之后没有岛屿。 autoProvisionIslandOnProfileCreation 默认关闭。请触发一个 Create Island 动作,或开启该选项。

/island 不存在。 扩展只注册了 /typewriter island。请创建你自己的命令来触发 BTC Sky Menu,并注意合约台所打开的菜单条目的 id 必须是 control_panel。

合约无法打开。 开启 contractsRequireWorkstation 时,合约只能从合约台打开(contractsTableEnabled 和 contractsTableBlock)。在测试服务器上请将其关闭,或授予绕过权限。

所有占位符都返回 0。 玩家没有岛屿或没有活动档案。请检查 <btcsky_has_island> 和 <btcsky_context_state>。维度参数必须是有效的维度 id 或 current。

我的研究树没有出现。 研究运行时读取的是主配置的 research.branches 和 research.nodes。Research Branch 和 Research Node 条目不会被读取。

赛季或事件始终不开始。 赛季默认被禁用(seasons.enabled)。事件需要在模板的 events.events 中至少有一个事件,并且只有当事件的 conditions、requiredUpgradeId 和 minimumPlayers 匹配时才会触发。

岛屿上没有任何怪物生成。 请检查 spawner.enabled、maxNearbyMobs 和 maxPerChunk,以及岛屿标志 IS_MOB_SPAWNING_ENABLED。使用 /typewriter island admin limit show <profileId> 将计数器与怪物的真实数量进行比较。

玩家无法在共享世界中建造。 列在 readOnlyWorlds 中的世界(默认 archipel_metiers)对所有人都受到保护,只有 machine.protection.bypass 的持有者除外。

相关扩展​

  • Machine — 放置在岛屿上的机器,带有岛屿限制和研究层级。
  • FakeBlock — 锚定在岛屿维度上的结构图。