docs: update terminology and improve clarity across documentation

- Revised the tagline in `docusaurus.config.js` to reflect the focus on Data Center.
- Enhanced descriptions in `getting-started.md`, `intro.md`, and various mod documentation files for consistency and clarity.
- Updated references to the game name, removing "Waseku" for a more streamlined presentation.
- Improved the structure and readability of tables and lists throughout the documentation.

This commit aims to ensure the documentation is clear, consistent, and accurately represents the project, enhancing usability for both mod developers and players.
This commit is contained in:
Marvin
2026-04-10 04:44:12 +02:00
parent e3d5f22aec
commit e818c78baa
19 changed files with 93 additions and 93 deletions

View File

@@ -8,7 +8,7 @@ This folder is the **single source of truth** for the public Docusaurus site. Th
|------|------|--------|
| **Landing** | [`intro` → `/wiki`](/wiki) | Mod author wiki home. |
| **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.*`). |
| **Mods & plugins** | [`mods/`](./mods/), [`plugins/`](./plugins/) | Gameplay mods (`FMF.*`) and framework plugins (`greg.Plugin.*` / `FFM.Plugin.*` depending on repo). |
| **Releases** | [`releases/`](./releases/) | Per-artifact release notes. |
| **Reference** | [`reference/`](./reference/) | Hooks, naming, MCP, generated catalogs. |
| **Contributors** | [`contributors/`](./contributors/) | Repo layout, Docusaurus workflow, design system. |

View File

@@ -13,7 +13,7 @@ The repository **stays one Git repo**. The goal is **clear boundaries** between
| Top-level | Purpose |
|-----------|---------|
| `framework/` | Core MelonLoader framework (`framework/FrikaMF.csproj`, `framework/FrikaMF/`, entry `Main.cs`) |
| `gregCore/framework/` | Core MelonLoader framework (`gregCore/framework/FrikaMF.csproj`, `Sdk/`, `ModLoader/`, entry `framework/Main.cs`) |
| `mods/` | Gameplay mods (`FMF.Mod.*`, `FMF.*.dll` style) |
| `plugins/` | FFM plugins (`FFM.Plugin.*`) |
| `Templates/` | Scaffolds for new mods/plugins |

View File

@@ -6,52 +6,52 @@ description: greg.* hooks, GregEventDispatcher, GregNativeEventHooks, greg_hooks
# Greg hooks & event runtime
Die Assembly **`FrikaModdingFramework.dll`** entsteht aus **`gregCore/framework/FrikaMF.csproj`** und bündelt Harmony-Patches, C#-Events (`GregEventDispatcher`), sowie die Rust-/Native-Bridge. Für Mod-Autor:innen sind im Wesentlichen **drei Flächen** relevant:
The **`FrikaModdingFramework.dll`** assembly is built from **`gregCore/framework/FrikaMF.csproj`** and combines Harmony patches, C# events (`GregEventDispatcher`), and the Rust/native bridge. Mod authors mainly care about **three surfaces**:
| Fläche | Zweck | Typischer Einstieg |
|--------|--------|---------------------|
| **`greg.*` Hook-Strings** | Kanonische Namen für Harmony-/Mod-Code; Registry in **`greg_hooks.json`**. | `GregEventDispatcher.On("greg....", handler, modId)` in **`gregFramework.Core`** |
| **Native Pipeline (`EventIds` → `greg.*`)** | Gleiche Spielmomente wie FFI-Events; zentral **`GregNativeEventHooks`**. | Konstanten / `Resolve(uint)` in **`gregFramework.Core.GregNativeEventHooks`** |
| **Legacy-Aliase** | Alte String-Schreibweisenkanonisches **`greg.*`**. | **`GregCompatBridge`** (+ optional Einträge in **`greg_hooks.json`** `legacy`) |
| Surface | Role | Typical entry |
|---------|------|----------------|
| **`greg.*` hook strings** | Canonical names for Harmony/mod code; registry in **`greg_hooks.json`**. | `GregEventDispatcher.On("greg....", handler, modId)` in **`gregFramework.Core`** |
| **Native pipeline (`EventIds` → `greg.*`)** | Same gameplay moments as FFI events; centralized in **`GregNativeEventHooks`**. | Constants / `Resolve(uint)` on **`gregFramework.Core.GregNativeEventHooks`** |
| **Legacy aliases** | Old spellingscanonical **`greg.*`**. | **`GregCompatBridge`** (+ optional **`legacy`** entries in **`greg_hooks.json`**) |
Neue **öffentliche Dokumentations-IDs** folgen weiterhin **`FMF.<Domain>.*`** — siehe [FMF hook naming](/wiki/reference/fmf-hook-naming). Die **Laufzeit** für die native Kette ist **`greg.*`** wie in **`GregNativeEventHooks`** und **`greg_hooks.json`**.
New **documentation** identifiers still follow **`FMF.<Domain>.*`** — see [FMF hook naming](/wiki/reference/fmf-hook-naming). **Runtime** strings for the native chain are **`greg.*`** as defined by **`GregNativeEventHooks`** and **`greg_hooks.json`**.
## `greg_hooks.json` (Version 2)
## `greg_hooks.json` (version 2)
| Pfad | Rolle |
|------|--------|
| **Repo-Root** `greg_hooks.json` | Quelle der Wahrheit: `name`, `patchTarget`, `strategy`, `payloadSchema`, optional `legacy`. |
| **Neben `FrikaModdingFramework.dll`** | Wird per `FrikaMF.csproj` aus dem Monorepo-Root kopiert, damit **`GregCompatBridge`** Legacy-Namen auflösen kann. |
| Path | Role |
|------|------|
| **Repo root** `greg_hooks.json` | Source of truth: `name`, `patchTarget`, `strategy`, `payloadSchema`, optional `legacy`. |
| **Next to `FrikaModdingFramework.dll`** | Copied from the monorepo root on build so **`GregCompatBridge`** can resolve legacy names. |
Regenerieren: `gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1` bei geändertem Il2Cpp-/Interop-Stand.
Regenerate: `gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1` when Il2Cpp/interop inputs change.
## `GregEventDispatcher` / SDK
Implementierung: **`gregCore/framework/src/Sdk/GregEventDispatcher.cs`** (`namespace gregFramework.Core`). API: **`On` / `Once` / `Off` / `Emit`**, **`OnCancelable` / `InvokeCancelable`**, **`UnregisterAll(modId)`**.
Implementation: **`gregCore/framework/src/Sdk/GregEventDispatcher.cs`** (`namespace gregFramework.Core`). API: **`On` / `Once` / `Off` / `Emit`**, **`OnCancelable` / `InvokeCancelable`**, **`UnregisterAll(modId)`**.
Hook-Strings stabil mit **`GregHookName.Create(GregDomain.*, "Action")`** oder den **`GregNativeEventHooks.*`**-Konstanten bauen.
Build stable hook strings with **`GregHookName.Create(GregDomain.*, "Action")`** or **`GregNativeEventHooks.*`** constants.
## Native Events (`EventIds`)
## Native events (`EventIds`)
- **`EventIds`** und **`EventDispatcher`:** `gregCore/framework/src/ModLoader/EventDispatcher.cs` (Rust-kompatible numerische IDs).
- **Mapping → `greg.*`:** **`GregNativeEventHooks`** (`gregCore/framework/src/Sdk/GregNativeEventHooks.cs`); Emission über **`GregHookIntegration`** im selben ModLoader-Baum.
- **Katalog (Wiki):** [greg hooks catalog](/wiki/reference/greg-hooks-catalog) (Generator: `gregCore/tools/Generate-GregHookCatalog.ps1`).
- **`EventIds` and `EventDispatcher`:** `gregCore/framework/src/ModLoader/EventDispatcher.cs` (numeric ids aligned with Rust).
- **Mapping → `greg.*`:** **`GregNativeEventHooks`** (`gregCore/framework/src/Sdk/GregNativeEventHooks.cs`); emission via **`GregHookIntegration`** in the same ModLoader tree.
- **Wiki table:** [greg hooks catalog](/wiki/reference/greg-hooks-catalog) (generator: `gregCore/tools/Generate-GregHookCatalog.ps1`).
## Rust FFI
Rust-/Native-Mods erhalten **numerische** Event-IDs; C# spiegelt dieselben Momente als **`greg.*`** über **`GregHookIntegration`**, sobald der Code läuft (auch ohne aktive FFI-Verbindung für die greg-Oberfläche). Bridge-Code: **`FfiBridge` / `FFIBridge`** unter `framework/src/ModLoader/`.
Rust/native mods receive **numeric** event ids; C# mirrors the same moments as **`greg.*`** through **`GregHookIntegration`** while the game runs (including when the FFI connection is down for the managed **`greg.*` surface). Bridge code: **`FfiBridge` / `FFIBridge`** under `framework/src/ModLoader/`.
## MelonLoader-Einstiege (eine DLL)
## MelonLoader entry points (one DLL)
Je nach Build können mehrere **`MelonMod`**-Typen in derselben Assembly liegen (z.B. Framework-Hauptplugin, AssetExporter-Pfade) — **`MelonInfo`** / **`MelonGame`** in den Quellen prüfen.
Depending on the build, multiple **`MelonMod`** types may ship in the same assembly (e.g. main framework plugin vs. AssetExporter paths) — check **`MelonInfo`** / **`MelonGame`** in source.
## Tooling
- **MCP:** `greg_hook_registry`, `greg_hook_search`, … mit `dataRoot`**`gregCore/`** — [MCP server](/wiki/reference/mcp-server).
- **Legacy-Seite [FMF hooks catalog](/wiki/reference/fmf-hooks-catalog)** verweist nur noch auf **`GregNativeEventHooks`** / greg-Katalog (kein `HookNames.cs` mehr).
- **MCP:** `greg_hook_registry`, `greg_hook_search`, … with `dataRoot`**`gregCore/`** — [MCP server](/wiki/reference/mcp-server).
- **[FMF hooks catalog](/wiki/reference/fmf-hooks-catalog)** is now a **short redirect** to **`GregNativeEventHooks`** / [greg hooks catalog](/wiki/reference/greg-hooks-catalog) (the old **`HookNames.cs`** table is gone).
## Siehe auch
## See also
- [Repository architecture](/wiki/framework/architecture)
- [FFI, hooks & Lua (Hub)](/wiki/topics/ffi-and-hooks/overview)
- [FFI, hooks & Lua (hub)](/wiki/topics/ffi-and-hooks/overview)
- [Getting started](/wiki/getting-started)

View File

@@ -15,7 +15,7 @@ The **Hex Label** mod adds in-world hex color labels for cable spinners and rack
| **Assembly** | `FMF.HexLabelMod.dll` |
| **Version** | `00.01.0009` |
| **Author** | mleem97 |
| **Game** | Waseku — Data Center (App 4170200) |
| **Game** | Data Center (App 4170200) |
| **Workshop Tags** | `modded`, `melonloader`, `mod` |
## Downloads

View File

@@ -1,53 +1,53 @@
---
title: Getting started
sidebar_label: Getting started
description: Workspace-Layout (gregFramework), gregCore bauen, Hooks & erste Mod-Schritte.
description: Workspace layout (gregFramework), building gregCore, hooks, and your first mod.
---
Der Workspace ist **multi-repo**: unter einem gemeinsamen Ordner `gregFramework/` liegen mehrere Git-Repos **flach** nebeneinander. **Logik:** **ModManager → Framework / SDK → Plugins → Mods** — siehe [System architecture & documentation principles](/wiki/meta/system-architecture-principles).
The workspace is **multi-repo**: several Git checkouts live **side by side** under a common `gregFramework/` folder. **Logical stack:** **ModManager → Framework / SDK → Plugins → Mods** — see [System architecture & documentation principles](/wiki/meta/system-architecture-principles).
| Ordner | Inhalt |
| Folder | Role |
|--------|--------|
| **`gregCore/`** | Framework: **`gregCore/FrikaMF.sln`**, Hauptprojekt **`gregCore/framework/FrikaMF.csproj`**; SDK unter `framework/src/Sdk/`; MCP unter `gregCore/mcp-server/` |
| **`gregMod.<Name>/`** | Gameplay-Mods (`FMF.*`-Assemblies üblich), **flach** neben `gregCore/` (Umbrella **`gregMods/`** ist veraltet) |
| **`gregExt.<Name>/`** | Framework-Plugins (`FFM.Plugin.*` / `greg.Plugin.*`), ebenfalls flach (**`gregExtensions/`** veraltet) |
| **`gregModmanager/`** | GregModManager / Workshop-UI (`WorkshopUploader.csproj`) |
| **`gregDataCenterExporter/`** | Exporter, Templates, Spiegel |
| **`gregWiki/`** | Diese Doku (Docusaurus) |
| **`gregCore/`** | Framework: **`gregCore/FrikaMF.sln`**, main project **`gregCore/framework/FrikaMF.csproj`**; SDK under `framework/src/Sdk/`; MCP under `gregCore/mcp-server/` |
| **`gregMod.<Name>/`** | Gameplay mods (often `FMF.*` assemblies), **flat** next to `gregCore/` (umbrella **`gregMods/`** is deprecated) |
| **`gregExt.<Name>/`** | Framework plugins (`FFM.Plugin.*` / `greg.Plugin.*`), also flat (**`gregExtensions/`** deprecated) |
| **`gregModmanager/`** | GregModManager / Workshop UI (`WorkshopUploader.csproj`) |
| **`gregDataCenterExporter/`** | Exporter, templates, mirrors |
| **`gregWiki/`** | This documentation site (Docusaurus) |
Rust-/Native-Mods werden vom Core über die FFI-Schicht geladen; Bridge-Code lebt im **`framework/src/ModLoader/`**-Baum von **gregCore**.
Rust/native mods are loaded through the core FFI layer; bridge code lives under **`gregCore/framework/src/ModLoader/`**.
## Framework bauen
## Build the framework
```bash
dotnet build gregCore/FrikaMF.sln -c Release
```
Oder `gregCore/FrikaMF.sln` in der IDE öffnen. Für CI ohne lokale Spiel-Installation oft: **`-p:CI=true`** (siehe jeweilige `.csproj`-Targets).
Or open **`gregCore/FrikaMF.sln`** in your IDE. For CI without a local game install, many projects support **`-p:CI=true`** (see each `.csproj`).
**Voraussetzungen:** MelonLoader **net6**-Assemblies und Il2Cpp-Interop des Spiels — entweder aus `{Game}/MelonLoader/` oder aus **`gregCore/lib/references/MelonLoader`** (z.B. via `python gregCore/tools/refresh_refs.py`). Umgebungsvariable **`DATA_CENTER_GAME_DIR`** hilft beim Auflösen des Spielpfads.
**Prerequisites:** MelonLoader **net6** assemblies and game Il2Cpp interop — either from `{Game}/MelonLoader/` or **`gregCore/lib/references/MelonLoader`** (e.g. `python gregCore/tools/refresh_refs.py`). Set **`DATA_CENTER_GAME_DIR`** if MSBuild should discover the game path.
## Hooks & Registries
## Hooks and registries
| Thema | Wo |
|--------|-----|
| **Kanonische `greg.*` (JSON, Il2Cpp)** | Repo-Root **`greg_hooks.json`**; Regeneration: **`gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1`** |
| **EventId → `greg.*` (FFI / natives Pipeline)** | **`GregNativeEventHooks`** — [greg hooks catalog](/wiki/reference/greg-hooks-catalog), Quellcode `gregCore/framework/src/Sdk/GregNativeEventHooks.cs` |
| **Doku-Namenskonvention `FMF.*`** | [FMF hook naming](/wiki/reference/fmf-hook-naming) |
| **Architektur Überblick** | [Greg hooks & event runtime](/wiki/framework/greg-hooks-and-events) |
| **Legacy-Strings** | **`GregCompatBridge`** lädt **`greg_hooks.json`** neben **`FrikaModdingFramework.dll`** |
| Topic | Where |
|-------|--------|
| **Canonical `greg.*` (JSON, Il2Cpp)** | Repo root **`greg_hooks.json`**; regenerate: **`gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1`** |
| **EventId → `greg.*` (native / FFI pipeline)** | **`GregNativeEventHooks`** — [greg hooks catalog](/wiki/reference/greg-hooks-catalog), source `gregCore/framework/src/Sdk/GregNativeEventHooks.cs` |
| **`FMF.*` documentation naming** | [FMF hook naming](/wiki/reference/fmf-hook-naming) |
| **Architecture** | [Greg hooks & event runtime](/wiki/framework/greg-hooks-and-events) |
| **Legacy spellings** | **`GregCompatBridge`** loads **`greg_hooks.json`** next to **`FrikaModdingFramework.dll`** |
## Ersten Mod starten
## Start a new mod
1. Neues Repo **`gregMod.<Name>/`** unter `gregFramework/` anlegen (oder Template klonen).
2. **`ProjectReference`** auf **`gregCore/framework/FrikaMF.csproj`** setzen (wie **`mods/GregShowcaseMod/`**).
3. API **`gregFramework.Core`** (`GregEventDispatcher`, `GregHookName`, `GregNativeEventHooks`, …).
4. Vorlagen: **`gregCore/Templates/greg.BasedModTemplate/`** oder gespiegelte Templates unter **`gregDataCenterExporter/Templates/`**.
1. Create **`gregMod.<Name>/`** under `gregFramework/` (or clone a template).
2. Add **`ProjectReference`** to **`gregCore/framework/FrikaMF.csproj`** (see **`mods/GregShowcaseMod/`**).
3. Use **`gregFramework.Core`** (`GregEventDispatcher`, `GregHookName`, `GregNativeEventHooks`, …).
4. Templates: **`gregCore/Templates/greg.BasedModTemplate/`** or mirrored templates under **`gregDataCenterExporter/Templates/`**.
Referenz-Mod: **`mods/GregShowcaseMod/`** — [Greg hooks showcase](/wiki/guides/mod-developers/greg-hooks-showcase).
Reference mod: **`mods/GregShowcaseMod/`** — [Greg hooks showcase](/wiki/guides/mod-developers/greg-hooks-showcase).
## Dokumentations-Site (`gregWiki/`)
## Documentation site (`gregWiki/`)
- Markdown unter **`gregWiki/docs/`**
- Docker: im **`gregWiki/`**-Root `docker build` / `docker run` (siehe **`gregWiki/README.md`**)
- MCP: [mcp-server](/wiki/reference/mcp-server) — Server unter **`gregCore/mcp-server/`**
- Markdown under **`gregWiki/docs/`**
- Docker: from **`gregWiki/`** root — see **`gregWiki/README.md`**
- MCP: [mcp-server](/wiki/reference/mcp-server) — server code under **`gregCore/mcp-server/`**

View File

@@ -31,7 +31,7 @@ Authoritative documentation: [greg hooks registry (IL2CPP)](/wiki/reference/greg
**Pattern A — dynamic (anonymous types from compiler):**
```csharp
private static void OnMoneyChanged(object payload)
private static void OnCoinChanged(object payload)
{
dynamic p = payload;
float delta = (float)p.coinChangeAmount;
@@ -62,7 +62,7 @@ Use **`GregPayload.Dump(payload)`** for one-line debug strings.
## Prefix hooks and cancellation
Hooks that run **before** the original method (Harmony Prefix) can call **`GregEventDispatcher.InvokeCancelable(hookName, payload)`**. Mods register **`GregEventDispatcher.OnCancelable(hookName, p => bool, modId)`**; if any handler returns `false`, the integration can skip the original (e.g. `Player.UpdateCoin`).
Hooks that run **before** the original method (Harmony Prefix) can call **`GregEventDispatcher.InvokeCancelable(hookName, payload)`**. Mods register **`GregEventDispatcher.OnCancelable(hookName, p => bool, modId)`**; if any handler returns `false`, the integration can skip the original (e.g. `Player.UpdateCoin`). Der Showcase nutzt **`GregNativeEventHooks.PlayerCoinChanged`** (`greg.PLAYER.CoinChanged`).
Showcase: enable `blockNegativeTransactions` in `content/modconfig.json` to register a veto on large negative `coinChangeAmount` values.

View File

@@ -13,6 +13,6 @@ description: Getting started, mod config, debugging — curated docs for FMF mod
- [Getting started](/wiki/getting-started) and [Documentation hub](/wiki/developers)
- [Framework overview](/wiki/mods/framework) — runtime capabilities and repo layout
- [FMF hooks](/wiki/framework/fmf-hooks) — hook surface (generated article)
- [FMF hook naming](/wiki/reference/fmf-hook-naming) and [hooks catalog](/wiki/reference/fmf-hooks-catalog)
- [FMF hook naming](/wiki/reference/fmf-hook-naming); runtime map: [greg hooks catalog](/wiki/reference/greg-hooks-catalog) (see also [FMF hooks catalog (legacy redirect)](/wiki/reference/fmf-hooks-catalog))
- [Contributor workshop](/wiki/guides/contributors/contributor-workshop) — builds, CI, and PRs
- [Mods](/wiki/mods/) — gameplay mods (`FMF.*`) and release pages

View File

@@ -2,7 +2,7 @@
id: intro
title: Mod author wiki
slug: /
description: Technical documentation for Data Center Simulator mod and plugin authors — gregFramework, hooks, workspace, and releases.
description: Technical documentation for Data Center mod and plugin authors — gregFramework, hooks, workspace, and releases.
---
# Mod author wiki

View File

@@ -15,7 +15,7 @@ Provides guardrails around console input handling and accidental interactions.
| **Assembly** | `FMF.ConsoleInputGuard.dll` |
| **Version** | `00.01.0001` |
| **Author** | mleem97 |
| **Game** | Waseku — Data Center (App 4170200) |
| **Game** | Data Center (App 4170200) |
| **Workshop Tags** | `modded`, `melonloader`, `mod` |
| **Workshop Content Path** | `content/Mods/` |
| **Needs FMF** | No (standalone MelonLoader mod) |

View File

@@ -15,7 +15,7 @@ Applies themed employee customization to hiring-related gameplay flows.
| **Assembly** | `FMF.GregifyEmployees.dll` |
| **Version** | `00.01.0009` |
| **Author** | mleem97 |
| **Game** | Waseku — Data Center (App 4170200) |
| **Game** | Data Center (App 4170200) |
| **Workshop Tags** | `modded`, `melonloader`, `mod` |
| **Workshop Content Path** | `content/Mods/` |
| **Needs FMF** | No (standalone MelonLoader mod) |

View File

@@ -9,7 +9,7 @@ sidebar_label: FMF.HexLabelMod
## Purpose
Standalone MelonLoader mod for **Data Center** (Waseku) that overlays the hex color code of each `CableSpinner` and `Rack` directly in-world, so you can identify cable and rack colors at a glance without opening any menu.
Standalone MelonLoader mod for **Data Center** that overlays the hex color code of each `CableSpinner` and `Rack` directly in-world, so you can identify cable and rack colors at a glance without opening any menu.
Rewritten from the former root `HexLabelMod` for the FrikaModdingFramework workflow, now running fully standalone.

View File

@@ -15,7 +15,7 @@ Provides language/localization compatibility bridging for mixed mod stacks.
| **Assembly** | `FMF.JoniMLCompatMod.dll` |
| **Version** | `00.01.0009` |
| **Author** | mleem97 |
| **Game** | Waseku — Data Center (App 4170200) |
| **Game** | Data Center (App 4170200) |
| **Workshop Tags** | `modded`, `melonloader`, `mod` |
| **Workshop Content Path** | `content/Mods/` |
| **Needs FMF** | No (standalone MelonLoader mod) |

View File

@@ -19,6 +19,6 @@ The core `FrikaMF` runtime provides:
- [FMF hooks (generated)](/wiki/framework/fmf-hooks) — hook surface and categories (deklarativ; kann der JSON-Registry folgen)
- [FMF hook naming](/wiki/reference/fmf-hook-naming) — **`FMF.*`** Doku-Konvention
- [greg hooks catalog](/wiki/reference/greg-hooks-catalog) — **EventId → `greg.*`** (`GregNativeEventHooks`, generiert)
- [FMF hooks catalog](/wiki/reference/fmf-hooks-catalog) — Kurzüberblick / Redirect (ersetzt altes `HookNames`)
- [FMF hooks catalog](/wiki/reference/fmf-hooks-catalog) — short redirect (replaces old `HookNames`)
- [greg hooks registry (IL2CPP)](/wiki/reference/greg-hooks-registry) — `greg_hooks.json`, Generator, Harmony-Deduplizierung
- [Framework architecture](/wiki/framework/architecture) — runtime layout and bridges

View File

@@ -5,31 +5,31 @@ slug: /reference/fmf-hooks-catalog
description: Redirect — native EventId → greg.* mapping now lives in GregNativeEventHooks; see greg hooks catalog.
---
<!-- Former auto-generated page; content replaced — do not restore old HookNames tables. -->
<!-- Former auto-generated page; replaced — do not restore old HookNames tables. -->
# FMF hooks catalog (legacy)
Die frühere, aus **`HookNames.cs`** generierte Tabelle wurde **entfernt**. Die Laufzeit mappt numerische **`EventIds`** heute zentral über **`GregNativeEventHooks`** auf kanonische **`greg.*`**-Strings (siehe auch **`GregCompatBridge`** für veraltete Schreibweisen).
The old table generated from **`HookNames.cs`** has been **removed**. Runtime mapping of numeric **`EventIds`** to canonical **`greg.*`** strings is centralized in **`GregNativeEventHooks`** (see **`GregCompatBridge`** for deprecated spellings).
## Aktuelle Quellen
## Current sources
| Thema | Wo |
|--------|-----|
| **EventId → `greg.*` (FFI / natives Pipeline)** | [greg hooks catalog](./greg-hooks-catalog.md) — generiert aus `gregCore/framework/src/Sdk/GregNativeEventHooks.cs` und `EventIds` in `EventDispatcher.cs` |
| **Il2Cpp-Hook-Registry (JSON)** | `greg_hooks.json` im Repo-Root; Kopie neben `FrikaModdingFramework.dll` beim Build |
| **Doku-Politik `FMF.*`** | [FMF hook naming](./fmf-hook-naming.md) — Namenskonvention für neue *Dokumentations*-IDs (nicht 1:1 jedes Runtime-Strings) |
| Topic | Where |
|-------|--------|
| **EventId → `greg.*` (FFI / native pipeline)** | [greg hooks catalog](./greg-hooks-catalog.md) — generated from `gregCore/framework/src/Sdk/GregNativeEventHooks.cs` and `EventIds` in `EventDispatcher.cs` |
| **Il2Cpp hook registry (JSON)** | `greg_hooks.json` at repo root; copied next to `FrikaModdingFramework.dll` on build |
| **`FMF.*` documentation policy** | [FMF hook naming](./fmf-hook-naming.md) — naming for new *documentation* IDs (not byte-for-byte every runtime string) |
## Katalog neu erzeugen
## Regenerate the wiki table
Im **gregCore**-Repo (gregWiki-Checkout liegt typischerweise **nebendran**):
From the **gregCore** repo (with **gregWiki** checked out **next to** **gregCore**):
```powershell
./tools/Generate-GregHookCatalog.ps1
```
Aktualisiert `gregWiki/docs/reference/greg-hooks-catalog.md`.
Updates `gregWiki/docs/reference/greg-hooks-catalog.md`.
## Siehe auch
## See also
- [greg hooks catalog](./greg-hooks-catalog.md)
- [Greg hooks & event runtime](/wiki/framework/greg-hooks-and-events)

View File

@@ -9,9 +9,9 @@ description: Auto-generated catalog of native pipeline hook strings from GregNat
# greg hooks catalog
This page is **generated** from `gregCore/framework/src/Sdk/GregNativeEventHooks.cs` and `EventIds` in `EventDispatcher.cs`.
This page is **generated** from `gregCore/framework/Sdk/GregNativeEventHooks.cs` and `EventIds` in `EventDispatcher.cs`.
**Generated:** 2026-04-10 02:07:09 UTC
**Generated:** 2026-04-10 02:43:33 UTC
## Hook string constants
@@ -110,7 +110,7 @@ Unknown event ids resolve to ``greg.SYSTEM.UnmappedNativeEvent`` via ``GregNativ
## See also
- [greg hooks registry](./greg-hooks-registry.md)
- [EventIds source](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/src/ModLoader/EventDispatcher.cs)
- [GregNativeEventHooks source](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/src/Sdk/GregNativeEventHooks.cs)
- [greg hook naming](./greg-hook-naming.md)
- [EventIds source](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/ModLoader/EventDispatcher.cs)
- [GregNativeEventHooks source](https://github.com/mleem97/gregFramework/blob/main/gregCore/framework/Sdk/GregNativeEventHooks.cs)
- [Greg hooks & event runtime](/wiki/framework/greg-hooks-and-events)

View File

@@ -2,7 +2,7 @@
const config = {
title: 'gregFramework',
tagline: 'Mod-author documentation for Data Center Simulator; players use /players and the mod catalog.',
tagline: 'Mod-author documentation for Data Center; players use /players and the mod catalog.',
favicon: 'img/logo.svg',
url: 'https://frikadellental.de',
baseUrl: '/',
@@ -264,7 +264,7 @@ const config = {
],
},
],
copyright: `Copyright ${new Date().getFullYear()} <a href="https://meyermedia.eu" target="_blank" rel="noopener noreferrer">Meyer Media</a><br/>This wiki is a community project and is not affiliated with WASEKU or the game.`,
copyright: `Copyright ${new Date().getFullYear()} <a href="https://meyermedia.eu" target="_blank" rel="noopener noreferrer">Meyer Media</a><br/>This wiki is a community project and is not affiliated with the developer or publisher of Data Center.`,
},
},
};

