Pular para o conteúdo principal

BTC Sky

Ilhas de skyblock com dimensões, coop, pesquisa, temporadas, eventos, geradores, banco e limites.

Privadasv0.1.1Mundo e construção
RequerTypeWriter0.9.0-beta-177 (BTC build)BTC Core (Advanced Slime Paper)Region extensionEntity extensionRoadNetwork extensionBTCMobsProfiles extensionGUI extensionMySql extensionopcionalUiCoreopcionalPacketEventsopcionalMiniPlaceholdersopcional

Criada para a rede BornToCraft. Esta extensão é documentada como referência e não é distribuída.

Visão geral​

O BTC Sky é o motor de skyblock da build BTC do TypeWriter. Cada perfil de jogador possui uma ilha. A ilha é composta por uma ou mais dimensões (Overworld, Nether, End ou qualquer mundo personalizado que você criar), cada uma clonada de um mundo modelo e configurada por um Dimension Template. Cada dimensão tem seu próprio tamanho, upgrades, limites, gerador, temporadas, eventos e configurações de combate.

Os jogadores fazem sua ilha crescer comprando chunks, upgrades e tiers de gerador, pesquisando novas tecnologias, completando coleções, aceitando contratos e visitando ou lutando contra outras ilhas. Tudo é configurado pelo painel web: uma BTC Sky Main Configuration guarda as regras globais, um template por dimensão guarda a jogabilidade e um BTC Sky Menu constrói o painel de controle.

O BTC Sky é uma extensão privada. Ela roda no BTC Core (Paper ou Folia com Advanced Slime Paper) e é documentada aqui como referência. Outras extensões da BTC dependem dela: o Machine usa suas ilhas para posicionamento, limites e tiers de pesquisa, e o FakeBlock pode ancorar schematics às suas dimensões.

Recursos​

  • Ilhas vinculadas a perfis — uma ilha por perfil, criada a partir de um template de dimensão, compartilhada pelos donos de um perfil coop.
  • Várias dimensões — desbloqueie e projete quantas dimensões quiser por ilha, cada uma com sua própria progressão.
  • Expansão por chunks — comece com um único chunk e compre mais, com uma curva de custo configurável, chunks personalizados e uma prévia ao vivo com partículas e bordas do mundo.
  • Cargos e configurações — cargos de visitante, membro, moderador, admin e líder, permissões por dimensão e flags da ilha (PvP, voo, spawn de mobs, explosões, regras de visitantes).
  • Árvore de pesquisa — ramos e nós desbloqueados alimentando fragmentos, carregando combustível e esperando um tempo de cozimento.
  • Temporadas e eventos — temporadas por dimensão e eventos combináveis (chuvas de meteoros, tempestades, ondas de mobs, bosses, chuva de tesouros).
  • Geradores e upgrades — geradores de pedra em tiers e um catálogo de upgrades orientado por dados.
  • Limites — limites de blocos, entidades, máquinas e pets, além de um orçamento de população de mobs por dimensão.
  • Banco da ilha e contratos — um banco que serve também de economia do servidor e contratos entre jogadores em uma Contracts Table.
  • Coleções, ranking, guerra — coleções globais com recompensas por nível, um ranking de níveis e uma fila de guerra entre ilhas.
  • Ganchos para o TypeWriter — 38 facts, 33 eventos, grupos, um objective e muitas actions para construir quests em torno das ilhas.

