Tools that I used
- BepInex: this tool is a plugin / framework for modding in the game engine Unity.
This framework was vital to start modding.
- Harmony 2: Along with BepInex, this is a library that is vital for modding.
The library allows to edit functions before, during and after they are used.
- LethalLib: It is a specific library for a lot of features to simplify modding in Lethal Company.
I used this library to make it easier to edit items and edit info of areas in the game.
- UnityExplorer: an in-game UI for easier debugging and seeing how the game works.
This made it easier to play test and debug if there were any problems when playing with the mod,
as the main problem with modding is debugging.
- DnSpy: It is a debugger for assemblies. I used this tool for looking at post compiled code,
so I can edit it in my mod.
- LethalCompanyUnityTemplate: It is a Unity tool where you can create items for the game.
The project was very handy to make some items for the game, I made the corpses into items here.
- AssetRipper: It is a tool to get assets from Unity files. I used this tool to get the corpses of the game,
so I can use them earlier when they are available and change them into its own item via the LethalCompanyUnityTemplate tool.
Approaching coding structures
- Starting to structure this project code, I had to take in mind a couple of other aspects like tools,
framework, the game I am modding on and the Unity engine.
With that I also wanted my project to be able to interact and use other mods without breaking functionality of other mods.
The primary function of this mod is only used at the start up of the game so it won’t take up resources during the actual main gameplay.
- For the main mechanic of this project.
To make sure that the user had enough chances and options to make sure the project ran smoothly.
good example would be the ban lists. You have a list for preventing an item from being transformed,
but you also have the option to ban transformed items from being used while the game is running.
This makes it easier for the user to play the game,
so it has no need to restart the game to make this mod run the way it wants to.