frontend part of project is here - https://github.com/andreyvelsk/SkyrimWebMonitor
📜 based on template by https://github.com/SkyrimScripting/SKSE_Templates
An SKSE plugin for Skyrim that provides a WebSocket server interface for remote game state monitoring and control. Built with:
- C++
- CMake
- CommonLibSSE NG (ng branch)
- included as a git submodule in
lib/commonlibsse-ng
- included as a git submodule in
This plugin supports Skyrim SSE, AE, and VR through CommonLibSSE NG.
SkyrimWebSocket runs a WebSocket server that allows external clients to:
- Subscribe to game data fields with configurable push intervals (min 50ms)
- Query game data on demand
- Receive notifications when game values change
- Monitor player state, world data, and other game information in real-time
See PROTOCOL.md for detailed message specifications and examples.
-
Install SKSE64 — skse.silverlock.org
After installation, always launch Skyrim through
skse64_loader.exe, not through Steam. -
Install Address Library for SKSE Plugins — Nexus Mods
The recommended variant is All in one (all game versions). -
Copy the plugin — download
SkyrimWebSocket.dllfrom the latest release and place it in:Data/SKSE/Plugins/SkyrimWebSocket.dll
Optionally, place SkyrimWebSocket.ini next to the DLL to customize the server address and port (see Configuration).
- Visual Studio 2022 (Community edition is fine)
- CMake 3.21+
vcpkg:- Clone or download vcpkg repository
- Run
bootstrap-vcpkg.bat - Set environment variable
VCPKG_ROOTto the vcpkg folder path
- Git (for submodules)
You can open this project in VS Code, CLion, or Visual Studio. For VS Code, ensure you have the C++ and CMake Tools extensions installed.
After cloning, initialize the git submodule:
git submodule update --init --recursiveCommonLibSSE NG is included as a git submodule in lib/commonlibsse-ng/. All other dependencies are downloaded automatically via vcpkg.
By default, the compiled plugin DLL is output to build/.
To deploy to your Skyrim installation automatically, set environment variables:
-
SKYRIM_FOLDER: Path to your Skyrim Special Edition install
Example:C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition -
SKYRIM_MODS_FOLDER: Path to your mods folder (for Mod Organizer 2 or Vortex)
Example:C:\Users\<user>\AppData\Local\ModOrganizer\Skyrim Special Edition\mods
The plugin reads an optional INI file placed next to the DLL:
Data/SKSE/Plugins/SkyrimWebSocket.ini
If the file is absent, the plugin uses safe defaults (127.0.0.1:8765).
| Key | Default | Description |
|---|---|---|
[Server] ListenAddress |
127.0.0.1 |
Bind address. Use 0.0.0.0 to accept remote connections (e.g. for debugging). |
[Server] Port |
8765 |
TCP port the WebSocket server listens on. |
[Debug] LogLevel |
off |
Log verbosity: off, info, debug, trace. |
| Level | What is logged |
|---|---|
off |
Nothing (default, recommended for normal use) |
info |
Server start/stop, client connect/disconnect, command results |
debug |
All of the above + every received message, subscription details |
trace |
Maximum verbosity, including every subscription poll cycle |
When any level other than off is set, the plugin also installs a crash handler that writes a minidump (.dmp) next to the log file on game crash.
Log file location:
%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\SkyrimWebSocket.log
An annotated template is available in the repository as SkyrimWebSocket.ini.example.
If you encounter a bug, please open a GitHub issue and include:
- A description of the problem and steps to reproduce it.
- A trace-level log captured during reproduction — set
LogLevel=tracein your INI file, reproduce the issue, then attach the log file:%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\SkyrimWebSocket.log - If the game crashed, also attach the
.dmpfile found in the same folder.
- The Elder Scrolls V: Skyrim is © Bethesda Softworks / ZeniMax. This is an unofficial fan-made plugin and is not affiliated with or endorsed by Bethesda.