HyTari Studios · Офіційний посібник

Server Inventory Sync

Синхронізуйте інвентарі між серверами без залежності від runtime-індексів.

Базовий посібник описує вже задокументовану поведінку: спільний інвентар, профіль гравця, anti-dupe locking і семантичне збереження ItemQuality між різними registries.

ПЕРЕД ПОЧАТКОМ

Початок роботи

КРОК 01

Встановіть на серверах-учасниках

Використовуйте одну версію на вузлах, що мають ділити профіль.

КРОК 02

Підключіть спільне сховище

Сервери-учасники мають використовувати один data backend, очікуваний релізом.

КРОК 03

Перевірте повний transfer

Перевірте інвентар, спорядження й якості до відкриття мережі.

Базовий посібник навмисно не вигадує назви конфігураційних полів: поточний репозиторій мода порожній, тому точні JSON-поля буде додано після перевірки source/release-build.

РОЗДІЛ 01 · 1 ПРИКЛАДИ

Що синхронізується

Інвентар, броня, backpack, додаткові слоти й сумісні дані профілю.

01ПОТІК

Спільний профіль між серверами

Мод підтримує синхронізацію сумісних елементів профілю між серверами-учасниками.

ПОТІК
Сервер A
  ↓ зберегти профіль
Спільна база даних
  ↓ завантажити профіль
Сервер B

Поведінка мода

ЩО ЦЕ РОБИТЬ

Мод підтримує синхронізацію сумісних елементів профілю між серверами-учасниками.

ВАЖЛИВА ПОВЕДІНКА

  • Мета — безперервність інвентарю між hub, survival, dungeon, аренами та іншими серверами.
  • Підтримуються інвентар, броня, backpacks і сумісні додаткові слоти.
  • Дані профілю сумісних модів можуть синхронізуватися за наявності інтеграції.

РОЗДІЛ 02 · 1 ПРИКЛАДИ

Потік синхронізації

Завантаження, збереження й transfers проходять захищений цикл.

01ПОСЛІДОВНІСТЬ

Захищене завантаження й збереження

Профіль завантажується й зберігається у контрольованих точках, щоб уникнути конкурентного перезапису.

ПОСЛІДОВНІСТЬ
JOIN / TRANSFER
→ отримати lock
→ завантажити профіль
→ гра
→ autosave / фінальне збереження
→ звільнити lock

Runtime-поведінка

ЩО ЦЕ РОБИТЬ

Профіль завантажується й зберігається у контрольованих точках, щоб уникнути конкурентного перезапису.

ВАЖЛИВА ПОВЕДІНКА

  • Система не повинна заважати звичайній внутрішній зміні world.
  • Autosave зменшує вікно можливої втрати даних.
  • Повідомлення loading/lock можуть інформувати гравця, поки профіль ще недоступний.

РОЗДІЛ 03 · 1 ПРИКЛАДИ

Locks і anti-dupe

Профіль захищається від одночасного доступу на критичних етапах.

01ПРАВИЛО

Lock від одночасного доступу

Один профіль не повинен змінюватися двома серверами одночасно.

ПРАВИЛО
1 UUID гравця
→ 1 активний профіль
→ 1 дійсний lock
→ немає одночасного доступу

Внутрішня безпека

ЩО ЦЕ РОБИТЬ

Один профіль не повинен змінюватися двома серверами одночасно.

ВАЖЛИВА ПОВЕДІНКА

  • Locking захищає від дюпів і race conditions між серверами.
  • Логіка transfer має завершити save і handoff до використання профілю іншим сервером.
  • Прострочені locks і помилки вважаються умовами безпеки, а не приводом завантажити дві копії.

РОЗДІЛ 04 · 1 ПРИКЛАДИ

Безпечний ItemQuality

Якість визначається семантично, а не лише за runtime-індексами.

01ПРИКЛАД

Семантичне збереження ItemQuality

Одна якість може мати різні runtime-індекси на серверах з різними модами чи registries.

ПРИКЛАД
Сервер A: CustomEpic = runtime index 12
Сервер B: CustomEpic = runtime index 27

Sync використовує ідентичність якості, а не лише 12/27.

ItemQuality mapping

ЩО ЦЕ РОБИТЬ

Одна якість може мати різні runtime-індекси на серверах з різними модами чи registries.

ВАЖЛИВА ПОВЕДІНКА

  • Якщо сервер призначення знає початкову якість, вона відновлюється коректно.
  • Якщо визначити її не можна, використовується безпечний Common fallback зі збереженням початкової ідентичності, коли можливо.
  • Коли якість знову доступна, її можна відновити.

РОЗДІЛ 05 · 1 ПРИКЛАДИ

Діагностика

ItemQuality mapping можна журналювати, якщо два сервери по-різному визначають якість.

01ВИКОРИСТАННЯ

Діагностика mapping

Для різних registries mapping-журнали допомагають порівнювати назви й індекси ItemQuality.

ВИКОРИСТАННЯ
Діагностика ItemQuality mapping
→ вмикати лише для дослідження
→ порівняти сервер A / сервер B
→ вимкнути після тесту

Додаткова діагностика

ЩО ЦЕ РОБИТЬ

Для різних registries mapping-журнали допомагають порівнювати назви й індекси ItemQuality.

ВАЖЛИВА ПОВЕДІНКА

  • Діагностика допомагає зрозуміти різницю registries і не потрібна у звичайній роботі.
  • Не лишайте детальне журналювання увімкненим без причини.
  • Точні поля конфігурації буде додано після вирівнювання репозиторію мода.

Перед використанням прикладу

Головна мета — безпека профілю, а не просте копіювання слотів.

Збереження ItemQuality спеціально розраховане на мережі з різними registries.

Описові схеми буде замінено реальною конфігурацією після вирівнювання репозиторію мода.

НАГОРУ