Fallout 4 mod for diversing everybody in Commonwealth. Based on CommonLibF4 by Ryan McKenzie
  • C++ 83.1%
  • ActionScript 7.6%
  • C 4.1%
  • Python 2.5%
  • TypeScript 2%
  • Other 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Panda c5206bae8e feat: add settings page for hotkey and language configuration
- Implemented SettingsPage component for managing key bindings and hold time.
- Added functionality to capture key presses for setting hotkeys.
- Integrated language selection with fallback to game language.
- Created Stage component for interactive preview manipulation.
- Established internationalization support with English strings and language font handling.
- Introduced key capture mechanism to manage global shortcuts during settings configuration.
- Set up main application entry point and basic styling for UI components.
- Defined TypeScript interfaces for data structures used in the application.
- Configured Vite for building the application with React support.
2026-10-23 06:15:50 +03:00
AddressLibDecoder Add project files. 2025-06-19 03:14:48 +03:00
assets feat: add settings page for hotkey and language configuration 2026-10-23 06:15:50 +03:00
CommonLibF4 Add project files. 2025-06-19 03:14:48 +03:00
DiverseBodiesRedux feat: add settings page for hotkey and language configuration 2026-10-23 06:15:50 +03:00
tools feat: add settings page for hotkey and language configuration 2026-10-23 06:15:50 +03:00
ui feat: add settings page for hotkey and language configuration 2026-10-23 06:15:50 +03:00
.gitattributes Add .gitattributes, .gitignore, README.md, and LICENSE.txt. 2025-06-19 03:14:46 +03:00
.gitignore Add .gitattributes, .gitignore, README.md, and LICENSE.txt. 2025-06-19 03:14:46 +03:00
build-assessment.md Обновление тулсета, ActorResetQueue, исправления 2026-08-26 01:58:07 +03:00
DiverseBodiesRedux.sln Add project files. 2025-06-19 03:14:48 +03:00
LICENSE.txt Update LICENSE.txt 2025-09-15 21:09:41 +03:00
README.md feat: add settings page for hotkey and language configuration 2026-10-23 06:15:50 +03:00

DiverseBodiesRedux

Меню выбора пресетов (клавиша Numpad /)

Если установлена PrismaUI_F4.dll версии 2.0 или новее (нужен интерфейс V10; в PrismaUI 1.8 его нет) и в Data/PrismaUI_F4/views/DiverseBodiesRedux/ лежат файлы вью, меню открывается на PrismaUI + React: список персонажей рядом, вкладки типов пресетов, фильтры, список подходящих пресетов (наведение — предпросмотр, клик — применить и сохранить). Персонаж, на которого наведён курсор в списке (или выбранный), подсвечивается в мире шейдером. Иначе открывается прежнее меню на AS 3.0 (Interface/dbMenu.swf). Если вью PrismaUI не оживает за 4 с, плагин тоже переключается на старое меню.

Кнопка «Сохранённые пресеты» открывает вторую страницу (только PrismaUI): персонажи, для которых DBR хранит пресеты. Кнопка «Предпросмотр» (или двойной клик) создаёт перед камерой точную копию персонажа с его экипировкой и всем, что LooksMenu хранит для него (скин, оверлеи, морфы, то есть применённые пресеты): ИИ копии выключен, фракция — CaptiveFaction (дружелюбна ко всем), агрессия 0. Мышь на свободной области экрана вращает копию, колесо — приближает; «Закрыть предпросмотр» / «Назад» / Esc удаляют копию и возвращают камеру.

Предпросмотр работает и для персонажей, которых нет в сцене: для существующего, но не загруженного актёра на копию накладываются его сохранённые пресеты; для того, кого игра сейчас не знает вовсе (например, временный из другой ячейки), копия строится из сохранённого базового NPC. Копию можно двигать (влево-вправо — поворот, вверх-вниз — подъём; коллизий у неё нет) и приближать колесом. Пока копия показана, на ней можно примерять пресеты (клик по пресету) и кнопкой «Перенести на оригинал» применить и сохранить их для настоящего персонажа.

Карта актёров в co-save при загрузке пересчитывается штатным F4SE ResolveFormID (иначе после смены набора плагинов записи указывали бы на других актёров).

Вкладка «Оверрайды» — отмена и добавление правил внутри текущего сохранения, JSON-файлы при этом не меняются: можно разрешить типы пресетов, исключённые правилом из Exclusions/*.json, исключить персонажа в этом сейве и отключить пресет для автоматической раздачи. Оверрайды пишутся в co-save отдельной записью DBRO (старые версии мода и сейвы без неё работают как раньше).

Карта актёров: перед каждым сохранением выбрасываются записи, которые заведомо не про этого актёра (форма не актёр, другой базовый NPC, раса не из списка), и временные актёры (FormID 0xFF......), которых нет в памяти дольше [GENERAL] iTempActorExpireDays игровых дней (по умолчанию 40). Кнопка «Очистить» на странице «Сохранённые» делает то же самое сразу, «Удалить» убирает запись выбранного вручную.

Язык интерфейса — язык игры (sLanguage из Fallout4Custom.ini / Fallout4.ini); переводы на все 13 языков Fallout 4 лежат в Data/F4SE/Plugins/DiverseBodiesRedux/locales/*.json.

Настройки в [MENU] ini мода (Data/MCM/Settings/DiverseBodiesRedux.ini), все необязательные:

[MENU]
bUsePrismaUI=true                       ; false - всегда старое меню на AS 3.0
sLanguage=auto                          ; auto = язык игры, либо код: en ru de es esmx fr it ja ko pl ptbr zhhans zhhant (меняется и во вкладке «Настройки»)
sHighlightShader=Fallout4.esm|0x22517C  ; шейдер подсветки (Plugin.esp|0xLOCALID), по умолчанию DetectLifeFXS
iMenuKey=111                            ; кнопка открытия меню: код Windows VK_* (111 = Numpad /), общая для обоих меню
fMenuHoldSeconds=0.3                    ; сколько секунд держать кнопку (дробное, 0 - сразу при нажатии)

Кнопку и время удержания можно менять и во вкладке «Настройки» меню Prisma UI («Изменить», затем нажать нужную клавишу): значения записываются в ini.

Сборка

  • C++: Release x64, MSBuild DiverseBodiesRedux/DiverseBodiesRedux.vcxproj -p:Configuration=Release -p:Platform=x64 (VS 18, toolset v145).
  • UI: cd ui && npm install && npm run build — собирает React-вью прямо в assets/PrismaUI_F4/views/DiverseBodiesRedux.
  • Переводы: ключи берутся из ui/src/i18n/en.ts, переводы — tools/locales_data.py; python -I -X utf8 tools/gen_locales.py пересоздаёт assets/F4SE/Plugins/DiverseBodiesRedux/locales/*.json и проверяет, что во всех языках те же ключи и плейсхолдеры.
  • powershell -File tools/deploy_assets.ps1 копирует assets/ поверх корней тестовых сборок мода (структура assets/ повторяет структуру мода).