mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
---
|
||
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 non–in-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)
|