Next: Getting Started - AurieFramework/YYToolkit GitHub Wiki
Aurie Manager handles setup automatically - just follow the steps in the upcoming video tutorial.
TODO, will have a video link.
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.
- Create the following folder structure in your game directory:
├─── GameExecutable.exe
└─── mods
├─── Aurie
└─── Native
- Place AurieCore.dll in the
Native
folder. - Place YYToolkit.dll in the
Aurie
folder. - 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).
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.
- TODO
- TODO
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.
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.
- Create breakpoints in your code.
- Launch the game with YYToolkit and your mod.
- Use Visual Studio's Debugger to attach to the game process.