Merge Docusaurus site: all content under docs/, align with gregFramework split layout

- Move markdown and wiki-import tree into docs/; keep app shell at repo root
- Point docusaurus docs path to docs/; edit links to mleem97/gregWiki
- Sync and i18n scripts use gregWiki root and ../.wiki under gregFramework
- Sidebars: workspace layout from root docs ids; plugins under mods/extensions
- Fix redirects, module catalog URLs, release note paths, and wiki-import category keys
- Update repo inventory for split repos; Dockerfile for single-repo context

Made-with: Cursor
This commit is contained in:
Marvin
2026-04-09 23:39:32 +02:00
parent 33636fde00
commit e2839584f4
320 changed files with 38803 additions and 97 deletions

View File

@@ -0,0 +1,9 @@
---
title: AI-USAGE
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Architecture
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: AssetExport
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Bekannte Inkompatibilitäten
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Brief an WASEKU (Data Center)
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Changelog & Versionen
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,45 @@
---
title: Changelog & Versions EN
description: Release history and versioning reference for FrikaMF.
sidebar_position: 180
tags:
- audience:enduser
- audience:moddev
- audience:contributor
- audience:sponsor
- audience:gamedev
---
## Changelog & Versions
Primary history:
- [`CHANGELOG.md`](https://github.com/mleem97/gregFramework/blob/master/CHANGELOG.md)
## Versioning
- Framework format: `XX.XX.XXXX`
- Source of truth: `FrikaMF/ReleaseVersion.cs`
## Release metadata commands
```powershell
pwsh -ExecutionPolicy Bypass -File .\scripts\Update-ReleaseMetadata.ps1 -Bump major
pwsh -ExecutionPolicy Bypass -File .\scripts\Update-ReleaseMetadata.ps1 -Bump medium
pwsh -ExecutionPolicy Bypass -File .\scripts\Update-ReleaseMetadata.ps1 -Bump minor
```
## Example constants
### 🦀 Rust
```rust
pub const ABI_VERSION: u32 = 5;
```
### 🔷 C\#
```csharp
public const uint API_VERSION = 5;
```

View File

@@ -0,0 +1,9 @@
---
title: Community Thanks
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,99 @@
---
title: Contributors (Debug) EN
description: Framework contributor setup, hook workflow, conventions, CI behavior, and PR checklist.
sidebar_position: 140
tags:
- audience:contributor
---
## Contributors (Debug)
This page is for contributors working on FrikaMF itself.
For the complete and maintainable feature matrix with implementation use cases, see [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
## Dev setup
```powershell
dotnet build .\framework\framework/FrikaMF.csproj -c Debug -nologo
cargo build --release
```
Optional game path override:
```powershell
dotnet build .\framework\framework/FrikaMF.csproj /p:GameDir="C:\Path\To\Data Center"
```
## Add a new hook workflow
1. Find target in dnSpy/dotPeek.
2. Update `HOOKS.md`.
3. Add Harmony patch.
4. Add event id + dispatch wiring.
5. Add/update Rust ABI event handling if needed.
6. Test locally.
7. Open PR.
## Conventions
- Keep ABI structs blittable.
- Keep wrappers in framework, gameplay policy in mods.
- Use stable event names and explicit contracts.
## IL2CPP pitfalls
- `b###` compiler-generated members are unstable.
- Coroutine state-machine types (`d##`) are unstable.
- Prefer Postfix first unless behavior blocking is required.
## Lua/Python/Web FFI contributor notes
Current core status:
- Rust native FFI bridge: implemented.
- Built-in Lua runtime host: not implemented.
- Built-in Python runtime host: not implemented.
- Built-in generic HTTP/WebSocket FFI transport: not implemented.
Contribution guidance:
- Treat Lua/Python as sidecar integration work unless core runtime hosting is explicitly added.
- Keep Unity and IL2CPP access constrained to C#/Rust boundaries.
- If adding transport, define strict command schemas, authentication for non-local access, and rate limits.
## CI behavior
- CI runs without game installation.
- `$(CI)=true` skips local game reference validation.
- Local builds require MelonLoader-generated interop files.
## PR checklist
- [ ] `HOOKS.md` updated
- [ ] Build passes locally
- [ ] Docs updated
- [ ] Conventional Commits used
## Example pair
### 🦀 Rust
```rust
#[repr(C)]
pub struct MoneyChanged {
pub old_value: i32,
pub new_value: i32,
}
```
### 🔷 C\#
```csharp
[StructLayout(LayoutKind.Sequential)]
public struct MoneyChanged
{
public int OldValue;
public int NewValue;
}
```

View File

@@ -0,0 +1,5 @@
{
"label": "Contributors (typo path — prefer Contributors/)",
"position": 60,
"key": "wiki-import-root-contributors-typo"
}

View File

@@ -0,0 +1,5 @@
# Contributors (Debug) EN
This page was moved to:
- [Contributors](Contributors/)

View File

@@ -0,0 +1,99 @@
---
title: Contributors (Debug) EN
description: Framework contributor setup, hook workflow, conventions, CI behavior, and PR checklist.
sidebar_position: 140
tags:
- audience:contributor
---
## Contributors (Debug)
This page is for contributors working on FrikaMF itself.
For the complete and maintainable feature matrix with implementation use cases, see [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
## Dev setup
```powershell
dotnet build .\framework\framework/FrikaMF.csproj -c Debug -nologo
cargo build --release
```
Optional game path override:
```powershell
dotnet build .\framework\framework/FrikaMF.csproj /p:GameDir="C:\Path\To\Data Center"
```
## Add a new hook workflow
1. Find target in dnSpy/dotPeek.
2. Update `HOOKS.md`.
3. Add Harmony patch.
4. Add event id + dispatch wiring.
5. Add/update Rust ABI event handling if needed.
6. Test locally.
7. Open PR.
## Conventions
- Keep ABI structs blittable.
- Keep wrappers in framework, gameplay policy in mods.
- Use stable event names and explicit contracts.
## IL2CPP pitfalls
- `b###` compiler-generated members are unstable.
- Coroutine state-machine types (`d##`) are unstable.
- Prefer Postfix first unless behavior blocking is required.
## Lua/Python/Web FFI contributor notes
Current core status:
- Rust native FFI bridge: implemented.
- Built-in Lua runtime host: not implemented.
- Built-in Python runtime host: not implemented.
- Built-in generic HTTP/WebSocket FFI transport: not implemented.
Contribution guidance:
- Treat Lua/Python as sidecar integration work unless core runtime hosting is explicitly added.
- Keep Unity and IL2CPP access constrained to C#/Rust boundaries.
- If adding transport, define strict command schemas, authentication for non-local access, and rate limits.
## CI behavior
- CI runs without game installation.
- `$(CI)=true` skips local game reference validation.
- Local builds require MelonLoader-generated interop files.
## PR checklist
- [ ] `HOOKS.md` updated
- [ ] Build passes locally
- [ ] Docs updated
- [ ] Conventional Commits used
## Example pair
### 🦀 Rust
```rust
#[repr(C)]
pub struct MoneyChanged {
pub old_value: i32,
pub new_value: i32,
}
```
### 🔷 C\#
```csharp
[StructLayout(LayoutKind.Sequential)]
public struct MoneyChanged
{
public int OldValue;
public int NewValue;
}
```

View File

@@ -0,0 +1,9 @@
# Contribution Workflow EN
## Quick Flow
1. Create a branch.
2. Keep changes small and atomic.
3. Use Conventional Commits.
4. Update docs and links together.
5. Open a PR with a clear description.

View File

@@ -0,0 +1,3 @@
# Guides Index EN
- [Contribution Workflow EN](Contribution-Workflow)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-contributors-guides"
}

View File

@@ -0,0 +1,10 @@
# Contributors Index EN
Audience: contributors working on framework code and docs.
## Contents
- [Contribution Workflow EN](Guides/Contribution-Workflow)
- [Naming Convention EN](Reference/Naming-Convention)
- [Troubleshooting EN](Troubleshooting/overview)
- [AI Usage Policy](../AI-USAGE)

View File

@@ -0,0 +1,3 @@
# Reference Index EN
- [Naming Convention EN](Naming-Convention)

View File

@@ -0,0 +1,12 @@
# Naming Convention EN
## Unified Standard
- Folders: `PascalCase`
- Files: `Title-Case-Kebab.md`
- English mirror: `-en` suffix (`Page-Name-en.md`)
## Examples
- `EndUser/Guides/Framework-Dependency.md`
- `EndUser/Guides/Framework-Dependency-en.md`

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-contributors-reference"
}

View File

@@ -0,0 +1,3 @@
# Troubleshooting Index EN
- [Troubleshooting EN](overview)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-contributors-troubleshooting"
}

