10 Commits

Author SHA1 Message Date
Exil Productions
aaa45aee99 Create build.sh 2025-11-29 17:25:30 +01:00
Exil Productions
8c15600fa9 Add help and issue reporting section to README
Added section for help, feature suggestions, and bug reports.
2025-11-17 23:16:34 +01:00
ExilProductions
0aef6e59f9 Update Copy Command to work on linux/mac 2025-11-16 05:02:22 +01:00
ExilProductions
f44a9ebf58 Edit Readme to clarify path command 2025-11-16 04:56:00 +01:00
Exil Productions
3a4f6c74b1 Add Build Batch File 2025-11-11 23:03:59 +01:00
Exil Productions
b1e5cc6f25 Made Core Logger Only Gettable 2025-11-11 22:03:48 +01:00
Exil Productions
a9493c78bd Merge branch 'master' of https://github.com/ExilProd 2025-11-11 19:08:36 +01:00
Exil Productions
d80c272b97 Add Images 2025-11-11 19:08:31 +01:00
Exil Productions
5c9a8362cb Update Usage
Updated proper namespace for ModManager
2025-11-11 18:56:27 +01:00
Exil Productions
a4ca3b18d5 Update Project and ModInfo 2025-11-11 17:03:38 +01:00
8 changed files with 106 additions and 12 deletions

BIN
Assets/ModButton.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
Assets/ModMenu.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

21
Core.cs
View File

