Modding: Manipulating the Shop

This guide will show you how to manipulate various sections of the store.

To start, it's important to remember that there are two main locations that influence how the store functions. These two places are the CFGC, and "shop.cfg" in "levels/hub/frontend\_hub/"

## The CFGC Breakdown

The CFGC is responsible for setting what purchases actually unlock something. For example, when upgrading a Toa's weapon, there are 5 slots between each upgrade tier that have to be purchased to move on. Shown below is an example of a vanilla Jaller weapon upgrade block.

```
WEAPON RED
LVL 0 "REDWEAP1" 1 0
LVL 1 "REDWEAP2" 1000
LVL 2 "REDWEAP2" 1000
LVL 3 "REDWEAP2" 1000
LVL 4 "REDWEAP2" 1000
LVL 5 "REDWEAP2" 1000 1
LVL 6 "REDWEAP3" 1500
LVL 7 "REDWEAP3" 1500
LVL 8 "REDWEAP3" 1500
LVL 9 "REDWEAP3" 1500
LVL 10 "REDWEAP3" 1500 2
END

```
Each line has a level (LVL) associated with it, a string that determines what it is unlocking, and its price. Levels 5 and 10 are the slots that upgrade the weapon tier. Level 0 is the default value for a new save.
The changes that can be made here are pretty straight forward, they are as simple as making sure 0 is added to the end of LVL 0, and 1 and 2 are appended to another 2 lines. Shown below is an example from the Speedrunning Community's Practice ROM.

```
WEAPON RED
LVL 0 "REDWEAP1" 1 0
LVL 1 "REDWEAP2" 1000 1
LVL 2 "REDWEAP3" 1500 2
END

```
This version cuts out the extra filler lines in the purchasing process, but does not change the UI in the store itself. It is possible to go past this in game, so it's not likely to be the best solution, but it works if the user is mindful of the side effects of going past this set of slots. At the time of writing, it is not known how to edit the store UI to reflect this change. It is also not required to cut out the extra levels, so they could be left as is, but have the 1, and 2 shifted to the desired line and the set unlock changed to reflect the desired result.

In the case of Toa Abilities, instead of using values of 1, 2, and 3, it is just 0 and 1.

Health also uses a different setup, the values being set every buy slot to 1.00, .95, .9, .85, .8, .75, .7, .65, .6, .5, and .4 in that order from top to bottom. 1.00 being the default value for a new save, and .4 being fully upgraded.

## The "shop.cfg" Breakdown

The "shop.cfg" is responsible for setting the price of the buy slot itself and the string of text shown when in the UI. Shown below is an example of the vanilla version of Jaller's unlock block.

```
WEAPON RED
  LVL 0 "REDWEAP1" 1	0
  LVL 1 "REDWEAP2" 1000
  LVL 2 "REDWEAP2" 1000
  LVL 3 "REDWEAP2" 1000
  LVL 4 "REDWEAP2" 1000
  LVL 5 "REDWEAP2" 1000 1
  LVL 6 "REDWEAP3" 1500
  LVL 7 "REDWEAP3" 1500
  LVL 8 "REDWEAP3" 1500
  LVL 9 "REDWEAP3" 1500
  LVL 10 "REDWEAP3" 1500 2
END

```
Notice that this block of lines is almost an exact copy paste of the version in the CFGC. It is unknown as of the time of writing whether keeping everything but the prices mirrored across the 2 versions is required, but is confirmed to work in this state. Keep in mind, if they are not set to match 1 to 1, the store UI will draw "Loading..." instead of the correct string.

To change the text loaded from strings.csv, change the value in the quotation marks to a different string value corresponding to "strings.csv."

To change the price of a buy slot, adjust the number next to the string value to anything more than 1 to still have a price. Note that the game applies a zero to the end of the set value. If this value is set to zero, there will be no piece requirement, so it is free to activate a given slot. These guidelines apply across the board for all of the purchasable things in the store.