Feathered Friend

Config

#Configuração

Feathered Friend tem duas camadas de configuração:

  • Configuração do cliente (featheredfriend-client.toml): UI e comportamento de preferência local.
  • Configuração do servidor (featheredfriend-server.toml): valores oficiais de jogo sincronizados com os clientes.

Em uma execução típica de desenvolvimento:

  • neoforge/run/config/featheredfriend-client.toml
  • neoforge/run/config/featheredfriend-server.toml
Tela de configuração e configurações do Feathered Friend
Feathered Friend in-game settings screen.

A configuração do servidor !!! tip "Authoritative model" é a fonte da verdade para as regras de jogo. Os clientes recebem valores sincronizados e devem tratá-los como somente leitura, a menos que o servidor permita a edição.


Sincronizar pipeline

  1. Configurações de solicitações do cliente (RequestServerSettingsPayload).
  2. O servidor envia um instantâneo completo (ServerSettingsPayload).
  3. O servidor também envia configurações no login.
  4. O observador de ticks do servidor verifica alterações de configuração e retransmissões.

Portanto, as edições do hot-reload TOML e das configurações do jogo se propagam para os clientes conectados.


Comportamento de recarga a quente

Os valores de configuração do servidor em FFServerConfig são valores de tempo de execução.

FFConfigSyncEvents monitora valores e retransmite se eles mudarem, incluindo:

  • alterna recursos (enableSuspiciousFeather, enableSuspiciousChest, enableRavenArmor, enableMailbox)
  • limites/recargas
  • alternar bate-papo

ravenLinkDurationSeconds é relido durante as sessões ativas, portanto, os links atuais podem ser encurtados/estender imediatamente após as alterações de configuração.

DEEP DIVE: dirty-flag + save

Os configuradores em FFServerConfig marcam as configurações como sujas e tentam SERVER_SPEC.save() para que as alterações possam ser sincronizadas rapidamente e persistirem no disco.


Permissões de configurações no jogo

A GUI de configurações personalizadas é aberta por meio do atalho de teclado open_settings (desvinculado por padrão).

As edições do lado do servidor são permitidas somente quando ambas são verdadeiras:

  • allowServerSettingsScreenEditing = true
  • o jogador tem permissão de operador nível 4

Caso contrário, os clientes poderão visualizar os valores sincronizados, mas não poderão aplicar edições nas configurações do servidor.


Configuração do cliente (somente local)

A configuração do cliente controla apenas a UI/preferências locais, incluindo:

  • scrollUiFontMode (VANILLA, JACQUARD, ALAGARD)
  • posição/âncora/modo visual do crachá de status do corvo
  • chave de carimbo de selo favorita
  • configurações de visualização do raven log (visibilidade/cores da categoria)

Isso não altera a jogabilidade do servidor.


Configuração do servidor (autoridade de jogo)

settings seção

KeyDefaultRangePurpose
chatDisabledDefaultfalseboolGlobal player chat disable (commands unaffected).
ravenChestsPerPlayer30..64Max placed Suspicious Chests per player.
ravenLogRetentionMinutes100800..129600Raven log retention window (minutes).
ravenLogMaxBytesPerPlayer2621440..4194304Max Raven log size per player before clear.
enderpackDepositCooldownSeconds6000..86400Cooldown between Enderpack -> chest deposit workflows.
scrollDeliveryCooldownSeconds6000..86400Cooldown between scroll courier dispatches.
courierTimeoutRetrySeconds600..86400Auto-retry interval for timeout-failed courier jobs.
brushRavenCooldownSeconds300..86400Cooldown between brushing ravens.
ravenLinkDurationSeconds305..600Raven Link session duration.
allowServerSettingsScreenEditingtrueboolAllows/disallows OP editing in settings screen.
features.enableSuspiciousFeathertrueboolEnables Suspicious Feather logic.
features.enableSuspiciousChesttrueboolEnables Suspicious Chest special logic.
features.enableRavenArmortrueboolEnables Raven Armor equip/stat logic.
features.enableMailboxtrueboolEnables mailbox spotting + courier mailbox routing.

spawning seção

KeyDefaultRangePurpose
wildRavensPerPlayer10..16Wild raven cap per online non-spectator player.

Se a alternância de recursos estiver desativada

O recurso alterna para desabilitar a lógica, não a existência de item/bloco:

  • itens/blocos existentes permanecem
  • os inventários permanecem acessíveis
  • sistemas de tempo de execução específicos de recursos são ignorados

Exemplos:

  • enableMailbox=false: o armazenamento da caixa de correio ainda abre, mas a detecção/roteamento está desabilitada.
  • enableSuspiciousChest=false: o armazenamento do baú ainda funciona, mas a lógica de poleiro/depósito está desabilitada.
  • enableSuspiciousFeather=false: O caminho de início/revivificação do Raven Link está desabilitado.
Do not confuse 'disabled' with 'deleted'

Desativar um recurso é apenas uma alternância de comportamento. Ele não remove os dados mundiais existentes para esse recurso.

Exemplo de instantâneo do servidor

JSON
{
  "settings": {
    "ravenChestsPerPlayer": 3,
    "enderpackDepositCooldownSeconds": 600,
    "scrollDeliveryCooldownSeconds": 600,
    "ravenLinkDurationSeconds": 30,
    "allowServerSettingsScreenEditing": true,
    "features": {
      "enableSuspiciousFeather": true,
      "enableSuspiciousChest": true,
      "enableRavenArmor": true,
      "enableMailbox": true
    }
  },
  "spawning": {
    "wildRavensPerPlayer": 1
  }
}

Apoie este projeto

Gostou desta wiki e destes mods?

Cada apoio ajuda a continuar criando recursos, escrevendo documentacao e lancando atualizacoes.

Voltar ao topo