Ungodly Blasphemous install guide

Station 04

Install the Ungodly plugins

Two archives, two DLLs, one folder. Unblock the downloads, drop the files in, launch, and the configuration files write themselves.

Step one of four

Get the two archives§

Two .rar files. Each holds one DLL and one README, and nothing else — no installer, no dependencies, no shared runtime to add.

Graphics & UI suite

Ungodly GFX 1.2.0

Raises the 640×360 internal buffer the whole game is drawn into, fixes an interface-scaling bug in the retail build, and opens up the display, quality and post-processing systems the engine keeps closed.

Archive
UngodlyGFX_Blasphemous_v1.2.0.rar
Size
57.9 KB
Installs to
BepInEx/plugins/UngodlyGFX.dll
Opens with
F10 panel · F11 readout

SHA-256851cea1b7660948e911c946d1534fcc611511fb5b4a66023b6d7368b6ff2b24d

Real-time dynamic difficulty

Ungodly Difficulty 1.1.1

Puts every enemy statistic in the game within reach, then runs a live director over the top that reads six signals from your play and moves the difficulty while you are in the room.

Archive
UngodlyDifficulty_Blasphemous_v1.1.1.rar
Size
68.3 KB
Installs to
BepInEx/plugins/UngodlyDifficulty.dll
Opens with
F7 panel · F8 readout

SHA-25675d4d6ae997cb3d11b3f53810e3fbac52ed2df8d5056ce30e5922e7266b50ff6

About the mirrors

Both archives are hosted on my own paid Google Drive account. That is a deliberate choice, and it is worth saying what it buys you:

  • I control the storage. These are files I compiled and uploaded myself, to an account I pay for. No third-party file host sits in the middle, so there is no ad gate, no countdown timer, no fake download button and no bundled "download manager" attached to the file on its way to you.
  • The link cannot be swapped underneath you. Free re-upload sites go dead, get taken over, or quietly substitute what is behind a link. This one is answerable to me.
  • It is usually faster. Drive delivers from Google’s own infrastructure, which is generally quicker and more reliable than the free mirrors small mods normally end up on.
  • You can verify what arrived. Both tiles above list the exact byte size and SHA-256 hash. If the file you downloaded matches, it is the file I published, byte for byte.

Each tile offers three routes to the same archive: Download from my Drive starts the transfer immediately, Open in Drive shows you the file in Drive first if you would rather look before you click, and Copy bundled with this guide pulls the archive out of this website’s own files/ folder without touching the internet at all.

Unblock both archives before extracting

Right-click each .rarProperties → tick UnblockApply. A DLL that still carries the internet marker can be refused silently by the loader, and a silent refusal is the most annoying kind of problem to chase.

Step two of four

What is inside them§

Extract both archives anywhere convenient — your Downloads folder is fine. This is what you get:

FileFromSizeWhat it is
UngodlyGFX.dllUngodly GFX 1.2.0160.0 KBThe plugin. This is the only file that has to be installed.
README.mdUngodly GFX 1.2.017.2 KBFull technical write-up: what it changes and why.
UngodlyDifficulty.dllUngodly Difficulty 1.1.1183.0 KBThe plugin. This is the only file that has to be installed.
README.mdUngodly Difficulty 1.1.130.3 KBFull technical write-up: the director, the presets, the internals.

Only the two DLLs get installed. The READMEs are the full technical write-ups — worth reading if you want the reasoning behind any particular setting, and safe to leave where they are.

No configuration file ships in the archives

That is on purpose. Both plugins generate their own configuration file on first launch, complete with every setting’s legal range and a plain-English description of what it does. A file you shipped alongside a DLL can drift out of date with it; a file the DLL writes itself cannot.

Step three of four

Copy the DLLs in§

One destination, two files, no subfolders.

Where the DLLs go

<game folder>\BepInEx\plugins\
  1. Open BepInEx\plugins in the game folder

    It was created by the launch you did at the end of station 03 and it is currently empty. If it is not there, BepInEx has not run yet — go back and launch the game once.

  2. Copy UngodlyGFX.dll and UngodlyDifficulty.dll into it

    Loose, side by side, directly in plugins. Do not create a folder for each one, do not rename them, and do not copy the READMEs in with them.

  3. Check the file sizes

    Explorer should read 183 KB for UngodlyDifficulty.dll and 160 KB for UngodlyGFX.dll. A DLL that reads 1 KB is a browser error page that got saved with the wrong name — download it again.

