Getting a closer look at the game's assets and scene structure will require you to load the project in it's engine, Unity. To load the project, you'll need several tools and errors will need to be resolved.
- Download and install the above tools.
- In Asset Ripper, open your Dinkum installation folder and export all files to an empty folder.
- Once exporting is complete, open Unity 2020.3.17f1 and load the "ExportedProject" folder created by Asset Ripper.
- If prompted to enable "Safe Mode", choose "Ignore".
- Once fully loaded, open the "Monoscript" folder in the project explorer, and delete the Unity Input System folder.
- At the top of Unity's interface, go to Window > Package Manager. Near the top left of the window that opens, make sure "Packages" is set to "Unity Registry".
- In the package manager window, install the "Input System" and remove the "TextMeshPro" package.
- Close and re-open Unity to fix some reference errors.
- Make sure the console is visible on the bottom left of the Unity interface. One by one, solve each error in the console. Double clicking on an error will open the error in your IDE. See Error Resolution section for more information.
- If it says an API Update is required, you can choose either option, but choosing "No Thanks" is safe and quicker.
- Remove lines of code containing "002Ector" that are causing errors.
- Remove the TextMeshPro function that is causing an error.
- The [IsReadOnly] attribute can be safely removed where it causes errors.
- Many methods will require you to change the "public override" at the start of a function declaration to "protected override". You can do this more quickly using regex. Use the Find and Replace feature of your IDE, searching for
(public) (override \w+ (?:Serialize|Deserialize)SyncVars)
and replacing it with protected $2
.
- You can fix the integer overflow error in GetHashCode() by wrapping the multiplication inside unchecked().
- Loading into "scene1" you'll see a heirarchy of most of the game's objects. You can search by name or type at the top of the heirarchy. To search by type, use "t:componentName" where componentName is the name of the type/class attached to the object you want to find.
- Often when modding you want something you add to appear similar to what appears in the game. You can use the project loaded in Unity to see exactly what settings each component has, and if necessary you'll know what to look for and clone (instantiate) in your mod.
- In the project explorer you'll find the game's assets. Anything in the Resources folder can be easily loaded by your mod using Resources.Load("path/to/resource").
- If you want to load something that's not in the Resources folder, you'll need to find an accessible reference to it in the game's scenes. To do this, right click on the asset you want and choose "Find References in Scene".
- If your planned mod involves graphics either in the UI or in the world, you can create the graphics in the Editor in scene1 and more easily compare it to the existing elements of the game.