You are viewing a potentially older version of this package. View all versions.
Siuhnexus-BountyAPI-1.0.0 icon

BountyAPI

This mod makes adding custom bountys to the pitch-black stone hassle-free. It is targeted at mod development und doesn't do anything on its own.

Date uploaded 3 days ago
Version 1.0.0
Download link Siuhnexus-BountyAPI-1.0.0.zip
Downloads 83
Dependency string Siuhnexus-BountyAPI-1.0.0

This mod requires the following mods to function

SGG_Modding-SJSON-1.0.0 icon
SGG_Modding-SJSON

A plugin for handling .sjson files in ReturnOfModding.

Preferred version: 1.0.0
SGG_Modding-Chalk-2.1.1 icon
SGG_Modding-Chalk

System for handling config files in ReturnOfModding

Preferred version: 2.1.1
SGG_Modding-ReLoad-1.0.2 icon
SGG_Modding-ReLoad

Provides helpers for managing hot reloading and waiting for the right time to load

Preferred version: 1.0.2
LuaENVY-ENVY-1.2.0 icon
LuaENVY-ENVY

A plugin to allow ReturnOfModding plugins greater control of their environment.

Preferred version: 1.2.0
SGG_Modding-ModUtil-4.0.1 icon
SGG_Modding-ModUtil

Utility mod for mod interactions within lua for SGG's games

Preferred version: 4.0.1
Hell2Modding-Hell2Modding-1.0.70 icon
Hell2Modding-Hell2Modding

Lua Mod Loader for Hades 2

Preferred version: 1.0.70

README

Bounty API

This mod serves as an API for other mods to use. It does nothing on its own. Use this mod to add custom challenges to the pitch-black stone in Hades 2. The functionality is documented using Lua annotations, so writing the following in your main.lua should give you autocomplete:

---@module "Siuhnexus-BountyAPI"
bountyAPI = mods["Siuhnexus-BountyAPI"]

Make sure to register your challenges only once when loading, so if you follow the structure of the mod template, just do something like this in your ready.lua:

bountyAPI.RegisterBounty({
    Id = "ModAuthor-ModName_SuperDuperChallenge",
    Title = "The Ultimate Challenge",
    Description = "Face every guardian at once",
    Difficulty = 5,
    IsStandardBounty = false,
    BiomeChar = "F",

    DataOverrides = function (RegisterValues)
        print("Overriding all the needed game tables for this challenge run...")
    end,
    SetupFunctions = function (BountyRunData, FromSave)
        if FromSave then
            print("Reacting to the data found in the persisted storage for this challenge run...")
        else
            print("Setting up the persisted data storage for this challenge run...")
        end
    end,
    RoomTransition = function (BountyRunData, RoomName)
        print("Room " .. RoomName .. " is being left. Choosing next room...")
    end,
    CanEnd = function (BountyRunData, RoomName)
        print("Determining whether this challenge run should end")
        return true
    end,
    EndFunctions = function (BountyRunData, Cleared)
        print("Challenge run is ending. Cleaning up...")
    end
})

If you have questions/ideas/weird bugs, feel free to open an issue or a pr.

CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

1.0.0 - 2025-12-07

Added

  • First version of the mod!