View File

@@ -0,0 +1,12 @@
# Troubleshooting EN
## Common Contributor Issues
- Outdated links after restructuring
- Inconsistent file names
- Non-atomic commits
## Fix
- Always update sidebar and redirect pages together.
- Apply naming convention consistently.

View File

@@ -0,0 +1,5 @@
{
"label": "Contributors",
"position": 30,
"key": "wiki-import-root-contributors"
}

View File

@@ -0,0 +1,9 @@
---
title: Data Center FAQ
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Frequently Asked Questions Part 1
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Frequently Asked Questions Part 2
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Frequently Asked Questions Part 3
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Patch Panel
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,5 @@
{
"label": "Data Center FAQ",
"position": 50,
"key": "wiki-import-root-dc-faq"
}

View File

@@ -0,0 +1,9 @@
---
title: Device-Reference
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,5 @@
# End-User (Release) EN
This page was moved to:
- [EndUser](EndUser/)

View File

@@ -0,0 +1,79 @@
---
title: End-User (Release) EN
description: Installation, updates, troubleshooting, and uninstall guide for players using FrikaMF as a dependency.
sidebar_position: 120
tags:
- audience:enduser
---
## End-User (Release)
This page is for players who do **not** develop mods and only install FrikaMF because another mod depends on it.
For a complete overview of framework capabilities and setup flows, see [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
## What you install
- `FrikaModdingFramework.dll` is a runtime framework for `Data Center`.
- It provides stable runtime glue required by other mods.
- FrikaMF is **unofficial** and **community-driven**.
## Quick install
1. Install MelonLoader (IL2CPP, latest stable).
2. Launch the game once, then close it.
3. Put `FrikaModdingFramework.dll` into `Data Center/Mods`.
4. Put your actual mod into `Data Center/Mods`.
5. Start the game and verify `MelonLoader/Latest.log`.
## Troubleshooting
- Game crashes at startup: check `MelonLoader/Latest.log` for missing DLL/type errors.
- Mod not loading: verify correct folder and unblock files in Windows file properties.
- After game update: check compatibility page and wait for updated releases if hooks changed.
## Update
1. Close game.
2. Replace `FrikaModdingFramework.dll`.
3. Start game and verify logs.
## Uninstall
1. Close game.
2. Remove `FrikaModdingFramework.dll` from `Mods`.
3. Remove dependent mods.
## Related pages
- [Home EN](../Home)
- [ModDevs EN](../ModDevs/)
- [Contributors EN](../Contributors/)
- [FFI Bridge Reference](../FFI-Bridge-Reference)
- [Web UI Bridge EN (DC2WEB)](../Web-UI-Bridge)
- [Known Incompatibilities EN](../Known-Incompatibilities)
## Minimal context example (both language tracks)
### 🦀 Rust
```rust
#[no_mangle]
pub extern "C" fn mod_info() -> *const i8 {
b"example-rust\0".as_ptr() as *const i8
}
```
### 🔷 C\#
```csharp
using MelonLoader;
public sealed class ExampleMod : MelonMod
{
public override void OnInitializeMelon()
{
LoggerInstance.Msg("Example C# mod loaded");
}
}
```

View File

@@ -0,0 +1,17 @@
# Framework Dependency Usage EN
## Goal
Use FrikaMF as a stable runtime dependency for custom mods.
## Steps
1. Place `FrikaModdingFramework.dll` in your `Mods` folder.
2. Build your mod with runtime dependency checks.
3. Disable gracefully if the dependency is missing.
## Next Pages
- [FAQ EN](../Troubleshooting/FAQ)
- [Troubleshooting EN](../Troubleshooting/overview)
- [Disclaimer EN](../Reference/Disclaimer)

View File

@@ -0,0 +1,3 @@
# Guides Index EN
- [Framework Dependency Usage EN](Framework-Dependency)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-enduser-guides"
}