Instalação​

  1. Instale a build BTC do TypeWriter com o BTC Core. Os mundos das ilhas são criados com o Advanced Slime Paper, então o servidor precisa fornecê-lo.
  2. Instale as extensões que o BTC Sky declara como obrigatórias: Region, Entity, RoadNetwork e BTCMobs. Na prática, ele também precisa da extensão Profiles (cada ilha é identificada por um id de perfil) e da extensão GUI (menus).
  3. Extensões opcionais: MySql (armazenamento compartilhado entre servidores), UiCore (menus avançados e banners), Party, Friend e Guild para vínculos sociais, NumericalStorage para moedas, CraftEngine para blocos personalizados, CustomBiome para biomas personalizados e PacketEvents para bordas e hologramas do lado do cliente. O MiniPlaceholders é necessário para os placeholders.
  4. Coloque o JAR do BTC Sky em plugins/Typewriter/extensions/ e reinicie o servidor.
  5. Crie um mundo modelo por dimensão e coloque-o na pasta slime_worlds do servidor, com o nome que você dará a templateWorldName.

Como funciona​

A instance​

Uma instance é uma cópia colocada de um objeto do jogo dentro de uma dimensão de uma ilha. O BTC Sky tem dois tipos de entries de instance. Uma BTC Sky Instance invoca uma entidade (um NPC ou um modelo do BetterModel) em uma dimensão dada (targetDimension) a um deslocamento do ponto de spawn da dimensão (spawnOffset), com uma road network opcional para pathfinding. Uma Island NPC Instance é a variante de NPC cuja posição é armazenada por dimensão da ilha, de modo que cada ilha tem sua própria cópia, que o dono pode mover com a action Move Island NPC.

Templates de dimensão​

Um Dimension Template é o projeto de uma dimensão. Adicione-o à lista dimensionTemplates da configuração principal. Ele define:

GrupoCamposO que controla
IdentidadedimensionId, displayName, priority, description, icon, menuSlotsComo a dimensão é nomeada e exibida nos menus.
MundotemplateWorldName, defaultBiome, allowedBiomes, spawnO mundo clonado para cada ilha, os grupos de biomas entre os quais o jogador pode escolher e o canto de spawn.
AcessounlockDesbloqueada por padrão ou não, dimensão primária, custo, nível de ilha exigido, permissão, actions disparadas ao desbloquear.
TamanhoexpansionTamanho inicial e máximo em chunks por lado, curva de custo, chunks personalizados, materiais da prévia.
LimiteslimitsLimites de blocos, entidades, máquinas e pets, e o limite de warps.
Populaçãospawner, mobLevelAtCenter, mobLevelAtEdgeTaxa de spawn de mobs, distâncias e tetos, e nível dos mobs do centro até a borda.
EconomiablockValues, generator, multipliersValor de nível de ilha de cada bloco, tiers de gerador, multiplicadores de plantações, drops, spawners e XP.
PessoasrolePermissions, overrideGlobalFlags, enabledFlagsO que cada cargo pode fazer nesta dimensão.
Temposeasons, eventsTemas sazonais e eventos aleatórios da ilha.
ProgressãoupgradesO catálogo de upgrades desta dimensão.
Combate e cristalcombat, crystal, crystalOffset, crystalMovableConfigurações de guerra e o cristal de estabilização da dimensão.

O cristal de estabilização tem três estados (crystal): ACTIVE abre a sala de controle da dimensão (e seu painel de máquinas), DECORATIVE é cenário que recusa interação, ABSENT proíbe colocar um.

Ilhas​

Uma ilha pertence a um perfil: seu id é o id do perfil. Ela guarda suas dimensões, configurações, membros, upgrades, saldo do banco, estatísticas, progresso de pesquisa, coleções, warps, hologramas, avaliações e banimentos. As ilhas são salvas no Player Sky Data Artifact, que você referencia no campo playerSkyDataArtifact da configuração principal.

Uma ilha é criada a partir de um template com a action Create Island. Por padrão, nada a cria automaticamente: defina autoProvisionIslandOnProfileCreation para criar e entrar na ilha primária logo após a criação de um perfil, ou mantenha-o desativado para que um tutorial ou um menu desbloqueie a ilha mais tarde.

Os níveis das ilhas são calculados por um scanner a partir dos blockValues de cada dimensão. Blocos empilhados contam no nível, mas ocupam o espaço de um único bloco.

