Files
neon-mod-manager/README.md
T
arch_agent 96f24a8b25 Neon Mod Manager v0.1 — Cyberpunk 2077 mod manager for Linux
Features:
- Enable/disable mods (.archive <-> .archive.disabled)
- Load order via filename prefixes (000_, 010_, 020_)
- Conflict detection
- Profile save/load
- Nexus Mods nxm:// protocol handler
- PyQt6 GUI, Wayland compatible
- No REDmod, no FUSE, no Wine prefix
2026-07-13 10:24:16 +02:00

150 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎮 Neon Mod Manager
A Cyberpunk 2077 mod manager for Linux. Built with PyQt6.
## Why?
Because existing mod managers (Mod Organizer 2 / Fluorine) have problems on Linux:
- **REDmod deployment fails** with permission errors on FUSE mounts
- **FUSE VFS** blocks file access and causes crashes
- **Wine prefix** management is fragile and complex
Neon Mod Manager takes a simpler approach: **directly manage files in `archive/pc/mod/`**. No VFS, no staging, no REDmod, no FUSE.
## Features
| Feature | How it works |
|---|---|
| **Enable/Disable Mods** | Renames `.archive``.archive.disabled` — no staging, no VFS |
| **Load Order** | Numeric filename prefixes (`000_`, `010_`, `020_`...) — higher number = loaded later = overrides earlier |
| **Add Mods** | Copy `.archive` files directly to mod directory |
| **Conflict Detection** | Scans for duplicate file patterns across enabled mods |
| **Profiles** | Save/load mod configurations (e.g. "NSFW", "Vanilla+", "Minimal") |
| **Nexus Mods Integration** | Paste `nxm://` URLs to download, or register as browser protocol handler |
| **Drag & Drop** | Drop `.archive` files onto the window to install |
| **No Wine needed** | Pure Python + Qt, runs natively on Linux |
## Installation
### Prerequisites
```bash
# Arch Linux / EndeavourOS
sudo pacman -S python-pyqt6
# Ubuntu / Debian
sudo apt install python3-pyqt6
# Fedora
sudo dnf install python3-pyqt6
# Or via pip
pip install PyQt6
```
### Download
```bash
git clone https://gitea.die-heimatlosen.eu/arch_agent/neon-mod-manager.git
cd neon-mod-manager
```
### Run
```bash
# Wayland (most common on modern Linux)
QT_QPA_PLATFORM=wayland python3 mod_manager.py
# X11
python3 mod_manager.py
```
## Usage
### Adding Mods
1. Click ** Add Mod** and select `.archive` files, **OR**
2. Drag & drop `.archive` files onto the window, **OR**
3. Download from Nexus Mods (see below)
### Load Order
- Mods are sorted by numeric prefix: `000_` loads first, `999_` loads last
- Later mods **override** earlier ones (same texture/file = last one wins)
- Click **🔢 Auto-Sort** to auto-assign prefixes based on current list order
- Right-click a mod → **Move Up/Down** to reorder
### Enabling / Disabling
- **Checkbox** in the mod list to toggle on/off
- **Enable All / Disable All** buttons for bulk actions
- Disabled mods get `.archive.disabled` extension (not deleted!)
### Profiles
1. Set up your mods the way you want them
2. Go to **💾 Profile** tab
3. Enter a name (e.g. "NSFW Full", "Vanilla+") and click **Save Profile**
4. Switch between profiles anytime from the dropdown at the top
### Nexus Mods Integration
1. Get your API key from [Nexus Mods](https://www.nexusmods.com/users/myaccount?tab=api%20keys)
2. Go to **🌐 Nexus Mods** tab and paste your key
3. **Option A:** Paste `nxm://` URLs manually and click Download
4. **Option B:** Click **🔗 Register nxm:// Protocol Handler** — then clicking "Download" on Nexus Mods will automatically send the mod to Neon Mod Manager
## How It Works (Technical)
### No VFS / No Staging
Unlike MO2/Fluorine which use a virtual filesystem (FUSE on Linux), Neon Mod Manager copies files directly to the game's `archive/pc/mod/` directory. This avoids:
- FUSE mount permission issues
- REDmod deployment failures
- Wine prefix corruption
### Load Order via Filename
Cyberpunk 2077 loads `.archive` files in alphabetical order. Neon Mod Manager uses numeric prefixes to control this:
```
000_MyBodyMod.archive → loads first
010_MyTextureMod.archive → loads second
020_MyAdMod.archive → loads third (overrides earlier)
```
### Enable/Disable
Instead of moving files in/out of a staging directory, mods are renamed:
- **Enable:** `MyMod.archive.disabled``MyMod.archive`
- **Disable:** `MyMod.archive``MyMod.archive.disabled`
The game ignores `.disabled` files completely.
## Configuration
Config is stored at `~/.config/neon-mod-manager/config.json`:
```json
{
"game_path": "/mnt/Spiele/Heroic/Cyberpunk 2077",
"mod_dir": "archive/pc/mod",
"last_profile": "Default",
"nexus_api_key": "",
"auto_prefix": true
}
```
Profiles are stored at `~/.config/neon-mod-manager/profiles/*.json`.
## License
MIT — do whatever you want.
## Roadmap
- [ ] Archive file parsing (read internal file list for real conflict detection)
- [ ] Nexus Mods search (browse mods without leaving the app)
- [ ] Mod update detection (compare versions)
- [ ] REDmod script mod support (r6/tweaks)
- [ ] Auto-extract `.7z` / `.zip` downloads
- [ ] Mod categories and tags
- [ ] Dark/light theme switcher