Papyrus Tweaks NG / Исправления и твики скриптового движка
Сегодня 44 8 Автор мода: Nightfallstorm Автор публикации: k©קaso√® Версия: 4.1.1 Перевод: Русский

Papyrus Tweaks NG / Исправления и твики скриптового движка

Пакет исправлений, твиков и улучшений производительности для скриптового движка Skyrim. Полная кастомизация под себя (100% конфигурация). Безопасная установка и удаление на любом этапе игры. При настройках по умолчанию этот мод *не увеличивает* и *не снижает* FPS.

* Fixes (Исправления) — устраняют баги самого скриптового движка.
* VMTweaks (Настройки виртуальной машины) — дополнительные улучшения и изменения в работе движка. Рекомендуются всем пользователям мода.
* LoggerTweaks (Настройки логов) — дополнительные изменения в системе логирования. Предназначены для авторов модов и продвинутых пользователей, которые читают логи Papyrus.
* Experimental (Экспериментальные функции) — опции, которые еще не до конца протестированы, не полностью изучены или имеют неизвестные побочные эффекты. Включайте только на свой страх и риск (если любите жить опасно).

Каждую из этих настроек можно изменить в файле `PapyrusTweaks.ini` (находится по пути `Data/SKSE/Plugins`). Если файл конфигурации будет удален, он сгенерируется заново автоматически, а при будущих обновлениях мода новые параметры будут сами добавляться в конец файла.

ИСПРАВЛЕНИЯ

### Toggle Scripts Command Fix (Исправление команды Toggle Scripts)
* По умолчанию: включено (enabled)
* Консольная команда `ToggleScripts` приостанавливает работу всех скриптов, но это состояние сбрасывается (скрипты снова запускаются) при сохранении игры или дампе стека. Этот твик исправляет данный баг.

### Negative Script Page Allocation Fix (Исправление выделения памяти с отрицательным размером страницы)
* По умолчанию: включено (enabled)
* Исправляет ошибку движка Papyrus, из-за которой при определенных обстоятельствах игра непреднамеренно выделяла память с отрицательным размером страницы.

### IsHostileToActor Crash Fix (Исправление вылета при вызове IsHostileToActor)
* По умолчанию: включено (enabled)
* Исправляет баг ванильной игры, приводивший к вылету на рабочий стол (CTD), если скриптовой функции `Actor.IsHostileToActor()` передавался пустой объект (`NONE`).

### Fix delayed script breakage (Исправление отложенной поломки скриптов)
* По умолчанию: включено (enabled)
* Исправляет проблему, из-за которой скрипты полностью ломались, если у них были несуществующие мягкие зависимости (исправление старого известного бага с Nexus Mods).
* Примечание: Если вы используете программу *ReSaver* и заметите, что после включения этого фикса в вашем сохранении у некоторых скриптов отсутствуют данные — знайте, это именно те скрипты, которые все это время были сломаны данным багом ванильной игры. Фикс восстанавливает их работоспособность, но вернуть уже потерянные данные без начала новой игры (чистого сохранения) не сможет.

НАСТРОЙКИ ВИРТУАЛЬНОЙ МАШИНЫ (VMTweaks)

### Max Operations Per Task (Максимум операций на задачу)
* По умолчанию: 500
* Движок Papyrus создавался с расчетом на компьютеры, которые считались средними в далеком 2011 году. В Special Edition (SE) эти параметры так и не обновили. Из-за этого Papyrus жестко ограничен 100 операциями на одну задачу. На современных ПК это число можно выставить значительно выше без какого-либо заметного влияния на частоту кадров (FPS), но с потенциально огромным приростом производительности скриптов. Установите значение `0`, чтобы отключить этот твик.

### Stack Dump Timeout (Таймаут дампа стека)
* По умолчанию: 15000ms (миллисекунд)
* По умолчанию дамп стека (выгрузка данных) происходит, если скриптовый движок перегружен в течение пяти секунд (5000 мс) подряд. Это часто случается при одновременном добавлении или удалении большого количества предметов (например, когда персонажа сажают в тюрьму). Вопреки расхожему мнению, сам по себе дамп стека безвреден, но он создает тонны записей в логе Papyrus. Этот твик меняет время, в течение которого движок может находиться под нагрузкой до того, как сработает дамп стека.

### Enable Doc String loading (Включить загрузку строк документации)
* По умолчанию: включено (enabled)
* При загрузке скриптов игра отбрасывает строки документации (doc strings). Этот твик меняет соответствующий флаг, разрешая их загрузку. Для корректной работы требуется, чтобы был включен твик *Enable Debug Information Loading*.