View File

@@ -0,0 +1,11 @@
# EndUser Index EN
Audience: users who want to use FrikaMF as a dependency.
## Contents
- [Framework Dependency Usage EN](Guides/Framework-Dependency)
- [FAQ EN](Troubleshooting/FAQ)
- [Troubleshooting EN](Troubleshooting/overview)
- [Disclaimer EN](Reference/Disclaimer)
- [AI Usage Policy](../AI-USAGE)

View File

@@ -0,0 +1,11 @@
# Disclaimer EN
- FrikaMF is unofficial and community-driven.
- Use at your own risk.
- No compatibility guarantees after game updates.
- No affiliation with WASEKU.
## Policies
- [AI Usage Policy (Wiki)](../../AI-USAGE)
- [AI Usage Policy (Root)](/wiki/wiki-import/AI-USAGE)

View File

@@ -0,0 +1,3 @@
# Reference Index EN
- [Disclaimer EN](Disclaimer)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-enduser-reference"
}

View File

@@ -0,0 +1,13 @@
# FAQ EN
## Do I need Rust and C# together?
No. You can choose one language.
## Where is the framework DLL?
`Data Center/Mods/FrikaModdingFramework.dll`
## My mod is not loading
See [Troubleshooting EN](overview).

View File

@@ -0,0 +1,4 @@
# Troubleshooting Index EN
- [FAQ EN](FAQ)
- [Troubleshooting EN](overview)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-enduser-troubleshooting"
}

