- 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.
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) |
GregNativeEventHooks — greg 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
- Create
gregMod.<Name>/undergregFramework/(or clone a template). - Add
ProjectReferencetogregCore/framework/FrikaMF.csproj(seemods/GregShowcaseMod/). - Use
gregFramework.Core(GregEventDispatcher,GregHookName,GregNativeEventHooks, …). - Templates:
gregCore/Templates/greg.BasedModTemplate/or mirrored templates undergregDataCenterExporter/Templates/.
Reference mod: mods/GregShowcaseMod/ — Greg hooks showcase.
Documentation site (gregWiki/)
- Markdown under
gregWiki/docs/ - Docker: from
gregWiki/root — seegregWiki/README.md - MCP: mcp-server — server code under
gregCore/mcp-server/