This page applies to any SPT version
In order to write client mods for SPT (or any other Unity game with BepInEx) you will need to know how to program in C#. See the resources section to get started if you are new to programming.
Download Visual Studio.Available at the top, then click Install under Visual Studio Community 2022.Workloads tab until you see Game development with Unity. Check the box next to that workload, and click Install in the bottom right.Assets section, and select either dn-spy-net-win32.zip or dn-spy-net-win64.zip depending on your system.C:\dnSpy folder, then drag the contents of the zip you downloaded into that folder.dnSpy.exe and create a shortcut, then place it on your desktop.[game folder]/Development .
Mono version of BIE 5.X of Unity Explorer. Install it like any other client mod.[game folder]/BepInEx/config and open BepInEx.cfg, set LogChannels = all and Enabled = true. This will cause the BepInEx console to launch when you launch SPT. All logging done in your mod will appear in this console.We do this so we can study the Tarkov source code to see what we may want to change, as well as where to change it. I suggest creating a Visual Studio project to contain the decompiled source. Fortunately, dnSpy has the ability to do this for us!
SPT400_assembly .File > Open and navigate to this path: [game folder]/EscapeFromTarkov_Data/Managed, select the Assembly-CSharp.dll file and click Open.Assembly-CSharp.dll file is open, you should see it in dnSpy. You can look through the code inside dnSpy if you prefer, but I suggest creating a Visual Studio project to hold it. You can do so by going to File > Export to Project… then selecting the folder we created in step 1.Assembly-CSharp.sln in the project folder dnSpy created to do so.You can use CTRL + Shift + F to search the entire solution for code. Go ahead and try and search for something like “Jump” or “Door” to see what you can dig up!
Note: If you would prefer to copy the SPTClientModExamples project and rename it instead of making a new one from scratch, skip step 3 and 3.1 and follow the steps in the README in the repo instead: https://github.com/Jehree/SPTClientModExamples
File > New > Project.Class Library. Make sure it is the one for C# development..NET Standard 2.1, click Create in the bottom right..cs file in your project to Plugin.cs, and create a Patches folder.Properties on the left in the Solution Explorer area, and click on Build Events.Post-build event command line box, and set Run the post build event to Always.
"$(TargetPath)" "$(ProjectDir)\..\..\BepInEx\plugins\$(TargetFileName)"BepInEx/plugins when you build it with Build > Build Solution, so you don’t have to manually place it there..dll file from BepInEx/plugins, make a small change to your code like adding a comment, then build it.

.csproj fileWe need to add some references so that classes in the EFT source code as well as some helper SPT classes can be referenced in your mod. Drakia has a convenient list of starting references, so we are going to add those. Do note that these are not all the refs that you can use. You can reference any .dll file in EscapeFromTarkov_Data/Managed, so feel free to add more if needed!
[game folder]/Development/[your mod name], and open the .csproj file with a text editor (Notepad is fine).</ItemGroup> tag and contents as shown below in the screenshot with Drakia’s refs.

Build > Build Solution or press F6 to build your mod. It should be automatically copied into BepInEx/plugins, so all you should have to do is build and launch the game to test.To those who have helped me learn all this shiz and gave me feedback on this doc, you guys ROCK. Thank you so much!
DrakiaXYZ
Cj
Arys
Kiki
mpstark
Tyfon