Basic modding

Modding Basics
Mods in SotE are located inside SongsOfTheEons_Data/StreamingAssets/mods. Each mods is represented by its own unique directory. As such, creation of a basic, empty mod, consists of simply creating an empty folder. To create something more meaningful:
 * The game is looking only for mod_name/ui/world_explorer.lua, mod_name/ui/game.lua, mod_name/ui/lobby.lua, mod_name/data.lua and mod_name/logic.lua in mods folders. Do not forget to change paths to things you have added or changed in your data and logic files.
 * There is a small collection of exposed things in sote. It's not full by any means, helping to fill it is encouraged.
 * Here you can check some examples of decisions including some extensively commented decision templates.
 * Here you can find examples of events.
 * Here you can find a guide to adding Flora and Fauna Packs.
 * If you want to implement custom simulation and stuff you can do it in post_tick of . This function is run in main thread so you will hopefully not encounter multi-threading's interesting features
 * and other ui boys do not have access to stuff you are doing in main thread, so dirty things are required to display your custom information

World explorer events
 * on_tile_left_clicked
 * on_tile_right_clicked
 * on_world_explorer_loaded

LuaJIT globals There are following globals defined for JIT contexts:
 * log(str) -- logs a string to standard unity log output - it DOESNT work outside the main lua context, so dont use it in decisions and events. Use debug colors on tiles instead.
 * ffi -- standard ffi module of LuaJIT
 * toptr(num, ptr) -- function that casts an integer to a pointer type. "ptr" here is a string, describing the type. For example, "float*", "int8_t*" and so on
 * get_path -- returns a string containing the main directory of game files