Modding GrindFest
GrindFest is built to be modded. The UI, the story, the world, everything can be extended or replaced by mods.
What Can You Mod?
| Mod Type | What It Does | Folder |
|---|---|---|
| UI Mods | Add panels, overlays, HUD elements | UI/ |
| Story Mods | Define areas, monsters, dungeons, quests, NPCs, music, weather | Story/ |
Where Do Mods Live?
All mods live in the Mods folder inside your GrindFest data directory:
%LOCALAPPDATA%Low/GrindFest/GrindFest/
├── Mods/
│ ├── GrindFest/ ← Base game content (Story)
│ ├── InventoryList/ ← Example UI mod
│ └── MyMod/ ← Your mod goes here
├── typings/ ← TypeScript type declarations for OneJS / C# API
└── _ModTemplate/ ← Copy this to create a new mod!
Tip: You can open this folder quickly from the game's Mods menu.
Creating a Mod
A mod is a folder with a mod.json file. That's it.
Step 1: Create a Folder
Create a new folder in Mods/:
Mods/
├── GrindFest/ ← base game (don't touch)
└── MyFirstMod/ ← your new mod!
Step 2: Create mod.json
Inside MyFirstMod/, create mod.json:
{
"Name": "MyFirstMod",
"Description": "My very first GrindFest mod.",
"Author": "YourName",
"Version": "1.0.0",
"Tags": ["ui"]
}
Step 3: Open the Game
Start GrindFest and open the Mods menu. Your mod appears in the list!
What's in mod.json?
| Field | Required | Description |
|---|---|---|
Name |
Yes | Unique mod name (matches folder name) |
Description |
Yes | Shown in the mod browser |
Author |
No | Your display name |
Version |
No | Semantic version (e.g. 1.0.0) |
Tags |
No | Categories: ui, story |
Mod Folder Structure
Add content folders to make your mod do something:
MyFirstMod/
├── mod.json ← Required: mod metadata
├── preview.png ← Optional: preview image for mod browser
├── UI/ ← Optional: UI mod (TypeScript/JSX)
│ ├── index.tsx ← Source code
│ ├── esbuild.mjs ← Build config
│ ├── package.json
│ ├── tsconfig.json
│ └── dist/
│ └── index.js ← Built output (loaded by game)
└── Story/ ← Optional: Ink story files
└── *.ink
The game automatically detects which content types your mod has based on which folders exist.
Tip: The game includes a
_ModTemplatefolder next to your Mods folder with everything pre-configured. Just copy it into Mods/, rename it, and you're ready to code.
Publishing
To share your mod, select it in the in-game Mods menu and click Publish to upload to Steam Workshop.
Only the final content gets uploaded: mod.json, UI/dist/index.js, Story/*.ink, and your preview image. Dev files like node_modules, source code, and build tools are automatically excluded.
Next Steps
- Building a UI Mod - Add a reactive inventory overlay to the game