Стандартная структура
После чистой распаковки и первого сохранения настроек каталог выглядит примерно так. Папки с состоянием появляются во время работы; отсутствие txData до первого запуска нормально.
C:\OpenM-Server\
FXServer.exe
bundle-manifest.json
Start-Server.cmd
Start-Server.ps1
Check-Server.cmd
Configure-Server.cmd
citizen\
system_resources\monitor\
tools\heartbeat-publisher.exe
game\
server.cfg
openm-server.cfg
resources\
chat\
sessionmanager\
openm-local\
txData\
admins.json
openm-settings.json
admission-token.txt
publisher.seed
publisher.json
default\
config.json
logs\
logs\
Runtime: что не редактировать вручную
FXServer.exe, соседние библиотеки и citizen составляют runtime сборки. В citizen/system_resources/monitor находятся txAdmin и интеграция мастера. Это не место для установки обычных пользовательских ресурсов.
bundle-manifest.json содержит перечень runtime-файлов с SHA-256. При ручной замене файлов проверка может перестать проходить. Не редактируйте сам манифест, чтобы скрыть повреждение: восстановите согласованную версию из чистого архива. Данные game не входят в перечень неизменяемого runtime.
В tools находится издатель. Его отдельный запуск для стандартного сценария не нужен: жизненным циклом управляет монитор. Самовольное перемещение EXE издателя нарушит автоматическую публикацию.
Игровые данные
game/server.cfg — входной конфиг базового профиля. game/openm-server.cfg создаётся мастером и содержит выбранные имя, порты, ID и сетевые параметры. Короткий входной конфиг не означает, что настройки потерялись: он подключает управляемый файл через exec.
game/resources хранит игровые ресурсы. Внутри каждого ресурса находятся его manifest и серверные/клиентские файлы. Группы в квадратных скобках, например [local], могут использоваться для организации ресурсов. Не перемещайте обычные ресурсы в citizen/system_resources, если этого прямо не требует разработчик совместимой сборки.
Если в мастере выбран существующий server-data, эти игровые файлы находятся в указанной вами папке, а не обязательно внутри распаковки. Фактический путь записан в txData/default/config.json в server.dataPath. Смотрите именно его при поиске конфига, который реально запускает панель.
Приватное состояние txData
| Файл | Содержимое | Способ изменения |
|---|---|---|
| admins.json | Аккаунты, хеши паролей и привязки панели | Admin Manager и контролируемое восстановление |
| openm-settings.json | Настройки мастера и параметры публикации | Configure-Server.cmd |
| admission-token.txt | Ключ доступа игроков | Повторный мастер после выдачи/замены в портале |
| publisher.seed | Приватный Ed25519 seed | Повторный мастер с новой парой файлов |
| publisher.json | Origin, ID, keyId, endpoint и локальные пути издателя | Формируется автоматически |
| default/config.json | Профиль txAdmin: путь server-data, конфиг, OneSync и автозапуск | Панель и мастер; сохраняйте согласованность |
Имена этих файлов относятся к стандартной сборке. Продвинутые установки могут использовать иной TXHOST_DATA_PATH; не копируйте примерный путь вслепую. Наличие секрета на диске не подтверждает его действительность в портале.
Логи, кэш и runtime-данные
Основные логи профиля находятся в txData/default/logs. При запуске помощником дополнительно создаётся logs/*-startup.log в корне комплекта. Запуск напрямую через EXE не обязан создавать такой стартовый файл.
Кэш и генерируемые файлы ресурсов могут появляться в игровом каталоге. Их размер и содержимое зависят от режима. Не считайте все скрытые файлы временными: пользовательский ресурс может хранить важное состояние в собственных JSON-файлах. Перед очисткой изучите документацию этого ресурса и сделайте резервную копию.
Как найти активный профиль без чтения секретов
Выполните PowerShell на игровом узле:
$profile = Get-Content -LiteralPath 'C:\OpenM-Server\txData\default\config.json' -Raw | ConvertFrom-Json
$profile.server | Select-Object dataPath, cfgPath, onesync, autoStart
Команда выводит только выбранные параметры профиля. Не заменяйте её публикацией полного txData, admins.json или содержимого ключевых файлов. Для переноса нужен полный приватный backup, для обращения в поддержку — минимальный обезличенный набор данных.
Что сохранять при обновлении
Сохраняйте txData, фактический server-data с конфигами и ресурсами, SQL-базу и отдельные файлы состояния режимов. Не переносите runtime DLL старой версии поверх новых. Если перемещаете базовую папку, мастер умеет исправлять путь стандартного профиля; для внешнего server-data проверьте путь вручную. Полные процедуры: обновление, резервная копия, миграция.