Membros, cargos e coop​

CargoSignificado
VISITORQualquer pessoa que não seja membro.
MEMBERUm amigo do dono com acesso básico.
MODERATORPode convidar e expulsar.
ADMINGerenciamento completo, exceto dissolver.
LEADERO dono.

O dono atribui cargos aos amigos (members). Um cargo alto é um nível de permissão: ele não torna o amigo um co-dono e não compartilha a progressão. O que cada cargo pode fazer (BUILD, BREAK, CHEST_ACCESS, INVITE, KICK, BAN, SET_WARP, SET_HOME, SET_BIOME, MANAGE_FLAGS, MANAGE_UPGRADES, TRANSFER, DISBAND…) é definido por dimensão em rolePermissions do template.

O coop é diferente: uma ilha coop tem vários donos, e eles compartilham a progressão da ilha (pesquisa, coleções, nível). O coop precisa de um perfil Coop na extensão Profiles. Um dono ou um admin da ilha convida um jogador com a action Invite Coop Partner. O convite expira após 60 segundos e é aceito com Accept Invite ou recusado com Decline Invite. O Coop Countable Objective dobra sua meta em ilhas coop.

As configurações da ilha (flags) são alternadas por ilha: 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 e WORLD_BORDER.

Upgrades, geradores e limites​

Cada dimensão lista seus upgrades. Um upgrade tem níveis com um cost, um effectValue e actions opcionais na compra. Seu effectType decide o que ele faz: multiplicadores de crescimento de plantações, de drops de mobs ou de taxa de spawners, efeitos de poção e de ilha, aumentos de limites de blocos e entidades, tamanho da equipe, limite de warps, tier de gerador, voo na ilha, frequência e loot de eventos, desbloqueios de eventos ou um efeito personalizado por meio de actions. Se você deixar upgrades intocado, o catálogo padrão interno é usado.

O gerador de pedra tem tiers (generator.tiers), cada um com um cost e uma lista de rates (um bloco vanilla ou um id de bloco do CraftEngine, com uma porcentagem). Deixe tiers vazio para usar os padrões internos do overworld, do nether e do end.

Os limites vêm apenas do template: um tipo de bloco ou entidade que não está listado é ilimitado. Cada limite tem um valor base e pode ser aprimorável (upgradeCost, upgradeIncrease). Os limites de máquinas e pets se aplicam quando essas extensões estão instaladas. O bloco spawner adiciona um orçamento de população de mobs (maxNearbyMobs, maxPerChunk, tetos por template) para que uma farm não impeça todos os outros spawns. Quando o UiCore está instalado, os jogadores veem um banner quando um teto recusa um spawn.

Pesquisa​

A árvore de pesquisa é definida na seção research da configuração principal, não em entries separadas:

  • Os ramos (research.branches) são categorias com uma curva de níveis: o XP necessário por nível, os pontos concedidos e as actions executadas ao subir de nível.
  • Os nós (research.nodes) pertencem a um ramo, ficam em uma posição x/y e listam seus parents, powerCost, requiredLevel, criteria, fuels, output, successChance, configurações de repetição e recompensas.
  • Os fragmentos (research.fragments) são itens que dão poder.

Um nó é pesquisado em etapas. O jogador coloca fragmentos no nó para preencher seu poder, carrega um item de combustível, o nó cozinha pela duração do combustível e depois o jogador resgata o resultado. Em caso de sucesso, as rewards são executadas (cada uma com sua própria chance) e as receitas listadas em recipes são desbloqueadas; em caso de falha, as failRewards são executadas. A pesquisa pertence à ilha, então todos os donos a compartilham, e as receitas são devolvidas a cada jogador ao entrar. Outras extensões leem os nós desbloqueados: por exemplo, os tiers do Machine indicam um nó de pesquisa.