View File

@@ -0,0 +1,13 @@
# Troubleshooting EN
## Standard Checks
1. Check `MelonLoader/Latest.log`.
2. Verify game/FrikaMF/mod versions.
3. Confirm `FrikaModdingFramework.dll` is available.
## Common Errors
- `MissingMethodException`
- `TypeLoadException`
- Missing runtime dependency

View File

@@ -0,0 +1,5 @@
{
"label": "End users",
"position": 10,
"key": "wiki-import-root-enduser"
}

View File

@@ -0,0 +1,9 @@
---
title: FFI-Bridge-Reference
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,7 @@
# Framework Features & Use Cases EN
English mirror page.
The maintained canonical page is currently:
- [Framework Features & Use Cases](/wiki/wiki-import/Framework-Features-Use-Cases)

View File

@@ -0,0 +1,9 @@
---
title: Glossar
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,58 @@
---
title: Glossary EN
description: FrikaMF and IL2CPP terminology for all audiences.
sidebar_position: 170
tags:
- audience:enduser
- audience:moddev
- audience:contributor
- audience:sponsor
- audience:gamedev
---
## Glossary
### IL2CPP
Unity backend converting managed code to native binaries.
### Interop Assembly
Generated assemblies exposing metadata/signatures for `Il2Cpp.*` access.
### HarmonyX
Runtime patching framework for Prefix/Postfix/Transpiler patterns.
### C-ABI
Stable binary boundary for C# ↔ Rust interoperability.
### Blittable Types
Types copied between managed/unmanaged memory without transformation.
### RID/Token
Metadata identifiers useful for traceability but limited in IL2CPP runtime mapping.
### Example pair
#### 🦀 Rust
```rust
#[repr(C)]
pub struct TickInfo {
pub dt: f32,
}
```
#### 🔷 C\#
```csharp
[StructLayout(LayoutKind.Sequential)]
public struct TickInfo
{
public float Dt;
}
```

View File

