5.9 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 gregFramework workspace (split repositories on disk) is organized today. Use it before large refactors or when onboarding.
Top-level workspace (gregFramework/)
These folders typically sit next to each other in a developer workspace (see also intro):
| Area | Path (on disk) | Role |
|---|---|---|
| Framework core | gregCore/ |
Platform framework core: translations, hooks, Harmony/event runtime, MelonLoader hosting, bridges; plugins under plugins/; templates under Templates/ |
| Mods | gregMod.<Name>/ (direkt unter gregFramework/) |
Standalone gameplay mods (FMF.*) as individual repositories |
| Extensions | gregExt.<Name>/ (direkt unter gregFramework/) |
Extension modules (e.g. player models) |
| Documentation | gregWiki/ (mleem97/gregWiki) |
This site: Docusaurus app at repo root, all authored pages under docs/ |
| Legacy / staging exporter | gregDataCenterExporter/ |
Historical monolith layout; some tools and HexMod assets may still live here during migration |
| Other tools | gregIPAM/ (DHCP + IPAM; assembly DHCPSwitches), gregStore/ (Gregweb, private repo), gregReferences/, gregInternalDocs/, gregMeta/ |
Supporting repos and internal notes |
Canonical code locations (split repos)
| Concern | Where to look |
|---|---|
Framework .csproj |
gregCore/framework/FrikaMF.csproj |
Plugins (FFM.Plugin.*) |
gregCore/plugins/ |
| Mod sources | gregMod.*/ and templates under gregCore/Templates/ |
| MCP server | gregCore/mcp-server/ (and parallel copies in other repos as wired locally) |
| Wiki content | gregWiki/docs/ |
Wiki import (legacy)
Long-form pages mirrored from the GitHub Wiki live under docs/legacy/wiki-import/ and remain linked from many topics.
.NET projects on disk (*.csproj)
Paths below are relative to gregCore/ (framework repo root). Individual mods may live under gregMod.*/ with their own .csproj names.
| Project | Location | In FrikaMF.sln? |
|---|---|---|
| FrikaMF | framework/FrikaMF.csproj |
Yes |
| WorkshopUploader | tools/steam-workshop-upload/ or legacy workshopuploader/ (varies by branch) |
Usually separate solution |
| FFM.Plugin.* | plugins/FFM.Plugin.*/ |
Yes when included in FrikaMF.sln |
| FMF.* mods | gregMod.*/ (clone layout, under gregFramework/) |
Per-repo / optional |
| 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):
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
- Modding language (C# only) — mandatory C# for mod/plugin/extension logic
- FMF hook naming — naming convention
- Release channels — Steam vs GitHub beta