As entries de manifest Research Branch e Research Node existem, mas o runtime de pesquisa lê a configuração principal, então defina sua árvore lá. Use as actions Research Grant Points, Research Grant XP, Unlock Research e Open Research Menu para conectá-la às suas quests.

Temporadas​

As temporadas são configuradas por dimensão em seasons e vêm desativadas por padrão (enabled). Existem dois modos de temporização:

  • FIXED_DURATION — cada temporada dura fixedDurationHours de tempo real (168 por padrão, uma semana).
  • CALENDAR_LINKED — o ano de um calendário do TinyEssentials (calendar, startMonth) é dividido igualmente entre as temporadas.

Cada definição de temporada (definitions, com primavera, verão, outono e inverno por padrão) pode sobrescrever o bioma, definir um padrão de clima (CLEAR, RAIN, THUNDER, SNOW), multiplicar o crescimento de plantações, os spawns de mobs, os drops de mobs e o XP, exibir partículas e disparar actions em seu início e fim. O evento Season Change informa cada mudança.

Eventos​

Um evento de ilha é um invólucro combinável: o Island Event descreve quando ele pode ocorrer (chancePerCheck, weight, cooldownMinutes, minimumPlayers, conditions, requiredUpgradeId, dimensões permitidas e bloqueadas) e lista as mecânicas que ele executa (mechanics). Adicione os eventos que uma dimensão pode usar a events.events de seu template; minIntervalMinutes e maxIntervalMinutes espaçam as verificações.

As mecânicas são entries separadas que você combina: Meteor Shower, Treasure Rain, Mob Wave, Storm, Eclipse, Boss, Event Ambience (partículas e som), Event Flag, Event Trigger (actions), Temporary Multiplier (XP ou drops), Temporary Client Block, Coop Buff e BetterModel Impact. Elas estão listadas no índice de Entries abaixo.

Economia, contratos e coleções​

O banco da ilha guarda o dinheiro da ilha. Em um servidor sem plugin de economia, o banco é publicado como a economia do servidor, então o dinheiro de um jogador é o dinheiro de sua ilha. Deposite e saque com as actions Island Bank Deposit e Island Bank Withdraw. Os custos nos templates usam uma referência de moeda (currency) que aponta para uma entry de moeda, como uma do NumericalStorage.

Os contratos são acordos entre jogadores, feitos em uma Contracts Table. Por padrão (contractsRequireWorkstation), o menu só abre a partir do bloco da mesa (contractsTableBlock, uma mesa de cartografia por padrão). As recompensas são taxadas por contracts.rewardTaxPercent.

As coleções acompanham o que a ilha colhe, mata e pesca, por item, com limites de nível (collections.categories). Cada nível pode executar actions uma única vez (onReach). Os jogadores também podem desbloquear ou bloquear uma coleção com a action Unlock Collection.

Guerra​

Quando combat.enabled está definido em um template, as ilhas dessa dimensão podem participar de guerras. Uma ilha entra na fila de guerra como atacante ou defensora (pelo painel de controle) e é pareada com uma ilha na fila no papel oposto. A ilha deve atingir combatWar.minIslandLevel, e combatWar.warCooldownMinutes espaça duas guerras. O template define a própria luta: vida e regeneração do núcleo (coreHealth, coreRegeneration), durationMinutes, attackCooldownHours, pontos de spawn e actions para início, vitória e derrota. O vencedor pode saquear uma parte do banco do perdedor (combatWar.pillagePercent). Vitórias, derrotas e empates são mantidos nas estatísticas da ilha.

O Archipel​

O Archipel des Métiers é um mundo compartilhado e somente leitura (listado em readOnlyWorlds) de nove ilhotas restauradas pela ilha: acesso, pontes e tiers são armazenados na ilha e expostos como facts e actions archipel_*.

Primeiros passos​