@@ -0,0 +1,9 @@
---
title: HOOK-NAMING-CONVENTION
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: HOOKS
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,2 @@
Welcome to the FrikaModFramework wiki!
The Wiki was moved to [OUR OFFICIAL WEBSITE](https://gregframework.eu)

View File

@@ -0,0 +1,56 @@
---
title: Known Incompatibilities EN
description: Known breakages after game updates and recommended mitigation steps.
sidebar_position: 190
tags:
- audience:enduser
- audience:moddev
- audience:contributor
- audience:sponsor
- audience:gamedev
---
## Known Incompatibilities
Game updates may change signatures and hook points, breaking framework-level patches.
## Common symptoms
- `MissingMethodException`
- `TypeLoadException`
- Harmony patch not firing
- Runtime regressions in modded flows
## Immediate checks
1. Capture `MelonLoader/Latest.log`.
2. Confirm game/framework/mod versions.
3. Review [`HOOKS.md`](/wiki/wiki-import/HOOKS) and compatibility notes.
## Compatibility matrix template
| Game Version | FrikaMF Version | Status | Notes |
| :--- | :--- | :--- | :--- |
| TBD | TBD | Unverified | Update after smoke validation |
## Example diagnostics
### 🦀 Rust
```rust
#[no_mangle]
pub extern "C" fn mod_on_scene_loaded(scene_name: *const i8) {
if scene_name.is_null() {
return;
}
}
```
### 🔷 C\#
```csharp
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
{
LoggerInstance.Msg($"Scene={sceneName}, Build={buildIndex}");
}
```

View File

@@ -0,0 +1,59 @@
---
title: Letter to WASEKU EN
description: Open technical letter to the game developer about FrikaMF scope, safety posture, and cooperation.
sidebar_position: 160
tags:
- audience:gamedev
---
## Letter to WASEKU (Data Center)
FrikaMF is an **unofficial**, community-driven interoperability framework for `Data Center` modding.
## Intent
- Improve player experience in offline/singleplayer modding contexts.
- Reduce fragile ad-hoc patches via shared interfaces.
- Keep behavior transparent and documented.
## Explicit non-goals
- No anti-cheat bypass objective.
- No exploit tooling for competitive advantage.
## Legal interoperability context
- EU Software Directive Art. 6
- German UrhG § 69e
## Cooperation offer
We are open to discussing stable modding surfaces or future official API opportunities.
## Contact
- `https://github.com/mleem97/gregFramework`
## Technical sample
### 🦀 Rust
```rust
#[no_mangle]
pub extern "C" fn mod_on_scene_loaded(_scene: *const i8) {}
```
### 🔷 C\#
```csharp
using MelonLoader;
public sealed class SceneObserver : MelonMod
{
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
{
LoggerInstance.Msg($"Scene: {sceneName}");
}
}
```

View File

@@ -0,0 +1,51 @@
---
title: License & Legal EN
description: License model, disclaimers, and interoperability legal context.
sidebar_position: 200
tags:
- audience:enduser
- audience:moddev
- audience:contributor
- audience:sponsor
- audience:gamedev
---
## License & Legal
- License terms: [`LICENSE.txt`](https://github.com/mleem97/gregFramework/blob/master/LICENSE.txt)
- FrikaMF is unofficial and community-driven.
- No affiliation with WASEKU.
## Disclaimer
Use at your own risk. Compatibility is not guaranteed across future game updates.
## Interoperability basis
- EU Software Directive Article 6
- German UrhG § 69e
## Compliance guidance
- No anti-cheat bypass intent.
- No unauthorized redistribution of protected content.
- No exploit-focused competitive abuse.
## Shutdown examples
### 🦀 Rust
```rust
#[no_mangle]
pub extern "C" fn mod_shutdown() {}
```
### 🔷 C\#
```csharp
public override void OnApplicationQuit()
{
LoggerInstance.Msg("Framework shutdown");
}
```

View File

@@ -0,0 +1,9 @@
---
title: Lizenz & Rechtliches
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Lua-FFI-Start-Developing
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: MODIAPI_FINAL_STATUS
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: MODIAPI_INTEGRATION_SUMMARY
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: MelonLoader
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Mod-Config-System
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,5 @@
# Mod-Developer (Debug) EN
This page was moved to:
- [ModDevs](ModDevs/)

View File

@@ -0,0 +1,13 @@
# Getting Started EN
## Steps
1. Build FrikaMF locally (`dotnet build`).
2. Create your mod project.
3. Validate runtime dependency on `FrikaModdingFramework`.
4. Use hooks/events from the reference pages.
## Next
- [Hook Event Reference EN](../Reference/Hook-Event-Reference)
- [Troubleshooting EN](../Troubleshooting/overview)

View File

@@ -0,0 +1,3 @@
# Guides Index EN
- [Getting Started EN](Getting-Started)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-moddevs-guides"
}

View File

@@ -0,0 +1,10 @@
# ModDevs Index EN
Audience: developers building mods on top of FrikaMF.
## Contents
- [Getting Started EN](Guides/Getting-Started)
- [Hook Event Reference EN](Reference/Hook-Event-Reference)
- [Troubleshooting EN](Troubleshooting/overview)
- [AI Usage Policy](../AI-USAGE)

View File

@@ -0,0 +1,132 @@
---
title: Mod-Developer (Debug) EN
description: Rust vs C# decision guide, getting started for both tracks, hook discovery, architecture, and API orientation.
sidebar_position: 130
tags:
- audience:moddev
---
## Mod-Developer (Debug)
You only need one track: **Rust** or **C#**. FrikaMF bridges runtime communication.
Full framework capability catalog with setup guides: [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
## Rust vs C# decision guide
| Criteria | 🔷 C# Track | 🦀 Rust Track |
| --- | --- | --- |
| Onboarding speed | Fast | Medium |
| Direct Unity/Il2Cpp access | Strong | Indirect |
| Native-level control | Medium | High |
| Safety model | Medium | High |
| Recommended for | Most gameplay mods | Performance/ABI-heavy systems |
## Lua/Python/Web FFI status
- Rust FFI in framework core: **implemented**.
- Built-in Lua runtime host: **not implemented**.
- Built-in Python runtime host: **not implemented**.
- Built-in generic HTTP/WebSocket FFI transport: **not implemented**.
Recommended approach:
- Run Lua/Python as a sidecar process and connect through your C# or Rust mod boundary.
- Use framework events as stable inputs and framework APIs as safe outputs.
- Keep Unity/IL2CPP object access in C# or Rust layers.
For full DE/EN step-by-step tutorials per FFI entrypoint, see:
- [Lua FFI — How to Start Developing (DE + EN)](/wiki/wiki-import/Lua-FFI-Start-Developing)
## Architecture
```text
Data Center (IL2CPP)
↓ HarmonyX Patch
FrikaMF C# Bridge (Il2Cpp objects -> C-ABI structs)
↓ P/Invoke / C-ABI ↓ MelonLoader API
Rust Mod (.dll) C# Mod (.dll)
```
## Source of truth for hooks
- [`HOOKS.md`](../HOOKS)
## C# track quick start
```powershell
dotnet build .\framework\framework/FrikaMF.csproj /p:GameDir="C:\Path\To\Data Center"
```
```csharp
using HarmonyLib;
using MelonLoader;
using Il2Cpp;
[HarmonyPatch(typeof(Server), nameof(Server.PowerButton))]
public static class Patch_Server_PowerButton
{
public static void Prefix(Server __instance)
{
MelonLogger.Msg($"Server power toggle: {__instance.name}");
}
}
```
## Rust track quick start
```powershell
cargo build --release
```
```rust
#[no_mangle]
pub extern "C" fn mod_init(_api_table: *mut core::ffi::c_void) -> bool {
true
}
```
## dnSpy / dotPeek guidance
- Open generated `Assembly-CSharp.dll` interop output.
- Validate signatures and call context.
- Document candidates in `HOOKS.md`.
- Implement Harmony patch and event dispatch.
## Why many IL2CPP interop methods look empty
Interop assemblies often contain metadata-facing stubs; real implementation lives in native IL2CPP binaries.
## Web FFI vs Web UI (important)
- `DC2WebBridge` provides Unity-side UI adaptation/styling.
- It is not a generic network FFI transport bus.
- For Web FFI, implement your own HTTP/WebSocket gateway with validation and rate limits.
Config API reference: [`Mod Config System`](/wiki/wiki-import/Mod-Config-System)
## Cross-track example
### 🦀 Rust
```rust
#[no_mangle]
pub extern "C" fn mod_on_event(event_id: u32, _ptr: *const u8, _len: u32) {
if event_id == 1001 {
}
}
```
### 🔷 C\#
```csharp
[HarmonyPatch(typeof(CustomerBase), nameof(CustomerBase.AreAllAppRequirementsMet))]
public static class Patch_Requirements
{
public static void Postfix(bool __result)
{
MelonLogger.Msg($"Requirements met: {__result}");
}
}
```

View File

@@ -0,0 +1,8 @@
# Modding Guide EN
English mirror page.
The maintained canonical page is currently:
- [Modding Guide](Modding-Guide)
- [Lua FFI — How to Start Developing (DE + EN)](/wiki/wiki-import/Lua-FFI-Start-Developing)

View File

@@ -0,0 +1,10 @@
# Hook Event Reference EN
Primary source:
- [HOOKS](../../HOOKS)
- [Hook Naming Convention](../../HOOK-NAMING-CONVENTION)
Additional:
- [FFI Bridge Reference](../../FFI-Bridge-Reference)

View File

@@ -0,0 +1,3 @@
# Reference Index EN
- [Hook Event Reference EN](Hook-Event-Reference)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-moddevs-reference"
}

View File

@@ -0,0 +1,3 @@
# Troubleshooting Index EN
- [Troubleshooting EN](overview)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-moddevs-troubleshooting"
}