### Enable Debug Information Loading (Включить загрузку отладочной информации)
* По умолчанию: включено (enabled)
* Разрешает загрузку отладочной информации из скриптов. Эта опция полностью переопределяет параметр `bLoadDebugInformation` в файле `Skyrim.ini` и добавлена сюда исключительно для более удобной настройки.

НАСТРОЙКИ ЛОГОВ

### Disable Get Form From File Error Logs (Отключить логи ошибок функции Get Form From File)
* По умолчанию: выключено (false)
* Множество модов используют функцию `Game.GetFormFromFile`, чтобы проверить, установлен ли в системе другой мод, и динамически адаптировать свое поведение. Таким образом, если функция не находит запрашиваемый файл, это вовсе не является ошибкой. Данный твик скрывает подобные сообщения об ошибках в логе.

### Improve Basetype Mismatch Logs (Улучшить логи несоответствия базовых типов)
* По умолчанию: включено (true)
* Улучшает стандартное сообщение вида *"Cannot bind SCRIPTNAME to OBJECT because base types do not match"* (Не удается привязать [Скрипт] к [Объекту], так как базовые типы не совпадают). Твик позволяет четко определить тип скрипта и понять, действительно ли скрипт несовместим или же он просто отсутствует.

### Improve Validate Args Logs (Улучшить логи валидации аргументов)
* По умолчанию: включено (true)
* Добавляет массу дополнительной информации в логи ошибок несоответствия аргументов (например, названия функций, а также ожидаемые типы аргументов в сравнении с фактическими). Это значительно упрощает отладку подобных ошибок.

### Disable No Property On Script Error Logs (Отключить логи ошибок отсутствия свойств в скрипте)
* По умолчанию: выключено (false)
* Иногда при обновлении модов авторы удаляют некоторые свойства (properties) из своих скриптов за ненадобностью. В ванильной игре это приводит к ошибке в логе, сообщающей, что данное свойство больше не существует. Поскольку это может быть намеренным действием автора мода, данный твик скрывает такие сообщения.

### Disable Mismatch Script Error Log (Отключить логи ошибок несоответствия скриптов)
* По умолчанию: выключено (false)
* Иногда при обновлении модов авторы полностью удаляют некоторые скрипты, если они больше не нужны. В ванильной игре это вызывает ошибку в логе о том, что сохраненный скрипт больше не найден. Однако это действие также может быть намеренным со стороны автора мода, и твик подавляет это предупреждение.

### Stack Dump Summary (Сводка дампа стека)
* По умолчанию: включено (true)
* При возникновении дампа стека добавляет в лог краткую сводку: какие события (events) активны на данный момент и как часто они вызываются. Эта функция в основном предназначена для пользователей, которые хотят быстро увидеть, какие именно скрипты запускаются чаще остальных. Пример:

[01/03/2023 - 09:01:51PM] ############### Начало сводки дампа стека ###############
[01/03/2023 - 09:01:51PM] Событие: AAEMUninstall.OnInit, Частота: 1
[01/03/2023 - 09:01:51PM] Событие: wwtimerwidget.size, Частота: 1
[01/03/2023 - 09:01:51PM] Событие: zbloodnpcquestupdatescript.OnInit, Частота: 1
[01/03/2023 - 09:01:51PM] Событие: CWRikkeGalmarScript.OnPackageChange, Частота: 2
[01/03/2023 - 09:01:51PM] Событие: DA07RazorPieceScript.OnContainerChanged, Частота: 2
[01/03/2023 - 09:01:51PM] Событие: sos_addonquest_script.OnInit, Частота: 3
[01/03/2023 - 09:01:51PM] Событие: SKI_ConfigBase.OnInit, Частота: 7
[01/03/2023 - 09:01:51PM] Событие: ih_florafinderworkerscript.OnInit, Частота: 8
[01/03/2023 - 09:01:51PM] Событие: OStimSubthread.OnInit, Частота: 10
[01/03/2023 - 09:01:51PM] Событие: SKI_ConfigBase.OnConfigManagerReady, Частота: 12
[01/03/2023 - 09:01:51PM] Событие: CWFieldCOCrimeFactionScript.OnInit, Частота: 34
[01/03/2023 - 09:01:51PM] ############### Конец сводки дампа стека #################

ЭКСПЕРИМЕНТАЛЬНЫЕ ФУНКЦИИ
* По умолчанию: все выключены (false)

