SkillAgentSearch skills...

SkyrimVRESL

Adds ESL support to Skyrim

Install / Use

/learn @Nightfallstorm/SkyrimVRESL
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Skyrim VR ESL

Adds ESL support to SkyrimVR.

Requirements

User Requirements

Local Development Setup

After cloning, install the pre-commit hooks (requires pre-commit):

pre-commit install

This runs clang-format on staged files before each commit, matching the CI format check.

Register Visual Studio as a Generator

  • Open x64 Native Tools Command Prompt
  • Run cmake
  • Close the cmd window

Building

git clone https://github.com/Nightfallstorm/SkyrimVRESL.git
cd skyrimvresl
# pull submodules
git submodule update --init --recursive

VR

# run preset
cmake --preset vs2022-windows-vcpkg-vr
# see CMakeUserPresets.json.template to customize presets
cmake --build buildvr --config Release

License

GPL-3.0-or-later WITH Modding Exception AND GPL-3.0 Linking Exception (with Corresponding Source).
Specifically, the Modded Code is Skyrim (and its variants) and Modding Libraries include SKSE and Commonlib (and variants).

Use of the API headers (SkyrimVRESLAPI.h, SkyrimVRESLAPI.cpp, SkyrimVRESLAPI_SKSE.h, SkyrimVRESLAPI_SKSE.cpp) is under MIT. In other words, using the SKSE messaging interface to call this dll's published API will not require application of the GPL-3.0 terms to the calling dll. In addition, using SKSEVR or CommonLib with SkyrimVRESL support will not require application of the GPL-3.0 terms.

Credits

Skyrim modding is built on the community. While there are too many to count, we couldn't have done this without foundational work since the original Skyrim release.

Developer Use

See Wiki

API

No link-time dependency on SkyrimVRESL is required — the interface is retrieved at runtime via SKSE's messaging system.

Option A — vcpkg overlay port (recommended)

Add the overlay port path to your CMakePresets.json:

"VCPKG_OVERLAY_PORTS": "/path/to/SkyrimVRESL/cmake/ports"

Add the dependency to your vcpkg.json:

{ "name": "skyrimvresl" }

For the legacy SKSE64 SDK variant add "features": ["legacy"]. Then in CMake:

find_package(skyrimvresl CONFIG REQUIRED)
target_link_libraries(my_plugin PRIVATE SkyrimVRESL::CommonLib)  # or SkyrimVRESL::SKSE

The API source is compiled into your plugin automatically via the CMake target.

Option B — manual copy

Copy SkyrimVRESLAPI.h + SkyrimVRESLAPI.cpp (CommonLib) or SkyrimVRESLAPI_SKSE.h + SkyrimVRESLAPI_SKSE.cpp (legacy SKSE64 SDK) directly into your project and add the .cpp to your source list.

ISkyrimVRESLInterface001GetSkyrimVRESLInterface001()

  • GetBuildNumber() — VRESL build number
  • GetCompiledFileCollection() — SSE-compatible TESFileCollection (populated after kDataLoaded)

ISkyrimVRESLInterface002GetSkyrimVRESLInterface002() (extends 001)

  • GetPluginLoadTimings(uint32_t* outCount) — array of VRESLPluginLoadTiming, one entry per plugin, with totalNs (ConstructObjectList) and openNs (OpenTES / file I/O) durations. Stable for the lifetime of the DLL; call after kDataLoaded.

Related Skills

View on GitHub
GitHub Stars11
CategoryCustomer
Updated17d ago
Forks3

Languages

C++

Security Score

90/100

Audited on Mar 12, 2026

No findings