Both mods and this guide are by StixsworldHD (StixsmasterHD4k). Everything here is unofficial, unaffiliated, and free.
OverviewWhat this package is¶
| Component | Version | Notes |
|---|---|---|
| Ungodly Bendy Enhanced | v1.2.0 | Graphics, resolution, UI scaling and frame pacing. 222 settings, an in-game window on F7, and a config file. |
| Ungodly Bendy Community Patch | v1.1.3 | Seventeen modules, thirty patch points. No configuration of any kind. |
| This installation guide | — | Twelve pages of PHP and CSS with no dependencies and no database. Host it anywhere, or open it locally. |
| BepInEx | 5.4.23.5 | Not mine, not redistributed here. An independent open-source project you download from its own release page. |
Both mods target Bendy and the Ink Machine (Steam AppID 622650) on BepInEx 5, x64, Mono. The screenshots throughout this guide were captured on game build v1.5.2.2 at 1920×1080.
ChangelogUngodly Bendy Enhanced — version history¶
v1.2.0 — subtitle synchronisation
222 settings, up from 217, and a new Subtitles tab.
- Fixed subtitles drifting behind the voice acting. The voice queue advances every (clip length − one physics timestep); the subtitle queue advances every (clip length). The difference accumulates at one timestep per line and never self-corrects — 580 ms behind by line 30 in vanilla, past the noticeable threshold by line 7. A Harmony prefix matches the intervals, removing the accumulating term entirely.
- Made it self-correcting. The subtitle timer is compared against the real playback position of the voice clip and snapped back past a tolerance, but only when both queues are provably on the same line.
- Fixed a bug this mod had introduced. The config window set
Time.timeScale = 0without pausing audio, so opening it mid-conversation desynced subtitles for the rest of that conversation. It now pauses the audio listener too, togglable as Also Pause Audio. - Added a manual ±2 second offset for audio hardware latency.
v1.1.0 — smoothness and frame pacing
Driven by community bug reports.
- Fixed the camera jitter. Player movement runs in
FixedUpdateat 50 Hz while the view rotates at render rate, andCharacterControllerdoes not interpolate — so the world translated in 50 Hz steps regardless of framerate. The physics rate is now matched to your refresh rate by default. - Compensated the game's gravity unit bug so raising the physics rate cannot alter jump height or fall speed. Gravity and ground-stick scale linearly; jump speed is solved numerically to preserve the vanilla apex to 0.00000%. If compensation cannot be applied, the physics rate is left untouched.
- Added a framerate cap mode, defaulting to your refresh rate, with a
JustBelowRefreshRateoption for variable-refresh displays. - Added incremental garbage collection with a configurable time slice.
- Added a maximum frame time cap to prevent the catch-up stutter spiral after a stall.
- Added background loading priority control for streaming hitches.
- Added optional shader pre-compilation.
- Added head bobbing and camera swaying overrides that bypass the vanilla options screen's broken bobbing toggle.
- New Smoothness tab. Existing config section numbering is unchanged, so upgrading does not orphan your settings.
v1.0.1 — layout correctness
A pass on the in-game window driven by a live screenshot of 1.0.0 running at 1920×1080.
- Fixed option buttons clipping their own text — the UI Scaling Mode row was rendering
MatchHeighandExpandToFil. Buttons are now measured withCalcSizeand given their exact required width. - Fixed the selected option being measured with the wrong style. The highlighted button used a bold style wider than the unselected one, so an option could clip only while selected.
- Fixed reset buttons being 24 px wide for a glyph needing 26.
- Setting-name labels now scale with window width and word-wrap rather than clip.
- Long status text in the sidebar now wraps instead of running off the panel.
v1.0.0
Initial release.
ChangelogUngodly Bendy Community Patch — version history¶
v1.1.3 — current
A seventeenth module. Thirty patch points.
- Scripted sequences no longer break. Bendy stages most of its story through
the same AI thought machine that drives ordinary patrolling, and four defects lived in it: a
wait callback with no
try/catchthat stranded the AI permanently if it threw; the same callback firing every frame when oneWaitfollows another; a scripted walk abandoned the moment the AI spots the player, so its arrival callback never fires; and arrival dead-ending when two moves are scripted in a row. - Fixed a regression of this patch’s own. AI unstick, the Miracle Station
attack block and the respawn grace window all reached into AI state without knowing whether a
sequence was running — dragging enemies off scripted marks, stomping scripted attacks
and cancelling staged chases. All three now consult a shared
IsScripted()check, and every thought change and target clear routes through helpers that refuse while a script owns the AI.
v1.1.2 — superseded
Coordinated with Enhanced v1.2.0. Seventeen modules across thirty patch points.
- The subtitle module now stands down. Its backlog cap was a mitigation;
Enhanced v1.2.0 found and fixed the actual cause. Because Enhanced’s resync only runs
while both queues hold the same number of entries, and this module’s trim removes
entries from one of them, running both would have silently disabled the cure. The module now
checks
Harmony.GetPatchInfoat startup and disables itself entirely if anything else has already patchedShowSubtitles, logging that it has done so.
v1.2.1 — superseded
Maintenance pass over the v1.2.0 subtitle and localization work.
v1.2.0 — subtitles and localization
Two new modules; sixteen total, now across twenty-nine patch points.
- Subtitles no longer drift out of sync with their audio. Dialogue audio and
its subtitle went into two separate queues advanced by two unrelated clocks, with nothing
comparing them — and because the subtitle clock is scaled and clamped while audio
streams in real time, the error only ever accumulated in one direction. Subtitles are now
bound to the
AudioObjecttheir own line created and displayed for exactly as long as it plays, which is sync by construction rather than by arithmetic. A side effect worth having: subtitles are now immune to frame pacing, so nothing Enhanced does to physics rate or delta clamping can move a line relative to its audio. - Raw localization keys are no longer shown as dialogue. When a translation
lookup missed, the variable was left holding the raw term and the raw term was drawn —
producing
OBJECTIVES/CH1_OBJ_01on screen. The miss is a startup race, so successful lookups are memoised and a miss schedules a sweep that retroactively repairs text already displayed. Only if both fail is the term humanised, so the worst case isCh1 Obj 01rather than a debug path.
v1.1.1 — physics-rate adaptation
Adapts two modules to Enhanced v1.1.0 raising Time.fixedDeltaTime.
- Ragdoll stability was tuned for Unity's default 0.02 s step. At a 144 Hz timestep the physics loop runs almost three times as often, so fixed solver iterations and continuous collision detection would cost roughly three times as much — landing precisely in the Butcher Gang death moments where the vanilla lag spike already lives. Both now scale to the actual timestep, and at vanilla 50 Hz the behaviour is byte-for-byte what it was.
- AI unstick needed no change — it accumulates real
Time.fixedDeltaTimerather than counting steps, so its 1.5-second window was already rate-independent by construction.
Earlier
Seventeen modules across thirty patch points. Every root cause was independently confirmed against the decompiled shipping assemblies before a line was written; the bug inventory was cross-referenced against the Bendy Wiki bug list, PCGamingWiki, and the Steam community bug and softlock megathreads. The full write-up for each fix is in the archive's README.
The siteAbout this guide¶
Twelve pages of plain PHP and CSS. No framework, no build step, no database, no JavaScript dependencies. Requires PHP 8.0 or newer and nothing else.
How it is put together
config/site.phpis the single source of truth. Versions, the navigation tree, download mirrors, checksums and every screenshot caption live there, so a version bump is one edit rather than twelve.includes/functions.phpis a small component library — callouts, code blocks, tables, the step rail, the screenshot figures.- The previous/next links and the on this page rail are both generated, not hand-maintained, so they cannot drift out of sync with the content.
- Asset URLs are cache-busted from file modification time, so a CSS change is never served stale.
Design
The page is aged ochre studio stock with ink type, and the code blocks are styled as the mod's own dark configuration window sitting on top of it — the same relationship those two surfaces have in the screenshots. The numbered rail beside each install step is an animator's exposure sheet, which felt like the right structural device for a guide about a game set in a 1930s animation studio.
Typefaces are Ultra for display, Special Elite for labels and frame numbers, Libre Franklin for body text and Courier Prime for code. All four load from Google Fonts, with fallback stacks that keep the layout intact offline.
Accessibility and offline use
- Every screenshot is a plain link to the full-size image, so the lightbox is an enhancement rather than a requirement. With JavaScript off, clicking one still opens it.
- Keyboard navigable throughout, with visible focus rings and a skip link.
prefers-reduced-motionis respected — all transitions and the step reveal are disabled.- There is a print stylesheet. The whole guide prints cleanly, with link URLs expanded.
Getting in touchContact¶
If you are reporting a problem, the reporting section lists the four things that make a report actionable. The short version: verbose log, a screenshot of the About tab, and whether it still happens with Master Enable off.
LegalLicence and disclaimer¶
Bendy and the Ink Machine is © Joey Drew Studios Inc. These are unofficial, unaffiliated community modifications. They are not endorsed by, associated with, or supported by Joey Drew Studios or Meatly Games, and no game assets are redistributed by either mod or by this guide.
BepInEx is © its own authors and is licensed under the LGPL. It is not redistributed here — this guide links to its official release page, which is the only place you should obtain a plugin loader from.
Both mods patch methods in memory at runtime via Harmony. Neither modifies, replaces or redistributes any file belonging to the game.