[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정도 올랏음