Crie uma primeira ilha com uma dimensão e deixe os jogadores abrirem o painel de controle:

  1. No painel web do TypeWriter, abra uma página static e adicione um Player Sky Data Artifact.
  2. Adicione um Dimension Template. Defina dimensionId como overworld, templateWorldName com o nome do seu mundo modelo e mantenha unlock.isPrimary ativado. Ajuste expansion (initialSizeChunks, maxSizeChunks, baseCost).
  3. Adicione uma BTC Sky Main Configuration. Coloque o template em dimensionTemplates e o artifact em playerSkyDataArtifact.
  4. Adicione um BTC Sky Menu com o id control_panel (a Contracts Table abre essa entry), construa seus layoutPool e views e adicione uma BTC Sky Menu Configuration com os templates das listas dinâmicas.
  5. Adicione uma action Create Island com template definido como o seu template e conecte-a a um botão, um comando ou uma etapa de tutorial.
  6. Publique. Crie um perfil, dispare a action e a ilha aparece com seu mundo modelo.
  7. Teste o fluxo de admin com /typewriter island admin search <name> em uma conta da staff.
observação

O BTC Sky registra seus comandos sob o comando do TypeWriter. Um /island de nível superior não é definido pela extensão: crie um com uma entry de comando que dispare o BTC Sky Menu (veja Comandos).

Comandos​

Os comandos de ilha são registrados como @TypewriterCommand, então ficam sob /typewriter (alias /tw). Os menus os executam pelo jogador, e é por isso que a maioria deles é interna.

Comandos de ilha​

ComandoDescrição
/typewriter islandAbre o painel de controle.
/typewriter island visit <islandId>Teletransporta para uma ilha aberta, a menos que você esteja banido.
/typewriter island invite [player]Abre o diálogo de convite ou convida um jogador online como parceiro coop.
/typewriter island dimension tp <dimId>Teletransporta para uma dimensão da sua ilha.
/typewriter island dimension buy <dimId>Desbloqueia uma dimensão da sua ilha.

O painel de controle também executa estes comandos internos: navegação de abas e dimensões (dim_select, list_scroll, cp, close), expansão (expansion_map, expansion_nav, buy_chunk), nível (recalculate_level, recalc_level), warps (warps, warp, warp_create, warp_delete, warp_edit, warp_set_icon, warp_toggle_public), membros (members, member_manage, member_promote, member_demote, member_kick), moderação (visitor_kick, visitor_ban, unban), bordas (border …), hologramas (holograms, create_hologram, edit_hologram), contratos (contracts_browse, contract_apply, contracts_create, contract_accept, contract_reject, contract_cancel e relacionados), upgrades (upgrade, upgrade_confirm, upgrade_generator), pesquisa (research_input, research_feed, research_fuel, research_claim), guerra (declare_war, combat_queue, combat_history, attack), avaliações (rate), biomas (biomes, set_biome, set_chunk_biome), configurações (toggle_setting, fly_toggle, fly_scope) e ranking (ranking_sort, ranking_dim). Eles não foram feitos para serem digitados manualmente.

Os botões de chat de um convite coop executam /island coop accept e /island coop deny. Esses subcomandos não são registrados pela extensão, então conecte Accept Invite e Decline Invite aos seus próprios comandos.

commandAliases da configuração principal (padrão island, is, islands) apenas informa ao sistema de menus quais palavras de comando encaminhar para a árvore de ilha. Ele não registra novos comandos.

Comandos de admin​

Toda a ramificação admin exige btcsky.admin (ou status de operador).

