Skip to content

rolling-codes/LSPDFRManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

181 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LSPDFR Manager

License: MIT .NET Release

A complete GTA V and LSPDFR command center — install and manage mods, run diagnostics, switch profiles, analyze crashes, and launch safely. Built with .NET 8 WPF + a React/TypeScript frontend.

Download Latest Release →

See the GitHub Releases page for the latest release notes.


Features

Tab What it does
Home Dashboard with launch readiness, component status, and quick-action links
Library Browse, search, filter, enable/disable, and uninstall all installed mods
Install Drag-and-drop or browse for mod archives — smart plan with conflict detection and rollback
Browse Embedded lcpdfr.com browser with one-click install queuing
Diagnostics Plugin health scanner, dependency checker, crash log analyzer
Profiles Launch profiles — switch full mod loadouts with a single click
Backups Scheduled and on-demand backups of library and config state
History Full change log of every install, uninstall, enable, and disable action
Logs Real-time LSPDFR/GTA V log viewer
OIV Tools Build OIV packages with a creator wizard, or install existing .oiv files
Mod Config Per-plugin config file editor with raw and parsed views
Settings GTA V path, backup location, behavior toggles, update checker

Detection Engine

Automatically identifies mod type from archive contents:

Mod Type Detection signal
LSPDFR Plugin plugins/lspdfr/*.dll
ASI Mod *.asi at root
Vehicle Add-On DLC dlcpacks/*/dlc.rpf
Vehicle Replace x64/levels/gta5/vehicles.rpf
Script scripts/*.cs or scripts/*.dll
EUP x64e.rpf or eup/ paths
Map *.ymap or maps/
Sound x64/audio/**/*.awc

Each detection produces a confidence score (Low / Medium / High). Low-confidence results warn before installing.

Smart Install Planner

Before any file is written, the planner builds a full install plan:

  • Detects conflicts against enabled mods, disabled mods, and .disabled files on disk
  • Surfaces overwrite risks and blocking issues in the review UI
  • Orders files by dependency priority (RPH, ELS, shared DLLs)
  • The reviewed plan is what actually executes — no double-build at install time

Safety

  • Atomic installs — any failure triggers a full rollback; no partial installs reach disk
  • Path traversal protection — archive entries validated through PathSafety before extraction
  • Enable/Disable — renames files with .disabled suffix; GTA V ignores them without deletion
  • Conflict detection — warns when incoming mod files overlap with installed mods (including disabled ones)
  • OIV path validation — install paths in OIV packages are checked for traversal and rooted-path injection before packaging or install

Tech Stack

Layer Technology
Desktop shell .NET 8 WPF (net8.0-windows)
Local API ASP.NET Core Minimal API, hosted in-process
Frontend React 19, TypeScript, Vite 8, Tailwind CSS 4
Data fetching TanStack Query v5
Routing React Router v7
Test suite xUnit (1 000+ tests)

The React SPA is built by Vite and served from wwwroot/ by the in-process ASP.NET Core host. The WPF MainWindow embeds a WebView2 that points to the local API port.


Requirements


Install

Download the ZIP from the latest release, extract, and run LSPDFRManager.exe. No installer needed. See INSTALL.txt in the ZIP for full first-run instructions.

The first run will prompt you to set your GTA V path if it is not auto-detected.


Build from Source

git clone https://github.com/rolling-codes/LSPDFRManager.git
cd LSPDFRManager
dotnet restore LSPDFRManager.sln
dotnet build LSPDFRManager.sln
dotnet test LSPDFRManager.Tests/LSPDFRManager.Tests.csproj

Frontend:

cd frontend
npm install
npm run build   # outputs to LSPDFRManager.LocalApi/wwwroot/

Self-contained release build:

dotnet publish LSPDFRManager.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish

Project Structure

LSPDFRManager/
├── Domain/          # Data models (InstalledMod, ModInfo, AppConfig, InstallPlan…)
├── Services/        # Business logic (ModDetector, FileInstaller, SmartInstallPlanner,
│                    #   BackupService, OivService, DiagnosticsOrchestrator…)
├── ViewModels/      # MVVM view models; MainViewModel orchestrates tab navigation
├── Views/           # WPF UserControls, one per tab
│   └── Components/  # Shared sub-controls (ModCard…)
├── Core/            # AppLogger, InstallQueue, UiDispatcher, PathSafety
│   └── Commands/    # IAppCommand, AsyncAppCommand
├── Features/        # Feature slices (Install, Library, OivCreatorTemplates, Updates…)
├── LSPDFRManager.LocalApi/
│   ├── Endpoints/   # Minimal API route handlers (one file per domain area)
│   ├── Dtos/        # Request/response DTOs mirroring frontend TypeScript types
│   └── wwwroot/     # Vite build output (React SPA)
├── LSPDFRManager.Shared/
│   └── Services/    # Domain logic with no WPF dependency (InstalledModFileService…)
├── frontend/        # React + TypeScript SPA (Vite, Tailwind, TanStack Query)
│   └── src/
│       ├── lib/api/ # Thin API client wrappers (one file per domain area)
│       ├── types/   # TypeScript types mirroring C# DTOs
│       └── pages/   # One page component per tab
└── LSPDFRManager.Tests/  # xUnit test suite (1 000+ tests)

Key singletons: ModLibraryService, AppConfig, InstallQueue, LspdfrStatusService

All persistent data lives in %APPDATA%\LSPDFRManager\:

  • library.json — installed mod registry
  • config.json — app settings
  • configs.json — captured mod config snapshots
  • Backups/ — ZIP backup archives
  • app.log — runtime log

Roadmap

  • Electron + Node.js migration — The next major milestone will move the application shell from WPF/WebView2 to a full Electron + Node.js architecture, removing the Windows .NET runtime dependency and enabling cross-platform distribution.

Troubleshooting

Problem Fix
Buttons invisible / blank UI Reinstall .NET 8 Desktop Runtime
Browse tab blank Install/repair WebView2 Runtime
GTA V not detected Settings → set path manually
SmartScreen warning "More info" → "Run anyway"
File blocked after extract Right-click → Properties → Unblock
Errors after update Delete %APPDATA%\LSPDFRManager\library.json to reset the library
Other Check %APPDATA%\LSPDFRManager\app.log

Contributions welcome — see CONTRIBUTING.md. Licensed MIT.

Not affiliated with Rockstar Games or the LCPDFR/LSPDFR team.

About

GTA V & LSPDFR command center — install and manage mods with smart conflict detection, OIV tools, diagnostics, profiles, and crash analysis. Built with .NET 8 WPF.

Topics

Resources

License

Code of conduct

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors