[Fixes]
;Fixes ToggleScripts command not persisting when saving/stack dumping
;Scripts will now stay turned off when toggled off, and on when toggled on.
bFixToggleScriptsCommand = true
;Fix unintentionally allocating script pages when getting largest available page, but out of memory.
bFixScriptPageAllocation = true
[Tweaks]
;Maximum papyrus operations per frame. Higher number means better script performance on average
;Has a very minor impact on framerate, and varies from script to script. (Default: 500, Vanilla value: 100). Recommended Range: 100-2000. Set to 0 to disable
iMaxOpsPerFrame = 500
;Disables `File " % s " does not exist or is not currently loaded.` logs from being printed when calling Game.GetFormFromFile().
;This only disables the logging of the error, the error itself will still occur
bDisableGetFormFromFileErrorLogs = false
;Improves Base Type Mismatch error to show inheritance hierarchy of scripts; Also clarifies if the script was a genuine mismatch, or if the script doesn't exist
bImproveBaseTypeMismatchLogs = true
;Improves several error logs relating to incompatible arguments to better clarify what is incompatible
bImproveValidateArgsLogs = true
;Disable "Property %s on script %s attached to %s cannot be initialized because the script no longer contains that property" log messages.
;This only disables the logging of the warning, the warning itself will still occur
bDisableNoPropertyOnScriptErrorLogs = false
;Disable "Cannot open store for class "%s", missing file?" errors being logged.
;This only disables the logging of the error, the error itself will still occur
bDisableMissingScriptError = false
;Modify how long Papyrus can be "overstressed" before dumping stacks, in milliseconds (Default value: 15000, Vanilla value: 5000).
;Set to 0 to disable the stack dump check, or -1 to disable this setting.
;See https://www.nexusmods.com/skyrimspecialedition/articles/4625 for information on what a stack dump is
iStackDumpTimeoutMS = 15000
;Adds a summary of events when dumping stacks to log
bSummarizeStackDumps = true
[Experimental]
;(Formerly bRunScriptsOnMainThreadOnly)
;Speeds up native calls by desyncing them from framerate and instead syncing script calls to a spinlock, greatly improving script performance while still preventing concurrent execution of native calls
bSpeedUpNativeCalls = true
;(Formerly sMainThreadClassesToExclude, requires bSpeedUpNativeCalls=true)
;List of script classes to exclude from being sped up by bSpeedUpNativeCalls.
;It is strongly recommended to leave at defaults unless you absolutely know what you're doing
sScriptClassesToExclude = UI, ConsoleUtil, PO3_SKSEFunctions, MfgConsole, MFGConsoleFunc, Input, Debug, Utility, PapyrusTweaks
;(Formerly sMainThreadMethodsToExclude, requires bSpeedUpNativeCalls=true)
;List of script method prefixes to exclude from being sped up (ex: "Equip" excludes "EquipItem" and "EquipItemByID", but does NOT exclude "UnequipItem".
;It is strongly recommended to leave at defaults unless you absolutely know what you're doing
;as a lot of modifying functions like `EquipItem` do not work properly if executed more than once in a single frame.
; Defaults exclude everything except for read-only functions (ex: GetFormFromFile, HasKeyword, IsLoaded, etc.)
sScriptMethodPrefixesToExclude = Activate, Add, Advance, Allow, Attach, Apply, Block, Cast, Change, Clear, Close, Complete, Create, Damage, Delete, Disable, Disallow, Dismount, Dispel, DoCombatSpellApply, Draw, Drop, Enable, End, Equip, Evaluate, Fade, Fail, Fire, Force, GetAnimation, GetQuest, Hide, Hold, Ignore, Increment, Keep, Kill, Knock, Learn, Load, Lock, Mod, Move, Mute, Open, Place, Play, Pop, Precache, Process, Push, Queue, Quit, Regenerate, Register, Release, RemoteCast, Remove, Request, Reset, Restore, Resurrect, Revert, Save, Say, Send, Serve, Set, Shake, Sheath, Show, Start, Stop, Teach, TempClone, Tether, Toggle, Translate, Trap, Trigger, Try, Unequip, Unlock, UnMute, UnPause, Update, Unregister
;(VR-ONLY) Pauses all non-playroom scripts while in the VR playroom, so mod scripts only initialize once you actually enter a save/new game.
;This is only experimental as it intentionally alters script behavior
bDisableScriptsInPlayroomVR = false
;Stops the game from resetting when loading a corrupted save
;This will NOT fix a broken save, just allows you to load the save no matter what information is lost. ONLY USE AS A LAST RESORT TO RECOVER A SAVE YOU HAVE BEEN WARNED!!
bBypassCorruptSaveMessage = false
;Allows the Script Engine to use as much memory as needed, with no cap. This makes `iMaxAllocatedMemoryBytes` in Skyrim.ini useless/infinite
;Note: Skyrim already ignores memory limit when stressed, this setting just keeps it ignored.
bIgnoreMemoryLimit = true (skyrim ini의 iMaxAllocatedMemoryBytes=500000 이값을 대체하는건데, 대충 설명보니 이거 true로 하면 iMaxAllocatedMemoryBytes= 이값을 비활성화하면서 메모리 제한을 아예없애버린다고함. 즉, 무한대 설정인 skyrim ini에서 iMaxAllocatedMemoryBytes=500000 으로하는거나 이값을 true 로 하나 같다는 얘기임. 근데 난 그냥 두개다사용중임 어차피 같이쓴다고해서 오류같은거없으니 그냥 둘다 쓰셈) (그리고 이 항목 true로 했으면 아래의 Recursion Monito 이거 필수로 설치해야함)
이렇게 해주고 skyrim ini 에서 아래처럼 바꿔준다.
[Papyrus]
fPostLoadUpdateTimeMS=500.0
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0
iMaxAllocatedMemoryBytes=500000
그리고 마지막으로 Recursion Monito 이거 설치해주면됨. (Recursion Monito 이건그냥 건들지말고 기본값쓰면됨)
이렇게해서 이상없이 잘사용중이고 이전보다 확실히 프레임드랍 덜하면서 쾌적함. 화이트런 광장기준 프레임 3~4정도 올랏음