Files
gregWiki/docs/contributors/repo-inventory.md
Marvin b37a0d9078 w
2026-04-10 01:39:48 +02:00

5.9 KiB
Raw Blame History

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.csproj explicitly excludes workshopuploader/** from compile (that app builds only via workshopuploader/WorkshopUploader.csproj / WorkshopUploader.sln in that folder).
  • dotnet build FrikaMF.sln builds framework and plugin projects under plugins\not the MAUI Workshop app (MelonLoader/game refs still required locally unless CI=true).

FrikaMF.sln drift (action items)

  1. Mods not in solution: Standalone mod projects under mods/ are intentionally omitted from the solution to keep the graph small; add them if you want dotnet build for every module in one shot.

  2. Templates in framework/FrikaMF.csproj: Template sources under Templates/ may fail dotnet build framework/FrikaMF.csproj with CS0122 if Core visibility does not match template expectations — treat templates as samples until the project graph is cleaned up.

Documentation (Docusaurus)

Hook / event sources of truth (code)

Debugging (MelonLoader, IL2CPP, Unity)

  • Build first: dotnet build FrikaMF.sln -c Debug (requires MelonLoader + IL2CPP interop under MelonLoader/ for your game install, or lib/references/MelonLoader — see tools/refresh_refs.py).
  • Attach: Run Data Center with MelonLoader, then attach your IDEs .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 links framework/Main.cs (and related files) and references FrikaMF.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 the FrikaMF sources.