Files
gregWiki/docs/reference/modding-language-requirement.md
2026-04-10 04:26:06 +02:00

32 lines
1.7 KiB
Markdown
Raw Permalink 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 ship **native** loading paths maintained by core maintainers (Rust/other natives als **vorkompilierte** `.dll`/`.greg`/…-Module, geladen über **`FFIBridge`** in `gregCore/framework/src/ModLoader/`), plus build scripts and tooling. Those are **not** substitutes for implementing mod/plugin/extension **logic** 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
- [System architecture & documentation principles](/wiki/meta/system-architecture-principles) — stack model and documentation rules
- [Framework](/wiki/mods/framework) — runtime surface for mod authors
- [FMF hook naming](/wiki/reference/fmf-hook-naming)