Aurora (also known as MirraiMod) was a LUA executor for Sky: Children of the Light (Sky:COTL or Sky光·遇) which allowed in-game LUA exeuction and creation with ease, with support for it's own LUA API implemented directly into the LUA environment.
AS OF 24/03/2026: THIS PROJECT DOES NOT WORK ON THE LATEST VERSION OF SKY:COTL, DO NOT ATTEMPT TO USE!
This used to be closed source, however I decided to make this open sourced since I do not plan on working on this project closed source anymore. There are similar projects out there to use (such as: https://github.com/rosemash/sky-cotl-research). Aurora was made for researching, creative, and educational use cases.
Caution
Usage of this tool can result in restrictions and/or bans from ThatGameCompany as it infringes on their no-cheating policy, see: https://thatgamecompany.helpshift.com/hc/en/17-sky-children-of-the-light/faq/467-what-are-the-community-rules-restrictions/
Important
This mod requires using Sky Mod Loader (SML) made by lukas0x1, which the source is currently unavailable. An update to the README.md will be made when I reupload the source.
Sky:COTL implements a LUA-C engine into its game for LUA execution for easier development on their part, however we can abuse this to execute whatever we want using loadstring() functions found within decompiled dumps of the game.
For futher information, an exposed function VIA string can be found within IDA named "lua_debugdostring" which can be used to execute any LUA function you desire. With a hook to the LuaState you are able to execute any TGC implemented LUA functions that you can search for.
How to find this offset? Simple: look for "lua_debugdostring" within your favorite decompiler, and XREF to the function, then update the signature using sigmaker or other tools.
To find the hook for the LuaState: XREF lua_debugdostring function to find functions which use it, update the signature using sigmaker or other tools, possibly change the hooking function to return hook params for callers.
Note
Note that there are better ways of obtaining the LuaState function, however I use hooks as a preference of obtaining it. [!IMPORTANT] If you are going to keep using hooks, it is recommended that you use the first/second XREF instead of a random one.
To build the mod, you must use CMake. A simple method of initializing and utilizing it will be inside of Visual Studio Code, so we will be using that. Once you installed everything just run the CMake build command inside of the workspace and the mod should output inside of out/Aurora.dll
XeTrinityz - help with finding the functions for LUA execution lukas0x1 - Creation of Sky Mod Loader (SML) BalazsJako - Creator of ImGuiColorTextEdit which is used for the editor: https://github.com/BalazsJako/ImGuiColorTextEdit