View File

@@ -0,0 +1,7 @@
# Troubleshooting EN
## Verify
1. Validate hook signatures against `HOOKS`.
2. Check `MelonLoader/Latest.log` and framework logs.
3. Match game version and FrikaMF version.

View File

@@ -0,0 +1,5 @@
{
"label": "Mod developers",
"position": 20,
"key": "wiki-import-root-moddevs"
}

View File

@@ -0,0 +1,5 @@
# Modding Guide EN
This page was moved to:
- [ModDevs/Guides/Getting-Started](ModDevs/Guides/Getting-Started)

View File

@@ -0,0 +1,9 @@
---
title: ModigAPI-Consolidation
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: README_MODDING
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: ROADMAP
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Release Assets and Templates
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Repository Status 2026-04-04
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Setup
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Sponsoren
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,49 @@
---
title: Sponsors EN
description: Why FrikaMF sponsorship matters, support options, and where funding is used.
sidebar_position: 150
tags:
- audience:sponsor
---
## Sponsors
FrikaMF is an unofficial, community-driven framework that improves modding stability for `Data Center`.
## Why support this project
- Faster compatibility recovery after game updates
- Better documentation and onboarding
- Shared runtime standards for mod authors
## Sponsorship options
- GitHub Sponsors
- Ko-fi (optional)
- One-time or recurring contributions
## Funding usage
- Maintenance and compatibility work
- Tooling/CI and release infrastructure
- Documentation quality
## Technical context sample
### 🦀 Rust
```rust
#[no_mangle]
pub extern "C" fn mod_update(_dt: f32) {}
```
### 🔷 C\#
```csharp
using MelonLoader;
public sealed class SponsorDemoMod : MelonMod
{
public override void OnUpdate() {}
}
```

