Files
FCP-Mod-Updater/README.md
T

136 lines
5.7 KiB
Markdown
Raw Normal View History

2026-02-04 15:32:32 +08:00
# FCP Mod Updater
[![Stable Release](https://img.shields.io/github/v/release/FalloutCollaborationProject/FCP-Mod-Updater?label=Stable&color=brightgreen)](https://github.com/FalloutCollaborationProject/FCP-Mod-Updater/releases/latest)
[![Beta Release](https://img.shields.io/github/v/release/FalloutCollaborationProject/FCP-Mod-Updater?include_prereleases&label=Beta&color=orange)](https://github.com/FalloutCollaborationProject/FCP-Mod-Updater/releases)
[![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289da?logo=discord&logoColor=white)](https://discord.gg/XcgBf3AbPa)
2026-02-04 15:32:32 +08:00
A command-line tool for managing [Fallout Collaboration Project](https://github.com/FalloutCollaborationProject) RimWorld mods. Features both interactive and automated workflows for discovering, updating, installing, and managing FCP mods.
2026-02-15 10:43:06 +08:00
![CMD Preview](./demo.gif)
2026-02-04 15:32:32 +08:00
## Features
- **Auto-discover** RimWorld installation across Steam, GOG, and Lutris on Windows, Linux, and macOS
- **Interactive mode** with rich terminal UI for browsing, updating, and managing mods
- **Batch update mode** for automation scripts
- **Install new mods** directly from the FCP GitHub organization
- **Convert local mods** (ZIP downloads) to Git repositories for easy updates
- **Branch/commit switching** for testing specific mod versions
- **Status overview** showing update availability, local changes, and sync state
## Requirements
- [Git](https://git-scm.com/downloads) installed and available in PATH
## Installation
2026-02-05 01:15:04 +08:00
### Standard Installation
2026-02-04 16:11:57 +08:00
> [!NOTE]
> Your anti-virus may flag the download as suspicious/malicious, this is due to the code being unsigned. To remedy this would cost us real money and not a small amount either, you may check on [VirusTotal](https://www.virustotal.com/gui/) or [build from source.](#build-from-source)
2026-02-04 16:11:57 +08:00
2026-02-09 10:52:33 +08:00
> [!TIP]
> **Not sure which file to download?** Grab the **self-contained** version for your platform — it includes everything you need and just works, no extra software required outside of Git.
2026-02-04 15:32:32 +08:00
2026-02-09 10:52:33 +08:00
| Archive | What it means | Who it's for |
|---------|---------------|--------------|
| `*-selfcontained.zip` (Windows) | Everything bundled in one package | **Most users** — download this one |
2026-02-09 11:00:15 +08:00
| `*-selfcontained.tar.gz` (Linux) | Everything bundled in one package | **Most users** — download this one |
2026-02-09 10:52:33 +08:00
| `*-win-x64.zip` / `*-linux-x64.tar.gz` | Smaller download, but requires [.NET 10 Runtime](https://dotnet.microsoft.com/download) installed separately | Developers or users who already have .NET installed |
Downloads are available on the [Releases](https://github.com/FalloutCollaborationProject/FCP-Mod-Updater/releases) page.
2026-02-04 15:32:32 +08:00
### Build from Source
```bash
git clone https://github.com/FalloutCollaborationProject/FCPModUpdater.git
cd FCPModUpdater
dotnet build
```
## Usage
> [!TIP]
> You may choose between either `dotnet run -- ARGS` or running the built application directly with the args
2026-02-04 16:11:57 +08:00
(ex: `FCPModUpdater scan`)
2026-02-09 10:52:33 +08:00
### Quick Start
1. Download the **self-contained** zip/tar for your platform from [Releases](https://github.com/FalloutCollaborationProject/FCP-Mod-Updater/releases)
2. Extract the archive anywhere on your computer
3. **Windows:** Double-click `FCPModUpdater.exe` — the tool will automatically find your RimWorld installation
4. **Linux/macOS:** Run `./FCPModUpdater` from a terminal
The tool opens an interactive menu — use the **arrow keys** to navigate, **Enter** to select, and **Escape** to go back.
To install mods:
1. Select **Install New Mods** from the main menu
2. Use **arrow keys** to browse available mods — press **Space** to mark/unmark each one
3. Press **Enter** to confirm and install the selected mods
To update mods:
1. Select **Update Mods** from the main menu
2. All mods with available updates are pre-selected — press **Space** to deselect any you want to skip
3. Press **Enter** to confirm and apply updates
2026-02-04 16:11:57 +08:00
### Interactive Mode (scan arg, Default)
2026-02-04 15:32:32 +08:00
Launches the interactive menu where you can:
- View status of all installed FCP mods
- Update mods with available changes
- Install new mods from FCP
- Uninstall mods
- Convert local (non-git) mods to git repositories
- Switch mod versions (branches/commits)
2026-02-04 16:11:57 +08:00
#### Double Click
- **Windows:** Double-click the `.exe` to launch the interactive menu directly — no command line needed.
- **Linux:** The archive includes `fcp-mod-manager.desktop` for desktop integration. Copy it to `~/.local/share/applications/` and update the `Exec` path to point to the extracted binary.
2026-02-04 15:32:32 +08:00
### Batch Update Mode
```bash
dotnet run -- update
```
Non-interactive mode that updates all FCP mods with available changes. Ideal for automation and scheduled tasks. Returns exit code 0 on success, 1 if any updates fail.
### Options
Both commands accept:
- `-d, --directory <path>` — Path to RimWorld Mods folder (auto-discovers if omitted)
```bash
dotnet run -- scan --directory "/path/to/RimWorld/Mods"
dotnet run -- update -d "C:\Games\RimWorld\Mods"
```
## Environment Variables
| Variable | Description |
|----------|-------------|
| `GITHUB_TOKEN` | Optional. GitHub personal access token to increase API rate limit from 60 to 5000 requests/hour |
## How Mods Are Identified
FCP mods are identified by:
1. Git remote URL containing `github.com/FalloutCollaborationProject/`
2. Folder name matching an FCP repository (supports ZIP downloads with branch suffixes like `-main`)
Only repositories tagged with the `rimworld-mod` topic are included.
## Status Icons
| Icon | Status | Description |
|------|--------|-------------|
| ✓ | Up to Date | No updates available |
| ↓ | Behind | Updates available |
| ↑ | Ahead | Local commits not on remote |
| ⇅ | Diverged | Both behind and ahead |
| ~ | Modified | Has uncommitted local changes |
| — | Not Git | Local folder (not a git repo) |
| ✗ | Error | Git operation failed |