Tap Tap Loot Game Mechanics
Datamined gameplay constants pulled straight from the game files. No opinion, no advice, just the numbers.
Source: Assembly-CSharp.dll (LevelScalingHelper, EquipInventoryPolicy, MultiplayerClickForCoins) and _mechanics.json.
Level growth
Player level growth
LevelStatsHandler (player prefab)Default enemy growth
LevelStatsHandler (shared enemy base)Scaling formulas
Item stat scaling
LevelScalingHelper.cctormax(1, base * (level/1000)^exponent)Item level from biome
_mechanics.json12 * sqrt(biome) + 0.6 * biome - 12Player HP formula
_mechanics.jsonbaseHealth + (level-1) * healthGrowthCombat mechanics
Exact formulas from Actor.cs, AbstractWeapon.cs, EffectData.cs, BurnDamageLogicEffect.cs, PoisonDamageLogicEffect.cs and Regeneration.cs. Each card starts with a one-sentence answer so AI Overviews and LLMs can quote it directly.
How does armor work in Tap Tap Loot?
Actor.cs: ApplyArmor()Armor in Tap Tap Loot provides flat damage reduction at a rate of 10 Armor = 1 damage blocked, applied to melee, ranged, spell, and thorn hits. Armor can never reduce damage below 5% of the raw hit, and the minimum damage taken is always 1.
dmg_after = max(max(1, rawDmg × 0.05), rawDmg − armor / 10)Works against every damage type.
How do critical hits work in Tap Tap Loot?
AbstractWeapon.cs line 69, EffectData.cs line 19A critical hit in Tap Tap Loot fires when a random roll between 0 and 1 is less than or equal to your CritChance stat, dealing 2× damage. The player starts with 10% crit chance by default. Crit only applies to melee and ranged attacks — spells never crit.
isCrit = Random(0,1) ≤ CritChanceDefault crit multiplier is 2.0.
How does dodge work in Tap Tap Loot?
Actor.cs: TryToDodge()Dodge in Tap Tap Loot is a percentage chance to completely avoid an incoming attack. A random roll greater than your Dodge stat (expressed as 0–1, e.g. 0.1 = 10%) skips the hit entirely — no damage, no thorns, no block check. Player starts at 0 dodge.
isDodge = Random(0,1) > DodgeStacks additively from item bonuses.
How does block work in Tap Tap Loot?
Actor.cs: TryToBlock(), ResetBlocks()Block in Tap Tap Loot is a charge-based system. Your Block stat equals the number of hits you fully absorb (0 damage) per combat. Each charge is spent on one incoming hit and all charges reset when a new combat starts. Block is checked after Dodge.
Block = number of hits absorbed per combatCharges never carry between fights.
How do thorns work in Tap Tap Loot?
Actor.cs: TryThorns()Thorns in Tap Tap Loot reflect a flat amount of damage back at attackers on every melee hit they land on the player. Thorn damage still passes through the attacker's armor, so it scales linearly with your Thorns stat.
Reflects Thorns flat damage as ThornDamage on melee hitsOnly triggers on melee hits to the player.
How does regeneration work in Tap Tap Loot?
Regeneration.cs, PassivPeriodicEffect.csRegeneration in Tap Tap Loot heals a percentage of your current HP on a tick interval. A tick fires every 50 keypresses in combat and every 100 keypresses out of combat (outside-fight factor 0.5). The healed amount is floor(Regeneration × currentHP).
heal = floor(Regeneration × currentHP)Ticks are driven by keypresses, not wall-clock time.
How does burn work in Tap Tap Loot?
BurnDamageLogicEffect.csBurn in Tap Tap Loot deals flat SpellDamage on a periodic tick. The base damagePerTick is 10 at max item level and scales exponentially (exponent 1.1) with item level. Because it's typed as SpellDamage, burn ticks go through armor and cannot be crit or dodged.
dmg = max(1, burnDamagePerTick)Minimum 1 damage per tick.
How does poison work in Tap Tap Loot?
PoisonDamageLogicEffect.csPoison in Tap Tap Loot deals a percentage of the target's CURRENT HP per tick. The base fraction is 10% (0.1) at max item level and scales linearly with item level. Poison can never kill a target below 1 HP per tick — it always leaves the victim alive for the next hit.
dmg = max(1, currentHP × poisonFraction)Percent-HP damage hard-counters high-HP bosses.
Item drop rarity
Item rarity drop rates by item level
ItemRegistrySO.cs: GetRandomRarityByLevel()Item drop level = 12×√biome + 0.6×biome − 12 (clamped 1-1000). The rarity roll is applied to that level.
| Item Lvl | Common | Uncommon | Rare | Epic | Legendary | Mythic |
|---|---|---|---|---|---|---|
| Lvl 1 | 73.9% | 20.0% | 5.0% | 1.0% | 0.1% | 0.0% |
| Lvl 100 | 66.5% | 23.3% | 7.6% | 2.4% | 0.2% | 0.0% |
| Lvl 250 | 55.3% | 28.3% | 11.5% | 4.5% | 0.3% | 0.1% |
| Lvl 500 | 36.7% | 36.7% | 18.0% | 8.0% | 0.5% | 0.1% |
| Lvl 750 | 26.9% | 32.9% | 26.0% | 11.5% | 2.3% | 0.6% |
| Lvl 1000 | 17.0% | 29.0% | 34.0% | 15.0% | 4.0% | 1.0% |
Equipment layout
Equipment slot layout
EquipInventoryPolicy.m_allowedTypesBySlot| Index | Slot | Label | ItemType | Group |
|---|---|---|---|---|
| 0 | skin | Skin | 7 | cosmetic |
| 1 | helmet | Helmet | 2 | armor |
| 2 | shield | Shield | 8 | weapon |
| 3 | weapon | Weapon | 1 | weapon |
| 4 | chest | Chest | 3 | armor |
| 5 | belt | Belt | 5 | armor |
| 6 | ring1 | Ring 1 | 4 | ring |
| 7 | ring2 | Ring 2 | 4 | ring |
| 8 | skill1 | Skill 1 | 6 | skill |
| 9 | skill2 | Skill 2 | 6 | skill |
| 10 | skill3 | Skill 3 | 6 | skill |
Character stats
The 10 AttributeName values. Descriptions come from _loc_en.json.

Defines the damage of your physical attacks.

If your health drops to 0 you have to restart the current stage.

Reduces incoming damage by your armor value.

Improves your health regeneration rate.

The chance of a weapon attack to deal increased damage.

Your chance to completely avoid an attacks damage.

Boosts the effectiveness of magic abilities.

Deals damage back to attacker upon being hit in melee combat.

Blocks the first incoming attacks at the start of a fight.

(no description in _loc_en.json)