mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
chore: initialize gregWiki standalone repository
This commit is contained in:
136
guides/contributor-workshop.md
Normal file
136
guides/contributor-workshop.md
Normal 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.
|
||||
134
guides/enduser-workshop.md
Normal file
134
guides/enduser-workshop.md
Normal file
@@ -0,0 +1,134 @@
|
||||
---
|
||||
id: enduser-workshop
|
||||
title: End-User Guide — WorkshopManager
|
||||
sidebar_label: End-User Guide
|
||||
description: How to browse, install, and manage Data Center mods using the WorkshopManager.
|
||||
sidebar_position: 10
|
||||
tags:
|
||||
- audience:enduser
|
||||
- workshop
|
||||
---
|
||||
|
||||
# End-User Guide — WorkshopManager
|
||||
|
||||
This guide is for players who want to **install and manage mods** for Data Center using the WorkshopManager desktop app.
|
||||
|
||||
## 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.
|
||||
|
||||
## Installation
|
||||
|
||||
You can run WorkshopManager from **any folder you prefer** (for example `Program Files`, Desktop, Downloads, or `<Data Center install>/WorkshopUploader/`).
|
||||
|
||||
### Option A — Installer setup (recommended)
|
||||
|
||||
1. Run the latest `GregToolsModmanager-<version>-Setup.exe`.
|
||||
2. Complete the installer wizard (default path is under `Program Files`).
|
||||
3. Start the app from the Start Menu or desktop shortcut.
|
||||
|
||||
### Option B — Portable / ZIP build
|
||||
|
||||
1. Download or build the WorkshopManager files.
|
||||
2. Extract/copy the folder to any location you want.
|
||||
3. Launch `WorkshopUploader.exe` directly from that folder.
|
||||
|
||||
After startup, the Steam status indicator in the top-right should turn green.
|
||||
|
||||
## Browsing mods (Mod Store)
|
||||
|
||||
1. Open the **Mod Store** tab.
|
||||
2. Use the **Store** sub-tab to browse all available mods.
|
||||
3. Filter by tag (vanilla, modded, melonloader, fmf, framework) or sort by popularity, date, score, etc.
|
||||
4. Use the **Search** bar to find specific mods by name.
|
||||
5. Click on any mod to see its **detail page** with full stats, description, and action buttons.
|
||||
|
||||
## Installing mods (Subscribe)
|
||||
|
||||
1. In the Store or on an item's detail page, click **Subscribe**.
|
||||
2. Steam downloads the mod automatically.
|
||||
3. Check the **Installed** sub-tab to see all your subscribed mods.
|
||||
|
||||
Subscribed mods are managed by Steam — they update automatically when the author publishes changes.
|
||||
|
||||
## Favorites
|
||||
|
||||
1. On an item's detail page, click **Favorite** to bookmark it.
|
||||
2. View all your favorites in the **Favorites** sub-tab.
|
||||
3. Click **Unfavorite** to remove.
|
||||
|
||||
## Voting
|
||||
|
||||
On an item's detail page:
|
||||
|
||||
- Click **Vote Up** to recommend the mod.
|
||||
- Click **Vote Down** if there's a quality issue.
|
||||
|
||||
Your votes help the community find the best mods.
|
||||
|
||||
## Dependency Health (Health tab)
|
||||
|
||||
The **Health** sub-tab checks whether your game has:
|
||||
|
||||
- MelonLoader installed
|
||||
- Il2Cpp interop assemblies generated
|
||||
- FrikaModFramework core DLL
|
||||
- FMF plugins directory
|
||||
- Mod config directory
|
||||
|
||||
If anything is missing, follow the instructions shown.
|
||||
|
||||
### Installing MelonLoader
|
||||
|
||||
1. Go to the Health tab and click **Download page**.
|
||||
2. Download the latest **MelonLoader Installer** from GitHub.
|
||||
3. Run the installer, select **Data Center** as the game, choose **IL2CPP**.
|
||||
4. Start the game once and close it (this generates required assemblies).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Steam - offline" in the title bar
|
||||
|
||||
- Make sure Steam is running and you are logged in.
|
||||
- Ensure `steam_appid.txt` (containing `4170200`) exists next to `WorkshopUploader.exe`.
|
||||
- If you use the portable/ZIP variant, make sure you copied the full app folder (not just the `.exe`).
|
||||
|
||||
### Mod does not load in-game
|
||||
|
||||
- Check `MelonLoader/Latest.log` in the game directory.
|
||||
- Ensure `FrikaModdingFramework.dll` is in `<game>/Mods/`.
|
||||
- Verify the mod DLL is also in `<game>/Mods/` or `<game>/FMF/Plugins/`.
|
||||
|
||||
### Subscription does not appear
|
||||
|
||||
- Wait a few seconds and refresh the Installed list.
|
||||
- Steam may need a moment to process the subscription.
|
||||
|
||||
### App crashes only after installer install
|
||||
|
||||
- Reinstall using the latest setup build.
|
||||
- Open **Settings -> Logs** and include the newest log lines when reporting the issue.
|
||||
- If available, report crash details via GitHub Issues.
|
||||
|
||||
## Reporting bugs and issues
|
||||
|
||||
If you find a bug, crash, or unexpected behavior, please open an issue on GitHub:
|
||||
|
||||
- [Report an issue](https://github.com/mleem97/GregToolsModmanager/issues)
|
||||
|
||||
To help us fix issues faster, include:
|
||||
|
||||
- What you were doing when the problem happened
|
||||
- Clear steps to reproduce
|
||||
- Your app version and Windows version
|
||||
- Error message or screenshot (if any)
|
||||
- Relevant logs from **Settings -> Logs**
|
||||
- A repro ZIP from **Settings -> Create repro bundle**
|
||||
|
||||
## Uninstalling mods
|
||||
|
||||
1. Go to the **Installed** sub-tab.
|
||||
2. Click **Unsubscribe** on the mod you want to remove.
|
||||
3. Steam removes the mod files automatically.
|
||||
118
guides/release.md
Normal file
118
guides/release.md
Normal 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) |
|
||||
Reference in New Issue
Block a user