diff --git a/docs/README.md b/docs/README.md index 4a24ffc..767c02d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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. | diff --git a/docs/contributors/monorepo-target-layout.md b/docs/contributors/monorepo-target-layout.md index 97218ee..3cf1899 100644 --- a/docs/contributors/monorepo-target-layout.md +++ b/docs/contributors/monorepo-target-layout.md @@ -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 | diff --git a/docs/framework/greg-hooks-and-events.md b/docs/framework/greg-hooks-and-events.md index 5c723e5..d6aaf4b 100644 --- a/docs/framework/greg-hooks-and-events.md +++ b/docs/framework/greg-hooks-and-events.md @@ -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-Schreibweisen → kanonisches **`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 spellings → canonical **`greg.*`**. | **`GregCompatBridge`** (+ optional **`legacy`** entries in **`greg_hooks.json`**) | -Neue **öffentliche Dokumentations-IDs** folgen weiterhin **`FMF..*`** — 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..*`** — 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) diff --git a/docs/framework/hexmod.md b/docs/framework/hexmod.md index d3ef41b..89dd43c 100644 --- a/docs/framework/hexmod.md +++ b/docs/framework/hexmod.md @@ -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 diff --git a/docs/getting-started.md b/docs/getting-started.md index ee6363c..00619bf 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -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./`** | Gameplay-Mods (`FMF.*`-Assemblies üblich), **flach** neben `gregCore/` (Umbrella **`gregMods/`** ist veraltet) | -| **`gregExt./`** | 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./`** | Gameplay mods (often `FMF.*` assemblies), **flat** next to `gregCore/` (umbrella **`gregMods/`** is deprecated) | +| **`gregExt./`** | 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./`** 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./`** 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/`** diff --git a/docs/guides/mod-developers/greg-hooks-showcase.md b/docs/guides/mod-developers/greg-hooks-showcase.md index 13d257f..e8756f6 100644 --- a/docs/guides/mod-developers/greg-hooks-showcase.md +++ b/docs/guides/mod-developers/greg-hooks-showcase.md @@ -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. diff --git a/docs/guides/mod-developers/overview.md b/docs/guides/mod-developers/overview.md index 17332f5..316d774 100644 --- a/docs/guides/mod-developers/overview.md +++ b/docs/guides/mod-developers/overview.md @@ -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 diff --git a/docs/intro.md b/docs/intro.md index 77ae81f..077ec68 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -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 diff --git a/docs/mods/fmf-console-input-guard.md b/docs/mods/fmf-console-input-guard.md index a3c9d2f..9acc6dd 100644 --- a/docs/mods/fmf-console-input-guard.md +++ b/docs/mods/fmf-console-input-guard.md @@ -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) | diff --git a/docs/mods/fmf-gregify-employees.md b/docs/mods/fmf-gregify-employees.md index 1eacafa..212ed7e 100644 --- a/docs/mods/fmf-gregify-employees.md +++ b/docs/mods/fmf-gregify-employees.md @@ -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) | diff --git a/docs/mods/fmf-hex-label-mod.md b/docs/mods/fmf-hex-label-mod.md index 8357b8a..e2fb39f 100644 --- a/docs/mods/fmf-hex-label-mod.md +++ b/docs/mods/fmf-hex-label-mod.md @@ -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. diff --git a/docs/mods/fmf-lang-compat-bridge.md b/docs/mods/fmf-lang-compat-bridge.md index 5f2823a..823af3a 100644 --- a/docs/mods/fmf-lang-compat-bridge.md +++ b/docs/mods/fmf-lang-compat-bridge.md @@ -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) | diff --git a/docs/mods/framework.md b/docs/mods/framework.md index eea2c0d..bd36e4f 100644 --- a/docs/mods/framework.md +++ b/docs/mods/framework.md @@ -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 diff --git a/docs/reference/fmf-hooks-catalog.md b/docs/reference/fmf-hooks-catalog.md index 5b5ea07..1bc45cf 100644 --- a/docs/reference/fmf-hooks-catalog.md +++ b/docs/reference/fmf-hooks-catalog.md @@ -5,31 +5,31 @@ slug: /reference/fmf-hooks-catalog description: Redirect — native EventId → greg.* mapping now lives in GregNativeEventHooks; see greg hooks catalog. --- - + # 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) diff --git a/docs/reference/greg-hooks-catalog.md b/docs/reference/greg-hooks-catalog.md index 6f06a6d..0d17c69 100644 --- a/docs/reference/greg-hooks-catalog.md +++ b/docs/reference/greg-hooks-catalog.md @@ -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) diff --git a/docusaurus.config.js b/docusaurus.config.js index 3115c12..f8381ca 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -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()} Meyer Media
This wiki is a community project and is not affiliated with WASEKU or the game.`, + copyright: `Copyright ${new Date().getFullYear()} Meyer Media
This wiki is a community project and is not affiliated with the developer or publisher of Data Center.`, }, }, }; diff --git a/src/i18n/homepage/en.ts b/src/i18n/homepage/en.ts index 28ac70d..01f00c7 100644 --- a/src/i18n/homepage/en.ts +++ b/src/i18n/homepage/en.ts @@ -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', diff --git a/src/pages/index.tsx b/src/pages/index.tsx index e45d282..089b208 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -101,7 +101,7 @@ export default function HomePage(): JSX.Element { return (
diff --git a/src/pages/players.tsx b/src/pages/players.tsx index 4ccb077..f508140 100644 --- a/src/pages/players.tsx +++ b/src/pages/players.tsx @@ -12,7 +12,7 @@ export default function PlayersPage(): JSX.Element { return (

@@ -35,7 +35,7 @@ export default function PlayersPage(): JSX.Element {

  • - Data Center Simulator + Data Center {' '} on Steam (AppID 4170200)
  • @@ -50,7 +50,7 @@ export default function PlayersPage(): JSX.Element {

    MelonLoader

    1. Download the latest MelonLoader installer from the official MelonLoader GitHub.
    2. -
    3. Run it, select Data Center Simulator, choose the IL2CPP profile.
    4. +
    5. Run it, select Data Center, choose the IL2CPP profile.
    6. Start the game once and exit so interop assemblies are generated.
    7. If something fails, check MelonLoader/Latest.log in the game folder.