mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
6.0 KiB
6.0 KiB
id, title, sidebar_label, description
| id | title | sidebar_label | description |
|---|---|---|---|
| repo-inventory | Repository inventory | Repo inventory | Current monorepo layout, projects, and known solution drift (contributors). |
Repository inventory
This page is the source of truth snapshot for how the DataCenterExporter / gregFramework monorepo is organized today. Use it before large refactors or when onboarding.
Top-level areas
| Area | Path | Role |
|---|---|---|
| Framework core | framework/FrikaMF.csproj |
MelonLoader mod hosting runtime hooks, Harmony, bridge, events |
| Target layout / registry | FrikaModFramework/ |
fmf_hooks.json, bindings stubs, migration docs |
| Workshop tooling | workshopuploader/ (rename from WorkshopUploader/; see WorkshopUploader/MIGRATION_PUBLIC_REPO.md) |
Steam Workshop / workspace uploader — .NET MAUI (Windows) |
| MCP (LLM / IDE) | mcp-server/ |
Model Context Protocol over docs + fmf_hooks.json; Docker: docker compose up docs-mcp |
| Mods (sources) | mods/ |
Gameplay mods (FMF.*, FMF.Mod.* folders) |
| Plugins (sources) | plugins/ |
Framework plugins (FFM.Plugin.*) |
| Templates | Templates/ |
Scaffolds for new mods/plugins |
| Documentation content | docs/ |
Markdown/MDX sources for the wiki |
| Documentation site (Docusaurus) | wiki/ |
App shell, theme, npm run build |
| Scripts | scripts/ |
Release metadata, changelog (e.g. Update-ReleaseMetadata.ps1) |
| Wiki import (legacy) | docs/wiki-import/ |
Imported .wiki content; still linked from many pages |
.NET projects on disk (*.csproj)
| Project | Location | In FrikaMF.sln? |
|---|---|---|
| FrikaMF | framework/FrikaMF.csproj |
Yes |
| WorkshopUploader | workshopuploader/WorkshopUploader.csproj (after folder rename) |
No — use WorkshopUploader.sln in that folder |
| FFM.Plugin.* (x5) | plugins/FFM.Plugin.*/ |
Yes — paths in FrikaMF.sln use plugins\... |
| FMF.HexLabelMod | mods/FMF.Mod.HexLabelMod/ |
No (build standalone or add to solution) |
| FMF.ConsoleInputGuard | mods/FMF.ConsoleInputGuard/ |
No |
| FMF.GregifyEmployees | mods/FMF.Mod.GregifyEmployees/ |
No |
| FMF.JoniMLCompatMod | mods/FMF.Plugin.LangCompatBridge/ |
No |
| Templates | Templates/FMF.*, Templates/StandaloneModTemplate/ |
No |
Build status (framework project)
framework/FrikaMF.csprojexplicitly excludesworkshopuploader/**from compile (that app builds only viaworkshopuploader/WorkshopUploader.csproj/WorkshopUploader.slnin that folder).dotnet build FrikaMF.slnbuilds framework and plugin projects underplugins\— not the MAUI Workshop app (MelonLoader/game refs still required locally unlessCI=true).
FrikaMF.sln drift (action items)
-
Mods not in solution: Standalone mod projects under
mods/are intentionally omitted from the solution to keep the graph small; add them if you wantdotnet buildfor every module in one shot. -
Templates in
framework/FrikaMF.csproj: Template sources underTemplates/may faildotnet build framework/FrikaMF.csprojwithCS0122ifCorevisibility does not match template expectations — treat templates as samples until the project graph is cleaned up.
Documentation (Docusaurus)
- Entry:
/wiki→intro - Sidebar:
sidebars.js - Module catalog (downloads table):
wiki/src/data/moduleCatalog.ts - Landing:
/→src/pages/index.tsx - Static catalog page:
/mods
Hook / event sources of truth (code)
- String constants:
framework/FrikaMF/HookNames.cs(FFM.*hook IDs today). - Numeric IDs:
framework/FrikaMF/EventIds.cs. - Generated wiki mirror: run
tools/Generate-FmfHookCatalog.ps1→fmf-hooks-catalog.
Debugging (MelonLoader, IL2CPP, Unity)
- Build first:
dotnet build FrikaMF.sln -c Debug(requires MelonLoader + IL2CPP interop underMelonLoader/for your game install, orlib/references/MelonLoader— seetools/refresh_refs.py). - Attach: Run Data Center with MelonLoader, then attach your IDE’s .NET / CoreCLR debugger to the game process (process name usually matches the game executable). Breakpoints hit in Debug builds of mods/plugins copied into
Mods/. FFM.Plugin.AssetExporter: The project linksframework/Main.cs(and related files) and referencesFrikaMF.csproj, which would normally produce CS0436 duplicate-type warnings. Those are suppressed in the plugin.csproj(NoWarn); do not remove the project reference without linking the rest of theFrikaMFsources.
Related
- Monorepo target layout — phased folder goals
- FMF hook naming — naming convention
- Release channels — Steam vs GitHub beta