FAQ Компиляция оффлайн spt-aki сервера для escape from tarkov

Krinkels

Он где то тут
Администратор
Доброго времени суток. Наверняка многие слышали про игру escape from tarkov. Для неё существует оффлайн сервер, чтоб в неё можно было спокойно(правда не всегда) поиграть. Сегодня мы будем данный сервер собирать из исходников.
Итак, что же нам понадобится?
1. .NET 6 SDK для модулей и .NET 8 SDK для лаунчера(только для 3.8.0)
2. NodeJS
3. Консольный git
Есть возможность все это скомпилировать через Visual Studio Code, но мы пойдём немного более сложным, но не менее интересным путём, и будем всё делать через консоль.

Итак, всё будем компилировать в папке C:\SPT

Для начала займёмся сервером:
Скачиваем актуальную версию сервера под версию 3.7.6
git clone https://dev.sp-tarkov.com/SPT-AKI/Server.git C:\SPT\Server

или 3.8.0
git clone https://dev.sp-tarkov.com/SPT-AKI/Server.git --branch 3.8.0 --single-branch C:\SPT\Server

Для последующей компиляции переходим в папку с проектом:
cd C:\SPT\Server\project

И запускаем установку необходимых пакетов
npm install

Если при установке пакетов не возникло никаких ошибок значит до этого всё сделали правильно.
Запускаем компиляцию
npm run build:release

Если прошло без каких либо ошибок, то в папочке
C:\SPT\Server\project\build
будет наш скомпилированный сервер

Так же полученный результат можно скопировать в отдельную папочку
xcopy "C:\SPT\Server\project\build" "C:\SPT\Build" /E /Y

Теперь займёмся модулями.
А вот с ними не всё так просто. Самое главное что нам понадобится это файлы из оригинального клиента игры. Чистый клиент 26535 с оригинального сервера не скачать, и просто так не найти. Выход только один, качать репак и брать от туда

Итак, качаем
Для версии 3.7.6
git clone https://dev.sp-tarkov.com/SPT-AKI/Modules.git C:\SPT\Modules

Для версии 3.8.0
git clone https://dev.sp-tarkov.com/SPT-AKI/Modules.git --branch 3.8.0 --single-branch C:\SPT\Modules

Перво наперво нам нужно изменить версию сервера, под которую будем компилировать модули. Меняем тут
C:\SPT\Modules\project\Aki.Common\Aki.Common.csproj

<PropertyGroup>
<Version>1.0.0.0</Version>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>

вместо 1.0.0.0 ставим или 3.7.6(последняя версия на момент написания для 26535) или 3.8.0(для 27050 и новее). Автор, почему то, не озаботился изменениями версии

Предположим что оригинальные файлы игры лежат в папочке Z:\EscapeFromTarkov
Значит можно скопировать необходимые файлы для компиляции модулей
xcopy "Z:\EscapeFromTarkov\EscapeFromTarkov_Data\Managed" "C:\SPT\Modules\project\Shared\Managed" /E /Y /I

Файлы от версии 26535 можно забрать по ссылке. Папку из архива распаковать в C:\SPT\Modules\project\Shared

Мы подготовили необходимые файлы для компиляции, приступим
Переходим в папочку со скачанным репозиторием
cd C:\SPT\Modules\

и начинаем подготовку
dotnet new tool-manifest
dotnet tool restore
dotnet tool install Cake.Tool

Далее
cd C:\SPT\Modules\project

Внимание!!! Нижеследующую команду выполнить 2(ДВА) раза, иначе модули не скомпилируются
dotnet cake
dotnet cake

cd C:\SPT\Modules\project

Для 3.8.0 будет немного по другому, авторы немного поменяли команду компиляции:
Для начала нужно установить PowerShell v7. Можно скачать по ссылке

Ну или выполнить команду
dotnet tool install --global PowerShell

А дальше стандартно
dotnet build --configuration Release

Если всё прошло без ошибок, то поздравляю. Если нет, то пишите сюда, будем разбираться и править данное руководство.

Копируем результат компиляции в папочку с билдом
xcopy "C:\SPT\Modules\project\build" "C:\SPT\Build" /E /Y /I

Чтож, далее для корректной работы плагинов нам необходим BepInEx и ConfigurationManager

Содержимое архива BepInEx копируем в C:\SPT\Build
А из архива ConfigurationManager берём ConfigurationManager.dll и закидываем в C:\SPT\Build\BepInEx\plugins\spt

Ну и остался лаунчер
Если справились с предыдущими двуми то с ним вообще не должно возникнуть каких либо проблем.

Просто выполняем код

Для версии 3.7.6
git clone https://dev.sp-tarkov.com/SPT-AKI/Launcher.git C:\SPT\Launcher

Для версии 3.8.0
git clone https://dev.sp-tarkov.com/SPT-AKI/Launcher.git --branch 3.8.0 --single-branch C:\SPT\Launcher

cd C:\SPT\Launcher\project
dotnet new tool-manifest
dotnet tool restore

Для 3.7.6:
dotnet cake

Для 3.8.0 будет немного по другому, авторы немного поменяли команду компиляции:
Для начала нужно установить PowerShell v7. Можно скачать по ссылке

