Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

173 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkyrimWebSocket

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

This plugin supports Skyrim SSE, AE, and VR through CommonLibSSE NG.

What does it do?

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.

Installation

  1. Install SKSE64skse.silverlock.org

    After installation, always launch Skyrim through skse64_loader.exe, not through Steam.

  2. Install Address Library for SKSE PluginsNexus Mods
    The recommended variant is All in one (all game versions).

  3. Copy the plugin — download SkyrimWebSocket.dll from 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).

Build requirements

  • Visual Studio 2022 (Community edition is fine)
  • CMake 3.21+
  • vcpkg:
    1. Clone or download vcpkg repository
    2. Run bootstrap-vcpkg.bat
    3. Set environment variable VCPKG_ROOT to 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 --recursive

CommonLibSSE NG is included as a git submodule in lib/commonlibsse-ng/. All other dependencies are downloaded automatically via vcpkg.

Project setup

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

Configuration

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.

Log levels

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.

Bug reports

If you encounter a bug, please open a GitHub issue and include:

  1. A description of the problem and steps to reproduce it.
  2. A trace-level log captured during reproduction — set LogLevel=trace in your INI file, reproduce the issue, then attach the log file:
    %USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\SkyrimWebSocket.log
    
  3. If the game crashed, also attach the .dmp file found in the same folder.

Credits

  • 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.

About

Websocket server for Skyrim. SKSE plugin

Topics

Resources

Code of conduct

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages