SSE GUI

by ryobg·v1.0·Updated 2019-05-12

The basis for adding custom HUD/GUI overlays in Skyrim games.

Screenshots 1 screenshots

About this mod Machine translation

The basis for adding custom HUD/GUI overlays in Skyrim games.

motivation

I want Skyrim's comfort gadgets. The built-in HUD is too limited by the imagination. In fact, I have found a GUI framework to create new widgets (HUD elements), but others may not like it. They can still capture video output and keyboard/mouse input.

How does this work?

By using SKSE and its loading, the library is injected into the Skyrim process. The video rendering pipeline is... embracing (?) as well as mouse and keyboard input (based on DInput (facepalm)). As a side effect, Skyrim now starts receiving window messages for keyboard and mouse clicks (also known as non-exclusive mode) - this allows users to open their palms and start receiving more information from the operating system, like special keyboard events, mouse clicks and stuff. By clicking the "Insert" button (which can be configured at runtime), the game stops receiving and reacting to input events. This allows users to start using their widgets! So it's a switch between game navigation and GUI navigation.

Remark

This is nothing new, many games and hacks are made with similar behavior. I didn't know about Skyrim-specific functionality, so I spent a lot of time discovering how to do it myself (aka inventing the triangular wheel).

Although it is primarily used for overlays, the manipulation of inputs and outputs brings up many other options. I'm brainstorming ideas here, but consider: keylogger, low-level key remapping, mouse sensitivity adjustment, possibly auto-generated keystrokes, video capture, render measurements or adjustments, etc.

Everything sounds good, but you could look at ImGui or similar projects for possible inspiration.

refer to

As usual, the source code on GitHub is for developer documentation - basically the README and C/C++ header files.

And how to use the upcoming reference model, best learned through examples!

——————————————————————————————————————————————————

Motivation

I wanted cozy widgets for Skyrim. The builtin HUD is too limiting for the imagination. In fact, I already found a GUI framework to create new widgets (HUD elements), but others may not like it. They can still benefit of capturing the video output and keyboard/mouse input though.

How it works?

By using SKSE and its loading, the library is injected into the Skyrim process. The video rendering pipeline is... hugged(?) as well as the mouse and keyboard input (based on DInput (facepalm)). As side effect, Skyrim now starts to receive window messages for clicking with the keyboard and the mouse (aka non-exclusive mode) - this allows users to open their palms and start receive more information from the operating system, like special keyboard events, mouse clicks and stuff. By taping the Insert button (may be configured at runtime) the game stops receiving and reacting to input events. This allows users to start working with their widgets! So it is a toggle between game navigation and GUI navigation.

Remarks

This is not something new and many games and hacks were made with similar behaviour. I'm not aware of such functionality specially for Skyrim hence I spent wealthy amount of time to discover how to do it myself (aka inventing the triangle wheel).

While it is intended primary for overlays, the manipulation of input and output bring many other options. I'm brainstorming here, but consider: keyloggers, low-level key remaps, sensitivity tunings for mouse, probably automated generation of key presses, video capturing, render measurements or adjusts and etc.

All sounds good, but you can look at ImGui or similar projects for inspiration of what is possible.

References

As usual the source code at GitHub for developer documentation - basically the README and the C/C++ header files.

And the upcoming reference mod for how to use, best learn by example!

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. There is no universal mod manager for this game: some mods replace game files directly, some go into a game-specific Mods folder, and some need a game-specific community loader or tool first — follow the bundled readme.
  3. Place the files exactly as the readme says; mods with listed dependencies need those installed too.
  4. Launch the game to confirm it loaded; some games require enabling mods in settings or an in-game mod menu.

Install locations vary a lot between games and mods — the bundled readme is the most reliable guide.

File & checksum

Filename
SSE GUI
File size
416.0 KiB