type
status
date
slug
summary
tags
category
icon
password
ℹ️
Open-source alternative to the Kuudra gang discord /au command.
notion image

Introduction

Kuudra attributes

Attributes are a special type of buff exclusive to certain items obtained from the Crimson Isle. Similar to Enchantments, they can either increase Stats or grant other bonuses, such as increased 🪄Skill XP, ❤️ Health regeneration, and more. Items that support Attributes automatically come included with 2 random ones at level 1 when created.

Upgrading attributes

You can upgrade the levels of the Attributes on your items up to level 10 by combining the item with another one of its type or an Attribute Shard with at least 1 matching attribute. Similarly to combining Enchantments in an Anvil, each matching attribute on the sacrifice item ( also known as fusion piece) must be either equal to or higher than the level of the same attribute as the input item. If the level is the same, the level of the attribute will be upgraded, up to level 10. If the level is higher, then the level will be set to that increased value.
It is worth noting that a fusion piece is equivalent to an attribute shard with the same desired attribute, despite being constrained by its armor type.

Main objective

We aim to design an algorithm that calculates the most cost-efficient method to upgrade a certain attribute through purchasing fusion pieces / attribute shards from the Skyblock auction house.
Currently a similar functionality is provided by the kuudra gang discord as a paid feature.

Assumptions

  1. We will only consider same order attribute fusion ().
    1. Justification: It is easily observed that there is no point in fusion when , for the piece is simply wasted and does not contribute to overall attribute level accumulation.
  1. We will generate sufficient normally distributed data for each tier of attribute, with the mean and var doubling upon each tier upgrade.
    1. Justification: In practice we will be fetching real-time data using the hypixel skyblock api, however for demonstration convenience we adopt the approach above which provides a decent approximation to the actual distribution.
  1. We will only consider the case where there is sufficient supply (as will be defined later) for all tiers of attributes on the auction house.
    1. Justification: The scenario above requires the largest amount of calculations, while only slight adjustments are required to make it robust to all cases

Algorithm

Import packages

 

Determine data size for each tier

 

Generate simulation data

We generate the data for each tier using normal distribution.
We generate the data for each tier using normal distribution.
 

Node fusion

Node fusion, which is the core of our algorithm, is implemented as follows.
Node fusion, which is the core of our algorithm, is implemented as follows.
 

Fused node insertion

 
 

Visualization

The uuid_map here is essentially a binary tree. Therefore we choose to visualize it using networkx.
The uuid_map here is essentially a binary tree. Therefore we choose to visualize it using networkx.
 

Output example

 
The figure below displays an example fusing route, where light blue represents the original item while cyan marks the recommended bin auctions.
The figure below displays an example fusing route, where light blue represents the original item while cyan marks the recommended bin auctions.
 
notion image
 

🪄 Playground

For those of interest, detailed code are provided at GitHub.
You can also play with the code yourself via binder.
 
Reinforcement Learning-Theory and Algorithms Notes [1] MDPFFTFormer
  • Twikoo
  • Giscus