docs: update docusaurus configuration and documentation structure

- Revised the tagline in `docusaurus.config.js` for improved clarity on the documentation's focus.
- Removed German localization support from the configuration to streamline the user experience.
- Updated navigation items in the sidebar to better reflect the current structure, emphasizing player and developer resources.
- Enhanced the README and various documentation files to clarify the repository layout and improve accessibility for users.
- Adjusted links and descriptions throughout the documentation to ensure consistency and accuracy.

This commit aims to enhance the overall clarity and usability of the documentation.
This commit is contained in:
Marvin
2026-04-10 02:26:32 +02:00
parent 8d8fda49c4
commit 331847013d
50 changed files with 634 additions and 1070 deletions

36
docs/README.md Normal file
View File

@@ -0,0 +1,36 @@
# Documentation layout (`docs/`)
This folder is the **single source of truth** for the public Docusaurus site. The app lives in the **gregWiki** repository root next to `docs/`; built pages are served under the **`/wiki`** base path.
## How content is organized
| Area | Path | Purpose |
|------|------|--------|
| **Landing** | [`intro` → `/wiki/docs`](/wiki/docs) | Site home (`/wiki/docs`). |
| **Topics hub** | [`topics/`](./topics/index.md) | Cross-cutting overviews (security, FFI, multiplayer, assets, meta). |
| **Mods & plugins** | [`mods/`](./mods/), [`plugins/`](./plugins/) | Gameplay mods (`FMF.*`) and framework plugins (`FFM.Plugin.*`). |
| **Releases** | [`releases/`](./releases/) | Per-artifact release notes. |
| **Reference** | [`reference/`](./reference/) | Hooks, naming, MCP, generated catalogs. |
| **Contributors** | [`contributors/`](./contributors/) | Repo layout, Docusaurus workflow, design system. |
| **Guides** | [`guides/`](./guides/players/overview.md) | Role-based paths (players, mod developers, contributors, sponsors). |
| **Roadmap** | [`roadmap/`](./roadmap/) | Planning docs. |
| **Meta** | [`meta/`](./meta/) | Workshop, devserver, backlog; [architecture principles](./meta/system-architecture-principles.md) (ModManager → Framework → Plugins → Mods). |
## URLs
- Doc id `intro``/wiki/docs` (see front matter).
- Most docs → `/wiki/<doc-path>` (e.g. `mods/framework``/wiki/mods/framework`).
## Scripts (repository root)
| Script | Role |
|--------|------|
| `wiki:sync` | **No-op** (legacy GitHub Wiki mirror removed). |
| `wiki:normalize-i18n` | **No-op** (same). |
| `wiki:refresh` | Runs both no-ops; safe for old CI hooks. |
Author new pages under `docs/`; use **git history** if you need text from the former bulk import.
## Locales
- **Language:** English only — files under `docs/`.

84
docs/developers.md Normal file
View File

