Revised multiple documentation files to replace instances of "FrikaMF" with "gregCore," reflecting the updated naming conventions and project structure. This change enhances consistency and clarity across the documentation, ensuring that users and contributors have accurate information regarding the framework and its components.
3.8 KiB
id, title, slug, description
| id | title | slug | description |
|---|---|---|---|
| fmf-hook-naming | FMF hook and event naming | /reference/fmf-hook-naming | Canonical naming for hooks, events, and cross-language documentation stubs. |
FMF hook and event naming
Target format
All new public hook and event identifiers should follow:
FMF.<Domain>.<EventOrHook>
FMF— Fixed prefix (Greg Mod Framework / gregFramework hook namespace).<Domain>— Uppercase domain from the approved domain list. Describes where the signal belongs in the game (player, rack, server, economy, …).<EventOrHook>—PascalCasesegment(s), usuallyOnSomethingfor events or a verb phrase for commands.
Examples (illustrative): FMF.RACK.CableSpinnerColorResolved, FMF.PLAYER.InputPoll, FMF.NETWORK.Cable.OnConnected.
Approved domain segments
Domains are closed by default. Add a new domain only via changelog + maintainer review.
| Domain | Scope |
|---|---|
GAMEPLAY |
Rules, scoring, simulation beats not covered elsewhere |
PLAYER |
Local player input, camera, UI focus |
EMPLOYEE |
NPC staff, hiring, schedules |
CUSTOMER |
Contracts, SLA, satisfaction |
SERVER |
In-game server racks, VMs, power |
RACK |
Physical rack placement, mounting |
NETWORK |
Cables, switches, traffic |
STORE |
Shop cart, checkout |
WORLD |
Rooms, expansion, walls |
UI |
HUD overlays, menus (when not PLAYER) |
SAVE |
Save/load lifecycle |
FRAMEWORK |
Loader, bridge, diagnostics |
Runtime IL2CPP (MelonLoader): greg.*
Harmony patches in gregFramework emit stable greg.<DOMAIN>.<Action> strings via GregHookName / GregEventDispatcher. That surface is documented in greg hooks registry (IL2CPP) (greg_hooks.json, regeneration, overlap with hand-written HarmonyPatches). It is separate from the FMF.* / FFM.* documentation constants below.
Native pipeline: GregNativeEventHooks (replaces HookNames)
Numeric EventIds are mapped to canonical greg.* strings in GregNativeEventHooks (source), aligned with greg_hooks.json where that file names the patched method. Logging uses GregNativeEventHooks.Resolve(uint); unknown ids → greg.SYSTEM.UnmappedNativeEvent.
GregCompatBridge (source) redirects deprecated hook spellings (including older documentation-style names) to the current greg.* string — see also legacy entries in greg_hooks.json.
Policy
- New documentation identifiers:
FMF.<Domain>.*as above. - New runtime subscriptions: always
greg.*viaGregHookName.CreateorGregNativeEventHooksconstants — see greg hooks catalog.
Cross-language stubs (documentation)
For each canonical hook, the wiki may add non-normative snippets:
| Language | Convention |
|---|---|
| C# | FMF.Domain.OnSomething.Subscribe(...) or string literal |
| Lua | FMF.Domain.OnSomething:subscribe(...) |
| Rust | fmf::domain::on_something::subscribe(...) |
| Python | fmf.domain.on_something.subscribe(...) |
| TypeScript | FMF.Domain.OnSomething.subscribe(...) |
Bindings are not auto-generated for all languages; stubs are for contributor clarity.
Related
- greg hooks catalog — EventId →
greg.*(generated) - FMF hooks catalog — Kurzüberblick / Redirect
- FMF hooks — deklarative Oberfläche (kann hinter der Core-Registry zurückstehen)