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

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