@@ -0,0 +1,84 @@
---
id: developers
title: Developers & contributors
sidebar_label: Developers (hub)
slug: /developers
description: Technical documentation for mod authors, plugin authors, and repo contributors — hooks, workspace, releases, and internals.
---
# Developers & contributors
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.
**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.
## Workspace & onboarding
- [Getting started](/wiki/getting-started) — split-repo layout, build core, hook naming
- [Documentation layout](/wiki/getting-started/documentation-layout) — how `docs/` is organized
- [Workspace map](/wiki/workspace/) — folders on disk
## Framework
- [Architecture](/wiki/framework/architecture)
- [FMF hooks](/wiki/framework/fmf-hooks)
- [Hexmod](/wiki/framework/hexmod)
## Plugins (`FFM.Plugin.*`) & mods (`FMF.*`)
- [Plugins overview](/wiki/plugins/)
- [Mods overview](/wiki/mods/) — gameplay mods and [Framework](/wiki/mods/framework) article
## Guides (authors & repo)
- [Mod developers](/wiki/guides/mod-developers/overview)
- [Contributors (workflow)](/wiki/guides/contributors/topics-overview)
- [Contributor workshop](/wiki/guides/contributors/contributor-workshop)
- [Release guide](/wiki/guides/contributors/release)
- [Sponsors](/wiki/guides/sponsors/overview)
- [By audience (paths)](/wiki/guides/players/audiences-overview) · [Newbies](/wiki/audiences/newbies) · [Intermediates](/wiki/audiences/intermediates) · [Professionals](/wiki/audiences/professionals)
## Tools & meta (advanced)
- [Steam Workshop & tooling](/wiki/meta/Steam-Workshop-and-Tooling)
- [Devserver betas](/wiki/meta/devserver-betas)
- [IDEA backlog](/wiki/meta/IDEA_BACKLOG)
## Releases
- [Releases index](/wiki/releases)
## Reference
- [Wiki mapping](/wiki/reference/wiki-mapping)
- [Mod store vision](/wiki/reference/mod-store-vision)
- [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**
- [Reference data files](/wiki/reference/reference-data-files)
- [Modding language requirement](/wiki/reference/modding-language-requirement)
## Topics
- [Topics hub](/wiki/topics/)
## Contributors (workflow)
- [Repo inventory](/wiki/contributors/repo-inventory)
- [Monorepo target layout](/wiki/contributors/monorepo-target-layout)
- [Design system](/wiki/contributors/luminescent-design-system)
- [Docusaurus workflow](/wiki/contributors/docusaurus-workflow)
- [Plugin submission audit](/wiki/contributors/plugin-submission-audit)
- [Sponsorship automation](/wiki/contributors/sponsorship-automation)
## Roadmap
- [Unified roadmap](/wiki/roadmap/unified-roadmap)
- [Mod store stages](/wiki/roadmap/mod-store-stages)
## Sponsors
- [SPONSORS](/wiki/SPONSORS)

View File

@@ -1,34 +1,45 @@
---
title: Repository architecture
sidebar_label: Repository architecture
description: Aktuelle Multi-Repo-Architektur mit `gregFramework` als Wrapper und klarer Repo-Trennung.
description: Current multi-repo layout with `gregFramework` as a local wrapper and clear repository boundaries.
---
## Modding language
Mods, MelonLoader-Plugins und Extensions liefern ihre **Logik ausschließlich in C#** (MelonLoader / .NET). Details und Abgrenzung zum Framework-Kern (z. B. Rust-Bridge): [Modding language (C# only)](/wiki/reference/modding-language-requirement).
Mods, MelonLoader plugins, and extensions ship their **logic in C# only** (MelonLoader / .NET). Scope vs framework core (e.g. Rust bridge): [Modding language (C# only)](/wiki/reference/modding-language-requirement).
## Layers
## Target runtime layers
Above the raw repositories, the **logical** model is **ModManager → Framework → Plugins → Mods** (see [System architecture & documentation principles](/wiki/meta/system-architecture-principles)):
| Layer | Role | Repo / folder |
|--------|--------|----------------|
| **ModManager** | MAUI front-end: manage mods/plugins, surface game status; talks to the framework through defined interfaces. | `gregModmanager/` |
| **Framework (SDK)** | Hooks, events, versioning, logging; bridge to IL2CPP / MelonLoader. | `gregCore/` |
| **Plugins** | Framework extensions (`FFM.Plugin.*`). | `gregExt.<Name>/` |
| **Mods** | User mods (`FMF.*`). | `gregMod.<Name>/` |
## On-disk repositories
| Layer | Role |
| ------ | ------ |
| **Wrapper** | `gregFramework/` enthält lokal alle Einzel-Repositories. |
| **Core** | `gregCore/`**Framework-Kern**: Übersetzung, Hooks, Harmony/Event-Laufzeit, MCP, Templates und zugehörige Kernfunktionen. |
| **Rust bridge** | In Core integriert unter `gregCore/bridges/gregSta.RustBridge/`. |
| **Mods** | `gregMod.<Name>/`jeweils eigenes Repo direkt unter `gregFramework/`. |
| **Extensions** | `gregExt.<Name>/`jeweils eigenes Repo direkt unter `gregFramework/`. |
| **Docs** | `gregWiki/` als eigenes Repo für Dokumentation. |
| **Wrapper** | `gregFramework/` holds local checkouts of individual repositories. |
| **Core** | `gregCore/`**framework core**: translation, hooks, Harmony/event runtime, MCP, templates, and related core features. |
| **Rust bridge** | Integrated in core under `gregCore/bridges/gregSta.RustBridge/`. |
| **Mods** | `gregMod.<Name>/`one repo each, directly under `gregFramework/`. |
| **Extensions** | `gregExt.<Name>/`one repo each, directly under `gregFramework/`. |
| **Docs** | `gregWiki/` — documentation site repository. |
## Hook registry
Hook-Naming und Registry bleiben fachlich im Core verankert; bei Split-Änderungen gilt immer der Core-Stand als Referenz.
Hook naming and the registry are owned by core; when repos split, **core** remains the source of truth.
## Tools
- **Core tools:** `gregCore/tools/`
- **MCP runtime:** `gregCore/mcp-server/`
- **Hook-/Mapping-Utilities:** ebenfalls unter Core-Tools, versioniert mit dem Core-Repo.
- **Hook / mapping utilities:** also under core tools, versioned with the core repo.
## Steam & Workshop
Workshop-Templates und Deployment-Skripte liegen im Core-Repo unter `gregCore/Templates/` und `gregCore/scripts/`.
Workshop templates and deployment scripts live in the core repo under `gregCore/Templates/` and `gregCore/scripts/`.

View File

@@ -4,7 +4,7 @@ sidebar_label: Getting started
description: "Split-repo workspace: gregFramework layout, building the core, and where docs live."
---
The workspace is **multi-repo** with a local `gregFramework/` folder containing standalone repositories, for example:
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/`
- `gregMod.<Name>/` — gameplay mods (`FMF.*`), **flat** next to `gregCore/` (legacy umbrella `gregMods/` is deprecated)

View File

@@ -2,7 +2,7 @@
id: documentation-layout
title: Documentation layout (`docs/`)
sidebar_label: Documentation layout
description: How curated docs, guides, and the legacy GitHub Wiki mirror are organized under docs/.
description: How curated docs, guides, and reference material are organized under docs/.
---
# Documentation layout (`docs/`)
@@ -26,34 +26,17 @@ This folder is the **single source of truth** for the public Docusaurus site. Th
| **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, …). |
| **Meta** | [`meta/`](../meta/Steam-Workshop-and-Tooling.md) | Workshop tooling notes, devserver API, backlog. |
| **Legacy** | [`legacy/`](../legacy/index.md) | GitHub Wiki mirror under `legacy/wiki-import/`. |
## Legacy GitHub Wiki (`docs/legacy/wiki-import/`)
Long-form pages mirrored from the **GitHub Wiki** live here (synced from `.wiki/`).
1. Clone the wiki working tree as **`../.wiki/`** under `gregFramework/` (same level as sibling repos).
2. From **gregWiki** root: `npm run wiki:refresh` (or `wiki:sync``wiki:normalize-i18n`).
3. German paired pages live under `i18n/de/docusaurus-plugin-content-docs/current/legacy/wiki-import/` after normalization.
4. Prefer **new curated docs** under `guides/`, `reference/`, or `framework/`; keep bulk legacy material in `legacy/wiki-import/` until migrated.
Details: [`topics/wiki-import/overview`](../topics/wiki-import/overview.md).
| **Meta** | [`meta/`](../meta/Steam-Workshop-and-Tooling.md) | Workshop tooling notes, devserver API, backlog; **[architecture principles](../meta/system-architecture-principles.md)** (stack model & doc rules). |
## URLs
- Doc id `intro``/wiki/docs`.
- Typical doc → `/wiki/<doc-id-path>` (e.g. `mods/framework``/wiki/mods/framework`).
## Scripts (gregWiki root)
| Script | Role |
|--------|------|
| `wiki:sync` | Copies `.wiki/``docs/legacy/wiki-import/`. |
| `wiki:normalize-i18n` | Splits DE/EN pairs into default locale + `i18n/de/...`. |
| `write-wiki-import-category-keys` | Refreshes `_category_.json` keys under imported trees. |
## Locales
- **Default:** `en` — files under `docs/`.
- **Deutsch (`de`):** overrides under `i18n/de/docusaurus-plugin-content-docs/current/` mirroring `docs/` paths where translated files exist; otherwise Docusaurus falls back to English.
- **Language:** English only — all curated content lives under `docs/`.
## Historical note
The former GitHub Wiki bulk import under `docs/legacy/wiki-import/` has been **removed**. Author new material under the folders above; use Git history if you need obsolete text.

View File

@@ -6,14 +6,14 @@ 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).
**Repository contributors**framework, website, CI, plugins. Role overview (including players, mod developers, sponsors): [By audience](/wiki/guides/players/audiences-overview).
Operational docs for people changing the framework, site, or release pipeline.
- [System architecture & documentation principles](/wiki/meta/system-architecture-principles) — layer model, priorities, wiki rules (**required reading** for substantive doc changes).
- [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.
- [Contributor workshop](./contributor-workshop) — branching, reviews, and release expectations.

View File

@@ -6,8 +6,9 @@ description: Getting started, mod config, debugging — curated docs for FMF mod
# Mod developers
**Mod-Autorinnen und -Autoren**eigene Mods bauen (Hooks, Konfiguration, Debug). Überblick über alle Rollen: [By audience](/wiki/guides/players/audiences-overview).
**Mod authors**build your own mods (hooks, configuration, debugging). Role overview: [By audience](/wiki/guides/players/audiences-overview).
- [System architecture & documentation principles](/wiki/meta/system-architecture-principles) — layer model **ModManager → Framework → Plugins → Mods**, priorities, wiki rules
- [By audience — intermediates](/wiki/audiences/intermediates) and [professionals](/wiki/audiences/professionals)
- [Framework overview](/wiki/mods/framework) — runtime capabilities and repo layout
- [FMF hooks](/wiki/framework/fmf-hooks) — hook surface (generated article)

View File

@@ -2,28 +2,28 @@
id: audiences-overview
title: By audience
sidebar_label: By audience
description: Vier Rollen — Spieler, Moddevs, Contributor, Sponsoren — plus Erfahrungsstufen (Newbies bis Pros).
description: Four roles — players, mod developers, contributors, sponsors — plus experience levels (newbies through pros).
---
# By audience
Die Dokumentation richtet sich an **vier Hauptrollen** (und an Erfahrungsstufen darunter). Die meisten Seiten sind **Englisch**; ausgewählte Einstiege gibt es auch auf **Deutsch** (z. B. in dieser Übersicht und in `i18n/de`).
Documentation is aimed at **four primary roles** (and experience levels under each). All curated pages are **English**.
## Die vier Rollen
## The four roles
| Rolle | Für wen? | Einstieg |
| Role | Who | Start here |
|--------|----------|----------|
| **Spieler** (End users) | Installation, Mods nutzen, Troubleshooting | [End users (hub)](./overview) · [End-user workshop](./enduser-workshop) |
| **Mod-Entwickler** (Mod developers) | Mods bauen, Hooks, Konfiguration, Debug | [Mod developers (hub)](../mod-developers/overview) · [Framework](/wiki/mods/framework) |
| **Contributor** (Repo & Framework) | PRs, Doku, Plugins, CI | [Contributors (workflow)](../contributors/topics-overview) · [Repo inventory](/wiki/contributors/repo-inventory) |
| **Sponsorinnen & Sponsoren** | Unterstützung, Transparenz | [Sponsors (hub)](../sponsors/overview) |
| **Players** (end users) | Install, use mods, troubleshooting | [End users (hub)](./overview) · [End-user workshop](./enduser-workshop) |
| **Mod developers** | Build mods, hooks, configuration, debugging | [Mod developers (hub)](../mod-developers/overview) · [Framework](/wiki/mods/framework) |
| **Contributors** (repo & framework) | PRs, docs, plugins, CI | [Contributors (workflow)](../contributors/topics-overview) · [Repo inventory](/wiki/contributors/repo-inventory) |
| **Sponsors** | Support, transparency | [Sponsors (hub)](../sponsors/overview) |
## Erfahrungsstufen (alle Rollen)
## Experience levels (all roles)
- [Newbies](/wiki/audiences/newbies) — erste Schritte, Begriffe, sichere Defaults.
- [Intermediates](/wiki/audiences/intermediates) — Workflows, Tooling, typische Stolpersteine.
- [Professionals](/wiki/audiences/professionals) — Architektur, FFI, Performance, Release-Kanäle.
- [Newbies](/wiki/audiences/newbies) — first steps, terminology, safe defaults.
- [Intermediates](/wiki/audiences/intermediates) — workflows, tooling, common pitfalls.
- [Professionals](/wiki/audiences/professionals) — architecture, FFI, performance, release channels.
## Thematische Übersicht
## Thematic overview
- [Topics hub](/wiki/topics/) — Security, Multiplayer, Assets, FFI, Roadmap, Meta.
- [Topics hub](/wiki/topics/) — security, multiplayer, assets, FFI, roadmap, meta.

View File

@@ -6,7 +6,7 @@ description: FAQs, install paths, troubleshooting — entry point for players us
# End users
**Spielerinnen und Spieler** Mods installieren und spielen, ohne am Framework mitzuentwickeln. Überblick über alle Rollen: [By audience](/wiki/guides/players/audiences-overview).
**Players** — install and play with mods without developing the framework. Role overview: [By audience](/wiki/guides/players/audiences-overview).
- [By audience — newbies](/wiki/audiences/newbies)
- [End-user workshop](/wiki/guides/players/enduser-workshop) — install, updates, Workshop

View File

@@ -1,19 +1,19 @@
---
title: Sponsors & support
sidebar_label: Sponsors (hub)
description: Für Unterstützerinnen und UnterstützerSponsoring, Transparenz, Anlaufstellen.
description: For supporterssponsorship, transparency, where to start.
---
# Sponsors & support
Die Community finanziert u. a. Infrastruktur, Tools und Zeit für Pflege der Doku und des Frameworks. Hier startest du als **potenzielle Sponsorin oder Sponsor** (oder als Spielerin, die nur informieren möchte, wohin Unterstützung fließt).
The community funds infrastructure, tools, and time to maintain documentation and the framework. Use this page if you are a **potential sponsor** (or a player who wants to see where support goes).
## Kurzüberblick
## At a glance
- **GitHub:** [mleem97/gregFramework](https://github.com/mleem97/gregFramework) — Sponsoring- und Community-Richtlinien stehen in `README`, `LICENSE` und `CONTRIBUTING`.
- **Transparenz:** Release-Notes und [Release-Kanäle](/wiki/reference/release-channels) beschreiben, wie Builds verteilt werden.
- **Rechtliches:** [Security & legal](/wiki/topics/security-legal/overview) — verbindliche Texte liegen im Repository, nicht nur im Wiki.
- **GitHub:** [mleem97/gregFramework](https://github.com/mleem97/gregFramework) — sponsorship and community policies are in `README`, `LICENSE`, and `CONTRIBUTING`.
- **Transparency:** Release notes and [Release channels](/wiki/reference/release-channels) describe how builds are distributed.
- **Legal:** [Security & legal](/wiki/topics/security-legal/overview) — binding text lives in the repository, not only in the wiki.
:::note Zielgruppe
Diese Seite richtet sich an **Sponsorinnen, Sponsoren und Fördernde**. Spielerinnen und Spieler finden den Einstieg unter [End users](/wiki/guides/players/overview); Mod-Autoren unter [Mod developers](/wiki/guides/mod-developers/overview); Mitwirkende am Repo unter [Contributors (workflow)](/wiki/guides/contributors/topics-overview).
:::note Audience
This page is for **sponsors and supporters**. Players start at [End users](/wiki/guides/players/overview); mod authors at [Mod developers](/wiki/guides/mod-developers/overview); repo contributors at [Contributors (workflow)](/wiki/guides/contributors/topics-overview).
:::

View File

@@ -1,47 +1,29 @@
---
id: intro
title: gregFramework documentation
title: Documentation
slug: /docs
description: Entry point for the split-repo workspace — core, mods, extensions, and this wiki.
description: Help for Data Center players using mods — install, Workshop, troubleshooting. Technical docs for authors are separated.
---
This documentation describes the **current split layout**: a local `gregFramework/` workspace with separate repositories for **core**, **mods**, **extensions**, and **wiki**. It is written for **players**, **mod developers**, **contributors**, and **sponsors**.
# Welcome
## Who is this for?
**gregFramework** is the modding stack for *Data Center*. If you **play with mods**, you only need a short path: install, browse the Workshop, and fix common issues.
| Audience | Start here |
|----------|------------|
| **Players** — install, play, troubleshoot | [End users (hub)](./guides/players/overview.md) · [End-user workshop](./guides/players/enduser-workshop.md) |
| **Mod developers** — build mods, hooks, debugging | [Mod developers (hub)](./guides/mod-developers/overview.md) · [Framework](./mods/framework.md) · [FMF hooks](/wiki/framework/fmf-hooks) |
| **Contributors** — PRs, docs, plugins, CI | [Contributors (workflow)](./guides/contributors/topics-overview.md) · [Contributor workshop](./guides/contributors/contributor-workshop.md) |
| **Sponsors** — support & transparency | [Sponsors (hub)](./guides/sponsors/overview.md) · [GitHub Sponsors](https://github.com/sponsors) (project policies in repo `LICENSE` / `CONTRIBUTING`) |
## Players — start here
**Experience tracks** (newbies → pros): [By audience](./guides/players/audiences-overview.md) → [Newbies](/wiki/audiences/newbies), [Intermediates](/wiki/audiences/intermediates), [Professionals](/wiki/audiences/professionals).
1. **[End users](/wiki/guides/players/overview)** — install, update, troubleshooting
2. **[WorkshopManager guide](/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
## Repository hub
[**Mod catalog**](/mods) lists modules with links to docs and downloads.
- [Workspace map](./workspace/index.mdx) — how folders map to repos
- Core: `gregCore/` (`framework/FrikaMF`, `mcp-server/`, `bridges/gregSta.RustBridge/`)
- Mods: `gregMod.<Name>/` (split repos, directly under `gregFramework/`)
- Extensions (FFM plugins): `gregExt.<Name>/` (split repos, directly under `gregFramework/`)
- Workshop app: `gregModmanager/` (Gregtools Modmanager — `WorkshopUploader.exe`)
- Exporter / templates: `gregDataCenterExporter/`
- Wiki: `gregWiki/` (this site)
## Mod authors, plugins, and repo work
## Hooks and releases
Everything for **building mods**, **FFM plugins**, hooks, CI, and **contributing** lives in one place:
- [FMF hook naming](./reference/fmf-hook-naming.md) — `FMF.<Domain>.…` and legacy `FFM.*`
- [FMF hooks catalog](./reference/fmf-hooks-catalog.md) — generated from core `HookNames.cs`
- [Release channels](./reference/release-channels.md) — Steam Workshop vs GitHub (beta)
- [MCP server](./reference/mcp-server.md) — optional LLM/IDE tooling over docs + `fmf_hooks.json`
**[Developers & contributors →](/wiki/developers)**
## Layout (contributors)
Technical docs follow one stack model: **ModManager (MAUI) → framework / SDK → plugins → mods** — explained in **[System architecture & documentation principles](/wiki/meta/system-architecture-principles)**.
- [Repo inventory](./contributors/repo-inventory.md) — project and repository overview
- Split naming: `gregMod.<Name>`, `gregExt.<Name>`, `gregSta.<Name>` (Rust bridge repo), plus apps like `gregModmanager/`, `gregDataCenterExporter/`, `gregIPAM/`, `gregStore/`
## Source model
- **Authoring:** Markdown/MDX lives in the **gregWiki** repository.
- **Technical source of truth:** runtime and bridge details come from **gregCore**.
- **Rust bridge:** `gregCore/bridges/gregSta.RustBridge/`.
Do not use the sidebars technical sections unless you are developing — the default view stays short on purpose.

View File

@@ -0,0 +1,67 @@
---
title: System architecture & documentation principles
sidebar_label: Architecture principles
description: Canonical stack model (ModManager → Framework → Plugins → Mods), priorities, and how wiki pages should align.
---
# System architecture & documentation principles
This page is the **canonical reference** for how gregFramework documentation describes the stack: **ModManager (MAUI) → modding framework / SDK → plugins → mods**, plus priorities (stability first), the hook-proxy idea, and **authoring rules**. All wiki content must be written in **English** only.
Detail pages (individual mods, plugins, releases) should align with this model without repeating the full narrative each time — **link here** for the big picture.
## Layer model (target architecture)
Describe the runtime as a **layered system**, not a flat list of DLLs:
| Layer | Role | Typical workspace artifacts |
|--------|--------|------------------------------|
| **1. ModManager (front-end)** | UI to enable/disable mods and plugins, ordering, configuration, game state (e.g. no save loaded, level loading). Talks to the framework through **well-defined** interfaces (shared library, config files, IPC, named pipes, HTTP — depending on implementation). | `gregModmanager/`**Gregtools Modmanager** (MAUI, e.g. `WorkshopUploader.csproj`). |
| **2. Modding framework / SDK** | Stable API surface for plugins and mods: lifecycle, events, versioning, dependencies, logging, error handling. Hooks Unity / MelonLoader / IL2CPP and **maps** low-level events to **framework events** (hook proxy). | `gregCore/` — e.g. `FrikaMF`, Harmony integration, bridges (e.g. Rust), hook registry. |
| **3. Plugins** | Extend the framework (new services, hook types, optional ModManager UI). Clear extension points. | `FFM.Plugin.*`, repos **`gregExt.<Name>/`**. |
| **4. Mods** | User extensions via the **documented** framework API; avoid direct IL2CPP details where possible; load in isolation; soft-fail on errors. | `FMF.*`, repos **`gregMod.<Name>/`**. |
**Mnemonic:** `ModManager → Framework → Plugins → Mods`.
### Hook proxy and hotloading (concept)
- The framework should map **Unity / IL2CPP events** (MelonLoader hooks, patches) to **stable, named framework events** (e.g. level loaded, scene changed, update) so mods do not couple to concrete Unity signatures.
- **Hotloading** mods is a target state: load only in **safe** states (e.g. no active save, menu), re-bind on level change — exact rules live in framework code and should appear in technical articles **only** when anchored in the repo.
These wiki pages do **not** mandate a specific implementation; they **align** authors and readers on the same vocabulary.
## Technical context (expertise areas)
Documentation and reviews in the gregFramework space typically assume:
- **C# / .NET** (modern language features, best practices)
- **Unity with IL2CPP**
- **MelonLoader** and modular **FMF** / **FFM** stacks
- **.NET MAUI** for the ModManager (deployment, installer, release vs debug issues)
- Debugging, logging, tracing, crash analysis (including outside the IDE)
## Priorities (when trade-offs arise)
When documentation or API design must choose, use this **order**:
1. **Stability and fault tolerance** — faulty mods must not tear down the whole system arbitrarily; clear error paths and logging.
2. **Clean architecture and maintainability** — clear layers, documented interfaces.
3. **Developer experience** — understandable APIs, hooks, logging for mod authors.
4. **Performance and low invasiveness** toward the game.
5. **Extensibility and long-term compatibility** — versioning, dependency rules.
## Rules for wiki authors
- **Terminology:** Always name the layer (ModManager, framework, plugin, mod). Do not conflate “plugin” and “mod” without context.
- **Language:** **English only** for all user-facing documentation in `docs/`, the homepage, and UI strings in this site.
- **Repos:** Keep paths such as `gregCore/`, `gregMod.*`, `gregExt.*`, `gregModmanager/` consistent with the [Workspace map](/wiki/workspace) and [Repository architecture](/wiki/framework/architecture).
- **No invented APIs:** New pages must not promise hooks or events that are not evidenced in core/registry — link to [FMF hooks](/wiki/framework/fmf-hooks) and the [Hooks catalog](/wiki/reference/fmf-hooks-catalog).
- **Cross-links:** Entry [Developers & contributors](/wiki/developers), architecture [Repository architecture](/wiki/framework/architecture), language rule [Modding language (C# only)](/wiki/reference/modding-language-requirement).
## See also
- [Repository architecture](/wiki/framework/architecture) — multi-repo layout, core, bridges
- [Getting started](/wiki/getting-started) — workspace and build
- [Mods — Framework](/wiki/mods/framework) — runtime from mod authors perspective
- [Plugins overview](/wiki/plugins/) — `FFM.Plugin.*`
- [Mod developers](/wiki/guides/mod-developers/overview)

View File

@@ -101,4 +101,4 @@ Output lands in the standard MelonLoader `Mods/` folder as configured in the `.c
## Sources
- Module path: `gregMod.HexLabelMod/`
- Relatedocs: [`Standalone Mods`](/wiki/legacy/wiki-import/StandaloneMods)
- See also: [Mods overview](/wiki/mods/)

View File

@@ -5,6 +5,8 @@ sidebar_label: Framework
**Language:** mod, plugin, and extension **logic must be written in C#** — see [Modding language (C# only)](/wiki/reference/modding-language-requirement).
**Stack position:** gameplay **mods** sit on top of **plugins** and the **framework SDK**; the **ModManager** (MAUI) is the out-of-game front-end — see [System architecture & documentation principles](/wiki/meta/system-architecture-principles).
The core `FrikaMF` runtime provides:
- Harmony patch integration for gameplay hooks

View File

@@ -6,7 +6,7 @@ description: Standalone MelonLoader gameplay mods (FMF.*) — separate from FFM
# Gameplay mods
These pages document **gameplay mods** (`FMF.*` assemblies). **Source of truth** on disk: split-repo folders **`gregMod.<Name>/`** directly under the gregFramework workspace root (not under a legacy `gregMods/` umbrella). They are **not** the same as [FFM plugins](../plugins/index.md), which extend the framework inside the game process.
These pages document **gameplay mods** (`FMF.*` assemblies)**layer 4** in **ModManager → Framework → Plugins → Mods** ([architecture principles](/wiki/meta/system-architecture-principles)). **Source of truth** on disk: split-repo folders **`gregMod.<Name>/`** directly under the gregFramework workspace root (not under a legacy `gregMods/` umbrella). They are **not** the same as [FFM plugins](../plugins/index.md), which extend the framework inside the game process.
## Mods

View File

@@ -12,4 +12,4 @@ Provides export-focused tooling for asset-related workflows.
## Sources
- Module path: `gregExt.AssetExporter/`
- Overview: [`Standalone Mods`](/wiki/legacy/wiki-import/StandaloneMods)
- See also: [Mods overview](/wiki/mods/)

View File

@@ -12,4 +12,4 @@ Contains **multiplayer / networking** runtime (bridge, sync). **Not** the same a
## Sources
- Module path: `gregExt.Multiplayer/`
- Roadmap context: [`Steamworks P2P Multiplayer Roadmap`](/wiki/legacy/wiki-import/Steamworks-P2P-Multiplayer-Roadmap)
- Roadmap: [Unified roadmap](/wiki/roadmap/unified-roadmap) · [Multiplayer topic](/wiki/topics/multiplayer-and-networking/overview)

View File

@@ -12,4 +12,4 @@ Hosts standalone player-model specific behavior and integration.
## Sources
- Module path: `gregExt.PlayerModels/`
- Debug docs: [`Mod Developer Debug`](/wiki/legacy/wiki-import/Mod-Developer-Debug)
- Debug: [Mod developers (hub)](/wiki/guides/mod-developers/overview)

View File

@@ -12,4 +12,4 @@ Contains **sysadmin-oriented UI** features (Unity UI modernization, mod settings
## Sources
- Module path: `gregExt.Sysadmin/`
- Framework context: [`Framework Features & Use Cases`](/wiki/legacy/wiki-import/Framework-Features-Use-Cases)
- Framework context: [Framework](/wiki/mods/framework)

View File

@@ -12,4 +12,4 @@ Focuses on standalone web UI bridge integration flows.
## Sources
- Module path: `gregExt.WebUIBridge/`
- Reference: [`Web UI Bridge (DC2WEB)`](/wiki/legacy/wiki-import/Web-UI-Bridge)
- Related: [Multiplayer & networking hub](/wiki/topics/multiplayer-and-networking/overview)

View File

@@ -6,7 +6,7 @@ description: FFM.Plugin.* modules that extend the framework runtime — distinct
# Framework plugins (`FFM.Plugin.*`)
These **plugins** ship as `FFM.Plugin.*` assemblies and extend the **framework runtime**. **Source of truth** on disk: one split-repo folder per plugin under the workspace root, named **`gregExt.<Name>/`** (for example `gregExt.AssetExporter/`). Mirrored copies may also exist under `gregCore/plugins/` for solution builds. Deploy built DLLs under the games FMF plugin path (see [Game folder layout](/wiki/topics/meta/game-folder-layout)).
These **plugins** ship as `FFM.Plugin.*` assemblies and extend the **framework runtime** (layer **3** in **ModManager → Framework → Plugins → Mods** — [architecture principles](/wiki/meta/system-architecture-principles)). **Source of truth** on disk: one split-repo folder per plugin under the workspace root, named **`gregExt.<Name>/`** (for example `gregExt.AssetExporter/`). Mirrored copies may also exist under `gregCore/plugins/` for solution builds. Deploy built DLLs under the games FMF plugin path (see [Game folder layout](/wiki/topics/meta/game-folder-layout)).
Gameplay mods (`FMF.*`) are documented under **[Mods](../mods/index.md)** — not here.

View File

@@ -26,5 +26,6 @@ That applies to anything shipped as a **`gregMod.*`**, **`gregExt.*`**, or **`FF
## See also
- [System architecture & documentation principles](/wiki/meta/system-architecture-principles) — stack model and documentation rules
- [Framework](/wiki/mods/framework) — runtime surface for mod authors
- [FMF hook naming](/wiki/reference/fmf-hook-naming)

View File

@@ -6,6 +6,8 @@ description: FFI, hook lists, naming — curated reference for mod and plugin au
# FFI, hooks & Lua
The framework is intended to act as a **hook proxy**: Unity / IL2CPP events are surfaced as **stable framework events** for mods — see [System architecture & documentation principles](/wiki/meta/system-architecture-principles).
- [FMF hooks](/wiki/framework/fmf-hooks) — generated hook surface
- [FMF hooks catalog](/wiki/reference/fmf-hooks-catalog) — strings from core sources
- [FMF hook naming](/wiki/reference/fmf-hook-naming) — `FMF.*` vs legacy `FFM.*`

View File

@@ -8,6 +8,8 @@ description: Thematic index — cross-cutting overviews (assets, multiplayer, se
Documentation is **curated** in this repository: guides, framework articles, reference data (hook catalogs), and contributor workflow — versioned with **gregFramework** and **gregWiki**.
**Stack model:** [System architecture & documentation principles](/wiki/meta/system-architecture-principles) — **ModManager → Framework → Plugins → Mods**, priorities, and author guidelines.
## Quick map
| Area | Start here |

View File

@@ -10,39 +10,39 @@ This page is the **single reference** for where mod-related files live next to t
## Summary
| Inhalt | Pfad | Format / Hinweis |
|--------|------|------------------|
| **Mod-Konfiguration & Sidecars** | `{GameRoot}/UserData/ModCfg/` | **JSON** für Konfigurationsdateien; weitere Sidecar-Dateien (z. B. `custom_employees_hired.txt`) liegen ebenfalls hier, damit alles Mod-Bezogene an einem Ort liegt. |
| **FMF Framework-Plugins** (FFM.Plugin.*) | `{GameRoot}/FMF/Plugins/` | DLLs; **MelonLoader** lädt standardmäßig nur `{GameRoot}/Mods` — siehe unten. |
| **Plugins** (MelonLoader, z. B. ModPathRedirector) | `{GameRoot}/Plugins/` | MelonLoader `Plugins`-Ordner — nur **MelonPlugin**-DLLs. |
| **Mods** (MelonLoader, z. B. FMF.Mod.*) | `{GameRoot}/Mods/` | MelonLoader `Mods`-Ordner — **MelonMod**-DLLs. |
| Content | Path | Format / notes |
|--------|------|----------------|
| **Mod configuration & sidecars** | `{GameRoot}/UserData/ModCfg/` | **JSON** config files; additional sidecar files (e.g. `custom_employees_hired.txt`) live here so mod-related files stay in one place. |
| **FMF framework plugins** (FFM.Plugin.*) | `{GameRoot}/FMF/Plugins/` | DLLs; **MelonLoader** only scans `{GameRoot}/Mods` by default — see below. |
| **Plugins** (MelonLoader, e.g. ModPathRedirector) | `{GameRoot}/Plugins/` | MelonLoader `Plugins` folder — **MelonPlugin** DLLs only. |
| **Mods** (MelonLoader, e.g. FMF.Mod.*) | `{GameRoot}/Mods/` | MelonLoader `Mods` folder — **MelonMod** DLLs. |
## UserData/ModCfg
- Alle **mod-relevanten** Konfigurationen und JSON-Sidecars werden unter **`UserData/ModCfg`** geführt.
- Beim ersten Start werden fehlende Dateien angelegt; bei bestehenden Installationen werden ältere Dateien aus **`UserData/`** (Root) nach **`ModCfg/`** übernommen, sofern noch vorhanden.
- Beispiele: `multiplayer-sync.config.json`, `pluginsync.config.json`.
- Framework-Metadaten (z. B. Save-Compat-Stamp) liegen unter **`UserData/ModCfg/FrikaFM/`** (Migration von `UserData/FrikaFM`).
- All **mod-related** configuration and JSON sidecars live under **`UserData/ModCfg`**.
- On first start, missing files are created; on existing installs, older files may be migrated from **`UserData/`** (root) into **`ModCfg/`** when still present.
- Examples: `multiplayer-sync.config.json`, `pluginsync.config.json`.
- Framework metadata (e.g. save-compat stamp) lives under **`UserData/ModCfg/FrikaFM/`** (migrated from `UserData/FrikaFM`).
## FMF/Plugins und MelonLoader
## FMF/Plugins and MelonLoader
**FFM-Plugin-DLLs** liegen kanonisch unter **`{GameRoot}/FMF/Plugins`**. MelonLoader enumeriert **standardmäßig** nur **`Mods/`**. Praktische Optionen:
**FFM plugin DLLs** canonically live under **`{GameRoot}/FMF/Plugins`**. MelonLoader enumerates **`Mods/`** by default. Practical options:
1. **DLLs zusätzlich** (oder verlinkt) **`Mods/`** ablegen — üblicher Weg für automatisches Laden.
2. **Unterordner** von `Mods` nutzen, falls eure MelonLoader-Version Mods in Unterverzeichnissen lädt (Version je nach Release prüfen).
3. **PluginSync**-Downloads des Frameworks landen unter **`FMF/Plugins/PluginSync/...`**.
1. **Also place** (or link) DLLs under **`Mods/`** — common path for automatic loading.
2. Use **subfolders** under `Mods` if your MelonLoader version loads mods from subdirectories (check your ML version).
3. **PluginSync** downloads from the framework land under **`FMF/Plugins/PluginSync/...`**.
## Mods (FMF-basiert)
## Mods (FMF-based)
Normale **MelonLoader-Mods** (einschließlich FMF-Mods) werden wie gewohnt in **`{GameRoot}/Mods/`** installiert.
Standard **MelonLoader mods** (including FMF-based mods) install under **`{GameRoot}/Mods/`** as usual.
## Steam Workshop (Spiel) vs. MelonLoader
## Steam Workshop (game) vs MelonLoader
Das Spiel legt abonnierte Workshop-Inhalte unter **`{GameRoot}/{ExeName}_Data/StreamingAssets/mods/workshop_<PublishedFileId>/WorkshopUploadContent`** ab (nativer `ModLoader`, nicht MelonLoader).
The game stores subscribed Workshop content under **`{GameRoot}/{ExeName}_Data/StreamingAssets/mods/workshop_<PublishedFileId>/WorkshopUploadContent`** (native `ModLoader`, not MelonLoader).
- **MelonLoader** durchsucht **`{GameRoot}/Mods`** (inkl. Unterordner, je nach Einstellung), **nicht** beliebige Pfade über `Loader.cfg`.
- **UserData:** MelonLoader-Konfiguration liegt unter **`{GameRoot}/UserData/`** (z.B. **`MelonLoader.cfg`** / je nach Version **`UserData/MelonLoader/Loader.cfg`** — bei Install prüfen). Relevant für Unterordner-Laden: **`disable_subfolder_load = false`**, optional **`disable_subfolder_manifest = true`**.
- **Workshop-DLLs in den Melon-Scan einbinden:** Junction (oder Symlink) von einem Ordner unter **`Mods/`** auf den **`WorkshopUploadContent`**-Pfad desselben Items, z.B. (PowerShell, Pfade anpassen):
- **MelonLoader** scans **`{GameRoot}/Mods`** (including subfolders, depending on settings), **not** arbitrary paths via `Loader.cfg`.
- **UserData:** MelonLoader config lives under **`{GameRoot}/UserData/`** (e.g. **`MelonLoader.cfg`** or, depending on version, **`UserData/MelonLoader/Loader.cfg`** — verify on install). For subfolder loading: **`disable_subfolder_load = false`**, optionally **`disable_subfolder_manifest = true`**.
- **Point Workshop DLLs into Melons scan:** use a junction (or symlink) from a folder under **`Mods/`** to the items **`WorkshopUploadContent`** path, e.g. (PowerShell, adjust paths):
```powershell
$game = "C:\Path\To\Data Center"
@@ -52,11 +52,11 @@ $link = Join-Path $game "Mods\workshop_$id"
cmd /c mklink /J "$link" "$target"
```
Ohne Junction müssen MelonMods weiter physisch unter **`Mods/`** liegen oder über eure Verteilung dort landen.
Without a junction, Melon mods must still live physically under **`Mods/`** or be deployed there by your distribution.
**WorkshopUploader-Vorlagen (modded):** Unter **`content/`** werden **`Mods/`**, **`Plugins/`** und ein **`ModFramework/`**-Baum angelegt**`ModFramework/FMF/Plugins`** entspricht dabei **`{GameRoot}/FMF/Plugins`**, wenn ihr **`FMF`** per Junction auf **`…/WorkshopUploadContent/ModFramework/FMF`** zeigen lasst. Weitere Framework-Dateien (Konfiguration, Assets) können unter **`ModFramework/`** gebündelt werden.
**WorkshopUploader templates (modded):** Under **`content/`**, **`Mods/`**, **`Plugins/`**, and a **`ModFramework/`** tree are created**`ModFramework/FMF/Plugins`** maps to **`{GameRoot}/FMF/Plugins`** if you junction **`FMF`** to **`…/WorkshopUploadContent/ModFramework/FMF`**. Additional framework files (config, assets) can be bundled under **`ModFramework/`**.
## Siehe auch
## See also
- [Meta & operations](/wiki/topics/meta/overview)
- Mod configuration contracts are described alongside runtime docs in [Framework](/wiki/mods/framework) and core `README` in **gregFramework** (paths under **`UserData/ModCfg/`** follow the game + framework conventions above).
- Mod configuration contracts are described with runtime docs in [Framework](/wiki/mods/framework) and the core `README` in **gregFramework** (paths under **`UserData/ModCfg/`** follow the conventions above).

View File

@@ -13,7 +13,7 @@ The **gregFramework** folder groups several repositories (split layout). Use thi
| **Framework core** | `gregCore/` | MelonLoader host (`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) |
| **Workshop desktop app** | `gregModmanager/` | **Gregtools Modmanager** (MAUI); project file `WorkshopUploader.csproj`, executable **`WorkshopUploader.exe`** |
| **ModManager (MAUI)** | `gregModmanager/` | **Gregtools Modmanager** — grafisches Frontend zur Verwaltung von Mods/Plugins; `WorkshopUploader.csproj`, **`WorkshopUploader.exe`**. Siehe [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 |