Skip to content

Mod Development

Spiral edited this page Aug 19, 2026 · 3 revisions

Opening Mods

Recent Projects

This is a section on the main menu that shows the most recent projects you opened. When a project is clicked, it opens it up in the editor.

Open From Existing

Here mods are loaded from GMM/Mods. You can either click on one of the buttons or type in the name of your desired project to load it.

Can be opened a few different ways

  • Found in File > Open Project > Open Existing
  • Pressing Ctrl+O
  • Clicking Open Project on Main Menu

Open From File

Opens a dialog for you to select a .json file, then it opens that project in the editor

Can be opened by either of the following methods

  • Found in File > Open Project > Open From File
  • Pressing Ctrl+Shift+O

Creating Mods

Creating a New Mod

Select New Project in the main menu or select File > New Project

New Mod Popup

All values can be changed later

  • Mod Name: Name of your mod. Required
  • Description: Description of your mod. Required
  • Developers: The developers of the mod. Separate their names with a comma. At least one name required Then click Done to confirm

Info

  • Mods are stored in [GMM Folder]/Mods

Formatting

  • .json file: This is the file containing the mod information such as the name, description, authors(developers), the GMM verison, along with the verison of the mod
    Example
      {
        "Name": "Test",
        "NameNoSpaces": "Test",
        "Description": "This is the test mod",
        "Authors": "Spiral",
        "GMMVersion": "1.0.0 beta",
        "Version": "1.0.0"
      }
  • Folder Structure: Each mod folder will have a folder called Files for the mod files. When a mod is compiled, some new folders will be added. These folders are Libraries, obj, and bin
  • Other Files: Along with the folders, some new files may also be added on compilation. These could include the following: manifest.json, README.md, MoreItemDetails.csproj, or CHANGELOG.md.
  • Note: Some of the stated files may only be created if the user prompts

Creating Harmony Patches, Config Items, and Keybinds

Harmony Patches

  • Path: Mod > Create Harmony Patch
  • Shortcut: Ctrl + Alt + H

Parameters

  • Function Name: This is the name of the method that you want to patch in the target class.
  • Function Class: This is the class that contains the method you want to patch. You must specify the class name where the target method is defined.
  • Parameters (seperated by comma): These are the parameters of the method being patched, separated by commas. You need to provide the parameter types and names in the format Type paramName. If you don’t need to modify certain parameters, they can be left out of this list.
    • ex: float damage, bool critical
  • Prefix/Postfix: This determines whether the patch should be applied before(Prefix) or after(Postfix) the original method.
  • Return Type: This specifies the return type of the method you want to patch. If the original method returns a value and you want to override or manipulate the result, you can specify it here. If there is no return value, it can be set to None.
    • ex: string
  • Have Instance?: This determines if the patch has access to the instance of the class. If true, the patch will have access to __instance, which allows it to interact with instance-specific data.

Config Items

  • Path: Mod > Create Config Item
  • Shortcut: Ctrl + Alt + C

Parameters

  • Variable Name: This is the name of the config variable that will be used in the code.
    • ex: maxHealth
  • Data Type: This defines the type of data the config item will hold. Common data types include int, float, bool, string, etc.
    • ex: int
  • Default Value (C# Formatting): This is the default value for the config item. It must be provided in proper C# format. For instance, strings should be wrapped in quotes, booleans should be true or false, ints as-is, floats with a f a the end, etc.
    • ex: 100
  • Definition: This is the display name that appears in the config list (usually in the game’s settings UI). It’s a human-readable name for the setting.
    • ex: Max Health
  • Description (Info When Hovered Over): This provides additional information about the config item. It’s typically shown when the user hovers over the setting in the UI, helping them understand what the setting does.
    • ex: The maximum health the player can have

Keybinds

  • Path: Mod > Create Keybind
  • Shortcut: Ctrl + Alt + K

Parameters

  • Variable Name: This is the name of the keybind variable that will be used in the code.
    • ex: "dashKey"
  • Keycode (Click For List): This specifies the default key that the keybind will be mapped to when first initialized. The value should be a valid Unity KeyCode. For a full list, click on the label, which opens the Unity KeyCode documentation.
  • Definition (Name in Settings): This is the display name that appears in the settings menu for the keybind. It’s the name users will see when configuring the keybind in the UI.
    • ex: Dash
  • Description (Info When Hovered Over): This provides additional information about the keybind. It’s typically shown when the user hovers over the keybind setting in the UI, explaining what the keybind does.
    • ex: Press to dash

Adding Assets

To Be Added


Managing Mods

Configuring Mod Details

In the editor, locate Mod > Configure Mod. Details can be changed at any time.

  • Shortcut: Ctrl + Alt + M

Configure Mod Popup

  • Name: Name of your mod. Required
  • Description: Description of your mod. Required
  • Developers: The developers of the mod. Separate their names with a comma. At least one name required
  • Version: The version of the mod. Required

Building Mods

Build And Install

  • Path: Build > Build And Install
  • Shortcut: Ctrl + B
  • Function: Will compile your mod, package it into a zip(if you want), and install it in the Isle Goblin plugins folder.

Quick Build

  • Path: Build > Quick Build
  • Shortcut: Ctrl + Shift + B
  • Function: Basically build but will skip all popups except the ones you are fine with which you can change in Settings.

Create Mod Files

  • Path: Build > Create Mod Files
  • Function: This will create all the mod files that are created during build. You do not have to press this before building. It wil be called on build; this is simply for previewing.

Revert Csproj file

  • Path: Build > Revert Csproj file
  • Function: This will revert the [Mod Folder]/[ModName].csproj file back to the template it started as. I do not recommend doing this randomly, only if your .csproj file is very messed up.

Clone this wiki locally