mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
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:
@@ -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. |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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.<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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/`**
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) |
|
||||
|
||||
@@ -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) |
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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) |
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.`,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user