@@ -8,18 +8,33 @@ using VMM.ModRegistry.Settings;
using VMM.ModRegistry.Settings.Types; using VMM.ModRegistry.Settings.Types;
using VMM.UI; using VMM.UI;
[assembly: MelonInfo(typeof(VMM.Core), ModInfo.Name, ModInfo.Version, ModInfo.Author, null)] [assembly: MelonInfo(typeof(VMM.Core), ModInfo.Name, ModInfo.Version, ModInfo.Author, ModInfo.DownloadLink)]
[assembly: MelonGame("Singularity Studios", "Vigil")] [assembly: MelonGame("Singularity Studios", "Vigil")]
namespace VMM namespace VMM
{ {
internal class Core : MelonMod internal class Core : MelonMod
{ {
public static MelonLogger.Instance Logger { get; private set; } public static MelonLogger.Instance Logger
{
get
{
if (_logger != null)
{
return _logger;
}
else
{
throw new System.Exception("Logger instance is not initialized yet.");
}
}
}
private static MelonLogger.Instance _logger;
public override void OnInitializeMelon() public override void OnInitializeMelon()
{ {
Logger = LoggerInstance; _logger = LoggerInstance;
LoggerInstance.Msg("Initialized."); LoggerInstance.Msg("Initialized.");
} }

View File

@@ -7,8 +7,8 @@ namespace VMM
internal class ModInfo internal class ModInfo
{ {
public const string Name = "VigilModManager"; public const string Name = "VigilModManager";
public const string Version = "1.0.0"; public const string Version = "1.0.1";
public const string Author = "Exil_S"; public const string Author = "Exil_S";
public const string DownloadLink = ""; public const string DownloadLink = "https://github.com/ExilProductions/VigilModManager";
} }
} }

View File

@@ -6,6 +6,13 @@ A mod manager for the game Vigil that provides an in-game interface for managing
*The mod is built using Melonloader 7.1* *The mod is built using Melonloader 7.1*
## Showcase
### Mod Button in Main Menu
![Mod Button](Assets/ModButton.PNG)
### Mod Management Interface
![Mod Menu](Assets/ModMenu.PNG)
## Installation ## Installation
@@ -61,7 +68,7 @@ var sliderSetting = new SliderSetting
settings.AddSetting(sliderSetting); settings.AddSetting(sliderSetting);
// Register settings with the manager // Register settings with the manager
VMM.Core.ModManager.Instance.RegisterSettings(Assembly.GetExecutingAssembly(), settings); VMM.ModRegistry.ModManager.Instance.RegisterSettings(Assembly.GetExecutingAssembly(), settings);
``` ```
@@ -70,10 +77,13 @@ VMM.Core.ModManager.Instance.RegisterSettings(Assembly.GetExecutingAssembly(), s
### Building ### Building
1. Set the `VIGIL_GAME_DIR` environment variable to your Vigil installation directory 1. Set the `VIGIL_GAME_DIR` environment variable to your Vigil installation directory
- Example: `setx VIGIL_GAME_DIR "E:\Steam\steamapps\common\Vigil"` - Example Windows: `setx VIGIL_GAME_DIR "E:\Steam\steamapps\common\Vigil"`
2. Build the project using Visual Studio or `dotnet build` 2. Build the project using Visual Studio or `dotnet build`
3. The post-build event automatically copies the compiled DLL to the game's Mods folder 3. The post-build event automatically copies the compiled DLL to the game's Mods folder
### Need help, suggest a feature or found a bug?
Open up a issue and tag it with the fitting tags
## License ## License
This project is licensed under the Apache License 2.0. See LICENSE.txt for the full license text. This project is licensed under the Apache License 2.0. See LICENSE.txt for the full license text.

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework> <TargetFramework>netstandard2.1</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
@@ -9,12 +9,13 @@
<AssemblyVersion>1.0.0.0</AssemblyVersion> <AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion> <FileVersion>1.0.0.0</FileVersion>
<NeutralLanguage>en-US</NeutralLanguage> <NeutralLanguage>en-US</NeutralLanguage>
<AssemblyName>VigilModManagerML</AssemblyName> <AssemblyName>VigilModManager</AssemblyName>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Core.cs" /> <Compile Include="Core.cs" />
<Compile Include="ModInfo.cs" />
<Compile Include="ModRegistry\ModEntry.cs" /> <Compile Include="ModRegistry\ModEntry.cs" />
<Compile Include="ModRegistry\ModManager.cs" /> <Compile Include="ModRegistry\ModManager.cs" />
<Compile Include="ModRegistry\Settings\ISettingsElement.cs" /> <Compile Include="ModRegistry\Settings\ISettingsElement.cs" />
@@ -390,8 +391,16 @@
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup> </PropertyGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent"> <Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="COPY &quot;$(TargetPath)&quot; &quot;$(VIGIL_GAME_DIR)\Mods&quot;" />
<!-- Windows -->
<Exec Condition="'$(OS)' == 'Windows_NT'"
Command="copy &quot;$(TargetPath)&quot; &quot;$(VIGIL_GAME_DIR)\Mods&quot;" />
<!-- Linux/Mac -->
<Exec Condition="'$(OS)' != 'Windows_NT'"
Command="cp &quot;$(TargetPath)&quot; &quot;$(VIGIL_GAME_DIR)/Mods&quot;" />
</Target> </Target>
</Project> </Project>

28
build.bat Normal file
View File

@@ -0,0 +1,28 @@
@echo off
echo Building VigilModManager...
if "%VIGIL_GAME_DIR%"=="" (
echo ERROR: VIGIL_GAME_DIR environment variable is not set!
echo Please set VIGIL_GAME_DIR to your Vigil game installation directory.
echo Example: set VIGIL_GAME_DIR=C:\Games\Vigil
pause
exit /b 1
)
echo Using Vigil game directory: %VIGIL_GAME_DIR%
dotnet build VMM.csproj --configuration Release
if %ERRORLEVEL% EQU 0 (
echo.
echo Build completed successfully!
echo The mod DLL has been copied to: %VIGIL_GAME_DIR%\Mods\
) else (
echo.
echo Build failed! Please check the error messages above.
pause
exit /b 1
)
pause

32
build.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# VigilModManager build script for Linux
echo "Building VigilModManager..."
# Check if VIGIL_GAME_DIR is set
if [ -z "$VIGIL_GAME_DIR" ]; then
echo "ERROR: VIGIL_GAME_DIR environment variable is not set!"
echo "Please set VIGIL_GAME_DIR to your Vigil game installation directory."
echo "Example: export VIGIL_GAME_DIR=\$HOME/.local/share/Steam/steamapps/common/Vigil"
exit 1
fi
echo "Using Vigil game directory: $VIGIL_GAME_DIR"
# Build the project
dotnet build VMM.csproj --configuration Release
BUILD_EXIT_CODE=$?
if [ $BUILD_EXIT_CODE -eq 0 ]; then
echo
echo "Build completed successfully!"
MOD_DIR="$VIGIL_GAME_DIR/Mods"
mkdir -p "$MOD_DIR"
echo "The mod DLL has been copied to: $MOD_DIR"
else
echo
echo "Build failed! Please check the error messages above."
exit 1
fi
read -rp "Press Enter to exit..."