Modes can interrupt the game. They can do it in unexpected ways. Use them at your own risk. There is nothing in the game that prevents someone from doing something harmful to your computer from the mod – so make sure you trust the source of any mode you install.
Definite guide for modding
Although created in Unity, Noble Fates uses a number of technologies to make it highly interchangeable.
First, we have developed a data definition language called OCTDAT that we use to specify almost all values and settings for almost everything in the game. You are free to extend existing OCTDATS or add new ones. In most cases, you can create a highly effective mode by simply inheriting the existing OCTDAT and changing some values. No code is required to add new content plugged into an existing system! OCTDAT format is a custom text-based format. The next article will talk more about the format.
Next, we have the extensible OCTSCRIPT system that we use to script largely what happens in Noble Fates. These can be written without code, but they require knowledge of available conditions and operations and how they work – we will better document this over time, but for now, the content of the game should serve as a good reference.
Additionally, we use the Trilib library to load all our 3d assets from .fbx files at runtime – which means you can export models in fbx format from Blender (or other programs), set the correct OCTDAT, and it will. Load directly into the game.
Sound, texture, and other content such as music load or stream from the StreamingData folder.
To promote the highest level of mobility, we have shipped 90% of Noble Fates content as loose files loaded from disk. If you browse your Steam folder (E: SteamLibrary steamapps common Noble Fates for me) and then navigate to the Noble Fates_Data StreamingAssets folder, you will find all our content.
All OCTDATS are included in the OctDats folder and all art for the game is in the Art folder. You can load them into any editor, make changes to them and update them here – but note that they will be overwritten when we patch. It’s okay to experiment directly with these files, but it’s a good idea to develop the mod and keep it in the mod folder as outlined below!
First set the respect for an unmatched socialization to zero. This mode is as simple as that. It takes advantage of the OCTDAT system to increase the need for existing socialization and changes the values of unmetOpinion and subceededOpinion (when the need decreases). You can find it here.
The second game adds a table plant decoration – it includes some .fbx files and an OCTDAT that adds them to PropManager. This is content mode only – no code required. You can find it here.
The third random drop connects the world as if it had been thrown by a wandering wanderer. In this mode there is a fbx just for the drop and a DLL which is created using the classes in the game to add a new system, a set of actors and a set of behaviors. This is a more complicated mode – but shows how to build a new system. You can find it here.
Where the mods go
The game loads mods from two places – first, you can place them in the mods folder
- C: users[name]D AppData LocalLow Xobermon, LLC Noble Fates
And the game will load the mode from that folder.
Secondly, you can place the mode next to where the game is installed in Steam. The game will load this mode first.
In addition to the two folders, the game supports load order as specified by prefixing each mode with a number with underscore. For example, the contents of the 01_dropMod folder will load before 02_noSocialization.
Developing, testing, and installing modes
Generally, any exceptions or errors while playing the game will cause the game to shut down to prevent data corruption. While developing or installing the mode, disabling this can be beneficial, so we’ve added a development branch to the game on Steam. Note: Performance will be worse and the game will continue after errors in this mode, so we do not recommend using it for your normal playthrough.
In addition, this mode enables the debug menu, which contains a lot of items to create and test in Noble Fats. Press F8 to enable debug tools and use the tools at your leisure. Note: Some devices may interrupt your game – they are not tested at the same level as normal games.
This type of content and code extension of the game can be done without deactivating the game dll and without extending the existing code – we will talk about how you can change the existing code behavior in the next article. We will also talk in another article about what game classes you can get from and how they work.
Thanks for reading and happy modding!