ComandoDescrição
/typewriter island admin search <query>Encontra ilhas por id, dono ou nome de membro.
/typewriter island admin create <player> <template>Cria uma ilha para um jogador online a partir de um template (por id de entry ou id de dimensão).
/typewriter island admin delete <profileId>Exclui uma ilha.
/typewriter island admin tp <player or id>Teletransporta para uma ilha.
/typewriter island admin setlevel <profileId> <level>Define o nível da ilha.
/typewriter island admin eco <islandId> get, set <amount>, add <amount>Lê, define ou soma ao banco da ilha.
/typewriter island admin collection <islandId> <collectionId> <level>Define o nível de uma coleção.
/typewriter island admin upgrade <upgradeId> <level>Define o nível de um upgrade na ilha em que você está, na dimensão selecionada.
/typewriter island admin unlock dimension <islandId> <dimId>Desbloqueia uma dimensão para uma ilha.
/typewriter island admin event <eventId>Inicia agora um evento de ilha na sua ilha.
/typewriter island admin limit show <profileId>Mostra os limites de entidades ao lado das contagens reais.
/typewriter island admin limit budget <profileId> <dimensionId> <value>Define o orçamento de mobs de uma dimensão (unlimited ou -1 o remove).
/typewriter island admin limit species <profileId> <dimensionId> <entityType> <value>Define o teto de um tipo de entidade.
/typewriter archipel, acces, passerelle <islet>, palier <islet>, ouvrirInspeciona e concede acesso, pontes e tiers do Archipel (permissão btcsky.admin.archipel).

Permissões​

PermissãoConcede
btcsky.adminToda a ramificação /typewriter island admin.
btcsky.admin.search, .create, .delete, .tp, .setlevel, .eco, .collection, .upgrade, .dimension, .event, .limitCada subcomando de admin, como alternativa mais granular. A ramificação pai ainda exige btcsky.admin ou status de operador.
btcsky.admin.archipelOs comandos /typewriter archipel.
btcsky.admin.bypassIgnora a proteção da ilha e as restrições de warps, desde que o jogador também tenha a flag de bypass de admin.
btcsky.admin.dimensionsEntra em dimensões que não estão desbloqueadas.
btcsky.warp.unlimitedIgnora o limite de warps.
btcsky.contracts.bypassAbre contratos sem passar pela Contracts Table (configurável: contractsBypassPermission).
Permissões de contracts.permissionLimitsAumentam o número de contratos abertos.

A entry BTC Sky Permission Definitions e as seções permissions e commands da configuração principal listam muitos outros nodes (btcsky.island.*, btcsky.vip.*, btcsky.command.*). Eles são documentação: o código atual não os verifica.

Placeholders​

Tags MiniPlaceholders da expansão btcsky, fornecidas por meio do TypeWriter. Um jogador sem ilha recebe 0 para todas as tags, exceto has_island. Onde quer que uma dimensão seja esperada, current significa a dimensão em que o jogador está, e o padrão é essa dimensão quando o argumento é omitido.

Ilha​

PlaceholderRetorna
<btcsky_has_island>true ou false.
<btcsky_context_state>Estado do vínculo entre perfil e ilha (NO_PROFILE quando não há).
<btcsky_island_id>Id da ilha (perfil).
<btcsky_island_owner>, <btcsky_owner_name>Nome do dono.
<btcsky_island_role>Cargo do jogador na ilha.
<btcsky_island_level>, <btcsky_level>Nível da ilha.
<btcsky_island_balance>, <btcsky_bank_balance>Saldo do banco.
<btcsky_island_members_count>, <btcsky_member_count>Número de membros.
<btcsky_island_members_online>Membros online.
<btcsky_member_max>Limite de tamanho da equipe, incluindo upgrades.
<btcsky_team_members_list>Nomes dos membros separados por vírgulas.
<btcsky_is_coop_island>true para uma ilha coop.
<btcsky_island_creation_date>Data de criação (yyyy-MM-dd HH:mm:ss).
<btcsky_island_worth>Soma dos níveis das dimensões.
<btcsky_visitor_count>Visitantes atualmente na ilha.
<btcsky_biome_current>Nome do bioma sob o jogador.
<btcsky_season>Temporada da dimensão atual, ou da data do calendário fora de uma ilha.
<btcsky_setting:name>Estado ligado/desligado colorido de uma configuração: visit (ou open), fly, pvp, mobs, explosions, fire, world_border, possession_border.

