A .NET 9 console application that validates Single Player Tarkov (SPT) mod compatibility using the Forge API.
- Forge API Integration: Verifies mods against the official SPT Forge database
- Version Compatibility: Checks installed mod versions against SPT version requirements
- Update Detection: Identifies mods with available updates and provides download links
- Dependency Analysis: Builds dependency trees, identifies missing dependencies, and detects conflicts
- SPT Update Checking: Notifies you when a new SPT version is available
- Valid SPT installation
- Forge API key with read permissions
Download the latest release from the Releases page.
git clone https://github.com/refringe/SPT-Check-Mods.git
cd SPT-Check-Mods
dotnet build# Run from your SPT installation directory
dotnet run
# Or specify the SPT path as an argument
dotnet run /path/to/sptOn first run, you'll be prompted to enter your Forge API key. The key is securely stored for future use.
SPT Check Mods uses a pipeline-based service architecture with dependency injection:
- ApplicationService: Main orchestrator that coordinates the entire workflow
- ServerModService: Validates SPT installation and extracts SPT version from
SPTarkov.Server.Core.dll - ModScannerService: Scans both server (
SPT/user/mods) and client (BepInEx/plugins) mods - ModReconciliationService: Matches server/client components of the same mod
- ModMatchingService: Matches local mods with the Forge API using GUID and fuzzy name matching
- ModEnrichmentService: Enriches matched mods with version data from the API
- ModDependencyService: Analyzes dependency trees and identifies missing/conflicting dependencies
- ForgeApiService: HTTP client for the Forge API
- RateLimitService: Prevents API throttling
The Forge API key is stored in: %APPDATA%\SptCheckMods\apikey.txt
Application logs are stored in: %APPDATA%\SptCheckMods\logs\checkmod.log
- Server Mods: SPT mods with
AbstractModMetadatainSPT/user/mods - Client Mods: BepInEx plugins with
BepInPluginattribute inBepInEx/plugins
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
For security concerns, please review our Security Policy.
This project is licensed under the MIT License - see the LICENSE file for details.