Item Stacking

As players run through stages, they will collect Items from Chests and other sources. As their run continues deeper and deeper, they will eventually find copies of items they've previously encountered. Picking up additional copies of an item is called stacking the item, and the total number of items of the same item is often called "stacks" of that item.

All items in the game (With the exception of Equipment and one special item) get stronger when stacking. The more stacks an item has, the more that effect is noticeable. For example, a single Paul's Goat Hoof raises movement speed by 14%, which is good, but stacking 30 of them would result in a 420% increase, which is extremely good for both mobility and evasion.

Most items have one or two numerical variables that increase with stacking, but that variable is not always the same between items. For example, both Sticky Kjaro's Band and Tri-Tip Dagger have a chance to apply an effect that deal damage, but while stacking the former increases the damage of its effect, stacking the latter increases the chance of its effect occurring. The effect of stacking on each item is described in the item's page.

Note that for some items, the listed value in-game does not reflect the actual effect of the item. This is especially true for items that stack non-linearly, as explained below.

Stacking types
While many items stack in the way you would expect (Having 3 items triples the effect for example), many others do not. Most items however, stack in one of 3 ways, which stack consistently compared to others of the same category. These categories are outlined below.

Note that a few items have several scaling statistics that use different scaling methods. The Fuel Cell for example has both a linearly stacking (+1 charge per stack) and an exponentially one (x0.85 equipment cooldown per stack).

Linear Stacking
Most items in the game stack linearly - meaning that for every added item, the bonus keeps increasing. For example, Soldier's Syringe increases Attack Speed by +15%. Having 2 of this items raises the bonus to +30%, and 10 of them to +150%.

The formula for an affected statistic is the linear function : $$f(x) = 1 + a*x$$ where a is the effect of one item and x the number of items.

Some items have an effective limit after which the effect no longer increases. That limit is specified in these items respective pages.

Hyperbolic Stacking
For many items using percentages (Mostly for control items or items that reduce a statistic), linear stacking would eventually lead to 100% chance of triggering or 100% reduction, which would lead to imbalance, like becoming invulnerable or always stunning hit enemies. For this reason, these items use a different type of scaling called Hyperbolic stacking.

The formula for an affected statistic is the reciprocal function : $$f(x) = 1 - 1 / (1 + a*x)$$ where a is the effect of one item and x the number of items.

Tougher Times for example, uses a = 0.15 - so with 10 Tougher Times, the block chance would be equal to $$1 - 1 / (1 + 0.15*10) = 1.5 / 2.5$$, or a 60% chance. No matter how many Tougher Times are stacked however, the block chance will never reach 100%.

An intuitive way of visualizing Hyperbolic stacking is through a lottery example. Imagine that there are green and red tickets in a box. Every time the chance is tested, one ticket is drawn at random. If it is green the effect triggers, otherwise it does not. By default, the box has 100 red tickets and no green tickets. Every time an item is acquired, some green tickets are added to the box. One Tougher Times would add 15 in this case. The more green tickets are added, the more they are likely to be picked over red tickets, but there is always a chance that red tickets are picked instead.

Exponential Stacking
Some items in the game are so powerful that they stack exponentially, meaning that their stacking effect are compounds of each other. For instance, one stack of Shaped Glass doubles damage and halves health. Another stack will double the new damage and halve the new health, meaning that final damage would be quadrupled instead of tripled, and final health would be divided by 4 instead of 3.

The formula for an affected statistic is the exponential function : $$f(x) = a^x$$ where a is the effect of one item and x the number of items.

The power of exponential stacking is that unlike both other types of stacking, they do not suffer from diminishing returns. For example, going from 50 to 51 stacks of Soldier's Syringe would raise the attack speed bonus from +750% to +765%, which is a negligible increase. Similarly, going from 50 to 51 Tougher Times would increase block chance from 88.2% to 88.4%, which represents an increase of survivability of less than 2%. By contrast, going from 50 to 51 Shaped Glass would still double an already monstrously high damage and halve a ridiculously low health.

Special Stacking
Two items, the Bandolier and Rusted Key, use their own special stacking formulas.

The Bandolier uses a formula close to hyperbolic stacking - the drop rate of an ammo box is equal to $$1 - 1 / (1 + x)^{0.33}$$ where x is equal to the number of Bandoliers. While this looks like other hyperbolic stacking items, the nature of the "^0.33" means that while the first couple bandoliers will have a huge impact on drop chance, while the following ones will rise very slowly.

The Rusted Key uses a formula similar to the lottery tickets analogy for its item rarity chances by using (metaphorical) White, Green and Red tickets - which grow at different rates - to determine the rarity of the dropped item.

More detailed information on stacking of both of these items can be found on their respective pages.

Trivia

 * All items can be stacked to a maximum value of 2,147,483,647 - the 32 bit integer cap - before overflowing. Upon overflow, the item will reset back to 1, and act as if there is only 1 item in the player's inventory (notable exception Charged Shield Generator, which has a visual bug upon overflow). Due to this, the hard cap for all items is 2,147,483,647, with no items having a hard coded cap before this value.