View File

@@ -0,0 +1,9 @@
---
title: Standalone Mods
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: Steamworks-P2P-Multiplayer-Roadmap
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,9 @@
---
title: TASKLIST
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::

View File

@@ -0,0 +1,4 @@
# Guides Index EN
- [Setup](../../Setup)
- [Lua FFI Start Developing](../../Lua-FFI-Start-Developing)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-techref-guides"
}

View File

@@ -0,0 +1,11 @@
# TechnicalReference Index EN
Core technical reference for hooks, runtime bridges, and API contracts.
## Contents
- [Hooks](../HOOKS)
- [Hook Naming Convention](../HOOK-NAMING-CONVENTION)
- [FFI Bridge Reference](../FFI-Bridge-Reference)
- [Framework Features & Use Cases EN](../Framework-Features-Use-Cases)
- [Architecture](../Architecture)

View File

@@ -0,0 +1,5 @@
# Reference Index EN
- [Architecture](../../Architecture)
- [FFI Bridge Reference](../../FFI-Bridge-Reference)
- [HOOKS](../../HOOKS)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-techref-reference"
}

View File

@@ -0,0 +1,3 @@
# Troubleshooting Index EN
- [Known Incompatibilities EN](../../Known-Incompatibilities)

View File

@@ -0,0 +1,3 @@
{
"key": "wiki-import-techref-troubleshooting"
}

View File

@@ -0,0 +1,5 @@
{
"label": "Technical reference",
"position": 40,
"key": "wiki-import-root-techref"
}

View File

