A combat and post-game overhaul mod for the Steam version of Oninaki.
The primary goal of this mod is to improve the overall pace and balance of combat, as well as to improve and expand post-game activities. It also fixes a number of technical and quality of life issues.
If you have played Oninaki before and thought that something was missing, or that the potential of the game's systems was wasted, this mod is for you.
The full list of changes can be found in CHANGES.md
.
To install the mod, grab the latest release from the
releases page and
unzip it to C:\Program Files (x86)\Steam\steamapps\common\ONINAKI
(or wherever
your Oninaki installation is located).
To uninstall the mod, simply instruct Steam to verify the game's files.
Any kind of constructive feedback and/or help requests are very welcome on the issue tracker or on our Discord server.
- Text throughout the game may have seemingly random
n
letters. This is due to a Unity Assets Bundle Extractor bug. This does not affect the game functionally.
This section describes the process for developing Oninaki mods.
The vast majority of the game is configurable through the data stored in the
ONINAKI_Data\StreamingAssets\STEAM\common\masterdata
file. The contents of
this file have been dumped as JSON in the
Assets\common\masterdata
directory in this
repository, and this is where most modding takes place for this mod. You can
freely edit these files to experiment with modding the game's parameters.
When you want to actually test your changes in the game, you need to use the Unity Assets Bundle Extractor tool as follows:
- Select
File
->Open
and open themasterdata.decomp
file in this repository. - Press the
Info
button. - Select
Tools
->Get script information
and open theAssembly-CSharp.dll
file in this repository. - Wait for the console window that appears to close.
- Select all items in the
Assets
box. - Press
Import Dump
and open themasterdata
directory in this repository. - Press
OK
to start the import. (This can take a bit.) - Press
OK
to close theAssets info
window. - Select
File
->Save
, navigate to your game directory, and overwrite themasterdata
file there. (You may want to create a backup first.)
You can now start the game and you should see the effect(s) of any changes you have made.
Those aspects of the game that cannot be changed through data modding can
almost certainly be changed by modifying the game's code (Unity scripts). These
are compiled into the ONINAKI_Data\Managed\Assembly-CSharp.dll
file.
The modded version of this file is in the Code
directory in this
repository.
Modding this file is a bit trickier; it will require C# and possibly CIL knowledge. You will need to use the dnSpy tool as follows:
- Select
File
->Open
and open theAssembly-CSharp.dll
file in this repository. - Make any modifications you wish.
- Select
File
->Save Module...
, navigate to your game directory, and overwrite theAssembly-CSharp.dll
file there. (You may want to create a backup first.)
You can now start the game and you should see the effect(s) of any changes you have made.
Using the dnSpy tool, it is possible to debug the game's Unity scripts.
To do this, you will need to overwrite the game's
MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll
file with
the file in this repository. (You may want to
create a backup first.)
Next, open up dnSpy and do the following:
- Make sure you have the version of
Assembly-CSharp.dll
that the game is actually using opened. - Select
Debug
->Start Debugging...
. - Set
Debug engine
toUnity
, pointExecutable
toONINAKI.exe
, and pressOK
. - Wait for the game to get to the title screen.
- Select
Debug
->Start Debugging...
. - Set
Debug engine
toUnity (Connect)
and pressOK
.
If everything worked out, you should now be attached to the game. (If something is not working, try running dnSpy as administrator.)
I work on open source software projects such as this one in my spare time, and make them available free of charge under permissive licenses. If you like my work and would like to support me, you might consider sponsoring me. Please only donate if you want to and have the means to do so; I want to be very clear that all open source software I write will always be available for free and you should not feel obligated to donate or pay for it in any way.