Ну или выполнить команду
dotnet tool install --global PowerShell

А дальше стандартно
dotnet build --configuration Release


xcopy "C:\SPT\Launcher\project\build" "C:\SPT\Build" /E /Y /I

Если всё произошло без ошибок то поздравляю, только что был скомпилирован полноценный сервер для оффлайн игры EFT.
Содержимое папки C:\SPT\Build кидаем в Z:\EscapeFromTarkov, ну или туда где установлена оригинальная игра, запускаем Aki.Server.exe, дожидаемся зелёных строчек в консоли и со спокойной душой запускаем Aki.Launcher.exe. Наслаждайтесь игрой
 
Последнее редактирование:

Krinkels

Он где то тут
Администратор
А точно репозиторий скачался полностью? В консоли пишет что не найден скрипт
 

Дмитрий2000

Мимокрокодил
А точно репозиторий скачался полностью? В консоли пишет что не найден скрипт
Я делал по инструкции, но отличия были в том, что я заменил слеш, потому что, не находились директории или они неправильно создавались. Использовал такой слеш - /, вместо того, что был указан в инструкции (\). И папку managed скопировал вручную.
 

Krinkels

Он где то тут
Администратор
Такс, я посмотрел репозиторий, там, похоже, поменяли способ компиляции. Чуть попозже посмотрю
 

Krinkels

Он где то тут
Администратор
Понятно, буду ждать)
Итак, для компиляции 3.8.0 нужно немного другую команду вводить. Раньше была:
dotnet cake

А сейчас нужно вводить
dotnet build --configuration Release

Попробовал, модули скомпилировались, ошибки не вылезли. Вот только попробовать мне не на чем, я новый патч удалил, ждёмс когда БСГ свои косяки исправят

З.Ы. поправил руководство
 
Последнее редактирование:

Дмитрий2000

Мимокрокодил
Итак, для компиляции 3.8.0 нужно немного другую команду вводить. Раньше была:
dotnet cake

А сейчас нужно вводить
dotnet build --configuration Release

Попробовал, модули скомпилировались, ошибки не вылезли. Вот только попробовать мне не на чем, я новый патч удалил, ждёмс когда БСГ свои косяки исправят

З.Ы. поправил руководство
Спасибо Вам, получилось скомпилировать модули)))
 

Дмитрий2000

Мимокрокодил
Итак, для компиляции 3.8.0 нужно немного другую команду вводить. Раньше была:
dotnet cake

А сейчас нужно вводить
dotnet build --configuration Release

Попробовал, модули скомпилировались, ошибки не вылезли. Вот только попробовать мне не на чем, я новый патч удалил, ждёмс когда БСГ свои косяки исправят

З.Ы. поправил руководство
С лаунчером такая же петрушка (таже самая ошибка, что и с модулями), но теперь я знаю, какая команда нужна)) И там пожалуйста поправьте)
 

Reawe]

Мимокрокодил
А в чем смысл вообще самостоятельной компиляции, или чего вы тут делаете, если спт нормально работает по гайдам с их сайта?
 

Krinkels

Он где то тут
Администратор
В репозитории сервер обновляется постоянно, а вот релизные версии авторы не спешат выпускать. Да и зачем ждать релиз когда можно самому скомпилировать и поиграть с текущими исправлениями?
 

Reawe]

Мимокрокодил
В репозитории сервер обновляется постоянно, а вот релизные версии авторы не спешат выпускать. Да и зачем ждать релиз когда можно самому скомпилировать и поиграть с текущими исправлениями?
Понятно, а че насчёт этого думаете:
 

Krinkels

Он где то тут
Администратор
Не пробовал, да и не интересовался таким. Хотя, было бы прикольно, если бы в SPT добавили нормальный кооператив, без плясок с бубном
 

Reawe]

Мимокрокодил
Не пробовал, да и не интересовался таким. Хотя, было бы прикольно, если бы в SPT добавили нормальный кооператив, без плясок с бубном
Они не добавят, вроде где-то написано. Тогда лайв тарков вообще на**й не нужен будет
 
Последнее редактирование модератором:

Krinkels

Он где то тут
Администратор
Знаю что не добавят, у них такая политика, чтоб играть в СПТ ты должон иметь лицензию
 

Pestoff

Мимокрокодил
Сделал все по инструкции. Сервер и лаунчер запускается, но при запуске игры выходит ошибка: "Хеш-сумма исходного файла не соответствует требуемому. Возможно используется несовместимая версия клиента." Версия клиента 0.14.6. Возможно ли это как то исправить?
 

Krinkels

Он где то тут
Администратор
Сделал все по инструкции. Сервер и лаунчер запускается, но при запуске игры выходит ошибка: "Хеш-сумма исходного файла не соответствует требуемому. Возможно используется несовместимая версия клиента." Версия клиента 0.14.6. Возможно ли это как то исправить?
Это сообщение означает что версия сервера и версия клиента не совпадают. Я крайне не рекомендую в такое играть. Я бы рекомендовал, пока что, оставаться на 29197, самая стабильная версия на данный момент
 
Сверху