Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

exiledviper meh321

Uploaded by

exiledviper

Virus scan

Some manually verified files

Documentation

Readme

View as plain text

PapyrusUtil SE/AE v4.6

1. Description
2. Examples
3. Requirements
4. Installing
5. Uninstalling
6. Updating
7. Compatibility & issues
8. Credits
9. Changelog



1. Description

SKSE plugin that allows you to save any amount of int, float, form and string values on any form or globally from papyrus scripts. Also supports lists of those data types. These values can be accessed from any mod allowing easy dynamic compatibility.

Some example functions:
Toggle fly cam and set fly cam speed - TFC.
Set menus on / off - TM.
Adds an additional package stack override on actors. See ActorUtil.psc
Replace any animations on selected objects. See ObjectUtil.psc
Print messages to console.
Get, set, save, or and load data to a custom external JSON file. See JsonUtil.psc

PapyrusUtil.psc - Version check & array related functions.
StorageUtil.psc - Store variables and lists of data on a form that can be pulled back out using the form and variable name as keys. See psc file for documentation.
JsonUtil.psc - similar to StorageUtil.psc but saves data to custom external .json files instead of forms, letting them be customizable out of the game and stored independently of a user save file.
MiscUtil.psc - Some misc commands.
ActorUtil.psc - Actor package override.

2. Examples
See post or check the various script psc files for documentation and some examples

3. Requirements

SKSE64 SE/AE 2.2.6+: http://skse.silverlock.org/
Skyrim SE/AE 1.6.1170
Address Library for SKSE Plugins: https://www.nexusmods.com/skyrimspecialedition/mods/32444


4. Installing

Use mod manager or extract files manually.



5. Uninstalling

Remove the files you added in Installing step.



6. Updating

Just overwrite all files.



7. Compatibility & issues

Should be compatible with everything.

Currently, forms stored via StorageUtil and JsonUtil that come from CreatorsClub .esl files will fail to properly store and return back to their original form.

8. Credits

exiledviper - continued maintenance & refactoring of original plugin's source code
meh321 - original version, idea, address library conversion
SKSE team - for making this plugin possible
milzschnitte - for suggestions
eventHandler, Expired, aers, arha, ianpatt - SKSE64 conversion & update assistance


9. Changelog
4.6 AE/SE - 01/18/2024
Updated for SKSE64 AE/SE 2.2.6 & Skyrim 1.6.1170

4.5 AE/SE - 12/05/2023
Updated for SKSE64 AE/SE 2.2.4 & Skyrim 1.6.1130

4.4 AE/SE - 09/26/2022
Updated for SKSE64 AE/SE 2.2.2
Added ListRandom() functions to StorageUtil and JsonUtil
Some bug fixes

4.3 AE/SE - 01/7/2022
Updated for SKSE64 AE/SE 2.1.5


4.2 AE/SE - 12/14/2021
Updated for SKSE64 AE/SE 2.1.4

4.1 AE/SE - 11/23/2021
Updated for SKSE64 AE/SE 2.1.3
Updated for Address Library

4.0 AE/SE - 11/19/2021
Updated for SKSE64 AE/SE 2.1.2
Added RemoveDupe(), GetDiff(), and GetMatching() functions to PapyrusUtil.psc
Fixed JsonUtil returning wrong form value when the associated plugin is unloaded.

3.9 SE - 02/04/2020
Fixed loading of FF allocated forms from co-save
Changed log file location to My Documents/My Games/Skyrim Special Edition/SKSE/PapyrusUtilDev.log

3.8 SE - 11/22/2019
Updated for SKSE 2.0.17
Fixed handling of forms from ESL files

3.7b SE - 06/17/2019
Updated for SKSE 2.0.16
Added MiscUtil.FoldersInFolder()

3.7 SE - 03/19/2019
Updated for SKSE 2.0.13-15
Added MiscUtil.FoldersInFolder()

3.6 SE - 10/09/2018
Updated for SKSE 2.0.9/2.0.10

3.5 SE - 09/10/2018
Updated for SKSE 2.0.8
Fixed MiscUtil's Scan Cell functions

3.41 SE - 04/05/2018
Updated for SKSE 2.0.7
Copied scripts to creationkit path /source/scripts

