This guide will be showing you the steps on how to mod Noble Fates. We will be covering the proper setup, making your first mod, source controls, وأكثر.
This guide assumes that you have already read the NF user echo for modding. Located هنا.
I will try to keep repetition to a minimum. If there’s a reference for something it will be linked rather than explained again.
Setting up
It is recommended to use Visual Studio Code. I have made an extension for octdats to help with modding. You can search NF OctDat in VSC to get it. Alternate link هنا.
Go to Noble Fates in Steam. انقر بزر الماوس الأيمن > Noble Fates > ملكيات > Betas > Development
The Development branch supports two cmd line options. Combine both to start playing immediately.
- “-skipmenu” skips the main menu and jumps straight to a new game.
- “-skipintro” skips the intro and dumps you in-game.
Open the game folder. Create a “تعديل” folder if you don’t have one already. Make another folder for your mod.
Create a new text file and rename it MyMod.octdat, or whatever your mod name will be.
OctMod.info & Preview.png are explained هنا. This is for uploading your mod to the Steam workshop. If you do not wish to upload your mod then you can skip this part.
Open VSC and set up a workspace. You can do this by dropping the folders you want into the sidebar.
I generally keep 3 main folders here.
- …\Steam\steamapps\common\Noble Fates\Mods\ – Main game mods folder
- …\Steam\steamapps\common\Noble Fates\Noble Fates_Data\StreamingAssets\OctDats – All the games OctDats
- …\NF\MyMods\OctDats – This is my git repo folder.
When you set it how you like, ملف > Save Workspace As…
Making your first mod
Open the OctDats folder in your workspace and navigate to Settings > GameSettings.octdat
Here is the game’s Raid Chance settings slider.
{ id Oct.Settings.Game.RaidChance type SliderSettingDefinition name = Raid Chance order = -900 فئة = <Oct.Settings.Game> دقيقة = 0 max = 2 step = .1 وحدة = x defaultValue = 1 }
Let’s break this down a bit first.
The ID is specific to each object. If you want to edit an existing value in the game then you would use the same ID and TYPE. You only need to add the property/value that you wish to change.
Open your octdat and paste the below into it. Set the value to whatever you want.
Save the file and load the game.
To check this setting you must load into a new or saved game. خيارات > لعبة
{ id Oct.Settings.Game.RaidChance type SliderSettingDefinition max = 5 }
We can see here that the mod does indeed work. تهاني!
Source Control
If you are familiar with this then go ahead and skip this section. خلاف ذلك, it is highly recommended that you use source control of some kind.
I personally prefer GitLab. On Windows, I use GitHub Desktop software. It’s a nice all-in-one GUI. Simple and easy to use. مرة أخرى, this is my preference and you are welcome to use whatever you like. Even if you use CLI only.
Link to my NF GitLab for reference.
If you need help there are endless amounts of information on the net about Git and source control. Feel free to ask in the discord for help as well.
Blender
Exporting:
- Animations
- Remove the body/head
- Mark the new actions F (force user)
- Kill any NLA tracks
- Meshes
- Apply transforms
- Export settings
- FBX 7.4 binary
- Scale: .01
- Apply Scalings: FBX All
- Check !EXPERIMENTAL! Apply Transforms
- Armatures
- Uncheck Add Leaf Bones
- Primary Bone Axis: ي
- Secondary Bone Axis: -X
- Animation
- Uncheck Key All Bones
- Uncheck NLA Strips
DLL Mods
This guide assumes you have experience in C# and using Harmony/Bepin. Harmony or Bepin are not required.
I would recommend you look at the example DropsMod.
Setting up Visual Studio
You will need to download Visual Studio if you do not have it already.
خياري: Visual Studio 2017
Make sure .Net desktop development workload is checked.
At the time of writing, you should only have to add .Net Framework 4.7.1 SDK to the installation checklist.
//.NET Category .//Code tools Category
.Net Framework 4.6.1 SDK ClickOnce Publishing
.Net Framework 4.6.1 targeting pack Static analysis tools
.Net Framework 4.7.1 SDK Text Template Transformation
.Net Framework 4.7.1 targeting pack
.Net Portable Library targeting pack .//Development activities Category
C# and Visual Basic
.//Cloud, database, and serve Cat.
CLR data types for SQL Server
Data sources and service references
.//Compilers, build tools, and runtimes Cat.
C# and Visual Basic Roslyn compilers
MSBuild
ابدء
ILSpy & dotPeek are great tools to help view the game’s code. ILSpy is self-explanatory. The info on the linked page will explain how to use it. dotPeek is a separate program.
Open dotPeek. ملف > يفتح↓
…\Steam\steamapps\common\Noble Fates\Noble Fates_Data\Managed → Assembly-CSharp.dll
From here you can reference all the games code.
In Visual Studio
Startup a new project. Name it. Framework should be set to .Net Framework 4.7.1
Add or remove references as required.
Add References
In my Alchemy mod, I created 2 new commands to accompany the Alchemy job. أساسًا, this is a copy of CookItemCommand.cs
namespace Alchemy { public class SynthesizeItemCommand : CraftItemCommand { public override string RelevantSkill() => "الكيمياء"; public SynthesizeItemCommand(OctSaveInitializer initializer) : قاعدة(initializer) { } public SynthesizeItemCommand(Actor owner, WorkbenchPropActor workbench, ItemRecipe recipe) : قاعدة(owner, workbench, وصفة) { } public override string ToString() => this.partial != null ? "الكيمياء " + this.partial.item.type.GetName() : "الكيمياء " + (object)this.recipe; } }
In the octdat it is referenced as, commandType = Alchemy.SynthesizeItemCommand
After you build your project you can drop these 2 files into your mod folder. This is all you need.
هذا كل ما نشاركه اليوم من أجل هذا Noble Fates مرشد. تم إنشاء هذا الدليل وكتابته في الأصل بواسطة Satoru. في حالة فشلنا في تحديث هذا الدليل, يمكنك العثور على آخر تحديث باتباع هذا وصلة.