The BepInEx plugins folder containing UngodlyDifficulty.dll and UngodlyGFX.dll
Both plugins installed. Loose DLLs directly in plugins — no sub-folder, no rename. Sizes read 183 KB and 160 KB. Shown at 1280×720 — the original is 1920×1080.
The complete layout, just before the modded launch
Blasphemous/
├── Blasphemous.exe
├── winhttp.dll                               from station 03
├── doorstop_config.ini
└── BepInEx/
    ├── core/
    ├── patchers/
    ├── cache/
    ├── config/                               the .cfg files land here on next launch
    │   └── BepInEx.cfg
    ├── plugins/
    │   ├── UngodlyGFX.dll                    you copy this
    │   └── UngodlyDifficulty.dll             and this
    └── LogOutput.log

you copy this in   the game writes this itself   already there, leave it alone

Step four of four

Launch, and let the configs write themselves§

Start the game. The main menu appears exactly as it always has — no splash, no watermark, no banner. Then press the keys:

KeyOpensPalette
F10Ungodly GFX — display, render scale, interface, quality, colour, post-FX, diagnosticsgold
F11Ungodly GFX on-screen readoutgold
F7Ungodly Difficulty — overview, director, enemies, combat, bosses, elites, player, per-enemy, diagnosticscrimson
F8Ungodly Difficulty live readoutcrimson

The mouse pointer appears with either panel and disappears again when you close it. The game pauses while a panel is open. Both panels can be closed with their own hotkey or with the Close button at the bottom.

The Ungodly GFX settings panel open on the Render Scale tab
Ungodly GFX on F10, Render Scale tab. The multiplier is at 4.00 and the panel reports the internal buffer it just built. Gold palette, seven tabs. Shown at 1280×720 — the original is 1920×1080.
The Ungodly Difficulty settings panel open on the Director tab
Ungodly Difficulty on F7, Director tab. Crimson palette, nine tabs, and every control carries its own plain-English description underneath. Shown at 1280×720 — the original is 1920×1080.

Now close the game and look in BepInEx\config. Two files you did not create are sitting there:

The BepInEx config folder containing BepInEx.cfg and the two Ungodly configuration files
The config folder after the first modded launch. Both plugin configuration files have written themselves — 63 KB and 47 KB of documented settings you never had to create. Shown at 1280×720 — the original is 1920×1080.
FileSizeContents
com.stixsworldhd.blasphemous.ungodlydifficulty.cfg63 KBTwenty sections. Every enemy, boss, elite, projectile, player and director dial, each with its range and an explanation.
com.stixsworldhd.blasphemous.ungodlygfx.cfg47 KB117 settings across eight sections: general, display, render scale, UI scaling, quality, colour, post-processing, overlay.
BepInEx.cfg6 KBBepInEx’s own settings. Written at station 03, not by either plugin.

That is the install finished

Both panels open, both configuration files exist. Everything from here is either confirming it (station 05) or deciding what you actually want the game to do (station 06 and station 07).

Proof

The two banners in the log§

If you want certainty rather than inference, open BepInEx\LogOutput.log. The chainloader announces its count, then each plugin announces itself:

What two loaded plugins look like

[Message:   BepInEx] Chainloader started
[Info   :   BepInEx] 2 plugins to load
[Info   :   BepInEx] Loading [Ungodly GFX 1.2.0]
[Info   :   BepInEx] Loading [UNGODLY DIFFICULTY 1.1.1]
[Message:   BepInEx] Chainloader ready
  • 2 plugins to load — BepInEx found both DLLs. If it says 0, they are in the wrong folder. If it says 1, one of them is.
  • A banner line for each — the plugin loaded, its constructor ran, and its version is what you think it is. The version in the banner is the authority, not the filename.
  • Chainloader ready — the load phase completed without an exception taking anything down with it.

A plugin listed but no panel

If the banner is there but F7 or F10 does nothing, the plugin loaded and something else is intercepting the key — usually recording software or an overlay bound to the same function key. Station 08 covers it.

Optional

Installing only one of them§

They are completely independent. Copy in one DLL, leave the other out, and everything works — there is no shared library between them and no load-order requirement in either direction.

If you do run both, they were built to coexist. Every point where two IMGUI plugins normally collide was separated deliberately:

Point of contactUngodly GFXUngodly Difficulty
Plugin GUID…ungodlygfx…ungodlydifficulty
Panel hotkeyF10F7
Readout hotkeyF11F8
Window ID0x5C1F50x5D1FF7
Input blockerUngodlyGFXUngodlyDifficulty
Palettegoldcrimson
Config file…ungodlygfx.cfg…ungodlydifficulty.cfg

Pausing is cooperative too: each plugin only ever unfreezes time that it froze itself. If the graphics panel already had the game stopped when you opened the difficulty panel, closing the difficulty panel will not hand control back to a running game.