Files
gregWiki/docs/reference/modding-language-requirement.md
Marvin cfaa5550d4 docs: enhance documentation structure and clarify repository layout
- Updated the README and various documentation files to reflect the new flat layout of the `gregFramework`, emphasizing the direct placement of repositories like `gregMod.<Name>/` and `gregExt.<Name>/` under `gregFramework/`.
- Added details about the `gregModmanager/` and `gregDataCenterExporter/` directories, clarifying their roles and contents.
- Improved descriptions and links throughout the documentation to ensure consistency and accuracy, enhancing user navigation and understanding of the project structure.
- Adjusted language in several sections to better communicate the purpose and organization of the repositories.

This commit improves the overall clarity and usability of the documentation.
2026-04-10 02:03:00 +02:00

31 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: modding-language-requirement
title: Modding language (C# only)
slug: /reference/modding-language-requirement
description: Mandatory language for mods, MelonLoader plugins, and extensions — C# only.
---
# Modding language (C# only)
## Requirement
**All logic for mods, MelonLoader plugins, and framework extensions must be implemented in C#.**
That applies to anything shipped as a **`gregMod.*`**, **`gregExt.*`**, or **`FFM.Plugin.*`** / **`FMF.*`** module that loads through the MelonLoader / IL2CPP stack: gameplay code, Harmony patches, UI, networking hooks, and data handling belong in **C#** (typically targeting **.NET** compatible with your MelonLoader build).
## Rationale
- **MelonLoader** loads managed **.NET** assemblies; Harmony and the interop layer are built around C#.
- A single language keeps reviews, debugging, and CI consistent for contributors.
## What this does *not* restrict
- **Framework core** (`gregCore`) may still contain **non-C#** components maintained by core maintainers (for example the **Rust** FFI bridge under `gregCore/bridges/gregSta.RustBridge/`, build scripts, or tooling). Those are **not** substitutes for implementing mod/plugin/extension behavior outside C#.
- **Documentation**, **config** (JSON/YAML), and **assets** are not “logic” in this sense.
- **gregStore**, **gregWiki**, and other nonin-game stacks may use other languages as appropriate.
## See also
- [Framework](/wiki/mods/framework) — runtime surface for mod authors
- [FMF hook naming](/wiki/reference/fmf-hook-naming)