Port of Skyrim Outfit System's SKSE dll for Skyrim SE
Find a file
2020-12-10 19:37:42 -08:00
.vscode Handle quickmenu back-out 2020-10-31 23:04:05 -07:00
dependencies Cutting down the generated header. 2020-11-22 12:31:27 -08:00
include Add calls for Papyrus to use 2020-12-04 16:13:04 -08:00
mod_files Added configuration to MCM 2020-12-04 16:41:45 -08:00
src Cleanup bufix comments 2020-12-10 19:36:40 -08:00
.gitattributes Initial commit 2019-04-03 00:06:18 -07:00
.gitignore Remove compiled scripts and auto-move finished products. 2020-10-31 13:26:41 -07:00
.gitmodules Change to GitLab 2020-11-08 11:35:20 -08:00
CMakeLists.txt Show protoc compiler path 2020-11-15 14:12:55 -08:00
LICENSE.md Add the same license as the original Skyrim Outfit System 2020-11-02 00:17:16 -08:00
README.md Note that ninja is the only build tool supported 2020-12-05 13:21:58 -08:00
SkyrimOutfitSystem.code-workspace Add Papyrus workspace 2020-10-31 12:51:23 -07:00
skyrimse.ppj Remove compiled PEX files 2020-10-31 13:17:20 -07:00
vcpkg.json Add protobufs to build process 2020-11-14 12:04:17 -08:00

Skyrim Outfit System SE Revived

Build status

This mod is a resurrection of aers's port of David J Cobb's Skyrim Outfit System for Skyrim SE.

This version now features a better Quickselect system using UIExtensions menus and is also version independent from the SKSE/Skyrim runtimes version by use of the Address Library. It has been tested on Skyrim runtimes 1.5.73 to 1.5.97.

License

This mod is derived from aers's SSE port of DavidJCobb's Skyrim Outfit System. Since DavidJCobb originally licensed Skyrim Outfit System under CC-BY-NC-SA-4.0, which must be applied to derivative works, this rework also uses the same license.

Some files in the dependencies folder are from other places, and fall under their respective licenses.

Building

Prerequisites

Before attempting to build this project, please have the following tools installed.

Build Steps

Preparation

First, make sure this project is cloned and that the submodules are initialized and updated:

git submodule update --init

This will download dependencies like mapbox and my custom fork of CommonLibSSE.

You must also manually download SKSE64 2.0.15. Extract it into the dependencies/skse64 subfolder. You want it such that skse64_readme.txt is directly inside of dependencies/skse64.

Make sure you have an installation of the exact version of vcpkg specified above bootstrapped and ready to go. The version of vcpkg determines the versions of the dependencies that will be provided by it.

Building the C++ Plugin

You will use CMake to build this project. This project is 64-bit statically linked and uses vcpkg to get some dependencies.

Make sure to activate the x86-64 build tools as as follows:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64

First, create a build folder (anywhere is fine). For this example, we will create a folder called build inside the root of the project.

cd into this build folder. Invoke CMake as follows:

cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${PATH TO VCPKG TOOLCHAIN} -DVCPKG_TARGET_TRIPLET=x64-windows-static ../

Note that ${PATH TO VCPKG TOOLCHAIN} is supposed to be replaced with the path to the vkpkg toolchain, and described by the vcpkg documentation.

NOTE: This command may fail the first time, saying that "protoc.exe" could not be found. If this happens, rerun the cmake command above.

Once the project is successfully configured, build it by running

ninja -j

NOTE: ninja is the only supported build tool. MSBuild may or may not work.

In a few moments, you should have SkyrimOutfitSystemSE.dll in the mod_files folder.

Building the Papyrus code

This project uses Pyro to build the Papyrus scripts. Pyro uses the skyrimse.ppj file in the root of this project. I personally use the VS Code plugin for this, but I plan to add instructions on doing it manually.

Assembling the Mod Package

The CMake and Pyro build process both deposit their build artifacts into the mod_files folder. This folder also contains the translation file and .esp file and, when both the Papyrus and C++ plugins are built, is the complete mod package.