refactor: update project branding and structure for gregFramework

- Changed project title and tagline in docusaurus.config.js to reflect the new branding.
- Updated package.json and package-lock.json to rename the project to gregwiki-docs-site.
- Adjusted sidebar and documentation files to align with the new project structure and naming conventions.
- Enhanced documentation content for clarity and consistency across various sections.
- Added Prettier as a development dependency for code formatting.

This commit aligns the project with the new branding and improves overall documentation quality.
This commit is contained in:
Marvin
2026-04-10 01:20:22 +02:00
parent 31cd24b462
commit ea92a0baf8
295 changed files with 835 additions and 34708 deletions

View File

@@ -0,0 +1,136 @@
---
id: contributor-workshop
title: Contributor Guide — WorkshopManager
sidebar_label: Contributor Guide
description: Development setup, building, publishing workflow, and release process for the WorkshopManager.
sidebar_position: 20
tags:
- audience:contributor
- workshop
---
# Contributor Guide — WorkshopManager
This guide covers the development workflow for the WorkshopManager 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 6 SDK** (for framework, plugins, and mods targeting MelonLoader).
- **Steam** with Data Center installed (App ID 4170200).
## Repository structure
| Path | Purpose |
|------|---------|
| `framework/FrikaMF.csproj` | Core MelonLoader framework DLL |
| `plugins/FFM.Plugin.*/` | FMF extension plugins (5 projects) |
| `mods/FMF.*/` | Standalone mods (4 projects) |
| `WorkshopUploader/` | WorkshopManager MAUI app |
| `scripts/Deploy-Release-ToWorkshop.ps1` | Package all builds into Workshop folders |
| `scripts/Deploy-Release-ToDataCenter.ps1` | Deploy to game for local testing |
## Building
### Build everything (solution)
```bash
dotnet build FrikaMF.sln -c Release
```
### Build standalone mods (not in solution)
```bash
dotnet build mods/FMF.ConsoleInputGuard/FMF.ConsoleInputGuard.csproj -c Release
dotnet build mods/FMF.Mod.GregifyEmployees/FMF.GregifyEmployees.csproj -c Release
dotnet build mods/FMF.Mod.HexLabelMod/FMF.HexLabelMod.csproj -c Release
dotnet build mods/FMF.Plugin.LangCompatBridge/FMF.JoniMLCompatMod.csproj -c Release
```
### Build WorkshopManager only
```bash
dotnet build WorkshopUploader/WorkshopUploader.csproj -c Release
```
## Workshop project structure
Each mod/plugin gets its own folder under `<GameRoot>/workshop/`:
```text
<GameRoot>/workshop/
├── FrikaModFramework/
│ ├── content/
│ │ └── Mods/
│ │ └── FrikaModdingFramework.dll
│ ├── metadata.json
│ └── preview.png
├── FFM.Plugin.Multiplayer/
│ ├── content/
│ │ └── FMF/
│ │ └── Plugins/
│ │ └── FFM.Plugin.Multiplayer.dll
│ ├── metadata.json
│ └── preview.png
└── ...
```
The `content/` folder mirrors the game directory structure and is what Steam uploads.
## Deploy to Workshop folders
```bash
pwsh -File scripts/Deploy-Release-ToWorkshop.ps1
```
This script:
1. Builds all framework, plugin, and mod projects.
2. Creates a Workshop project folder for each under `<GameRoot>/workshop/`.
3. Copies the built DLL into `content/<target path>/`.
4. Creates `metadata.json` with title, description, tags, and visibility.
## Publishing workflow
### GUI (recommended)
1. Run the WorkshopManager 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.
5. Click **Save and upload to Steam**.
6. After upload, the app **syncs** your local `content/` with Steam's version.
### CLI (headless)
```bash
WorkshopUploader.exe --mode publish --path <project-folder>
```
### Post-upload sync
After publishing, the app re-downloads the item from Steam and replaces your local `content/` folder. This ensures your working copy matches exactly what Steam has — similar to `git pull` after `git push`.
## Extending the service layer
The `SteamWorkshopService` in `WorkshopUploader/Services/SteamWorkshopService.cs` wraps the Facepunch.Steamworks 2.3.3 API. Key methods:
| Method | Purpose |
|--------|---------|
| `PublishAsync` | Create or update a Workshop item with change notes |
| `SyncAfterPublishAsync` | Re-download from Steam to sync local content |
| `BrowseAsync` | Browse all Workshop items with sort/tag filters |
| `SearchAsync` | Text search across Workshop items |
| `ListSubscribedAsync` | List user's subscribed items |
| `ListFavoritedAsync` | List user's favorited items |
| `SubscribeAsync` / `UnsubscribeAsync` | Toggle subscription |
| `AddFavoriteAsync` / `RemoveFavoriteAsync` | Toggle favorite |
| `VoteAsync` | Vote up or down |
| `GetItemDetailsAsync` | Full item details with stats |
## Adding a new mod to the release
1. Create the mod project under `mods/`.
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.

View File

