This Papyrus Tweaks NG plugin is a good mod for Skyrim players when fixing, tweaking, and performing improvements to Skyrim’s script engine. 100% configurable. You can Install/Uninstall it anytime.
Papyrus Tweaks NG
- Address Library for SKSE Plugins
- VR Address Library for SKSEVR
Amorous Adventures PLUS – OStim and OpenSex Edition: highly recommend using this mod to help you fast the script runs.
PERMISSIONS AND CREDITS
Credits and distribution rights
- Assets of other users:
All of the assets in this file are either the author’s or free-to-use modder’s resources.
- Upload authorization:
Under no circumstances may you upload this Papyrus Tweaks NG file to other websites.
- Permission to modify:
You must obtain my permission before modifying my files in order to improve them.
- Permission to convert:
You are permitted to convert this file for use in other games as long as you credit me as the creator of the file.
- Permission to use an asset:
You must obtain my permission before using any of the assets in this Papyrus Tweaks NG file.
- Asset use permission in purchased mods/files:
This file’s assets may not be used in any mods or files that are sold for money on Steam Workshop or other platforms.
- Permission to use assets in mods/files that earn donation points:
You can earn Donation Points for your mods if they use my assets.
Notes from the Author
Source code under GPL-3: https://github.com/Nightfallstorm/PapyrusTweaks/blob/main/LICENSE
Powerofthree: Clean source code to reference, especially for the INI settings which is heavily inspired by po3 tweaks.
VersuchDrei: For the thumbnail and initial page writeup.
Fuzzles: Extensive playtesting and encouragement
Phenderix: Testing AE.
Everyone who contributed to CLIB. Seriously, CLIB is an amazing framework to build SKSE mods off and none of this would be possible without it.
Papyrus Tweaks NG v3.2.1
- Renamed: Main Thread Tweak and associated settings, it instead is just “SpeedUpNativeCalls” because the current name doesn’t fit the current functionality at all anymore.
- Fixed: the event order execution bug with a native cal speed-up tweak. The executing script calls on the main thread one by one changed the order events will execute in minor cases. In just very few scripts were super picky about this and bugged out (like Arniel’s endeavor and Alduin’s wall being the most noticeable examples). This is fixed now, thank you to everyone who reported this issue!
Take notes: Papyrus Tweaks NG requirements these mods below:
- SKSE64 2.0.12 (VR), SKSE64 2.0.20 (SE), or SKSE64 2.1.5+ (AE)
- Visual C++ Redistributables 2019
- Address Library for SKSE Plugin
This Papyrus Tweaks NG is a collection of fixes and tweaks to the Script Engine (not increase or decrease FPS at default settings.)
- Fixes: the bug fixes to the script engine.
- Tweaks: optional improvements to the script engine’s performance and logging.
- Experimental: not fully tested, understood or side-effect are unknown. It only enables you if you like to live dangerously.
These settings can be configured in PapyrusTweaks.ini (in Data/SKSE/Plugins). It automatically generates if missing and new settings will be appended to the file with feature updates.
- Toggle Scripts Command Fix (default: enabled): toggle script console command pauses all scripts, and however not make persist when saving or stack dumping.
- Negative Script Page Allocation Fix (default: enabled): Fixes the Papyrus Engine unintentionally allocating memory with a negative page size in some cases.
- Max Operations Per Task (default: 500)
- Disable Get Form From File Error Logs (default: false)
- Improve Basetype Mismatch Logs (default: true)
- Improve Validate Args Logs (default: true)
- Disable No Property On Script Error Logs (default: false)
- Disable Mismatch Script Error Log (default: false)
- Stack Dump Timeout (default: 15000ms)
It defaults to false.
Speed up native calls (Formerly “Run Scripts On Main Thread”):
Scripts in Papyrus Tweaks NG will only run in tasklets that aren’t on the main thread most of the time, hence functions like “Game.GetPlayer” or “Formlist.GetAt” needing to be synced to framerate for thread safety.
The speeds up most of those in this experimental tweak call syncing them to a spinlock instead of framerate, greatly improving script performance for most scripts. By default, only the read-only/getter functions are sped up this way (ex: “HasKeyword”, “IsLoaded”, “GetWornArmor”, etc.) as they are much safer than functions that alter the game in any way (ex: “EquipItem”, “RemoveItem”, “MoveTo”, etc.) as those could have issues if run multiple times in one frame.
Bypass Papyrus Corrupted Save Check:
If loading is corrupted save, Skyrim can throw a message box saying “The save can not be loaded” despite already loading into the game. Because the game is missing some script data (not saved), but not in your current play session (ex: Uninstalling a mod and having leftover scripts in the save, but not in the game). So this experimental setting bypasses that callback that could normally kick you out of saving.
Warming: 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!!
Ignore Papyrus Memory Limit:
VN is stressed with over 100+ events queued up for processing, it will ignore any memory limit set
iMaxAllocatedMemoryBytes until it can chew through enough events to bring that number down. So this experimental setting keeps
ignoreMemoryLimit flag set (allowed to use as much memory as it needs all the time). If you plan to enable this, I strongly recommend getting Recursion Monitor. This setting also makes
iMaxAllocatedMemoryBytes in Skyrim’s INI redundant.
Disable Scripts In Playroom (VR only)
Pauses Papyrus Tweaks NG scripts in the playroom in VR, and scripts running in the playroom have been causing incompatibilities with a lot of mods, like for example Live another Life. This experimental tweak keeps any scripts that don’t contain “vrplayroom” (VR Playroom has scripts that have to run to work properly) paused until you exit the playroom, and pauses scripts when going back to the playroom. Update: Tweak in Papyrus Tweaks NG will now not apply if the playroom is disabled, which fixes scripts breaking if you turned on this tweak, but don’t even use the playroom.