View File

@@ -33,7 +33,7 @@ export const en: HomepageContent = {
'datacentermods.com is in preparation. Until it launches, use the player guides in the wiki and the mod catalog on this site.',
communityTitle: 'Community',
communityText:
'This site documents gregFramework, community mods, and plugins for Data Center Simulator.',
'This site documents gregFramework, community mods, and plugins for Data Center.',
docsEndUserTitle: 'Players',
docsEndUserDescription: 'Install, update, FAQ, troubleshooting.',
docsModDevsTitle: 'Mod developers',

View File

@@ -101,7 +101,7 @@ export default function HomePage(): JSX.Element {
return (
<Layout
title="Home"
description="gregFramework: player help at /players, mod catalog, and mod-author wiki at /wiki for Data Center Simulator."
description="gregFramework: player help at /players, mod catalog, and mod-author wiki at /wiki for Data Center."
>
<main className="bg-background text-on-surface font-sans min-h-screen editorial-bleed bg-hero-gradient">
<section className="hero-motion-wrap relative flex min-h-[72vh] flex-col items-center justify-center overflow-hidden px-4 py-24 text-center">

View File

@@ -12,7 +12,7 @@ export default function PlayersPage(): JSX.Element {
return (
<Layout
title="For players"
description="Install and use Data Center Simulator mods: MelonLoader, Greg Mod Manager, Workshop, and troubleshooting."
description="Install and use Data Center mods: MelonLoader, Greg Mod Manager, Workshop, and troubleshooting."
>
<main className="bg-background text-on-surface mx-auto max-w-3xl px-4 py-16 font-sans">
<p className="mb-2 text-sm font-semibold uppercase tracking-wider text-primary">
@@ -35,7 +35,7 @@ export default function PlayersPage(): JSX.Element {
<ul className="list-inside list-disc space-y-2 text-on-surface-variant">
<li>
<a href={STEAM_STORE} className="text-primary hover:underline">
Data Center Simulator
Data Center
</a>{' '}
on Steam (AppID 4170200)
</li>
@@ -50,7 +50,7 @@ export default function PlayersPage(): JSX.Element {
<h2 className="mb-3 font-headline text-2xl font-bold">MelonLoader</h2>
<ol className="list-inside list-decimal space-y-2 text-on-surface-variant">
<li>Download the latest MelonLoader installer from the official MelonLoader GitHub.</li>
<li>Run it, select <strong>Data Center Simulator</strong>, choose the <strong>IL2CPP</strong> profile.</li>
<li>Run it, select <strong>Data Center</strong>, choose the <strong>IL2CPP</strong> profile.</li>
<li>Start the game once and exit so interop assemblies are generated.</li>
<li>If something fails, check <code className="text-sm">MelonLoader/Latest.log</code> in the game folder.</li>
</ol>