Primer written by SoD discord’s breakfast


Why was this documentation created?

We wanted to have an honest look at what it takes to mod Shadows of Doubt, for better or worse. Admittedly, we’re only able to kinda emulate what our modders go through. We as devs will never truly know what it means to have to work with our current build as a black box. I think it’s important to note that this write up is naïve that respect, and I cannot stress enough how incredibly talented and committed our modding community is. This documentation would not exist without the conversations, struggles, and successes that our modders have achieved. And we as the internal team have greatly benefited from that. So simply put, big thanks to you all.

This guide could not have been made without posts made by folks in the discord/modding community.

I’m no doubt leaving a few names out, but suffice to say, this post is almost entirely based on efforts from the community. If you feel you’ve slipped through the cracks, or some of the modders notice a peer is being overlooked, let us know and I’ll update this immediately.


Who is this documentation for?

This documentation is intended for those with a basic to intermediate knowledge of Unity games development/scripting, and C# development. If C#, or Unity’s event life cycle is something new to you, I’d advise you to take some time and develop some small games within the engine itself. The goal here is to briefly touch on how to build an incredibly simple, and admittedly somewhat inefficient mod to illustrate how to utilize Bepinex, Harmony, and digging through our source.


Before you get started, let’s make sure we have some installations covered.

None of the installations listed below are a recommendation of version, or platform. They are simply what I have currently installed on my version of Windows 10 OS Build (19045.3693). A point I should make is that you do not need this specific IDE (development environment). The benefit of VS2022 is how simple it is to work with separate assembly references. Jetbrains Rider can also do this fantastically, but it’s a paid solution.