GodsAPI
A library for developers to easily add new Gods / NPC Gods to the game without having to dig through files.
| Last updated | 2 days ago |
| Total downloads | 1304 |
| Total rating | 0 |
| Categories | Mods Tools Libraries |
| Dependency string | zannc-GodsAPI-2.0.4 |
| Dependants | 1 other package depends on this package |
This mod requires the following mods to function
SGG_Modding-ReLoad
Provides helpers for managing hot reloading and waiting for the right time to load
Preferred version: 1.0.2LuaENVY-ENVY
A plugin to allow ReturnOfModding plugins greater control of their environment.
Preferred version: 1.2.0SGG_Modding-ModUtil
Utility mod for mod interactions within lua for SGG's games
Preferred version: 4.0.1README
GodsAPI, a library to create Gods.
This is a very early library made to make it easy for developers to add new Gods/NPC Gods, Keepsakes & Boons. This library does nothing to the game on its own, without outside function calls. You should only install it if another mod requires it, or if you will be using this library to create Gods/Keepsakes/Boons.
[!IMPORTANT] Currently, this library only supports adding in Olympian Gods eg. Zeus and NPC-type Gods eg. Hermes - as well as custom Keepsakes.
NPC Type means that they will not fill up theMetGodstable during a run - meaning you can haveZeus, Aphrodite, Hera, Hestiaand meetHermesandYour God.
[!NOTE] If there are any requests, anything I missed, or anything working incorrectly, post an issue, or create a help thread in the Hades Modding Discord.
Developer Documentation
-
Create a dependency in
manifest.json(if testing locally) by adding"zannc-GodsAPI-1.0.0"and inthunderstore.tomlby addingzannc-GodsAPI = "1.0.0"if publishing the mod by adding to respective files. -
In
main.lua, add:---@module 'zannc-GodsAPI-auto' gods = mods['zannc-GodsAPI'].auto() --! IMPORTANT, you must add in .auto() or else the library will not work.So that it looks like this as an example:
_PLUGIN = PLUGIN game = rom.game ---@module 'SGG_Modding-ModUtil' modutil = mods["SGG_Modding-ModUtil"] ---@module 'SGG_Modding-ReLoad' reload = mods["SGG_Modding-ReLoad"] ---@module 'SGG_Modding-SJSON' sjson = mods["SGG_Modding-SJSON"] ---@module 'zannc-GodsAPI-auto' gods = mods["zannc-GodsAPI"].auto()
For more in-depth examples of how to use these functions, refer to the DEV.md file and the PARAMS.md file.
- To create a God, you must call
gods.InitializeGod(params), and optionally followed bygods.CreateOlympianSJSONData(params)and provide the required paramaters / sjson paramaters. - To create a Keepsake, you must call
gods.CreateKeepsake(params), and pass in the required fields - as well as any custom functions you need to make the keepsake function. - To create a Boon, you must call
gods.CreateBoon(params), and pass in the required fields - as well as any custom functions you need to make the boon function.
[!IMPORTANT] It is important to note that the internal names for Gods/Traits/Keepsakes will always be appended with your
_PLUGIN.guidfollowed by a-and then the internal name. This also applies for anything that will be handled internally, such as portrait names, among other sets of data.
Planned Features
- I am looking into the possibility of Hex Gods like Selene, as well as physical 3D NPCs if possible - however to my knowledge, 3D models have not been created yet.
- I would like to add Spells and proper NPC's such as Dionysus/Athena/Arachne during runs, and Hub NPCS such as Hecate/Hypnos, however, there are a lot of functions that are hard-coded to
SpellDrop, and I am unsure about the state of adding 3D models. - Ability to add Custom Rarities.