docs: flatten player sidebar; rename WorkshopManager to GregModManager

Made-with: Cursor
This commit is contained in:
Marvin
2026-04-10 03:55:28 +02:00
parent af20f95965
commit 9f37e5d6ef
13 changed files with 68 additions and 80 deletions

View File

@@ -15,7 +15,7 @@ These folders typically sit **next to each other** in a developer workspace (see
| Area | Path (on disk) | Role |
|------|----------------|------|
| **Framework core** | `gregCore/` | Runtime, hooks, Harmony, bridge — main project `gregCore/framework/FrikaMF.csproj`; templates under `gregCore/Templates/` |
| **Framework core** | `gregCore/` | Runtime, hooks, Harmony, bridge — build **`gregCore/FrikaMF.sln`**; main project **`gregCore/framework/FrikaMF.csproj`**; templates under `gregCore/Templates/` |
| **Mods (split repos)** | `gregMod.<Name>/` (directly under `gregFramework/`) | Standalone gameplay mods (`FMF.*` assemblies); **not** nested under a `gregMods/` umbrella |
| **Extensions / framework plugins (split repos)** | `gregExt.<Name>/` (directly under `gregFramework/`) | FFM framework plugins (`FFM.Plugin.*`); **not** under legacy `StandaloneMods/` paths |
| **Documentation** | `gregWiki/` ([`mleem97/gregWiki`](https://github.com/mleem97/gregWiki)) | **This site**: Docusaurus app at repo root, all authored pages under `docs/` |
@@ -32,7 +32,7 @@ These folders typically sit **next to each other** in a developer workspace (see
| Concern | Where to look |
|---------|----------------|
| Framework `.csproj` | `gregCore/framework/FrikaMF.csproj` |
| Framework `.csproj` | `gregCore/framework/FrikaMF.csproj` (see `gregCore/FrikaMF.sln`; a root `gregCore/FrikaMF.csproj` may exist for alternate layouts) |
| Plugins (`FFM.Plugin.*`) — authoring | `gregExt.<Name>/` (e.g. `gregExt.AssetExporter/`) |
| Plugins — optional mirrors | `gregCore/plugins/FFM.Plugin.*` |
| Mod sources (`FMF.*`) | `gregMod.<Name>/` |
@@ -45,21 +45,21 @@ Documentation is maintained in this repository under `docs/`; historical GitHub
## .NET projects on disk (`*.csproj`)
- **Framework:** `gregCore/framework/FrikaMF.csproj` (solution `gregCore/FrikaMF.sln` when present).
- **Framework:** `gregCore/framework/FrikaMF.csproj` via **`gregCore/FrikaMF.sln`**.
- **Plugins:** primary checkouts **`gregExt.<Name>/`** (assembly `FFM.Plugin.*.dll`); duplicates under `gregCore/plugins/` for all-in-one builds.
- **Mods:** **`gregMod.<Name>/`** at workspace root (`FMF.*.csproj` names vary).
- **WorkshopManager:** `gregModmanager/WorkshopUploader.csproj` (separate from the MelonLoader framework solution).
- **GregModManager:** `gregModmanager/WorkshopUploader.csproj` (separate from the MelonLoader framework solution).
## Build status (framework project)
- `gregCore/framework/FrikaMF.csproj` does not compile the WorkshopManager app; that builds from `gregModmanager/WorkshopUploader.csproj`.
- `gregCore/framework/FrikaMF.csproj` does not compile GregModManager; that builds from `gregModmanager/WorkshopUploader.csproj`.
- `dotnet build` on the framework solution (when present under `gregCore/`) builds core + optional `gregCore/plugins/*`**not** split-repo `gregExt.*` / `gregMod.*` folders unless you add them to the solution.
## `FrikaMF.sln` drift (action items)
1. **Mods outside solution**: Standalone mod projects under `gregMod.*` are usually **not** in `FrikaMF.sln`; build them per repo or add them if you want one `dotnet build` for everything.
2. **Templates in `framework/FrikaMF.csproj`**: Template sources under `Templates/` may fail `dotnet build framework/FrikaMF.csproj` with `CS0122` if `Core` visibility does not match template expectations — treat templates as **samples** until the project graph is cleaned up.
2. **Templates vs framework visibility**: Template projects under `gregCore/Templates/` may fail `dotnet build` with `CS0122` if internal API visibility does not match template expectations — treat templates as **samples** until the project graph is aligned.
## Documentation (Docusaurus)
@@ -71,9 +71,9 @@ Documentation is maintained in this repository under `docs/`; historical GitHub
## Hook / event sources of truth (code)
- String constants: [`gregCore/framework/FrikaMF/HookNames.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/HookNames.cs) (`FFM.*` hook IDs today).
- Numeric IDs: [`gregCore/framework/FrikaMF/EventIds.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/EventIds.cs).
- Generated wiki mirror: run [`tools/Generate-FmfHookCatalog.ps1`](https://github.com/mleem97/gregFramework/blob/main/tools/Generate-FmfHookCatalog.ps1) → [`fmf-hooks-catalog`](../reference/fmf-hooks-catalog.md).
- **Runtime strings + id map:** [`gregCore/framework/FrikaMF/HookNames.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/HookNames.cs) and [`EventIds.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/EventIds.cs) — see [FMF hooks catalog](../reference/fmf-hooks-catalog.md).
- **Canonical `greg.*` registry (JSON):** `gregCore/gregFramework/greg_hooks.json` — regenerate with [`scripts/Generate-GregHooksFromIl2CppDump.ps1`](https://github.com/mleem97/gregFramework/blob/main/gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1); overview [Greg hooks & event runtime](../framework/greg-hooks-and-events.md).
- **Wiki catalog generator:** [`gregCore/tools/Generate-FmfHookCatalog.ps1`](https://github.com/mleem97/gregFramework/blob/main/gregCore/tools/Generate-FmfHookCatalog.ps1) → updates [`fmf-hooks-catalog`](../reference/fmf-hooks-catalog.md) when run from a workspace that includes **gregWiki** next to **gregCore**.
## Debugging (MelonLoader, IL2CPP, Unity)

View File

@@ -10,7 +10,7 @@ description: Technical documentation for mod authors, plugin authors, and repo c
Use this hub if you **build mods or plugins**, work on **framework** code, or contribute to **repositories and docs**.
**Players** should start with **[Play & mods](/wiki/guides/players/overview)** (sidebar above) — install, Workshop, troubleshooting.
**Players** should use the **short list at the top of the sidebar** (starting with [End users](/wiki/guides/players/overview)) — install, Workshop, troubleshooting.
**Architecture:** read **[System architecture & documentation principles](/wiki/meta/system-architecture-principles)** first — canonical **ModManager → Framework → Plugins → Mods** model, priorities (stability, maintainability, DX), and wiki writing rules.
@@ -23,6 +23,7 @@ Use this hub if you **build mods or plugins**, work on **framework** code, or co
## Framework
- [Architecture](/wiki/framework/architecture)
- [Greg hooks & event runtime](/wiki/framework/greg-hooks-and-events)
- [FMF hooks](/wiki/framework/fmf-hooks)
- [Hexmod](/wiki/framework/hexmod)
@@ -57,7 +58,7 @@ Use this hub if you **build mods or plugins**, work on **framework** code, or co
- [FMF hook naming](/wiki/reference/fmf-hook-naming)
- [FMF hooks catalog](/wiki/reference/fmf-hooks-catalog)
- [MCP server](/wiki/reference/mcp-server)
- [Release channels](/wiki/reference/release-channels) — also linked under **Play & mods**
- [Release channels](/wiki/reference/release-channels) — same page is linked next to the other player-facing entries
- [Reference data files](/wiki/reference/reference-data-files)
- [Modding language requirement](/wiki/reference/modding-language-requirement)

View File

@@ -6,10 +6,10 @@ description: "Split-repo workspace: gregFramework layout, building the core, and
The workspace is **multi-repo** with a local `gregFramework/` folder containing standalone repositories. **Logical stack:** **ModManager → framework / SDK → plugins → mods** — see [System architecture & documentation principles](/wiki/meta/system-architecture-principles).
- `gregCore/` — core SDK (`gregCore/framework/FrikaMF.csproj`), MCP server under `gregCore/mcp-server/`
- `gregCore/` — core SDK: build **`gregCore/FrikaMF.sln`** (main project **`gregCore/framework/FrikaMF.csproj`**); MCP server under `gregCore/mcp-server/`
- `gregMod.<Name>/` — gameplay mods (`FMF.*`), **flat** next to `gregCore/` (legacy umbrella `gregMods/` is deprecated)
- `gregExt.<Name>/` — framework plugins (`FFM.Plugin.*`), same flat layout (legacy `gregExtensions/` deprecated)
- `gregModmanager/`**Gregtools Modmanager** (WorkshopManager; `WorkshopUploader.csproj`)
- `gregModmanager/`**GregModManager** / **Gregtools Modmanager** (`WorkshopUploader.csproj`)
- `gregDataCenterExporter/` — exporter, templates, hook JSON mirrors
- `gregWiki/` — this documentation site
@@ -25,11 +25,12 @@ dotnet build gregCore/FrikaMF.sln -c Release
Or open `gregCore/FrikaMF.sln` in your IDE.
## Hook naming
## Hooks and registries
- **Target convention:** `FMF.<DOMAIN>.<Event>` (see [`CONTRIBUTING.md`](https://github.com/mleem97/gregFramework/blob/main/CONTRIBUTING.md)).
- **Registry (example path in workspace):** [`gregDataCenterExporter/FrikaModFramework/fmf_hooks.json`](https://github.com/mleem97/gregFramework/blob/main/gregDataCenterExporter/FrikaModFramework/fmf_hooks.json) (exact copy may exist in other repos).
- **Legacy runtime strings** may still use `FFM.*` in [`HookNames.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/HookNames.cs) until migrated.
- **Docs / policy:** target public identifiers **`FMF.<DOMAIN>.<Event>`** — [FMF hook naming](/wiki/reference/fmf-hook-naming) and [`CONTRIBUTING.md`](https://github.com/mleem97/gregFramework/blob/main/CONTRIBUTING.md).
- **Runtime string table + numeric `EventIds`:** [`gregCore/framework/FrikaMF/HookNames.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/HookNames.cs) and [`EventIds.cs`](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/FrikaMF/EventIds.cs) — today these resolve the Rust/game pipeline to **`FFM.*`** literals; see [FMF hooks catalog](/wiki/reference/fmf-hooks-catalog).
- **Canonical `greg.*` registry (JSON v2):** `gregCore/gregFramework/greg_hooks.json` — Il2Cpp-driven list for codegen and MCP; regenerate with **`gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1`**. Overview: [Greg hooks & event runtime](/wiki/framework/greg-hooks-and-events).
- **Optional legacy declarative file:** `fmf_hooks.json` (e.g. under `gregDataCenterExporter/FrikaModFramework/`) for older tooling — see [MCP server](/wiki/reference/mcp-server).
## Start a mod

View File

@@ -19,10 +19,10 @@ This folder is the **single source of truth** for the public Docusaurus site. Th
| **Framework** | [`framework/`](../framework/architecture.md) | Architecture, hooks, Hexmod. |
| **Plugins** | [`plugins/`](../plugins/index.md) | `FFM.Plugin.*` assemblies; repos `gregExt.*` on disk. |
| **Mods** | [`mods/`](../mods/index.md) | Gameplay mods (`FMF.*`); repos `gregMod.*` on disk. |
| **Tools** | [`tools/`](../tools/workshop-uploader.md) | Workshop uploader and related. |
| **Tools** | [`tools/`](../tools/workshop-uploader.md) | GregModManager (Gregtools Modmanager / `WorkshopUploader` project). |
| **Guides** | [`guides/`](../guides/players/overview.md) | Role-based paths (players, mod developers, contributors, sponsors). |
| **Releases** | [`releases/`](../releases/index.mdx) | Per-artifact release notes. |
| **Reference** | [`reference/`](../reference/wiki-mapping.md) | Naming, catalogs, [`greg_hooks` registry](../reference/greg-hooks-registry.md), MCP, release channels. |
| **Reference** | [`reference/`](../reference/wiki-mapping.md) | Naming, catalogs, MCP, release channels. |
| **Contributors** | [`contributors/`](../contributors/repo-inventory.md) | Repo inventory, Docusaurus workflow, design system. |
| **Roadmap** | [`roadmap/`](../roadmap/unified-roadmap.md) | Planning docs. |
| **Topics hub** | [`topics/`](../topics/index.md) | Cross-cutting overviews (assets, multiplayer, security, …). |

View File

@@ -1,22 +1,22 @@
---
id: contributor-workshop
title: Contributor Guide — WorkshopManager
title: Contributor Guide — GregModManager
sidebar_label: Contributor Guide
description: Development setup, building, publishing workflow, and release process for the WorkshopManager.
description: Development setup, building, publishing workflow, and release process for GregModManager.
sidebar_position: 20
tags:
- audience:contributor
- workshop
---
# Contributor Guide — WorkshopManager
# Contributor Guide — GregModManager
This guide covers the development workflow for the WorkshopManager and how to publish mods to the Steam Workshop.
This guide covers the development workflow for **GregModManager** and how to publish mods to the Steam Workshop.
## Prerequisites
- **Visual Studio 2022** with **.NET Multi-platform App UI** and **Windows App SDK** workloads.
- **.NET 9 SDK** (for the WorkshopManager MAUI app).
- **.NET 9 SDK** (for the GregModManager MAUI app).
- **.NET 6 SDK** (for framework, plugins, and mods targeting MelonLoader).
- **Steam** with Data Center installed (App ID 4170200).
@@ -26,10 +26,10 @@ Paths are relative to the **`gregFramework/`** workspace root (split repos clone
| Path | Purpose |
|------|---------|
| `gregCore/framework/FrikaMF.csproj` | Core MelonLoader framework DLL |
| `gregCore/framework/FrikaMF.csproj` (via `gregCore/FrikaMF.sln`) | Core MelonLoader framework DLL |
| `gregExt.*/` | FFM framework plugins (`FFM.Plugin.*` assemblies — one repo per plugin) |
| `gregMod.*/` | Standalone gameplay mods (`FMF.*` assemblies) |
| `gregModmanager/WorkshopUploader.csproj` | WorkshopManager MAUI app |
| `gregModmanager/WorkshopUploader.csproj` | GregModManager MAUI app |
| `gregFramework/scripts/Deploy-Release-ToWorkshop.ps1` | Package all builds into Workshop folders (when present in your clone) |
| `gregFramework/scripts/Deploy-Release-ToDataCenter.ps1` | Deploy to game for local testing |
@@ -50,7 +50,7 @@ dotnet build gregMod.HexLabelMod/FMF.HexLabelMod.csproj -c Release
dotnet build gregMod.LangCompatBridge/FMF.JoniMLCompatMod.csproj -c Release
```
### Build WorkshopManager only
### Build GregModManager only
```bash
dotnet build gregModmanager/WorkshopUploader.csproj -c Release
@@ -96,7 +96,7 @@ This script:
### GUI (recommended)
1. Run the WorkshopManager app.
1. Run the GregModManager app.
2. Open a project from the **Projects** tab.
3. Edit title, description, tags, visibility, and preview image.
4. Write **change notes** describing what changed.
@@ -135,4 +135,4 @@ The `SteamWorkshopService` in `gregModmanager/Services/SteamWorkshopService.cs`
1. Create the mod as a split repo folder `gregMod.<Name>/` under the gregFramework workspace (or clone an existing `gregMod.*` repo).
2. Add it to the `$mods` array in `Deploy-Release-ToWorkshop.ps1`.
3. Run the deploy script.
4. Open the new workshop project in the WorkshopManager and publish.
4. Open the new workshop project in the GregModManager and publish.

View File

@@ -39,7 +39,7 @@ The following components are built and packaged for Steam Workshop distribution:
| FMF.HexLabelMod | `FMF.HexLabelMod.dll` | `content/Mods/` | modded, melonloader, mod |
| FMF.JoniMLCompatMod | `FMF.JoniMLCompatMod.dll` | `content/Mods/` | modded, melonloader, mod |
### Gregtools Modmanager (WorkshopManager)
### Gregtools Modmanager (GregModManager)
| Version | Component | Target | Description |
|---------|-----------|--------|-------------|
@@ -51,7 +51,7 @@ The following components are built and packaged for Steam Workshop distribution:
1. Install **MelonLoader** (IL2CPP) for Data Center.
2. Start the game once, then close it.
3. Subscribe to mods via the **WorkshopManager** Mod Store or the [Steam Workshop](https://steamcommunity.com/app/4170200/workshop/).
3. Subscribe to mods via the **GregModManager** Mod Store or the [Steam Workshop](https://steamcommunity.com/app/4170200/workshop/).
4. Start the game.
### Manual installation

View File

@@ -1,27 +1,27 @@
---
id: enduser-workshop
title: End-User Guide — WorkshopManager
title: End-User Guide — GregModManager
sidebar_label: End-User Guide
description: How to browse, install, and manage Data Center mods using the WorkshopManager.
description: How to browse, install, and manage Data Center mods using GregModManager (Gregtools Modmanager).
sidebar_position: 10
tags:
- audience:enduser
- workshop
---
# End-User Guide — WorkshopManager
# End-User Guide — GregModManager
This guide is for players who want to **install and manage mods** for Data Center using the WorkshopManager desktop app.
This guide is for players who want to **install and manage mods** for Data Center using **GregModManager** — the Gregtools desktop app (executable on disk is still `WorkshopUploader.exe`; sources live under **`gregModmanager/`**).
## What you need
- **Data Center** installed via Steam.
- **Steam** running and logged in.
- **WorkshopManager** (`WorkshopUploader.exe`) — either built from source or provided as a release.
- **GregModManager** (`WorkshopUploader.exe` in release builds) — either built from source or installed from a release.
## Installation
You can run WorkshopManager from **any folder you prefer** (for example `Program Files`, Desktop, Downloads, or a folder next to the game). **Source code** for the app lives in the repo folder **`gregModmanager/`** (release ZIPs ship `WorkshopUploader.exe` / **Gregtools Modmanager**).
You can run GregModManager from **any folder you prefer** (for example `Program Files`, Desktop, Downloads, or a folder next to the game). **Source code** for the app lives in the repo folder **`gregModmanager/`** (release ZIPs ship `WorkshopUploader.exe` / **Gregtools Modmanager**).
### Option A — Installer setup (recommended)
@@ -31,7 +31,7 @@ You can run WorkshopManager from **any folder you prefer** (for example `Program
### Option B — Portable / ZIP build
1. Download or build the WorkshopManager files.
1. Download or build the GregModManager files.
2. Extract/copy the folder to any location you want.
3. Launch `WorkshopUploader.exe` directly from that folder.

View File

@@ -12,9 +12,9 @@ description: Help for Data Center players using mods — install, Workshop, trou
## Players — start here
1. **[End users](/wiki/guides/players/overview)** — install, update, troubleshooting
2. **[WorkshopManager guide](/wiki/guides/players/enduser-workshop)** — browse and install mods
2. **[GregModManager (players)](/wiki/guides/players/enduser-workshop)** — browse and install mods
3. **[Release channels](/wiki/reference/release-channels)** — Steam Workshop vs GitHub
4. **[WorkshopManager (tool)](/wiki/tools/workshop-uploader)** — desktop app for Workshop content
4. **[GregModManager (full tool reference)](/wiki/tools/workshop-uploader)** — MAUI app: Mod Store, uploads, metadata
[**Mod catalog**](/mods) lists modules with links to docs and downloads.
@@ -26,4 +26,4 @@ Everything for **building mods**, **FFM plugins**, hooks, CI, and **contributing
Technical docs follow one stack model: **ModManager (MAUI) → framework / SDK → plugins → mods** — explained in **[System architecture & documentation principles](/wiki/meta/system-architecture-principles)**.
Do not use the sidebars technical sections unless you are developing — the default view stays short on purpose.
Do not open **Developers & contributors** unless you are building or maintaining code — the first entries in the sidebar stay short on purpose.

View File

@@ -1,12 +1,12 @@
---
title: WorkshopManager
sidebar_label: WorkshopManager
description: Windows desktop app for managing Steam Workshop content, browsing mods, and publishing for Data Center (FrikaMF).
title: GregModManager
sidebar_label: GregModManager
description: Windows desktop app (Gregtools Modmanager) for Steam Workshop content, browsing mods, and publishing for Data Center.
---
# WorkshopManager
# GregModManager
**WorkshopManager** is a **.NET MAUI** desktop app for **Windows** that serves as a full-featured Steam Workshop client for *Data Center*. It combines content authoring (publish/update), a **Mod Store** for browsing and installing community mods, and a **Mod Manager** for dependency health checks.
**GregModManager** (Gregtools Modmanager; project `WorkshopUploader.csproj`, executable **`WorkshopUploader.exe`**) is a **.NET MAUI** desktop app for **Windows** that serves as a full-featured Steam Workshop client for *Data Center*. It combines content authoring (publish/update), a **Mod Store** for browsing and installing community mods, and a **Mod Manager** for dependency health checks.
## Features

View File

@@ -10,10 +10,10 @@ The **gregFramework** folder groups several repositories (split layout). Use thi
| Area | Folder | Role |
|------|--------|------|
| **Framework core** | `gregCore/` | MelonLoader host (`gregCore/framework/FrikaMF.csproj`), templates, **`gregCore/mcp-server/`**, optional `gregCore/plugins/` mirrors |
| **Framework core** | `gregCore/` | MelonLoader host: **`gregCore/FrikaMF.sln`** / **`gregCore/framework/FrikaMF.csproj`**, templates, **`gregCore/mcp-server/`**, optional `gregCore/plugins/` mirrors |
| **Gameplay mods** | `gregMod.<Name>/` | Standalone mods (`FMF.*`) — **directly under `gregFramework/`** (the `gregMods/` umbrella is deprecated) |
| **Framework plugins** | `gregExt.<Name>/` | FFM plugins (`FFM.Plugin.*`) — **directly under `gregFramework/`** (the `gregExtensions/` umbrella is deprecated) |
| **ModManager (MAUI)** | `gregModmanager/` | **Gregtools Modmanager** — UI for managing mods/plugins; `WorkshopUploader.csproj`, **`WorkshopUploader.exe`**. See [Architecture principles](/wiki/meta/system-architecture-principles). |
| **GregModManager (MAUI)** | `gregModmanager/` | **Gregtools Modmanager** — UI for managing mods/plugins; `WorkshopUploader.csproj`, **`WorkshopUploader.exe`**. See [Architecture principles](/wiki/meta/system-architecture-principles). |
| **Data Center exporter / assets** | `gregDataCenterExporter/` | Templates, exporter tooling, `FrikaModFramework/fmf_hooks.json` (among copies) |
| **Documentation** | `gregWiki/` | This Docusaurus site (`docs/`) |
| **Mod store / web (if cloned)** | `gregStore/` | Private Next.js modstore stack (`web/`, …) — optional sibling repo |