This is a mod to make Return of the Obra Dinn Archipelago compatible.
Note: Return of the Obra Dinn will not be merged into the main Archipelago repo due to its 18+ rating; as such, you will need the host of your Archipelago session to manually generate the required Archipelago zip file instead of using the website's generator. Instructions to do so can be found here
BepInEx x86 v5.4.23.2 or higher (but not v6)
A C#/.NET compliant IDE
Unity 2017.4.37 (Optional, for creating assets)
AssetStudio v0.16.47 (Optional, for updating assets)
dnSpy v6.5.1 (Optional but recommended)
Runtime Unity Editor v5.4 (Optional but recommended)
The version of Unity used to create Return of the Obra Dinn is a bit of a unique version. It was the last to offer direct support for AssetBundles, it doesn't have direct support for Unity Package Manager, and it seems to have been scrubbed from Unity's download archive. As such, there's a lot of trial and error to get a development setup functional for modding this game. These instructions may not provide the best development workflow, but it was what I was able to get working without any of the previously mentioned features. I'll continue to tweak the setup, hopefully to improve it over time.
Download your copy of Obra Dinn and locate the game folder.
GOG Galaxy\Games\Return of the Obra DinnFollow these instructions to install and setup BepInEx.
Once BepInEx.cfg is open,
follow these instructions
to get your development environment setup.
dotnet new install BepInEx.Templates::2.0.0-be.4 --nuget-source https://nuget.bepinex.dev/v3/index.json
Once your development environment is set up, clone this project. Once cloned, add a lib folder to this project and
copy over the following files from the ObraDinn_Data/Managed folder (found within the Obra Dinn game folder) to the
lib folder:
Assembly-CSharp.dllUnityEngine.CoreModule.dllUnityEngine.dllUnityEngine.UI.dllOpen a Developer Command Prompt in Visual Studio, then run
MSBuild.exe ObraDinnArchipelago.csproj -property:Configuration=Debug
This will generate a bin/Debug/net35 folder with a obradinn_archipelago.dll file.
Copy the obradinn_archipelago.dll file to your BepInEx/plugins folder and then run the game. A message should
appear in your console saying that the plugin was loaded!
Create a new Unity project
In your assets folder, add a new folder called Editor
In the Editor folder, create a new script called Bundle
Add the following code to the Bundle script:
using UnityEditor;
using System.IO;
public class CreateAssetBundles
{
[MenuItem("Assets/Build AssetBundles")]
static void BuildAllAssetBundles()
{
string assetBundleDirectory = "Assets/AssetBundles";
if (!Directory.Exists(assetBundleDirectory))
{
Directory.CreateDirectory(assetBundleDirectory);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory,
BuildAssetBundleOptions.None,
BuildTarget.StandaloneWindows);
FileUtil.ReplaceFile("Assets/AssetBundles/archiassets", "[YOUR PROJECT'S ARCHIASSETS FILE PATH HERE]");
}
}
If you have not done so already, select the prefabs and assets you want to include in the bundle and, in the Asset Labels windows, select the "archiassets" label (create it if not already done so).
Right-click your Assets folder and click on Build AssetBundles.
Repeat Steps 5-6 whenever you add a new asset or edit an existing one.
dnSpy.exeDel)ObraDinn_Data/ManagedAssembly-CSharp.dll into the Assembly Explorer. The game files will be located under the
Assembly-Csharp.dll dropdown, under -AssetStudioGUI.exeFile, then Load Folder. Select your ObraDinn_Data folder located in your
Return of the Obra Dinn game folder, then hit Select Folder. The assets will be under the Asset List tab.Follow these instructions to get Runtime Unity Editor set up.
https://github.com/dnSpy/dnSpy-Unity-mono https://github.com/dnSpyEx/dnSpy/wiki/Debugging-Unity-Games#turning-a-release-build-into-a-debug-build