### Speed up native calls (Ускорение нативных вызовов)
* *Ранее известна как «Run Scripts On Main Thread» (Запуск скриптов в основном потоке).*
* Большую часть времени скрипты выполняются в отдельных потоках (тасклетах), изолированных от основного потока игры. Из-за этого вызовы таких функций, как `Game.GetPlayer` или `Formlist.GetAt`, должны синхронизироваться с частотой кадров (FPS) ради потокобезопасности. Этот экспериментальный твик ускоряет большинство подобных вызовов, синхронизируя их через спинлок (spinlock) вместо привязки к FPS, что значительно повышает общую производительность скриптов.
* По умолчанию таким образом ускоряются только функции типа «геттер», предназначенные для чтения данных (например, `HasKeyword`, `IsLoaded`, `GetWornArmor`), поскольку они гораздо безопаснее функций, которые как-либо меняют состояние игры (например, `EquipItem`, `RemoveItem`, `MoveTo`). Последние могут вызвать баги, если будут вызваны по несколько раз за один кадр.

### Bypass Papyrus Corrupted Save Check (Обход проверки Papyrus на поврежденное сохранение)
* При загрузке проблемного сохранения Skyrim может выдать сообщение «Это сохранение не может быть загружено», даже если сама игра уже загрузилась. Это происходит из-за того, что в сохранении остались данные скриптов, которых больше нет в вашей текущей сессии игры (например, если вы удалили мод, но его скрипты остались в сейве).
* Эта экспериментальная настройка отключает проверку, которая обычно выбрасывает вас из игры в главное меню, и позволяет продолжить игру с этого сохранения.
* Внимание: Этот твик НЕ чинит сломанное сохранение, он лишь принудительно позволяет загрузить его независимо от того, какие данные были утеряны. ИСПОЛЬЗУЙТЕ ТОЛЬКО В КАЧЕСТВЕ ПОСЛЕДНЕГО ШАНСА ДЛЯ СПАСЕНИЯ СЕЙВА. ВЫ ПРЕДУПРЕЖДЕНЫ!

### Ignore Papyrus Memory Limit (Игнорировать лимит памяти Papyrus)
* Всякий раз, когда виртуальная машина (VM) перегружена (в очереди на обработку висит более 100 событий), она начинает игнорировать любые ограничения памяти, заданные параметром `iMaxAllocatedMemoryBytes`, пока не разберет достаточное количество событий, чтобы снизить нагрузку. Этот экспериментальный твик держит флаг `ignoreMemoryLimit` постоянно включенным, позволяя виртуальной машине использовать столько памяти, сколько ей необходимо в любой момент времени.
* Если вы планируете включить эту опцию, настоятельно рекомендуется установить мод **Recursion Monitor**. Данная настройка также делает параметр `iMaxAllocatedMemoryBytes` в файле `Skyrim.ini` абсолютно бесполезным.

### Disable Scripts In Playroom (Отключение скриптов в комнате ожидания)
* *(Только для VR-версии)*
* Ставит скрипты Papyrus на паузу, пока игрок находится в стартовой комнате ожидания (Playroom) в VR. Работа скриптов в этой локации часто приводила к несовместимости со множеством модов (например, с *Live Another Life*). Данный твик приостанавливает работу вообще всех скриптов, кроме тех, что содержат в названии «vrplayroom» (в самой комнате есть системные скрипты, необходимые для ее работы), пока вы из нее не выйдете, и снова ставит их на паузу, если вы туда вернетесь.
* *Обновление:* Твик автоматически отключается, если сама комната ожидания отключена в настройках игры. Это исправляет поломку скриптов у пользователей, которые включили этот твик, но вообще не используют Playroom.

Требования:
Skyrim SE 1.5.97 / 1.6.353 - 1.6.1170 (1.6.1179 GOG)
SKSE64 2.0.12 (VR), SKSE64 2.0.20 (SE), SKSE64 2.1.5+ (AE)
Visual C++ Redistributables 2022
Address Library for SKSE Plugin SE / AE

Установка:
Установить через менеджеры модов или вручную. Активация не требуется.
После запуска игры появится файл PapyrusTweaks.ini` (находится по пути `Data/SKSE/Plugins`), его можно будет настроить по своему желанию, но автор настроил все так как задумано.
avatar
Gamer-mods.ru © 2012 - 2026. Все права защищены. Копирование материалов без указанной активной ссылки на данный сайт запрещено.