The archive for this part
Contains UngodlyEndless.dll and its full README. Requires Part 1 (BepInEx 6 BE, IL2CPP, x86) to be installed and run once.
UngodlyEndless_v1_0_0_BepInEx6-IL2CPP-x86.rar
PART 2 OF 3 · THE FOREVER-GAME
Game Dev Story quietly ends around Year 20: the Records screen freezes, the console timeline dries up, the finale plays once. UngodlyEndless reworks the entire post-game into a true forever-game — and it does it while keeping your save files byte-for-byte vanilla. Installation is one file.
Contains UngodlyEndless.dll and its full README. Requires Part 1 (BepInEx 6 BE, IL2CPP, x86) to be installed and run once.
UngodlyEndless_v1_0_0_BepInEx6-IL2CPP-x86.rar
Confirm Part 1 is done
The game must have been launched once with BepInEx installed, so that
BepInEx\interop\ exists. If you haven't, do Part 1 first —
the plugin needs the interop assemblies that first run generates.
Extract the plugin DLL into BepInEx\plugins\
Open UngodlyEndless_v1_0_0_BepInEx6-IL2CPP-x86.rar. Inside its top-level folder you'll find two files:
UngodlyEndless_v1_0_0_BepInEx6-IL2CPP-x86\
├─ UngodlyEndless.dll ← copy this into <game>\BepInEx\plugins\
└─ README.md ← keep anywhere for reference — full manual
Copy UngodlyEndless.dll to:
<game folder>\BepInEx\plugins\UngodlyEndless.dll
Launch and verify
Start the game. In BepInEx\LogOutput.log (or the console, if enabled) you'll see the
plugin announce itself:
UngodlyEndless v1.0.0 loaded - pristine console capacity 30, ...
At the title screen, press F7. The configuration window opens — solid, fully opaque background, six tabs. Until a save is loaded the Status tab reads "No game loaded yet"; everything goes live the moment a save loads.

The first launch also generates the fully documented config file — every one of the 47 settings carries min/max ranges and a plain-language gameplay explanation:
<game folder>\BepInEx\config\stixsworldhd.gds.ungodlyendless.cfg
That's the whole install. Read on for what the mod actually does and how the pieces fit — or jump straight to Part 3: Real World Overhaul.
GameForm.GameEndYear) with zero patches on the scoring code itself.Out of the box: records never freeze, a new console generation arrives every 2 years from Year 21 onward, every 4th generation includes one immortal "evergreen" platform, and prestige is gated behind seeing the Year 20 finale once. Everything hot-applies — tweak values mid-save in the F7 window, hit Save Config, and keep playing. The Status tab also offers manual controls: force-inject a console wave, bank or cancel a prestige package, replay the ending, or flush the sidecar to disk.
Around every save and load, the mod: captures each modded console's live market state into
its sidecar record → swaps the enlarged tables for exact 30-slot vanilla copies (compacting the
visible-hardware list and clearing point-map cells that reference modded slots) → rewrites any
per-game console reference an unmodded game couldn't index → lets the game read/write its completely
normal save → restores the enlarged tables and writes slotN.json. Prefix + postfix +
finalizer hooks guarantee restoration even if the game's own save code throws.
Uninstalling costs you only the modded consoles themselves.

| Path (under the game folder) | What it is |
|---|---|
BepInEx\config\stixsworldhd.gds.ungodlyendless.cfg |
The 47-setting config — every entry documented with ranges and gameplay notes. |
BepInEx\config\UngodlyEndless\slotN.json |
Per-save-slot sidecar holding modded consoles + market state. Deleting one removes that save's modded consoles; the save itself is untouched and fully playable. |
BepInEx\config\UngodlyEndless\prestige.json |
The banked prestige package, while armed. Deleting it discards the bank. |
BepInEx\config\UngodlyEndless\UngodlyEndless.CustomNames.json |
Yours, optional — see below. |
Qualify
By default, reach the Year 20 finale once on the save — or turn off
RequireEndingForPrestige in the config.
Bank
Open F7 → Status → Bank Prestige… and
confirm. Your carry-overs are written to prestige.json and the package is
armed. It survives game restarts and can be cancelled any time from the GUI.
Restart
Return to the title screen and start a New Game — any slot.
Payout
The moment the fresh run begins, the package pays out: banked funds plus
Level × BonusPerLevelPct on top, fans, Records, mastery, and (optionally) the
endless generation counter. The package disarms itself and a news line announces your new prestige
run.
Research data points are intentionally not carried — the game doesn't expose them as a stable global the way it does funds, fans, records and mastery, and guessing wrong would risk corrupting runs. Everything the mod touches is a verified field.
Drop a file named UngodlyEndless.CustomNames.json into
BepInEx\config\UngodlyEndless\:
{
"Names": [
"Dreamforge",
"StixStation",
"Hopewell 64"
]
}
Custom names are used first, in file order, before the built-in theme banks; duplicates against consoles already on the market are skipped automatically. Keep names to 24 characters or fewer.
MaxTotalConsoles is the permanent slot budget; at the default pacing (one console every
2 years) the default 96 lasts well past Year 150. If the tables ever fill, the scheduler halts with an
in-game message; raise the value and it resumes.SidecarSaves off, modded consoles exist for the current session only; score lock,
prestige banking and ending tools still work.GDS Real World Overhaul v1.0.1: fully compatible, any load order. Its console renaming keys off the vanilla hardware IDs, which UngodlyEndless never touches — endless consoles use fresh IDs that pass straight through its rename hook, while its renaming of the vanilla 26 keeps working normally. Its window is F6; this one is F7.
For other mods: UngodlyEndless patches only NewGamePara, LoadPara,
LoadGameData, SaveGameData, MainProcess and EndingEnd —
all as gentle prefix/postfix — and deliberately does not patch AddHard or
HiScoreSave, the two methods other mods are most likely to touch. It was written against a
full IL2CPP decompile and native disassembly of the live game build; every mechanism was verified
in the compiled code before a single line of the plugin was written.