Перейти к основному содержимому

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 — движок скайблока в сборке BTC TypeWriter. Каждый профиль игрока владеет одним островом. Остров состоит из одного или нескольких измерений (Верхний мир, Незер, Энд или любой пользовательский мир, который вы создадите), каждое из которых клонируется из шаблонного мира и настраивается через Dimension Template. У каждого измерения свои размер, улучшения, лимиты, генератор, сезоны, события и боевые настройки.

Игроки развивают остров, покупая чанки, улучшения и уровни генератора, исследуя новые технологии, заполняя коллекции, беря контракты и посещая чужие острова или сражаясь с ними. Всё настраивается из веб-панели: одна BTC Sky Main Configuration содержит глобальные правила, по одному шаблону на измерение — игровой процесс, а BTC Sky Menu создаёт панель управления.

BTC Sky — закрытое расширение. Оно работает на BTC Core (Paper или Folia с Advanced Slime Paper) и документировано здесь для справки. От него зависят другие расширения BTC: Machine использует его острова для размещения, лимитов и уровней исследований, а FakeBlock может привязывать схематики к его измерениям.

Возможности​

  • Острова, привязанные к профилям — один остров на профиль, создаваемый из шаблона измерения, общий для владельцев кооп-профиля.
  • Несколько измерений — открывайте и создавайте сколько угодно измерений на остров, у каждого своя прогрессия.
  • Расширение по чанкам — начните с одного чанка и покупайте новые с настраиваемой кривой стоимости, пользовательскими чанками и живым предпросмотром с границами из частиц и мировыми границами.
  • Роли и настройки — роли посетителя, участника, модератора, администратора и лидера, права для каждого измерения и флаги острова (PvP, полёт, появление мобов, взрывы, правила для посетителей).
  • Дерево исследований — ветви и узлы, открываемые подачей фрагментов, загрузкой топлива и ожиданием времени варки.
  • Сезоны и события — сезоны для каждого измерения и составные события (метеоритные дожди, бури, волны мобов, боссы, дождь сокровищ).
  • Генераторы и улучшения — многоуровневые генераторы булыжника и управляемый данными каталог улучшений.
  • Лимиты — лимиты блоков, сущностей, машин и питомцев, а также бюджет популяции мобов для каждого измерения.
  • Банк острова и контракты — банк, служащий серверной экономикой, и контракты между игроками за столом контрактов.
  • Коллекции, рейтинг, война — глобальные коллекции с наградами за уровни, таблица лидеров по уровню и очередь войн островов.
  • Хуки для TypeWriter — 38 фактов, 33 события, группы, цель и множество действий для построения квестов вокруг островов.

Установка​

  1. Установите сборку BTC TypeWriter с BTC Core. Миры островов создаются с помощью 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. Положите JAR-файл BTC Sky в plugins/Typewriter/extensions/ и перезапустите сервер.
  5. Создайте по одному шаблонному миру на измерение и поместите его в папку slime_worlds сервера под именем, которое вы укажете в templateWorldName.

Как это работает​

Экземпляр​

Экземпляр (instance) — это размещённая копия игрового объекта внутри одного измерения одного острова. В BTC Sky два вида записей экземпляров. BTC Sky Instance создаёт сущность (NPC или модель BetterModel) в заданном измерении (targetDimension) со смещением от точки появления измерения (spawnOffset) и необязательной сетью дорог для поиска пути. Island NPC Instance — вариант NPC, чья позиция хранится для каждого измерения острова, поэтому у каждого острова своя копия, которую владелец может перемещать действием Move Island NPC.

Шаблоны измерений​

Dimension Template — это чертёж одного измерения. Добавьте его в список dimensionTemplates основной конфигурации. Он определяет:

ГруппаПоляЧем управляет
ИдентификацияdimensionId, displayName, priority, description, icon, menuSlotsКак измерение называется и отображается в меню.
МирtemplateWorldName, defaultBiome, allowedBiomes, spawnМир, клонируемый для каждого острова, группы биомов, из которых игрок может выбирать, и угол появления.
ДоступunlockОткрыто ли по умолчанию, основное ли измерение, стоимость, требуемый уровень острова, право, действия при открытии.
РазмерexpansionНачальный и максимальный размер в чанках на сторону, кривая стоимости, пользовательские чанки, материалы предпросмотра.
ЛимитыlimitsЛимиты блоков, сущностей, машин и питомцев, а также лимит варпов.
Популяция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 шаблона.

Кооп — это другое: у кооп-острова несколько владельцев, и они делят прогрессию острова (исследования, коллекции, уровень). Для коопа нужен кооп-профиль в расширении Profiles. Владелец или администратор острова приглашает игрока действием 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 (ванильный блок или id блока CraftEngine с процентом). Оставьте 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 называют узел исследования.

Записи manifest Research Branch и Research Node существуют, но среда выполнения исследований читает основную конфигурацию, поэтому определяйте дерево там. Используйте действия 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). Добавляйте события, которые может использовать измерение, в 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_*.

Быстрый старт​

Создадим первый остров с одним измерением и позволим игрокам открывать панель управления:

  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, а артефакт — в playerSkyDataArtifact.
  4. Добавьте BTC Sky Menu с id control_panel (эту запись открывает стол контрактов), постройте его 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 (или статуса оператора).

КомандаОписание
/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Просмотр и выдача доступа, мостов и уровней Archipel (право btcsky.admin.archipel).

Права​

ПравоДаёт доступ к
btcsky.adminВсей ветке /typewriter island admin.
btcsky.admin.search, .create, .delete, .tp, .setlevel, .eco, .collection, .upgrade, .dimension, .event, .limitКаждой административной подкоманде как более детальной альтернативе. Родительская ветка по-прежнему требует btcsky.admin или статуса оператора.
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.*). Это документация: текущий код их не проверяет.

Плейсхолдеры​

Теги MiniPlaceholders расширения btcsky, предоставляемые через TypeWriter. Игрок без острова получает 0 для каждого тега, кроме has_island. Везде, где ожидается измерение, 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).
  • Предметы содержимого используют buttonType вида btcsky_button:TYPE. Расширение подставляет живые данные (информация об острове, измерения, улучшения, коллекции, рейтинг, варпы, контракты, участники, баны, исследования, чанки расширения, границы, бой, голограммы…) и привязывает клики.
  • 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

Устранение неполадок​

Мир острова не создаётся. Каждое измерение клонирует мир с именем из templateWorldName из папки slime_worlds. Файл должен существовать, а 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 — схематики, привязанные к измерениям островов.