Simple Modding
Disclaimer
Overcooked is a trademark of Team17. By no means is any content on this site intended to infrige on any rights of Team17. Please contact me if you are concerned.Basics of the Game Structure
Overcooked! 2 is written in Unity version 2017.4.8 with no IL2CPP compilation.
The game files contain these major parts that we care about:
Overcooked2.exe
- the main executableOvercooked2_Data/StreamingAssets/Windows/
- all the Unity assets (models, textures, sounds, etc.)Overcooked2_Data/Managed/Assembly-CSharp.dll
- all the C# code used by the assets
For simple modding, we only need to edit the Assembly-CSharp.dll
.
Editing C# Code
First, we need to inspect and understand the C# code we care about. dnSpy is a great tool for this.
To edit the code, we can either
- Use dnSpy to directly edit the dll. This is the simplest method; or
- Use BepInEx to dynamically inject modified code at runtime. This requires a bit more setup, but is highly recommended for more complex code editing, because it allows you to manage your code with version control, and makes the code injection easily reproducible.
There is plenty of tutorial and documentation on how to use dnSpy and BepInEx, so I won’t go into details here.
How do I …?
The Overcooked codebase is fairly complex, so it’s not always easy to find where certain game logic is. A fair amount of investigation is needed in general to make complex mods.
Refer to the Overcooked! 2 Tech Docs for some documentation about the trickest parts of the game code.
The rest is up to your imagination and determination. Good luck!