Skip to content
This repository has been archived by the owner on Aug 23, 2022. It is now read-only.

minexew/gnomodkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prerequisites:

  • Gnomoria v1.0
  • Python 3.2+
  • .NET SDK 4.0 or newer

Usage examples

./gnomodkit.py sdk
./gnomodkit.py mod:ExampleHelloWorld
./gnomodkit.py sdk mod:ExampleHelloWorld run

How this thing works

1. Building SDK

  • check retail Gnomoria.exe
  • deobfuscate to make all symbol names valid identifiers; Gnomoria.exe -> GnomoriaGame.exe
  • disassemble GnomoriaGame.exe -> GnomoriaGame.il
  • make all fields & methods public; GnomoriaGame.il -> GnomoriaSDK.il
  • assemble GnomoriaSDK.il -> GnomoriaSDK.dll
  • copy retail gnomorialib.dll into working directory

GnomoriaSDK.dll + gnomorialib.dll can be now used to target Gnomoria internal APIs.

2. Building ModLoader

  • compile ModLoader.dll, copy to game dir
  • patch Gnomoria with ModLoader hooks; GnomoriaSDK.il + ModLoader.patch -> GnoMod.il
  • assemble GnoMod.il -> GnoMod.exe

Releases

No releases published

Packages

No packages published