<btcsky_island_exp> sempre retorna 0, <btcsky_island_level_progress> sempre 100 e <btcsky_bank_interest_rate> sempre 0.0: eles existem apenas por compatibilidade.

Tamanho, biomas e contagens​

PlaceholderRetorna
<btcsky_size>Chunks desbloqueados na dimensão atual.
<btcsky_island_size>Chunks desbloqueados em todas as dimensões.
<btcsky_size_max>, <btcsky_max_size>Máximo de chunks da dimensão atual, conforme seu template.
<btcsky_island_size_max>, <btcsky_island_max_size>Máximo de chunks em todas as dimensões.
<btcsky_biomes_acquired>, <btcsky_island_biomes_total>Biomas desbloqueados em todas as dimensões.
<btcsky_biomes_total>Biomas que podem existir em todas as dimensões.
<btcsky_biomes:group>Biomas desbloqueados de um grupo de biomas na dimensão atual.
<btcsky_island_biomes:group>Biomas desbloqueados de um grupo de biomas em todas as dimensões.
<btcsky_block_count:MATERIAL>Contagem de um bloco na dimensão atual.
<btcsky_upgrade_level:id>Nível de um upgrade na dimensão atual.
<btcsky_upgrades_acquired>, <btcsky_upgrades_total>Upgrades comprados e upgrades disponíveis, em todas as dimensões.
<btcsky_warp_count>, <btcsky_warp_list>Número e nomes dos warps.
<btcsky_warp_limit>Limite padrão de warps da configuração.

Progressão e social​

PlaceholderRetorna
<btcsky_contract_completed_count>Contratos concluídos.
<btcsky_research_unlocked_nodes>, <btcsky_research_unlocked_count>Nós de pesquisa desbloqueados.
<btcsky_research_points>Pontos de pesquisa.
<btcsky_collection_total_unlocked>Coleções desbloqueadas.
<btcsky_collection_progress:id>Quantidade coletada para um id de coleção.
<btcsky_ban_count>Jogadores banidos.
<btcsky_rating>, <btcsky_rating_count>Avaliação média (1 casa decimal) e número de votos.
<btcsky_combat_wins>, <btcsky_combat_losses>, <btcsky_combat_draws>, <btcsky_combat_winrate>Estatísticas de guerra e taxa de vitória em porcentagem.

Dimensões​

O argumento é um id de dimensão ou current.

PlaceholderRetorna
<btcsky_dimension_id:dim>, <btcsky_dimension_display:dim>Id da dimensão e seu nome de exibição com inicial maiúscula.
<btcsky_dimension_unlocked:dim>, <btcsky_dimension_is_locked:dim>true ou false.
<btcsky_dimension_level:dim>Nível da dimensão.
<btcsky_dimension_generator_tier:dim>Tier do gerador.
<btcsky_dimension_event_next:dim>Tempo até o próximo evento (mm:ss), Now ou Unknown.
<btcsky_dimension_size:dim>, <btcsky_dimension_size_max:dim>Chunks desbloqueados e máximo de chunks.
<btcsky_dimension_biomes_total:dim>Biomas desbloqueados.
<btcsky_dimension_upgrades_acquired:dim>, <btcsky_dimension_upgrades_total:dim>Upgrades comprados e disponíveis.
<btcsky_dimension_visitor_count:dim>Visitantes na dimensão.
<btcsky_dimension_upgrade_level:dim:id>Nível de um upgrade na dimensão.
<btcsky_dimension_biomes:dim:group>Biomas desbloqueados de um grupo na dimensão.
<btcsky_block_limit:dim:MATERIAL>Limite de blocos na dimensão.
<btcsky_dimension_lock_mark:dim>[X] quando a dimensão está bloqueada, vazio quando aberta.
<btcsky_dimension_locked_palette:dim>Nome da paleta para uma dimensão bloqueada ou aberta, para botões de menu.

