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.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")]
namespace VMM
{
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()
{
Logger = LoggerInstance;
_logger = LoggerInstance;
LoggerInstance.Msg("Initialized.");
}

View File

@@ -7,8 +7,8 @@ namespace VMM
internal class ModInfo
{
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 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*
## Showcase
### Mod Button in Main Menu
![Mod Button](Assets/ModButton.PNG)
### Mod Management Interface
![Mod Menu](Assets/ModMenu.PNG)
## Installation
@@ -61,7 +68,7 @@ var sliderSetting = new SliderSetting
settings.AddSetting(sliderSetting);
// 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
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`
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
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>
<TargetFramework>netstandard2.1</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
@@ -9,12 +9,13 @@
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion>
<NeutralLanguage>en-US</NeutralLanguage>
<AssemblyName>VigilModManagerML</AssemblyName>
<AssemblyName>VigilModManager</AssemblyName>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Compile Include="Core.cs" />
<Compile Include="ModInfo.cs" />
<Compile Include="ModRegistry\ModEntry.cs" />
<Compile Include="ModRegistry\ModManager.cs" />
<Compile Include="ModRegistry\Settings\ISettingsElement.cs" />
@@ -392,6 +393,14 @@
</PropertyGroup>
<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>
</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..."