mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
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:
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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;
|
||||
```
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Contributors (typo path — prefer Contributors/)",
|
||||
"position": 60,
|
||||
"key": "wiki-import-root-contributors-typo"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
# Contributors (Debug) EN
|
||||
|
||||
This page was moved to:
|
||||
|
||||
- [Contributors](Contributors/)
|
||||
@@ -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;
|
||||
}
|
||||
```
|
||||
@@ -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.
|
||||
@@ -0,0 +1,3 @@
|
||||
# Guides Index EN
|
||||
|
||||
- [Contribution Workflow EN](Contribution-Workflow)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-contributors-guides"
|
||||
}
|
||||
@@ -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)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Reference Index EN
|
||||
|
||||
- [Naming Convention EN](Naming-Convention)
|
||||
@@ -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`
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-contributors-reference"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
# Troubleshooting Index EN
|
||||
|
||||
- [Troubleshooting EN](overview)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-contributors-troubleshooting"
|
||||
}
|
||||
@@ -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.
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Contributors",
|
||||
"position": 30,
|
||||
"key": "wiki-import-root-contributors"
|
||||
}
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Data Center FAQ",
|
||||
"position": 50,
|
||||
"key": "wiki-import-root-dc-faq"
|
||||
}
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# End-User (Release) EN
|
||||
|
||||
This page was moved to:
|
||||
|
||||
- [EndUser](EndUser/)
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -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)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Guides Index EN
|
||||
|
||||
- [Framework Dependency Usage EN](Framework-Dependency)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-enduser-guides"
|
||||
}
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Reference Index EN
|
||||
|
||||
- [Disclaimer EN](Disclaimer)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-enduser-reference"
|
||||
}
|
||||
@@ -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).
|
||||
@@ -0,0 +1,4 @@
|
||||
# Troubleshooting Index EN
|
||||
|
||||
- [FAQ EN](FAQ)
|
||||
- [Troubleshooting EN](overview)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-enduser-troubleshooting"
|
||||
}
|
||||
@@ -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
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "End users",
|
||||
"position": 10,
|
||||
"key": "wiki-import-root-enduser"
|
||||
}
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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)
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
```
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
Welcome to the FrikaModFramework wiki!
|
||||
The Wiki was moved to [OUR OFFICIAL WEBSITE](https://gregframework.eu)
|
||||
@@ -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}");
|
||||
}
|
||||
```
|
||||
@@ -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}");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
```
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Mod-Developer (Debug) EN
|
||||
|
||||
This page was moved to:
|
||||
|
||||
- [ModDevs](ModDevs/)
|
||||
@@ -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)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Guides Index EN
|
||||
|
||||
- [Getting Started EN](Getting-Started)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-moddevs-guides"
|
||||
}
|
||||
@@ -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)
|
||||
@@ -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}");
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Reference Index EN
|
||||
|
||||
- [Hook Event Reference EN](Hook-Event-Reference)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-moddevs-reference"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
# Troubleshooting Index EN
|
||||
|
||||
- [Troubleshooting EN](overview)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-moddevs-troubleshooting"
|
||||
}
|
||||
@@ -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.
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Mod developers",
|
||||
"position": 20,
|
||||
"key": "wiki-import-root-moddevs"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
# Modding Guide EN
|
||||
|
||||
This page was moved to:
|
||||
|
||||
- [ModDevs/Guides/Getting-Started](ModDevs/Guides/Getting-Started)
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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() {}
|
||||
}
|
||||
```
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# Guides Index EN
|
||||
|
||||
- [Setup](../../Setup)
|
||||
- [Lua FFI Start Developing](../../Lua-FFI-Start-Developing)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-techref-guides"
|
||||
}
|
||||
@@ -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)
|
||||
@@ -0,0 +1,5 @@
|
||||
# Reference Index EN
|
||||
|
||||
- [Architecture](../../Architecture)
|
||||
- [FFI Bridge Reference](../../FFI-Bridge-Reference)
|
||||
- [HOOKS](../../HOOKS)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-techref-reference"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
# Troubleshooting Index EN
|
||||
|
||||
- [Known Incompatibilities EN](../../Known-Incompatibilities)
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"key": "wiki-import-techref-troubleshooting"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Technical reference",
|
||||
"position": 40,
|
||||
"key": "wiki-import-root-techref"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
The Wiki was moved to [OUR OFFICIAL WEBSITE](https://gregframework.eu)
|
||||
@@ -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)
|
||||
@@ -0,0 +1 @@
|
||||
The Wiki was moved to [OUR OFFICIAL WEBSITE](https://gregframework.eu)
|
||||
@@ -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`.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
---
|
||||
title: WorkshopManager
|
||||
sidebar_label: WorkshopManager
|
||||
description: Windows desktop app for managing Steam Workshop content, browsing mods, and publishing for Data Center (FrikaMF).
|
||||
---
|
||||
|
||||
# WorkshopManager
|
||||
|
||||
**WorkshopManager** is a **.NET MAUI** desktop app for **Windows** that serves as a full-featured Steam Workshop client for *Data Center*. It combines content authoring (publish/update), a **Mod Store** for browsing and installing community mods, and a **Mod Manager** for dependency health checks.
|
||||
|
||||
## Features
|
||||
|
||||
### Author tools (Projects / Editor / My Uploads)
|
||||
- Create workshop projects from templates (vanilla assets, MelonLoader mods, FMF plugins).
|
||||
- Edit **title**, **description**, **visibility**, **tags**, and **preview image**; stored in `metadata.json`.
|
||||
- **Save and upload to Steam** — saves metadata, publishes `content/` to Steam Workshop, then **syncs** your local folder with Steam's version (like a `git pull` after push).
|
||||
- **Change notes** — when updating an existing item, describe what changed; shown on the Workshop changelog tab.
|
||||
- **View on Steam** — open your published item in the browser.
|
||||
- **Pagination** across all list views (My Uploads, Browse, Subscribed, Favorites).
|
||||
- **Per-item stats** — subscriptions, votes, score, size.
|
||||
|
||||
### Mod Store (integrated in Mod Manager)
|
||||
- **Browse** all Workshop items for Data Center with tag filtering and sort options (last updated, newest, top rated, trending, most subscribed, title A-Z).
|
||||
- **Search** mods by text.
|
||||
- **Subscribe / Unsubscribe** to mods directly from the store.
|
||||
- **Favorites** — bookmark mods for quick access.
|
||||
- **Vote** (up/down) on workshop items.
|
||||
- **Item detail view** — full statistics, description, tags, action buttons, and links to changelog/comments.
|
||||
|
||||
### Mod Manager / Health
|
||||
- **Dependency health** checks: game installed, MelonLoader, Il2Cpp assemblies, FMF core, FMF plugins directory, ModCfg directory.
|
||||
- **MelonLoader** download page link and game folder access.
|
||||
- **FMF Plugin channels** — stable (local scan) and beta (server, TODO).
|
||||
|
||||
### Einstellungen
|
||||
- **Arbeitsbereichspfad** — legt fest, wo Projekte gespeichert werden (Standard: `<GameRoot>/workshop`).
|
||||
- **Sprache** — Umschalten zwischen EN, DE, RU, ES, IT, JP, PL, CN (Standard: Systemsprache). Der Neustart-Button wendet die Änderung sofort an.
|
||||
- **Mod-Store-Umschaltung** — Mod-Store-Tab ein-/ausblenden (standardmäßig aus). Neustart-Button enthalten.
|
||||
- **Community-Links** — Schnellzugriff auf Discord, Modding-Kanal und GregFramework.eu.
|
||||
|
||||
### Hinweis zur FMF-Abhängigkeit
|
||||
- Projekte können im Editor als **„Benötigt FrikaModFramework“** markiert werden. Beim Hochladen wird der Steam-Beschreibung automatisch ein Hinweis angehängt, der Nutzer zum Installieren von FMF auffordert.
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Windows 10** (Version 1809+).
|
||||
- **Steam** mit angemeldetem Konto, das **Data Center** besitzt (App-ID **4170200**).
|
||||
- **Keine weiteren Abhängigkeiten** — die Release-Version ist vollständig eigenständig (enthält .NET-Runtime und Windows App SDK).
|
||||
- `steam_api64.dll` und `steam_appid.txt` müssen neben der exe liegen (im Release-Build enthalten).
|
||||
|
||||
## Workspace path
|
||||
|
||||
The workspace is resolved from Steam: `<Data Center install>/workshop`.
|
||||
|
||||
Fallback (no Steam): `%USERPROFILE%\DataCenterWS`.
|
||||
|
||||
On first launch the app creates the structure and places a sample `metadata.sample.json` under `.templates/`.
|
||||
|
||||
## Project layout
|
||||
|
||||
For each Workshop project:
|
||||
|
||||
1. Create a **folder** under the workspace (the folder name appears in the list).
|
||||
2. Add a `content/` subfolder with files to ship:
|
||||
- `content/Mods/` for MelonLoader mods
|
||||
- `content/FMF/Plugins/` for FMF plugins
|
||||
- `content/Object/` and `content/Decoration/` for vanilla assets
|
||||
3. Optionally create `metadata.json` yourself or fill it in the app.
|
||||
4. Optionally add `preview.png` at the project root.
|
||||
|
||||
## Using the app
|
||||
|
||||
### Tabs
|
||||
|
||||
| Tab | Purpose |
|
||||
|-----|---------|
|
||||
| **Projects** | Local workshop projects; search, open editor |
|
||||
| **New** | Create from template (vanilla, MelonLoader, FMF) |
|
||||
| **My Uploads** | Paginated list of your published items with stats |
|
||||
| **Mod Store** | Browse, search, subscribe, vote, and manage mods |
|
||||
|
||||
### Publish workflow
|
||||
|
||||
1. Open a project from the **Projects** tab.
|
||||
2. Fill in title, description, tags, visibility, preview image.
|
||||
3. Optionally write **change notes** (visible on Steam's changelog).
|
||||
4. Click **Save and upload to Steam**.
|
||||
5. The app saves `metadata.json`, uploads `content/` to Steam, then **syncs** by re-downloading Steam's version into your local `content/` folder.
|
||||
|
||||
### Headless / CI publish
|
||||
|
||||
```bash
|
||||
WorkshopUploader.exe --mode publish --path <project-folder>
|
||||
```
|
||||
|
||||
## Build and deploy {#build-deploy}
|
||||
|
||||
### Eigenständiges Release
|
||||
|
||||
Die App wird als **eigenständige** Windows-Executable veröffentlicht — auf dem Zielrechner ist keine Installation von .NET-Runtime oder Windows App SDK erforderlich.
|
||||
|
||||
```bash
|
||||
dotnet publish WorkshopUploader/WorkshopUploader.csproj -c Release -p:SelfContained=true -p:RuntimeIdentifier=win10-x64
|
||||
```
|
||||
|
||||
Ausgabe: `WorkshopUploader/bin/Release/net9.0-windows10.0.19041.0/win10-x64/publish/`
|
||||
|
||||
### Alle Mods + Gregtools Modmanager in Workshop-Ordner bereitstellen
|
||||
|
||||
```bash
|
||||
pwsh -File scripts/Deploy-Release-ToWorkshop.ps1
|
||||
```
|
||||
|
||||
Dies baut alle Frameworks/Plugins/Mods **und** den WorkshopUploader selbst und packt jedes in einen Steamworks-kompatiblen Projektordner unter `<GameRoot>/workshop/`. Der WorkshopUploader wird als **„Gregtools Modmanager“** verpackt.
|
||||
|
||||
### Im Spieleverzeichnis bereitstellen (lokales Testen)
|
||||
|
||||
```bash
|
||||
pwsh -File scripts/Deploy-Release-ToDataCenter.ps1 -IncludeWorkshopUploader
|
||||
```
|
||||
|
||||
## See also
|
||||
|
||||
- Repository README: [`WorkshopUploader/README.md`](https://github.com/mleem97/gregFramework/blob/master/WorkshopUploader/README.md)
|
||||
- [End-User Guide](/wiki/guides/enduser-workshop)
|
||||
- [Contributor Guide](/wiki/guides/contributor-workshop)
|
||||
- [Release](/wiki/guides/release)
|
||||
@@ -0,0 +1,127 @@
|
||||
---
|
||||
title: WorkshopManager
|
||||
sidebar_label: WorkshopManager
|
||||
description: Windows desktop app for managing Steam Workshop content, browsing mods, and publishing for Data Center (FrikaMF).
|
||||
---
|
||||
|
||||
# WorkshopManager
|
||||
|
||||
**WorkshopManager** is a **.NET MAUI** desktop app for **Windows** that serves as a full-featured Steam Workshop client for *Data Center*. It combines content authoring (publish/update), a **Mod Store** for browsing and installing community mods, and a **Mod Manager** for dependency health checks.
|
||||
|
||||
## Features
|
||||
|
||||
### Author tools (Projects / Editor / My Uploads)
|
||||
- Create workshop projects from templates (vanilla assets, MelonLoader mods, FMF plugins).
|
||||
- Edit **title**, **description**, **visibility**, **tags**, and **preview image**; stored in `metadata.json`.
|
||||
- **Save and upload to Steam** — saves metadata, publishes `content/` to Steam Workshop, then **syncs** your local folder with Steam's version (like a `git pull` after push).
|
||||
- **Change notes** — when updating an existing item, describe what changed; shown on the Workshop changelog tab.
|
||||
- **View on Steam** — open your published item in the browser.
|
||||
- **Pagination** across all list views (My Uploads, Browse, Subscribed, Favorites).
|
||||
- **Per-item stats** — subscriptions, votes, score, size.
|
||||
|
||||
### Mod Store (integrated in Mod Manager)
|
||||
- **Browse** all Workshop items for Data Center with tag filtering and sort options (last updated, newest, top rated, trending, most subscribed, title A-Z).
|
||||
- **Search** mods by text.
|
||||
- **Subscribe / Unsubscribe** to mods directly from the store.
|
||||
- **Favorites** — bookmark mods for quick access.
|
||||
- **Vote** (up/down) on workshop items.
|
||||
- **Item detail view** — full statistics, description, tags, action buttons, and links to changelog/comments.
|
||||
|
||||
### Mod Manager / Health
|
||||
- **Dependency health** checks: game installed, MelonLoader, Il2Cpp assemblies, FMF core, FMF plugins directory, ModCfg directory.
|
||||
- **MelonLoader** download page link and game folder access.
|
||||
- **FMF Plugin channels** — stable (local scan) and beta (server, TODO).
|
||||
|
||||
### Configuración
|
||||
- **Ruta del espacio de trabajo** — cambia dónde se guardan los proyectos (por defecto `<GameRoot>/workshop`).
|
||||
- **Idioma** — alternar entre EN, DE, RU, ES, IT, JP, PL, CN (por defecto el idioma del sistema). El botón Reiniciar aplica el cambio al instante.
|
||||
- **Interruptor Mod Store** — activar/desactivar la pestaña Mod Store (desactivada por defecto). Incluye botón Reiniciar.
|
||||
- **Enlaces de la comunidad** — acceso rápido a Discord, canal de modding y GregFramework.eu.
|
||||
|
||||
### Aviso de dependencia de FMF
|
||||
- Los proyectos pueden marcarse como **«Necesita FrikaModFramework»** en el editor. Al subir, se añade automáticamente un aviso a la descripción de Steam para indicar a los usuarios que instalen FMF.
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Windows 10** (versión 1809+).
|
||||
- **Steam** con una cuenta iniciada sesión que **posea Data Center** (ID de aplicación **4170200**).
|
||||
- **Sin dependencias adicionales** — la versión publicada es totalmente autocontenida (incluye runtime de .NET y Windows App SDK).
|
||||
- `steam_api64.dll` y `steam_appid.txt` deben estar junto al exe (incluidos en la compilación Release).
|
||||
|
||||
## Workspace path
|
||||
|
||||
The workspace is resolved from Steam: `<Data Center install>/workshop`.
|
||||
|
||||
Fallback (no Steam): `%USERPROFILE%\DataCenterWS`.
|
||||
|
||||
On first launch the app creates the structure and places a sample `metadata.sample.json` under `.templates/`.
|
||||
|
||||
## Project layout
|
||||
|
||||
For each Workshop project:
|
||||
|
||||
1. Create a **folder** under the workspace (the folder name appears in the list).
|
||||
2. Add a `content/` subfolder with files to ship:
|
||||
- `content/Mods/` for MelonLoader mods
|
||||
- `content/FMF/Plugins/` for FMF plugins
|
||||
- `content/Object/` and `content/Decoration/` for vanilla assets
|
||||
3. Optionally create `metadata.json` yourself or fill it in the app.
|
||||
4. Optionally add `preview.png` at the project root.
|
||||
|
||||
## Using the app
|
||||
|
||||
### Tabs
|
||||
|
||||
| Tab | Purpose |
|
||||
|-----|---------|
|
||||
| **Projects** | Local workshop projects; search, open editor |
|
||||
| **New** | Create from template (vanilla, MelonLoader, FMF) |
|
||||
| **My Uploads** | Paginated list of your published items with stats |
|
||||
| **Mod Store** | Browse, search, subscribe, vote, and manage mods |
|
||||
|
||||
### Publish workflow
|
||||
|
||||
1. Open a project from the **Projects** tab.
|
||||
2. Fill in title, description, tags, visibility, preview image.
|
||||
3. Optionally write **change notes** (visible on Steam's changelog).
|
||||
4. Click **Save and upload to Steam**.
|
||||
5. The app saves `metadata.json`, uploads `content/` to Steam, then **syncs** by re-downloading Steam's version into your local `content/` folder.
|
||||
|
||||
### Headless / CI publish
|
||||
|
||||
```bash
|
||||
WorkshopUploader.exe --mode publish --path <project-folder>
|
||||
```
|
||||
|
||||
## Build and deploy {#build-deploy}
|
||||
|
||||
### Release autocontenido
|
||||
|
||||
La aplicación se publica como ejecutable de Windows **autocontenido** — no hace falta instalar runtime de .NET ni Windows App SDK en el equipo de destino.
|
||||
|
||||
```bash
|
||||
dotnet publish WorkshopUploader/WorkshopUploader.csproj -c Release -p:SelfContained=true -p:RuntimeIdentifier=win10-x64
|
||||
```
|
||||
|
||||
Salida: `WorkshopUploader/bin/Release/net9.0-windows10.0.19041.0/win10-x64/publish/`
|
||||
|
||||
### Desplegar todos los mods + Gregtools Modmanager en carpetas Workshop
|
||||
|
||||
```bash
|
||||
pwsh -File scripts/Deploy-Release-ToWorkshop.ps1
|
||||
```
|
||||
|
||||
Compila todos los frameworks/plugins/mods **y** el propio WorkshopUploader, y empaqueta cada uno en una carpeta de proyecto compatible con Steamworks bajo `<GameRoot>/workshop/`. El WorkshopUploader se empaqueta como **«Gregtools Modmanager»**.
|
||||
|
||||
### Desplegar en el directorio del juego (pruebas locales)
|
||||
|
||||
```bash
|
||||
pwsh -File scripts/Deploy-Release-ToDataCenter.ps1 -IncludeWorkshopUploader
|
||||
```
|
||||
|
||||
## See also
|
||||
|
||||
- Repository README: [`WorkshopUploader/README.md`](https://github.com/mleem97/gregFramework/blob/master/WorkshopUploader/README.md)
|
||||
- [End-User Guide](/wiki/guides/enduser-workshop)
|
||||
- [Contributor Guide](/wiki/guides/contributor-workshop)
|
||||
- [Release](/wiki/guides/release)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user