Skip to content

tnAnGel/SPT-Server-Editor

Repository files navigation

🎯 SPT Server Editor

Визуальный редактор базы данных сервера Single Player Tarkov

Удобный веб‑интерфейс для правки предметов, экономики, трейдеров, ботов, убежища, квестов и даже сохранённого профиля вашего ЧВК — без копания в сыром JSON.

Java Spring Boot Vaadin License

Дашборд


📖 О проекте

SPT Server Editor — это веб‑приложение для удобного управления базой данных сервера Single Player Tarkov (SPT). Вместо ручного редактирования десятков JSON‑файлов вы получаете современный интерфейс с понятными формами, поиском, массовыми операциями и автоматическим определением типов.

Интерфейс построен на Vaadin AppLayout: верхняя панель (источник данных, глобальные Сохранить / Бэкап / Экспорт, выбор языка, тёмная/светлая тема) и боковая навигация по разделам. По умолчанию — тёмная тема в стиле Tarkov.

⚠️ Изменения пишутся напрямую в файлы базы. Перед правками жмите Бэкап, либо используйте Экспорт в отдельную папку — оригиналы не трогаются.

🔧 Сборка и запуск — строго на JDK 17 (Lombok 1.18.32 несовместим с новыми JDK).


✨ Возможности

🧱 Предметы

Трёхпанельный редактор: дерево категорий · таблица · карточка справа.

  • Редактор любого свойства — вкладка «Все свойства» правит все 100+ полей _props (тип определяется автоматически), вкладка «Основное» даёт удобные формы по типу предмета (оружие, броня, патрон, медикаменты, экономика).
  • Определение типа по цепочке _parent (base‑class ID) — работает на любом языке и сборке; бейджи типа и класса брони.
  • Цены — барахолка (prices.json) и базовые (handbook.json) прямо из карточки.
  • Массовое редактирование — «установить / умножить / прибавить» к числовому свойству для всех предметов под фильтром.

Предметы

💰 Экономика

Один экран для всего баланса: глобальные множители цен барахолки и базовых цен, настройки ragfair.json (обновление, налог, шанс продажи), страховки (insurance.json) и трейдеров (trader.json) — всё понятными полями с подсказками.

Экономика

🤖 Боты и ИИ — по‑человечески

Параметры сложности ИИ больше не сырые КАПСОВЫЕ константы. Они сгруппированы в карточки с русскими названиями (Точность прицеливания, Стрельба, Слух, Зрение, Укрытия, Гранаты, …), правильными типами полей и подсказкой при наведении на каждое поле. Уровни: easy / normal / hard / impossible.

Боты — сложность ИИ

🪖 Профиль ЧВК

