Files
gregWiki/docs/getting-started.md
Marvin e818c78baa 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.
2026-04-10 04:44:12 +02:00

3.2 KiB

title, sidebar_label, description
title sidebar_label description
Getting started Getting started Workspace layout (gregFramework), building gregCore, hooks, and your first mod.

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.

Folder Role
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 are loaded through the core FFI layer; bridge code lives under gregCore/framework/src/ModLoader/.

Build the framework

dotnet build gregCore/FrikaMF.sln -c Release

Or open gregCore/FrikaMF.sln in your IDE. For CI without a local game install, many projects support -p:CI=true (see each .csproj).

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 and registries

Topic Where
Canonical greg.* (JSON, Il2Cpp) Repo root greg_hooks.json; regenerate: gregCore/scripts/Generate-GregHooksFromIl2CppDump.ps1
EventId → greg.* (native / FFI pipeline) GregNativeEventHooksgreg hooks catalog, source gregCore/framework/src/Sdk/GregNativeEventHooks.cs
FMF.* documentation naming FMF hook naming
Architecture Greg hooks & event runtime
Legacy spellings GregCompatBridge loads greg_hooks.json next to FrikaModdingFramework.dll

Start a new mod

  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/.

Reference mod: mods/GregShowcaseMod/Greg hooks showcase.

Documentation site (gregWiki/)

  • Markdown under gregWiki/docs/
  • Docker: from gregWiki/ root — see gregWiki/README.md
  • MCP: mcp-server — server code under gregCore/mcp-server/