Ungodly Streets of Rogue AI v1.0.0

Living with it

FAQ and credits

Multiplayer, other mods, achievements, the level editor, and who made what.

questions14authorStixsworldHDlicencefree to use

Installing

Do I need BepInEx if I only want this one mod?

Yes. The plugin is a BepInEx plugin — it is a DLL that BepInEx loads into the running game. Without the loader there is nothing to load it, and the file just sits on disk. There is no standalone version and there will not be one; writing one would mean editing the game's own files, which is exactly what this approach avoids.

I already have BepInEx for another mod. Do I install it again?

No — one BepInEx install serves every mod for that game. Check its version in the first line of BepInEx\LogOutput.log. If it starts with 5.4, skip to Part 3 and just drop the DLL in. If it says 6.0.0, you will need to move to BepInEx 5 for this plugin to load.

Can I use a mod manager instead of doing this by hand?

If a manager supports Streets of Rogue and BepInEx 5, it will handle this fine — the plugin is a single DLL with no dependencies beyond BepInEx itself, which is the easiest possible case. Manual installation is documented here because it always works and because it teaches you where everything is when you need to diagnose something.

Is the Google Drive mirror safe?

It is on my own paid Google Drive account — I uploaded it, I control it, and it is the same archive as the direct download byte for byte. No ads, no wrappers, no countdown pages. It is also usually faster, since Google has edge servers nearly everywhere. If you want certainty either way, the downloads page lists SHA-256 checksums for both the archive and the DLL inside it.

Playing

Is there a video of it running?

Yes — it is embedded on the see it in action page and on the overview, with a breakdown of what to look for in the footage. The still frame you see before pressing play is served from this website, so nothing is requested from YouTube until you actually click it. You can also watch it on YouTube directly.

Does this break my saves?

No. Nothing is written to your saves — all per-character state lives in memory for the duration of a level, and all settings live in one file under BepInEx\config\. You can add or remove the plugin from an existing save freely, in either direction.

Which difficulty preset should I start on?

Hardened — it is the default and the intended experience. If it feels like too much of a jump, Streetwise sits close to the stock game and lets you get used to the structural changes (cover, bursts, suspicion) without a difficulty spike. Full descriptions are on the panel guide.

The numbers on the status readout keep climbing. Is something wrong?

No — several of them are cumulative counters, not live measurements. sight edits in particular climbs constantly because each one is a single adjustment to a range check the game was already performing. The rows to watch for live state are behaviour and cost. Every field is explained on the panel guide.

Does it affect Steam achievements?

The plugin does not touch the achievement system, the scoring system or the game's mutators — it adjusts AI decision points and nothing else. It also does not enable any mutator on your behalf, so it does not flag your run the way choosing one in the menu does.

Will it work in co-op?

Yes, and carefully. Streets of Rogue is host-authoritative — every NPC decision gates on the server player — so this plugin makes decisions on the authority only, and a client defers rather than making choices the host would overwrite a moment later. In practice that means the host's settings are the ones shaping NPC behaviour. The network line on the status readout shows live which side you are on.

Can I pause with the panel open in multiplayer?

No, and that refusal is deliberate. Time scale is local, so pausing on one machine only desynchronises you from the host. In single-player it works normally.

Does it change the level editor or the tutorial?

Not by default. The AI stands down in the tutorial, in the level editor and at the home base, because the tutorial is scripted around characters behaving in specific ways at specific moments, and level-editor testing needs to be repeatable. If you are deliberately designing a level around the new AI, you can turn the level-editor stand-down off on Core › General.

Will it run alongside my other mods?

Yes. Plugins coexist in BepInEx\plugins\, and this one only patches AI decision points. The one deliberate interaction is with other mods in the same suite: the panel refuses to open while another Ungodly panel is showing, so windows never stack.

What are the seven hooks it installs?

Three on relationships, one on movement, two on combat and one on the brain update:

Hook targets
Relationships.AssessBattle(...)      fight-or-flight, battle side
Relationships.AssessFlee(...)        fight-or-flight, flee side
Relationships.GetTeamSize(...)       how many allies count as present
Movement.HasLOSAgent(...)            line of sight between characters
Combat.ShootFar(...)                 the decision to fire at range
Combat.SetPersonalCooldown()         the gap between shots
BrainUpdate.GoalArbitrate()          the goal the character settles on

Each is applied in its own try block, so a failure in one leaves the rest running. The panel's header reports the tally as 7 ok / 0 failed, and the Diagnostics tab names any that did not bind.

Why is the config file 115 KB for 354 settings?

Because every setting carries its full plain-English explanation and its documented range into the file as comments — the same strings the panel shows. One source of truth means the file and the panel can never drift apart and tell you different things.

Credits

Plugin Ungodly Streets of Rogue AI v1.0.0 by StixsworldHD (StixsmasterHD4k)
This guide Written and built by StixsworldHD (StixsmasterHD4k). Screenshots are from a live install.
Demo footage Streets of Rogue with my Ungodly Streets of Rogue AI v1.0.0, recorded and published by StixsworldHD4k. Embedded on the see it in action page and the overview.
Design model The temperament, detection and combat-action model follows Emerald AI, and the authority model follows Emerald AI Multiplayer — both mapped onto Streets of Rogue's own systems rather than layered over them.
The game Streets of Rogue by Matt Dabrowski, published by tinyBuild.
The loader BepInEx, an open-source project by the BepInEx team. Not affiliated with this mod.
Plugin GUID com.stixsworldhd.streetsofrogue.ungodlyai

Verification

Everything shipped in v1.0.0 was mechanically checked before release:

Pre-release verification output
CFG OK: 354 settings -> 120608 bytes
numeric settings missing a documented range: 0
settings with missing/short help: 0
HOOK OK  Relationships.AssessBattle(...)
HOOK OK  Relationships.AssessFlee(...)
HOOK OK  Relationships.GetTeamSize(...)
HOOK OK  Movement.HasLOSAgent(...)
HOOK OK  Combat.ShootFar(...)
HOOK OK  Combat.SetPersonalCooldown()
HOOK OK  BrainUpdate.GoalArbitrate()
FIELD OK Relationships.agent / Movement.agent / Combat.agent / BrainUpdate.agent
ALL VERIFICATIONS PASSED

Every hook target exists in the shipped Assembly-CSharp.dll, is unambiguous, and its parameter names match what the plugin binds to. Every setting binds, every numeric one has a documented range, and every one has a real explanation. The live result on your machine is on the Diagnostics tab.

Reusing this guide

It is a plain PHP and CSS site with no database, no build step and no external dependencies. Every version number, checksum and mirror URL lives as a constant at the top of includes/site.php, so keeping it current is a one-line edit per fact.

“Ungodly madly vastly enhanced, advanced and improved.”
— StixsworldHD (StixsmasterHD4k)