Skip to content

Repository files navigation

CHIM-Custom

Optional CHIM integrations for third-party Skyrim mods.

This package is split into two pieces:

  • HerikaServer plugin files in this folder. These install into HerikaServer/ext/CHIM-Custom.
  • Skyrim SKSE plugin source under SkyrimPlugin/. This builds CHIMCustom.dll.

Supported integrations:

  • Dirt and Blood - Dynamic Visual Effects: player dirt, blood, clean, and washing state.
  • Bathing in Skyrim - Renewed: player dirtiness tier, bathing, and soapy state.
  • SunHelm Survival: player hunger, thirst, exhaustion, and cold state.
  • Starfrost - A Survival Overhaul: player hunger, exhaustion, and cold state through Starfrost and Survival Mode Improved.

All integrations are optional. If a supported mod is not loaded, CHIMCustom.dll silently skips that integration.

Flow

  1. CHIMCustom.dll loads in SKSE.
  2. It reads CHIM server connection settings from Data/SKSE/Plugins/CHIMCustom.ini.
  3. It polls the server plugin config endpoint.
  4. If a supported mod is loaded, it checks the relevant player spells/globals.
  5. It posts compact visible-state JSON to ext/CHIM-Custom/api/state.php.
  6. The HerikaServer plugin stores the state.
  7. context_pre.php registers current-character cleanliness and survival state into focused prompt blocks.
  8. globals.php registers nearby actor profile enrichers so the same state can appear beside equipment/activity details in <nearby_actors>.

State is prompt-only by default. It is not written into event history.

Database

CHIM creates a shared plugins PostgreSQL schema for server plugins. CHIM-Custom stores its tables under that schema using plugin-prefixed names, such as plugins.chim_custom_integrations. Future server plugin migrations should follow the same pattern and avoid creating plugin-owned tables in public.

Release Packaging

Embed the server extension into the normal Skyrim mod package:

.\scripts\build-dwpkg.ps1

The generated file is placed at SkyrimPlugin/package/CHIM/server-plugins/CHIM-Custom/<version>.dwpkg. CHIM detects it when a save loads and transfers it to HerikaServer automatically. The generated DLL and .dwpkg remain local release artifacts and are not committed to pull requests.

After building CHIMCustom.dll, create the complete user-facing release archive with:

.\scripts\build-release.ps1

This stages the game files, generates the matching server package, and writes release/CHIM - Custom.zip without modifying the source package directory.

Server plugin release:

Package only the HerikaServer plugin files into a top-level CHIM-Custom/ folder, then upload it as CHIM-Custom.tar.gz. The server plugin installer extracts this archive into HerikaServer/ext/CHIM-Custom.

Required server archive contents:

CHIM-Custom/api/
CHIM-Custom/lib/
CHIM-Custom/migrations/
CHIM-Custom/context_pre.php
CHIM-Custom/globals.php
CHIM-Custom/index.php
CHIM-Custom/manifest.json
CHIM-Custom/README.md

Skyrim plugin release should include:

SKSE/Plugins/CHIMCustom.dll
SKSE/Plugins/CHIMCustom.ini
CHIM/server-plugins/CHIM-Custom/<version>.dwpkg

Upload the Skyrim package as CHIM - Custom.zip.

About

Optional CHIM integrations for third-party Skyrim mods.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages