Feathered Friend

Config

Feathered Friend에는 두 가지 구성 레이어가 있습니다.

  • 클라이언트 구성 (featheredfriend-client.toml): UI 및 로컬 기본 설정 동작입니다.
  • 서버 구성 (featheredfriend-server.toml): 게임플레이 인증 값이 클라이언트에 동기화됩니다.

일반적인 개발 실행에서는 다음을 수행합니다.

  • neoforge/run/config/featheredfriend-client.toml
  • neoforge/run/config/featheredfriend-server.toml
Feathered Friend 구성 및 설정 화면
Feathered Friend in-game settings screen.
Authoritative model

서버 구성은 게임플레이 규칙의 정보 소스입니다. 클라이언트는 동기화된 값을 수신하며 서버가 편집을 허용하지 않는 한 이를 읽기 전용으로 처리해야 합니다.


동기화 파이프라인

  1. 클라이언트 요청 설정(RequestServerSettingsPayload).
  2. 서버가 전체 스냅샷(ServerSettingsPayload)을 보냅니다.
  3. 서버는 로그인 시에도 설정을 푸시합니다.
  4. 서버 틱 감시자는 구성 변경 및 재방송을 확인합니다.

따라서 TOML 핫 리로드 및 게임 내 설정의 편집 내용이 모두 연결된 클라이언트에 전파됩니다.


핫 리로드 동작

FFServerConfig의 서버 구성 값은 런타임 값입니다.

FFConfigSyncEvents는 다음을 포함하여 값이 변경되면 모니터링하고 다시 브로드캐스트합니다.

  • 기능 토글 (enableSuspiciousFeather, enableSuspiciousChest, enableRavenArmor, enableMailbox)
  • 한도/쿨다운
  • 채팅 토글

ravenLinkDurationSeconds는 활성 세션 중에 다시 읽혀지므로 구성 변경 후 즉시 현재 링크를 단축/연장할 수 있습니다.

DEEP DIVE: dirty-flag + save

FFServerConfig의 설정자는 설정을 더티로 표시하고 SERVER_SPEC.save()을 시도하여 변경 사항을 빠르게 동기화하고 디스크에 유지할 수 있습니다.


게임 내 설정 권한

사용자 정의 설정 GUI는 open_settings 키 바인딩을 통해 열립니다(기본적으로 바인딩 해제됨).

서버측 편집은 두 가지 모두에 해당하는 경우에만 허용됩니다.

  • allowServerSettingsScreenEditing = true
  • 플레이어는 운영자 권한 레벨 4를 가지고 있습니다

그렇지 않으면 클라이언트가 동기화된 값을 볼 수 있지만 서버 설정 편집 내용을 적용할 수는 없습니다.


클라이언트 구성(로컬 전용)

클라이언트 구성은 다음을 포함하여 로컬 UI/기본 설정만 제어합니다.

  • scrollUiFontMode (VANILLA, JACQUARD, ALAGARD)
  • 까마귀 상태 배지 위치/앵커/시각 모드
  • 좋아하는 인감 열쇠
  • 레이븐 로그 보기 설정(카테고리 가시성/색상)

이는 서버 게임 플레이를 변경하지 않습니다.


서버 구성(게임 플레이 권한)

settings 섹션

열쇠기본범위목적
chatDisabledDefaultfalse부울글로벌 플레이어 채팅 비활성화(명령은 영향을 받지 않음)
ravenChestsPerPlayer30..64플레이어당 최대 배치된 의심스러운 상자.
ravenLogRetentionMinutes100800..129600Raven 로그 보존 기간(분)입니다.
ravenLogMaxBytesPerPlayer2621440..4194304삭제 전 플레이어당 최대 Raven 로그 크기입니다.
enderpackDepositCooldownSeconds6000..86400Enderpack -> 가슴 입금 워크플로우 사이의 쿨다운.
scrollDeliveryCooldownSeconds6000..86400두루마리 택배 발송 사이의 쿨다운입니다.
courierTimeoutRetrySeconds600..86400시간 초과로 인해 실패한 택배 작업의 자동 재시도 간격입니다.
brushRavenCooldownSeconds300..86400까마귀를 브러싱하는 사이의 재사용 대기시간입니다.
ravenLinkDurationSeconds305..600Raven Link 세션 기간.
allowServerSettingsScreenEditingtrue부울설정 화면에서 OP 편집을 허용/불허합니다.
features.enableSuspiciousFeathertrue부울의심스러운 깃털 논리를 활성화합니다.
features.enableSuspiciousChesttrue부울수상한 상자 특수 로직을 활성화합니다.
features.enableRavenArmortrue부울Raven Armor 장착/능력치 로직을 활성화합니다.
features.enableMailboxtrue부울사서함 탐지 + 택배 사서함 라우팅을 활성화합니다.

spawning 섹션

열쇠기본범위목적
wildRavensPerPlayer10..16온라인 비관전 플레이어별 야생 까마귀 모자.

기능 토글이 꺼져 있는 경우

기능 토글은 항목/블록 존재가 아닌 논리를 비활성화합니다.

  • 기존 항목/블록은 그대로 유지됩니다.
  • 재고는 계속 접근 가능
  • 기능별 런타임 시스템을 건너뜁니다.

예:

  • enableMailbox=false: 사서함 저장소는 여전히 열려 있지만 검색/라우팅이 비활성화되어 있습니다.
  • enableSuspiciousChest=false: 가슴 보관함은 여전히 ​​작동하지만 농어/담금 논리가 비활성화됩니다.
  • enableSuspiciousFeather=false: Raven Link 시작/재생 경로가 비활성화되었습니다.
Do not confuse 'disabled' with 'deleted'

기능 비활성화는 동작 전환일 뿐입니다. 해당 기능에 대한 기존 세계 데이터는 제거되지 않습니다.

서버 스냅샷 예

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

이 프로젝트 후원

이 위키와 모드가 마음에 드시나요?

여러분의 후원은 기능 개발, 문서 작성, 업데이트 지속에 큰 도움이 됩니다.

맨 위로