3.4 SE - 01/05/2018
Added back TFC related functions
Added back ActorUtil package override functions
Fixed issue with forms sometimes storing/returning wrong while an .esl file is active in load order

3.3c SE hotfix - 12/04/2017
Updated for SKSE64 SE 2.0.6

3.3b SE hotfix - 11/12/2017
Updated for SKSE64 SE 2.0.5
Added back MiscUtil.SetMenus() function

3.3 SE - 10/21/2017
Initial SKSE64 version release

3.3 - 09/15/2016
Various fixes for various CTD and performance issues
JsonUtil New Functions:
Added arbitrary path functions to allow custom JSON formatting
JsonInFolder(string folder) to get array of JSON files that exist in a given folder
MiscUtil New Function:
ScanCellNPCsByFaction() to search cell for actors within a given faction
PapyrusUtil New Function:
GetScriptVersion() to get current installed script version, which might differ from GetVersion()'s DLL value depending on user's varied and/or bad mod installation.
Fixes:
Some fixes to JsonUtil file handling and missing values
Many other fixes I can't specifically remember at the moment


3.2 - 01/04/2016
Many fixes for various CTD and performance issues
JsonUtil New Functions:
Unload() - Unloads a file from memory that has been used by JsonUtil, optionally saving changes first
IsPendingSave() - Checks if the given Json file has been modified since it was last loaded/saved
IsGood() - Checks if the given Json file is currently loaded or not and has no errors
GetErrors() - Returns a formatted string of any Json parsing errors, if any
JsonInFolder() - Returns an array of all Json files in a given directory.
StorageUtil New Functions:
CountObjPrefix() - counts the number of keys that start with string on a specific object
ClearObjPrefix() - removes any values with keys that start with string on a specific object
MiscUtil New Functions:
FilesInFolder() - Returns an array of all files, or with a given extensions, contained in a folder.
ScallCellActors() - Get an array of nearby actors in a cell matching criteria.
ScanCellObjects() - Get an array of nearby objects of specific form type in a cell matching criteria.
WriteToFile() - Re-added after having removed in previous update.
ReadFromFile() - Re-added after having removed in previous update.

3.1 - 09/01/2015
Fixed a bug causing CTD during save load for some users.
Added CountPrefix() to StorageUtil and JsonUtil - counts the number of keys that start with string
Added ClearPrefix() to StorageUtil - removes any values with keys that start with string
Added Pluck() to StorageUtil - gets a value and returns it, then removes it from storage.
Added ShiftList() to StorageUtil - gets the first value of a list and then removes it from that list.
Added PopList() to StorageUtil - gets the last value of a list and then removes it from that list.

3.0 - 08/21/2015
REQUIRES SKSE 1.7.3
StorageUtil & JsonUtil Int/Float/String/FormListToArray()
Various new utility and array functions in PapyrusUtil.psc
Various other new functions I can't remember, mostly related to dealing with or returning arrays
Fixed various crash related bugs
Improved performance for many functions
REMOVED MiscUtil.WriteToFile(),ReadFromFile(),ExecuteBat() - Functions were largely unused, a security risk, and better accomplished by other means.

2.8 - 10/03/2014
Fixed critical bug causing StringListRemove to do exactly the opposite of what you want it to do
Fixed crash to desktop issue some users have experienced when plugin loads an external json files for reading
Added papyrus array initializing functions to PapyrusUtil.psc

2.7 - 09/09/2014
Added back package override saving.
Added AdjustInt/FloatValue() and Int/FloatListAdjust() functions to StorageUtil and JsonUtil, shortcut function for adjusting existing values +/- a given amount
Added a ClearAll() function to JsonUtil for emptying out an external json files contents.
Cleaned up various native functions to better check for proper arguments being passed to prevent potential crashes.

2.6 - 08/11/2014
Fixed bug causing crash/freeze when attempting to load a nonexistent external file.

2.5 - 08/08/2014
REQUIRES SKSE 1.7.1
Rewrite of plugin source code
Added new JsonUtil script
ListSlice() function for copying list into a Papyrus array
ListCopy() function for copying a Papyrus array into a list
ListResize() function for changing the length of list
Various other bug fixes and minor new functions