@@ -0,0 +1,118 @@
---
id: release
title: Release
sidebar_label: Release
description: Current release artifacts, version matrix, and download instructions for FrikaModFramework.
sidebar_position: 30
tags:
- release
---
# Release
## Release artifacts
The following components are built and packaged for Steam Workshop distribution:
### Core Framework
| Component | Assembly | Workshop content path | Tags |
|-----------|----------|----------------------|------|
| FrikaModFramework | `FrikaModdingFramework.dll` | `content/Mods/` | modded, melonloader, framework, fmf |
### FMF Plugins
| Plugin | Assembly | Workshop content path | Tags |
|--------|----------|----------------------|------|
| FFM.Plugin.Multiplayer | `FFM.Plugin.Multiplayer.dll` | `content/FMF/Plugins/` | modded, fmf, plugin |
| FFM.Plugin.Sysadmin | `FFM.Plugin.Sysadmin.dll` | `content/FMF/Plugins/` | modded, fmf, plugin |
| FFM.Plugin.AssetExporter | `FFM.Plugin.AssetExporter.dll` | `content/FMF/Plugins/` | modded, fmf, plugin |
| FFM.Plugin.WebUIBridge | `FFM.Plugin.WebUIBridge.dll` | `content/FMF/Plugins/` | modded, fmf, plugin |
| FFM.Plugin.PlayerModels | `FFM.Plugin.PlayerModels.dll` | `content/FMF/Plugins/` | modded, fmf, plugin |
### Gameplay Mods
| Mod | Assembly | Workshop content path | Tags |
|-----|----------|----------------------|------|
| FMF.ConsoleInputGuard | `FMF.ConsoleInputGuard.dll` | `content/Mods/` | modded, melonloader, mod |
| FMF.GregifyEmployees | `FMF.GregifyEmployees.dll` | `content/Mods/` | modded, melonloader, mod |
| FMF.HexLabelMod | `FMF.HexLabelMod.dll` | `content/Mods/` | modded, melonloader, mod |
| FMF.JoniMLCompatMod | `FMF.JoniMLCompatMod.dll` | `content/Mods/` | modded, melonloader, mod |
### Gregtools Modmanager (WorkshopManager)
| Version | Component | Target | Description |
|---------|-----------|--------|-------------|
| **1.0** | Gregtools Modmanager | `net9.0-windows` (win10-x64), self-contained | Steam Workshop client + Mod Store + Mod Manager. No .NET runtime required. See [GregTools 1.0 Modmanager release](/wiki/releases/tools/gregtools-modmanager-1.0-release). |
## Installation for end users
### Quick start
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/).
4. Start the game.
### Manual installation
1. Download the DLL from the Workshop or a release.
2. Framework: place `FrikaModdingFramework.dll` in `<Data Center>/Mods/`.
3. Plugins: place `FFM.Plugin.*.dll` in `<Data Center>/FMF/Plugins/`.
4. Mods: place `FMF.*.dll` in `<Data Center>/Mods/`.
5. Start the game and check `MelonLoader/Latest.log`.
## Game directory structure
```text
Data Center/
├── Mods/
│ ├── FrikaModdingFramework.dll
│ ├── FMF.ConsoleInputGuard.dll
│ ├── FMF.GregifyEmployees.dll
│ ├── FMF.HexLabelMod.dll
│ └── FMF.JoniMLCompatMod.dll
├── FMF/
│ └── Plugins/
│ ├── FFM.Plugin.Multiplayer.dll
│ ├── FFM.Plugin.Sysadmin.dll
│ ├── FFM.Plugin.AssetExporter.dll
│ ├── FFM.Plugin.WebUIBridge.dll
│ └── FFM.Plugin.PlayerModels.dll
├── MelonLoader/
│ └── Latest.log
├── UserData/
│ └── ModCfg/
└── workshop/
├── FrikaModFramework/
│ ├── content/Mods/FrikaModdingFramework.dll
│ └── metadata.json
├── FFM.Plugin.Multiplayer/
│ ├── content/FMF/Plugins/FFM.Plugin.Multiplayer.dll
│ └── metadata.json
├── Gregtools Modmanager/
│ ├── content/ (self-contained WorkshopUploader.exe + dependencies)
│ └── metadata.json
└── ... (one folder per component)
```
## Build and deploy (contributors)
```bash
# Build everything and package into Workshop folders
pwsh -File scripts/Deploy-Release-ToWorkshop.ps1
# Deploy to game Mods/ and FMF/Plugins/ for local testing
pwsh -File scripts/Deploy-Release-ToDataCenter.ps1
```
See also: [Contributor Guide](./contributor-workshop)
## Compatibility
| Component | Requires |
|-----------|----------|
| All mods/plugins | Data Center (Steam App 4170200) |
| All mods/plugins | MelonLoader (IL2CPP, stable) |
| FMF Plugins | FrikaModdingFramework.dll in Mods/ |
| Gregtools Modmanager | Windows 10 1809+ (self-contained, no runtime install needed) |

View File

@@ -0,0 +1,19 @@
---
title: Contributors (workflow)
sidebar_label: Contributors (workflow)
description: Monorepo layout, design system, Docusaurus workflow, plugin audits.
---
# Contributors (workflow)
**Mitwirkende am Repository** — Framework, Website, CI, Plugins. Überblick über alle Rollen (inkl. Spieler, Moddevs, Sponsoren): [By audience](/wiki/guides/players/audiences-overview).
Operational docs for people changing the framework, site, or release pipeline.
- [Repository inventory](/wiki/contributors/repo-inventory) — current layout snapshot.
- [Monorepo target layout](/wiki/contributors/monorepo-target-layout) — intended structure.
- [Luminescent design system](/wiki/contributors/luminescent-design-system) — UI tokens for the site.
- [Docusaurus workflow](/wiki/contributors/docusaurus-workflow) — edit/build the wiki site.
- [Plugin submission audit](/wiki/contributors/plugin-submission-audit) — checklist for new plugins.
Imported guides: [Contribution workflow](/wiki/legacy/wiki-import/Contributors/Guides/Contribution-Workflow).