@@ -0,0 +1 @@
The Wiki was moved to [OUR OFFICIAL WEBSITE](https://gregframework.eu)

View File

@@ -0,0 +1,89 @@
# Web UI Bridge (DC2WEB) EN
Last updated: 2026-04-03
This page describes the framework web-style UI system (`DC2WebBridge`) and the in-game `Mod Settings` menu integration.
## Overview
- Entry point: `FrikaMF/DC2WebBridge.cs`
- Mod menu: `FrikaMF/ModSettingsMenuBridge.cs`
- Hook integration: `FrikaMF/HarmonyPatches.cs`
Boundary:
- `DC2WebBridge` is a Unity-side UI/styling bridge.
- `DC2WebBridge` is not a generic HTTP/WebSocket FFI transport layer.
## What is currently supported
- UI styling from `HTML`/`CSS`
- Utility styling frameworks: `TailwindCSS`, `SASS`/`SCSS`
- Script-style sources: `JavaScript` / `TypeScript`
- React-oriented adapter path: `React JSX/TSX`
- Image types: `SVG` (preferred), `PNG`, `JPG/JPEG`, `BMP`, `GIF`, `TGA`
## In-game Mod Settings menu
Clicking `Settings` in the main menu opens a chooser:
- `Game Settings`
- `Mod Settings`
The `Mod Settings` panel can toggle runtime options:
- `DC2WEB Bridge enabled`
- `Unity UI Modernizer enabled`
- `Replace MainMenu Settings with Web overlay`
## Image support and SVG strategy
`DC2WebBridge` supports runtime sprite creation from `Dc2WebImageAsset`.
- Raster images are loaded through Unity `Texture2D.LoadImage(...)`.
- SVG follows a prioritized path and is rasterized at runtime to the target size.
Note: The internal SVG raster path is intentionally lightweight and focuses on common/simple shapes and fills. For advanced SVGs (complex paths, filters, masks), pre-bake assets in your mod pipeline and provide raster fallback.
## From basic HTML to React-style apps
The system is adapter-driven:
- `Basic HTML/CSS`: direct translation into a Unity style profile
- `Tailwind/SASS`: translated into CSS variables/properties
- `JS/TS`: heuristic extraction for style fields (`backgroundColor`, `color`, `fontSize`, ...)
- `React`: adapter reads `className` and inline style-like content and translates to a profile
### React support note
The framework does not embed a full browser DOM/JS runtime. DC2WEB uses translation adapters that map web-like source bundles to Unity UI profiles and overlays. For larger app-like UIs, use a precompiled descriptor (`Dc2WebAppDescriptor`) with clear style and asset contracts.
## Example: register a web app
```csharp
DC2WebBridge.RegisterWebApp(new Dc2WebAppDescriptor
{
ScreenKey = "MainMenuReact",
ReplaceExistingUi = true,
Framework = "react-ts",
Html = "<div id='root'><h1>DC2WEB React UI</h1><p>Runtime-translated app skin</p></div>",
Css = ":root{--panel-color:#111827dd;--text-color:#f9fafb;--accent:#60a5fa;}",
Script = "const App = () => <div className='bg-slate-900 text-slate-100 text-3xl'>React UI</div>;",
});
```
## Recommended workflow
1. Start with a simple `HTML/CSS` bundle.
2. Add `Tailwind/SASS` sources as needed.
3. Use `Dc2WebImageAsset` for icons/graphics (SVG-first).
4. For larger UI flows, move to app descriptor bundles (`React/TS`) with design tokens.
5. Tune behavior in-game through `Mod Settings`.
## Related links
- [Framework Features & Use Cases](/wiki/wiki-import/Framework-Features-Use-Cases)
- [FFI Bridge Reference](/wiki/wiki-import/FFI-Bridge-Reference)
- [Mod-Developer (Debug) EN](Mod-Developer-Debug)
- [Contributors (Debug) EN](Contributors-Debug)
- [Web UI Bridge (DC2WEB)](/wiki/wiki-import/Web-UI-Bridge)

View File

@@ -0,0 +1 @@
The Wiki was moved to [OUR OFFICIAL WEBSITE](https://gregframework.eu)

View File

@@ -0,0 +1,9 @@
---
title: ui
description: English translation pending; use the Deutsch locale for the full legacy page.
---
:::note
This page is available in **German** in the legacy wiki import. Use the language menu (**Deutsch**) for the full text, or contribute an English translation under `docs/wiki-import`.
:::