Next: Getting Started - AurieFramework/YYToolkit GitHub Wiki

Installing YYToolkit on Windows using Aurie Manager

Aurie Manager handles setup automatically - just follow the steps in the upcoming video tutorial.

TODO, will have a video link.

Installing YYToolkit manually

Manual installation is intended for power-users and people that can't run Aurie Manager.
It allows finer control over Aurie's installation, and doesn't require the .NET runtime.

  1. Create the following folder structure in your game directory:
├─── GameExecutable.exe
└─── mods
    ├─── Aurie
    └─── Native
  1. Place AurieCore.dll in the Native folder.
  2. Place YYToolkit.dll in the Aurie folder.
  3. Patch the game using AuriePatcher as outlined below:
C:\> AuriePatcher.exe "C:\path\to\game\executable.exe" "C:\path\to\game\mods\Native\AurieCore.dll" install
Using executable: "C:\path\to\game\executable.exe"
Using native DLL path: "C:\path\to\game\mods\Native\AurieCore.dll"
File mapped to 0x000002805FC20040 => size 0x27B0A00
.aurie section at 000002805FC20380
g_OldOEP stored at 00000280623CA5D8, contains value 0x1A83F84.
Done!

Note

While AuriePatcher may require some tinkering to get running on Linux (using Wine), the patched executable should work out of the box.
If you don't see Aurie's console, make sure your folders are named correctly (Linux is case-sensitive, Windows is not).

Creating mods with YYToolkit

YYToolkit mods can be divided into two categories: native mods and managed mods.

Native mods are made in C++.
They have full control over the game runtime, but are more difficult to make, as they require an understanding of how the GameMaker engine operates. Their access to the engine, renderer, and other loaded mods is unrestricted. Any bug in a native mod will crash the game without an option for graceful recovery. This option is best-suited for power-users that need raw speed and low-level access without any hand-holding.

Managed mods are made in C#.
They are restricted to known-safe APIs which actively prevent any misuse of engine structures. They have been explicitely structured to make modding with YYToolkit as easy as possible while not excessively limiting functionality. Bugs in managed mods can be handled gracefully using exceptions thrown by the underlying abstraction layer.
This option is best-suited for the casual modder that prefers ease-of-use and safety over pure control.

Creating native mods

  • TODO

Creating managed mods

  • TODO

Debugging mods

When making YYToolkit mods, the debugger is your best friend. In both native and managed mods, it can be used to inspect the game's state. The debugger also catches any exceptions before they crash your program, as you can step through problematic code and inspect the local state line-by-line.

When debugging a managed mod, the debugger gets even stronger - it can automatically infer types from game variables, and parse C# code on the fly. This allows you to fully control the game from just the command window, while also enabling exploration of game objects without the need for a single line of code.

Debugging native mods

Tip

When debugging a crash early in the game, you can use the -aurie_wait_for_debug launch parameter.
For more information, see Debugging Aurie.

  1. Create breakpoints in your code.
  2. Launch the game with YYToolkit and your mod.
  3. Use Visual Studio's Debugger to attach to the game process.
⚠️ **GitHub.com Fallback** ⚠️