Редактор сохранённого профиля (user/profiles/*.json) — того самого ЧВК, которого создал игрок. 14 вкладок правят буквально всё:

Вкладка Что правит
Инфо Никнейм, уровень, опыт, престиж, сторона
Деньги Все стопки валют (RUB/USD/EUR) с итогом
Навыки Прогресс навыков + расчётный уровень
Мастеринг Прокачка оружия
Здоровье HP по частям тела, энергия, гидратация
Квесты · Трейдеры · Убежище Прогресс и состояния
Достижения · Энциклопедия Полученное / изученное
Внешность · Бонусы · Статистика · Всё (raw) Кастомизация и сырой доступ
Профиль — инфо Профиль — деньги
Профиль — навыки

🛒 Трейдеры

base.json (валюта, скидки, страховка, лояльность) и вкладка «Ассортимент» (assort.json: что продаёт, цена, валюта, уровень лояльности) с аватарами торговцев.

Трейдеры

🏠 Убежище

Крафты (production.json) с человекочитаемыми названиями производимого предмета и временем крафта, а также зоны и требования к улучшениям.

Убежище

📜 Квесты

Поиск по quests.json и поштучное редактирование квеста (условия, награды).

Квесты

🧩 И ещё

  • Дашборд — сводка по базе: количество предметов, локаций, разбивка по категориям, цены.
  • Конфиги сервера — редактор любого configs/*.json через виртуализованное дерево.
  • Лут локаций — статический лут, спавн контейнеров, точечный буст рассыпного лута (looseLoot.json ~40 МБ обрабатывается без загрузки в UI).
  • Спавны / PMC, Достижения, Пресеты оружия, Профили‑шаблоны, Локации.
  • Проверки — интеграционные проверки целостности базы.
  • Бэкап — атомарная запись (temp‑файл + atomic move) всех редактируемых файлов.
  • Экспорт — неразрушающая запись изменений в отдельную папку.
  • Локализация — RU / EN / DE / FR / ES / IT / CZ / CH / HU с откатом на английский.

⚙️ Установка и запуск

🟢 Самый простой способ (для всех)

Maven устанавливать не нужно — он скачается автоматически (через встроенный Maven Wrapper). Нужна только Java 17 (скачать бесплатно).

В корне проекта лежат три готовых скрипта:

Файл Система Что делает
run.sh macOS / Linux Собирает (при первом запуске) и запускает редактор, открывает браузер.
run.bat Windows То же самое — просто дважды кликните по файлу.
create_exe.bat Windows Собирает готовую программу .exe со встроенной Java — её можно отдать другу, которому не нужно ставить вообще ничего.

Windows: дважды кликните run.bat → дождитесь сборки → откроется браузер.

macOS / Linux:

chmod +x run.sh      # один раз — сделать файл исполняемым
./run.sh             # собрать (первый раз) и запустить
./run.sh rebuild     # пересобрать заново

При первом запуске идёт скачивание зависимостей и сборка фронтенда — это нормально и занимает несколько минут. Дальше запуск мгновенный. Когда увидите адрес http://localhost:8080 — редактор готов (браузер откроется сам).

📦 Сделать .exe со встроенной Java (Windows)

Хотите отдать программу человеку, у которого вообще нет Java?

  1. Установите JDK 17 (именно JDK, а не JRE — в нём есть инструмент jpackage).
  2. Дважды кликните create_exe.bat и подождите.
  3. Готовая программа появится в папке dist\SPT Server Editor\ — внутри SPT Server Editor.exe и встроенная Java.
  4. Эту папку можно скопировать на любой Windows‑ПК и запустить .exe — больше ничего ставить не надо. После запуска откройте http://localhost:8080.

🔧 Ручная сборка (для разработчиков)

# Production‑сборка (самодостаточный jar)
./mvnw -Pproduction clean package -DskipTests
java -jar target/spt-server-editor-0.1.0-SNAPSHOT.jar

# Режим разработки с горячей перезагрузкой UI
./mvnw spring-boot:run

Откройте http://localhost:8080.


📚 Как пользоваться

  1. Загрузка данных — в поле Источник данных укажите путь к папке SPT_Data вашего сервера и нажмите Загрузить.
  2. Правьте нужный раздел через боковое меню. Большинство полей сохраняется в память мгновенно.
  3. Бэкап — перед серьёзными изменениями нажмите Бэкап.
  4. Сохранение — кнопка Сохранить записывает все изменения в файлы базы атомарно. Либо Экспорт — в отдельную папку, не трогая оригиналы.

🏗️ Архитектура

src/main/java/com/spteditor/
├── SptServerEditorApplication.java
├── config/                  # Spring, Jackson, Async
├── domain/                  # Модели (ItemRecord/ItemProps, BaseClasses, ServerLocation…)
├── service/                 # Бизнес-логика и состояние
│   ├── Workspace.java       # Общее состояние: загрузка, dirty, saveAll, оповещения
│   ├── ItemLoaderService / ItemSaveService / ItemDataStore / PriceService
│   ├── ConfigService / TraderService / AssortService / EconomyService
│   ├── BotService / HideoutService / QuestsService / LootService
│   ├── AchievementsService / PresetsService / ProfilesService
│   ├── ProfileSaveService   # Сохранённый профиль ЧВК (user/profiles/*.json)
│   ├── ExportService / BackupService / IntegrityService
│   └── LocalizationService / ItemCategoryService
├── ui/                      # Vaadin
│   ├── MainLayout.java      # Оболочка AppLayout (навбар + drawer-навигация)
│   ├── *View.java           # Роутируемые разделы (Items/Bots/Economy/Profile/…)
│   ├── profile/             # 14 редакторов вкладок профиля ЧВК
│   ├── ItemEditorForm.java  # Карточка предмета (master-detail)
│   ├── JsonTreeEditor.java  # Переиспользуемый древо-редактор JSON (виртуализован)
│   └── JsonFormPanel.java   # Формы по dot-path с подписями и подсказками
├── web/                     # ImageController (аватары трейдеров и пр.)
└── util/                    # DatabaseRootResolver, Strings

src/main/resources/botlabels/   # Человекочитаемые подписи параметров ИИ ботов
src/main/frontend/themes/spt/    # Тёмная «Tarkov» тема (+ светлая через .spt-light)

Стек: Java 17 · Spring Boot 3.2 · Vaadin 24 · Jackson.


🤝 Вклад в проект

  1. Сделайте форк и ветку.
  2. Внесите изменения (придерживайтесь стиля: новые файлы самодостаточны, запись атомарна).
  3. Откройте Pull Request с описанием.

📄 Лицензия

MIT. См. файл LICENSE.

About

🎯 Редактор сервера SPT с удобным UI: предметы, экономика, трейдеры, боты, убежище, квесты и профиль ЧВК — без ручной правки JSON. Бэкап и экспорт встроены.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors