Skip to content

Commit e014965

Browse files
authored
Merge pull request #1 from sirkingbinx/master
1.2.0
2 parents de4127f + c11908b commit e014965

8 files changed

Lines changed: 209 additions & 203 deletions

File tree

CapuchinTemplate.csproj

Lines changed: 16 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.1</TargetFramework>
4+
<TargetFramework>net6.0</TargetFramework>
55
<LangVersion>8.0</LangVersion>
6-
<UseWindowsForms>true</UseWindowsForms>
76
</PropertyGroup>
87

98
<ItemGroup>
@@ -12,102 +11,39 @@
1211
<None Remove="Content\**" />
1312
</ItemGroup>
1413

14+
<!-- The references are currently fucked, give me a minute to fix them -->
15+
1516
<ItemGroup>
17+
<PackageReference Include="BepInEx.AssemblyPublicizer.MSBuild" Version="0.4.2" PrivateAssets="all" />
18+
1619
<Reference Include="0Harmony">
17-
<HintPath>$(BepInExAssemblyPath)\0Harmony.dll</HintPath>
18-
</Reference>
19-
<Reference Include="AsmResolver">
20-
<HintPath>$(BepInExAssemblyPath)\AsmResolver.dll</HintPath>
21-
</Reference>
22-
<Reference Include="AsmResolver.DotNet">
23-
<HintPath>$(BepInExAssemblyPath)\AsmResolver.DotNet.dll</HintPath>
20+
<HintPath>$(MelonAssemblyPath)\0Harmony.dll</HintPath>
2421
</Reference>
25-
<Reference Include="AsmResolver.PE">
26-
<HintPath>$(BepInExAssemblyPath)\AsmResolver.PE.dll</HintPath>
27-
</Reference>
28-
<Reference Include="AsmResolver.PE.File">
29-
<HintPath>$(BepInExAssemblyPath)\AsmResolver.PE.File.dll</HintPath>
30-
</Reference>
31-
<Reference Include="Assembly-CSharp">
22+
23+
<Reference Include="Assembly-CSharp" Publicize="true">
3224
<HintPath>$(GameAssemblyPath)\Assembly-CSharp.dll</HintPath>
3325
</Reference>
34-
<Reference Include="AssetRipper.CIL">
35-
<HintPath>$(BepInExAssemblyPath)\AssetRipper.CIL.dll</HintPath>
36-
</Reference>
26+
<!-- Publicizing makes all of the fields and methods in the assembly public so you can use them. Don't abuse it! -->
3727
<Reference Include="AssetRipper.Primitives">
38-
<HintPath>$(BepInExAssemblyPath)\AssetRipper.Primitives.dll</HintPath>
39-
</Reference>
40-
<Reference Include="BepInEx">
41-
<HintPath>$(BepInExAssemblyPath)\BepInEx.Core.dll</HintPath>
42-
</Reference>
43-
<Reference Include="BepInEx.Preloader.Core">
44-
<HintPath>$(BepInExAssemblyPath)\BepInEx.Preloader.Core.dll</HintPath>
45-
</Reference>
46-
<Reference Include="BepInEx.Unity.Common">
47-
<HintPath>$(BepInExAssemblyPath)\BepInEx.Unity.Common.dll</HintPath>
48-
</Reference>
49-
<Reference Include="BepInEx.Unity.IL2CPP">
50-
<HintPath>$(BepInExAssemblyPath)\BepInEx.Unity.IL2CPP.dll</HintPath>
51-
</Reference>
52-
<Reference Include="Cinemachine">
53-
<HintPath>$(GameAssemblyPath)\Cinemachine.dll</HintPath>
54-
</Reference>
55-
<Reference Include="Cpp2IL.Core">
56-
<HintPath>$(BepInExAssemblyPath)\Cpp2IL.Core.dll</HintPath>
57-
</Reference>
58-
<Reference Include="Disarm">
59-
<HintPath>$(BepInExAssemblyPath)\Disarm.dll</HintPath>
60-
</Reference>
61-
<Reference Include="Gee.External.Capstone">
62-
<HintPath>$(BepInExAssemblyPath)\Gee.External.Capstone.dll</HintPath>
63-
</Reference>
64-
<Reference Include="Iced">
65-
<HintPath>$(BepInExAssemblyPath)\Iced.dll</HintPath>
28+
<HintPath>$(MelonAssemblyPath)\AssetRipper.Primitives.dll</HintPath>
6629
</Reference>
6730
<Reference Include="Il2CppInterop.Common">
68-
<HintPath>$(BepInExAssemblyPath)\Il2CppInterop.Common.dll</HintPath>
31+
<HintPath>$(MelonAssemblyPath)\Il2CppInterop.Common.dll</HintPath>
6932
</Reference>
7033
<Reference Include="Il2CppInterop.Generator">
71-
<HintPath>$(BepInExAssemblyPath)\Il2CppInterop.Generator.dll</HintPath>
34+
<HintPath>$(MelonAssemblyPath)\Il2CppInterop.Generator.dll</HintPath>
7235
</Reference>
7336
<Reference Include="Il2CppInterop.HarmonySupport">
74-
<HintPath>$(BepInExAssemblyPath)\Il2CppInterop.HarmonySupport.dll</HintPath>
37+
<HintPath>$(MelonAssemblyPath)\Il2CppInterop.HarmonySupport.dll</HintPath>
7538
</Reference>
7639
<Reference Include="Il2CppInterop.Runtime">
77-
<HintPath>$(BepInExAssemblyPath)\Il2CppInterop.Runtime.dll</HintPath>
40+
<HintPath>$(MelonAssemblyPath)\Il2CppInterop.Runtime.dll</HintPath>
7841
</Reference>
7942
<Reference Include="Il2Cppmscorlib">
8043
<HintPath>$(GameAssemblyPath)\Il2Cppmscorlib.dll</HintPath>
8144
</Reference>
82-
<Reference Include="LibCpp2IL">
83-
<HintPath>$(BepInExAssemblyPath)\LibCpp2IL.dll</HintPath>
84-
</Reference>
8545
<Reference Include="MelonLoader">
86-
<HintPath>..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Capuchin\MelonLoader\net35\MelonLoader.dll</HintPath>
87-
</Reference>
88-
<Reference Include="Mono.Cecil">
89-
<HintPath>$(BepInExAssemblyPath)\Mono.Cecil.dll</HintPath>
90-
</Reference>
91-
<Reference Include="Mono.Cecil.Mdb">
92-
<HintPath>$(BepInExAssemblyPath)\Mono.Cecil.Mdb.dll</HintPath>
93-
</Reference>
94-
<Reference Include="Mono.Cecil.Pdb">
95-
<HintPath>$(BepInExAssemblyPath)\Mono.Cecil.Pdb.dll</HintPath>
96-
</Reference>
97-
<Reference Include="Mono.Cecil.Rocks">
98-
<HintPath>$(BepInExAssemblyPath)\Mono.Cecil.Rocks.dll</HintPath>
99-
</Reference>
100-
<Reference Include="MonoMod.RuntimeDetour">
101-
<HintPath>$(BepInExAssemblyPath)\MonoMod.RuntimeDetour.dll</HintPath>
102-
</Reference>
103-
<Reference Include="MonoMod.Utils">
104-
<HintPath>$(BepInExAssemblyPath)\MonoMod.Utils.dll</HintPath>
105-
</Reference>
106-
<Reference Include="SemanticVersioning">
107-
<HintPath>$(BepInExAssemblyPath)\SemanticVersioning.dll</HintPath>
108-
</Reference>
109-
<Reference Include="StableNameDotNet">
110-
<HintPath>$(BepInExAssemblyPath)\StableNameDotNet.dll</HintPath>
46+
<HintPath>$(MelonAssemblyPath)\MelonLoader.dll</HintPath>
11147
</Reference>
11248
<Reference Include="Unity.InputSystem">
11349
<HintPath>$(GameAssemblyPath)\Unity.InputSystem.dll</HintPath>
@@ -136,14 +72,8 @@
13672
<Reference Include="UnityEngine.ClothModule">
13773
<HintPath>$(GameAssemblyPath)\UnityEngine.ClothModule.dll</HintPath>
13874
</Reference>
139-
<Reference Include="UnityEngine.ClusterInputModule">
140-
<HintPath>$(GameAssemblyPath)\UnityEngine.ClusterInputModule.dll</HintPath>
141-
</Reference>
142-
<Reference Include="UnityEngine.ClusterRendererModule">
143-
<HintPath>$(GameAssemblyPath)\UnityEngine.ClusterRendererModule.dll</HintPath>
144-
</Reference>
14575
<Reference Include="UnityEngine.CoreModule">
146-
<HintPath>$(GameAssemblyPath)\UnityEngine.CoreModule.dll</HintPath>
76+
<HintPath>$(GameAssemblyPath)\UnityEngine.CoreModule.dll</HintPath>
14777
</Reference>
14878
<Reference Include="UnityEngine.CrashReportingModule">
14979
<HintPath>$(GameAssemblyPath)\UnityEngine.CrashReportingModule.dll</HintPath>
@@ -301,9 +231,6 @@
301231
<Reference Include="UnityEngine.VideoModule">
302232
<HintPath>$(GameAssemblyPath)\UnityEngine.VideoModule.dll</HintPath>
303233
</Reference>
304-
<Reference Include="UnityEngine.VirtualTexturingModule">
305-
<HintPath>$(GameAssemblyPath)\UnityEngine.VirtualTexturingModule.dll</HintPath>
306-
</Reference>
307234
<Reference Include="UnityEngine.VRModule">
308235
<HintPath>$(GameAssemblyPath)\UnityEngine.VRModule.dll</HintPath>
309236
</Reference>
@@ -313,8 +240,5 @@
313240
<Reference Include="UnityEngine.XRModule">
314241
<HintPath>$(GameAssemblyPath)\UnityEngine.XRModule.dll</HintPath>
315242
</Reference>
316-
<Reference Include="WasmDisassembler">
317-
<HintPath>$(BepInExAssemblyPath)\WasmDisassembler.dll</HintPath>
318-
</Reference>
319243
</ItemGroup>
320244
</Project>

Directory.Build.Props

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<Project>
3+
<!-- This is adapted from Gorilla Tag modding's MSBuild config, it should feel familiar -->
34
<PropertyGroup>
45
<GamePath>C:\Program Files (x86)\Steam\steamapps\common\Capuchin</GamePath>
5-
<GameAssemblyPath>$(GamePath)\BepInEx\interop</GameAssemblyPath>
6-
<BepInExAssemblyPath>$(GamePath)\BepInEx\core</BepInExAssemblyPath>
7-
<PluginsPath>$(GamePath)\BepInEx\plugins</PluginsPath>
8-
</PropertyGroup>
9-
<PropertyGroup Condition="'$(CI)'=='TRUE'">
10-
<GameAssemblyPath>.\Libs</GameAssemblyPath>
11-
<BepInExAssemblyPath>.\Libs</BepInExAssemblyPath>
12-
<PluginsPath>.\Libs</PluginsPath>
13-
<WarningLevel>0</WarningLevel>
6+
<GameAssemblyPath>$(GamePath)\MelonLoader\Il2CppAssemblies</GameAssemblyPath>
7+
<MelonAssemblyPath>$(GamePath)\MelonLoader\net6</MelonAssemblyPath>
8+
<PluginsPath>$(GamePath)\Mods</PluginsPath>
149
</PropertyGroup>
1510
</Project>

Directory.Build.Targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<Project>
33
<Target Name="CopyToPlugins" AfterTargets="Build" Condition="'$(CI)'!='TRUE'">
4-
<Copy SourceFiles="$(TargetPath)" DestinationFiles="$(PluginsPath)\Mod.dll" />
4+
<Copy SourceFiles="$(TargetPath)" DestinationFiles="$(PluginsPath)\$(ProjectName)\$(TargetFileName)" />
55
<Message Text="Copied to Plugins" Importance="high"/>
66
</Target>
77
</Project>

Init.cs

Lines changed: 0 additions & 61 deletions
This file was deleted.

LICENSE.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2025 - 2026 Capuchin Modding Community
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

Patches/HarmonyPatcher.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

Plugin.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
using BepInEx.Logging;
1+
using CapuchinTemplate;
22
using MelonLoader;
33
using UnityEngine;
44

5+
[assembly: MelonInfo(typeof(Plugin), ModInfo.Name, ModInfo.Version, ModInfo.Author)]
6+
[assembly: MelonGame("Duttbust", "Capuchin")]
57
namespace CapuchinTemplate
68
{
7-
public class Plugin : MonoBehaviour
9+
public static class ModInfo
810
{
9-
public static Plugin instance;
10-
11-
void Start()
11+
public const string UUID = "yourname.yourmod";
12+
public const string Name = "Mod";
13+
public const string Author = "Your Name";
14+
public const string Version = "1.0.0";
15+
}
16+
17+
public class Plugin : MelonMod
18+
{
19+
public override void OnInitializeMelon()
1220
{
13-
instance = this;
14-
1521
// Add your startup code here, initialize assets, check configurations, etc.
16-
WriteLine("Hello world");
22+
Debug.Log("Hello world");
1723
}
18-
19-
public void WriteLine(string text) =>
20-
Debug.Log(text)
2124
}
2225
}

0 commit comments

Comments
 (0)