UltraShock

v0.0.1·Updated 2026-01-19

OpenShock/PiShock support for ULTRAKILL:3

About this mod Author’s original text

UltraShock

An ULTRAKILL mod to add support for OpenShock and PiShock shock collars.

Partially adapted from PeakShock.

[!CAUTION]

Please

read up on

safety.

This software is very much provided "as is", and I can't take

responsibility for what you do with it.

Manual Install

This mod depends on BepInEx 5, so please install that first.

You can either use

BepInExPack

or directly get

BepInEx.

Next, download and extract this mod's zip, and copy the plugins

directory into the BepInEx directory within the ULTRAKILL install.

After installation your ULTRAKILL directory should look, among other

files, like this:

/path/to.local/share/Steam/steamapps/common/ULTRAKILL

├── BepInEx

│   ├── config

│   │   ├── BepInEx.cfg

│   ├── core

│   └── plugins

│   └── jakobbbb.UltraShock.dll

├── doorstop_config.ini

├── ULTRAKILL.exe

└── winhttp.dll

Note: On Linux you may have to enter the following in ULTRAKILL's

launch options:

WINEDLLOVERRIDES="winhttp=n,b" %command%

Configure

Before you can configure UltraShock, you'll have to start and then close

the game.

This should create a file called jakobbbb.UltraShock.cfg within the

BepInEx/config directory. Open it in your favorite text editor.

First, find the line containing Provider and adapt it, depending on

whether you use OpenShock or PiShock.

You can also set a ShockCooldownSeconds value here, as well as

ShockScale from 0-100 here. If the scale is, for example, 50, and you

receive 40 damage, you'll get a shock with an intensity of 20 (50% of

40).

Then, set the three options for your chosen provider.

For OpenShock, these are below the [OpenShock] section heading.

  • Create an API token here and

paste it, without quotes, in the ApiKey line.

  • Go to the list of shockers

and click "Edit" on the device you want to use. Copy its ID into

the DeviceId line.

  • Unless you know that you need to change it, you can keep ApiUrl as

it is.

The final config will look something like this:

[OpenShock]

ApiKey = P0ywQl5Y2uOKHbgKrc7LpGvHgZvZtZ2W4UFZdxPMqZncXU8OWmswapCRupuFOFA0

DeviceId = bd4bae3e-155a-42cc-853f-9d404d670d3e

ApiUrl =

For PiShock, set APIKey, UserName and ShareCode in a similar

way.

Development (Linux)

First, you'll have to install the.NET SDK, e.g.

sudo pacman -S dotnet-sdk # Arch

sudo snap install --classic dotnet-sdk # Ubuntu

Then, you should be able to simply run make to build the mod and

make install to build and install it!

If you have installed ULTRAKILL in a non-default path, you'll have to

set the environment variable UK_DIR, e.g. like this:

UK_DIR=/mnt/storage/Steam/steamapps/common/ULTRAKILL make install

To build a.zip for distribution, run make package.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
UltraShock-0.0.1.zip
File size
99.9 KiB