我先前发了一个教程 SPT4.0修改mod武器数值的方法
怎么想,对IL代码搞逆向都比直接编辑C#代码要麻烦得多吧。这样还不如直接拉源码编译了。
干脆就写一个编译SPT4.0mod的教程吧。
我们所需的东西只有两个
-
文本编辑器(随便哪一个都可以,VSCode、NotePad++甚至记事本)
-
.Net 9 SDK
当然,如果你已经安装了完整的.NET开发环境了(VisualStudio或者Rider,之类的IDE),那你应该也不需要看这个教程啦
安装 .NET9 SDK
这个可以在微软官方的下载页下载到https://dotnet.microsoft.com/en-us/download/dotnet/9.0
是SDK不是运行时哦
体积200多MB,比一些mod的体积都要小
安装也没什么难度,和安装软件一样,很简单的,所以这里就略过
编译
我们以SPT官方的mod例程1 “Logging” 为例
由于其余的依赖SPT团队都已经通过nuget包组织好了,所以我们编译的关键就只有两个
包含源码的.cs文件和用于组织项目的.csproj文件
然后win10用户shift+鼠标右键“在此处打开Powershell窗口”![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/88838944_1761507393.png)
接下来只需要命令
dotnet build -c Release
如果装上了,而且代码没问题的话,你就可以在bin\Release\目录下找到编译的.dll文件了
在mod目录(SPT/user/mods)新建一个文件夹,把编译的dll放进去,启动服务端的时候就可以自动加载了
那要怎么编写mod的代码呢?
这个可以直接参考spt团队的例程仓库 https://github.com/sp-tarkov/server-mod-examples
涵盖了大多数mod功能的实现例子,甚至包括.NET Hook方法等比较高级的用法,比较完善了
对于网络特殊情况的问题
nuget是有国内源的,后面这些你当我在放屁
只需要
dotnet nuget add source https://nuget.cdn.azure.cn/v3/index.json -n AzureChina
我还没有试验过有没有可能部分地区部分运营商连接nuget包源服务器有问题,但以防万一我还是在这里补充一下
如果你编译后出现这样的情况
这个就是连接nuget源服务器的网络问题。会解决网络问题的可以自行解决,无法解决的可以照我说的做。
用文本编辑器打开.csproj文件确定依赖的包
我们可以看到引用到了SPT的三个包,我们其实不一定非要通过nuget获取,因为它们就在我们的SPT服务端目录下存在。
那我们把用到的复制到源码文件夹,然后修改.csproj文件
比如
<PackageReference Include="SPTarkov.Common" Version="4.0.1" />
我们就可以改为
<Reference Include="SPTarkov.Common"> <HintPath>SPTarkov.Common.dll</HintPath> </Reference>
然后注意,无论如何都要复制SemanticVersioning.dll然后在.csproj中加上
<Reference Include="SemanticVersioning"> <HintPath>SemanticVersioning.dll</HintPath> </Reference>
修改完大概就像这样,再次尝试编译应该就可以通过了

![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/11090400_1761507182.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/33632717_1761507474.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/46184160_1761507612.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/23702777_1761507844.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/9095031_1761509036.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/22807660_1761509122.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/35384208_1761509140.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/10121956_1761508146.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/54280281_1761508248.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/13270357_1761508340.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/43179245_1761508843.png)
![[mod教程]编译一个SPT4.0mod的教程](https://ods5.oddba.cn/user_files/199907/screenshot/84166326_1761508930.png)







就服这种技术大佬!