O painel de controle é um único menu com views.

  • O BTC Sky Menu guarda o layoutPool, as views (uma por tela), o defaultViewId e as inventoryRows. Os slots de aba carregam a tag view:<viewId>; os frames de conteúdo variável usam o id de layout @view. Uma view é aberta com <viewId> ou <viewId>:<argument> (por exemplo collection_detail:mining).
  • Os itens de conteúdo usam um buttonType no formato btcsky_button:TYPE. A extensão preenche os dados ao vivo (informações da ilha, dimensões, upgrades, coleções, ranking, warps, contratos, membros, banimentos, pesquisa, chunks de expansão, bordas, combate, hologramas…) e anexa os cliques.
  • A BTC Sky Menu Configuration guarda os templates de itens das listas dinâmicas.
  • O Open Specific Menu abre uma view específica, e o Open Friends Menu abre a tela de amigos.

O painel é um catálogo quando aberto pelo menu global (você navega, não compra nada). Aberto a partir de um cristal de estabilização, ele se torna a sala de controle da dimensão, e a compra de upgrades e chunks é permitida; caso contrário, os comandos de compra recusam.

Quando o UiCore está instalado, o BTC Sky também publica listas (upgrades, mapa de expansão, visitas, coleções, ranking, membros e bordas) em menus do UiCore e exibe banners quando um teto de população recusa um spawn.

Entries​

161 entradas, geradas a partir do código-fonte da extensão.

Ações61
Eventos33
Objetivos1
Fatos38
Entidades1
Atividades1
Grupos2
Artefatos1
Manifestos20
Definições1
Outras entradas2

Solução de problemas​

O mundo da ilha não é criado. Cada dimensão clona o mundo indicado em templateWorldName a partir da pasta slime_worlds. O arquivo deve existir e o BTC Core deve fornecer o Advanced Slime Paper. Verifique no log do servidor o id da dimensão e o id da ilha.

Um jogador não tem ilha depois de criar um perfil. autoProvisionIslandOnProfileCreation vem desativado por padrão. Dispare uma action Create Island ou ative a opção.

/island não existe. A extensão só registra /typewriter island. Crie seu próprio comando que dispare o BTC Sky Menu e observe que a entry de menu aberta pela Contracts Table deve ter o id control_panel.

Os contratos se recusam a abrir. Com contractsRequireWorkstation ativado, os contratos só abrem a partir da Contracts Table (contractsTableEnabled e contractsTableBlock). Desative-o em um servidor de teste ou conceda a permissão de bypass.

Todos os placeholders retornam 0. O jogador não tem ilha ou perfil ativo. Verifique <btcsky_has_island> e <btcsky_context_state>. Um argumento de dimensão deve ser um id de dimensão válido ou current.

Minha árvore de pesquisa não aparece. O runtime de pesquisa lê research.branches e research.nodes da configuração principal. As entries Research Branch e Research Node não são lidas.

As temporadas ou os eventos nunca começam. As temporadas vêm desativadas por padrão (seasons.enabled). Os eventos precisam de pelo menos um evento em events.events do template, e um evento só dispara quando seus conditions, requiredUpgradeId e minimumPlayers correspondem.

Nenhum mob surge na ilha. Verifique spawner.enabled, maxNearbyMobs e maxPerChunk, e a flag de ilha IS_MOB_SPAWNING_ENABLED. Use /typewriter island admin limit show <profileId> para comparar os contadores com o número real de mobs.

Os jogadores não conseguem construir em um mundo compartilhado. Os mundos listados em readOnlyWorlds (padrão archipel_metiers) são protegidos para todos, exceto para quem tem machine.protection.bypass.

Extensões relacionadas​

  • Machine — máquinas colocadas nas ilhas, com limites de ilha e tiers de pesquisa.
  • FakeBlock — schematics ancorados às dimensões das ilhas.