{"upgrades":[{"upgrade_id":"bank_shot","display_name":"Bank Shot","description":"Two more deflections on hitscan shots. Master the geometry of every arena to land impossible angles.","icon":"","icon_url":"/api/v1/upgrades/icons/bank_shot.png","rarity":2,"tier":2,"categories":[0],"tags":["bounce","hitscan","ricochet","utility","advanced"],"required_upgrades":["wall_shot"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"basic_shield","display_name":"Energy Shield","description":"Gain 50 shield points that absorb damage before health. Shield generator adds 0.1s to reload.","icon":"res://assets/images/upgrades/basic_shield.png","icon_url":"/api/v1/upgrades/icons/basic_shield.png","rarity":1,"tier":0,"categories":[1],"tags":["defensive","shield"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"shield":50},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"beam_core","display_name":"Beam Core","description":"Commit to sustained beam weaponry. Beam damage naturally ramps up over 1.5 seconds of continuous fire. Enables heat-based upgrade paths.","icon":"","icon_url":"/api/v1/upgrades/icons/beam_core.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","beam"],"required_upgrades":[],"excluded_upgrades":["hitscan_core","projectile_rounds","charge_core"],"stat_modifiers":{"damage":0.6,"fire_rate":10},"flat_bonuses":{},"special_effects":["beam_fire","beam_ramp"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"berserker","display_name":"Berserker","description":"Attack and move faster (+22% fire rate, +20% speed) but longer reload. Taking damage while berserking does not interrupt your fire rhythm.","icon":"res://assets/images/upgrades/berserker.png","icon_url":"/api/v1/upgrades/icons/berserker.png","rarity":2,"tier":1,"categories":[0,2],"tags":["offensive","mobility","aggressive"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"speed":1.2},"flat_bonuses":{"fire_rate_flat":0.22},"special_effects":["berserker_flinch"],"stat_penalties":{"reload_time":1.3},"flat_penalties":{},"particle_effect":"red_aura","sound_effect":"","visual_modifier":"red_trail","hit_impact_modifier":"red_trail"},{"upgrade_id":"bigger_bullets","display_name":"Bigger Bullets","description":"Bullets are 30% larger and deal 30% more damage, but reload 20% slower","icon":"res://assets/images/upgrades/bigger_bullets.png","icon_url":"/api/v1/upgrades/icons/bigger_bullets.png","rarity":1,"tier":0,"categories":[0],"tags":["offensive","damage","size"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"damage":1.3},"flat_bonuses":{},"special_effects":["bigger_bullets"],"stat_penalties":{"reload_time":1.2},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"bigger_projectiles","hit_impact_modifier":"bigger_projectiles"},{"upgrade_id":"burst_fire","display_name":"Burst Fire","description":"Each trigger pull fires a quick 3-round burst. Inter-shot delay shortened to 0.075s — rewards precise timing over spray.","icon":"res://assets/images/upgrades/burst_fire.png","icon_url":"/api/v1/upgrades/icons/burst_fire.png","rarity":1,"tier":1,"categories":[0],"tags":["offensive","special","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"burst_inter_shot_delay":0.075,"burst_shot_count":3},"special_effects":["burst_fire"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"charge_core","display_name":"Charge Core","description":"Commit to charged-shot weaponry. Shots release after a wind-up for concentrated burst damage. Unlocks charge-based Fire Control upgrades.","icon":"","icon_url":"/api/v1/upgrades/icons/charge_core.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","charge"],"required_upgrades":[],"excluded_upgrades":["hitscan_core","projectile_rounds","beam_core"],"stat_modifiers":{"damage":2},"flat_bonuses":{},"special_effects":["charge_fire"],"stat_penalties":{"fire_rate":0.3},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"damage_boost","display_name":"Damage Boost","description":"+15 flat damage per stack. Reload 0.15s slower — heavier ammo hits harder but takes more effort to chamber.","icon":"res://assets/images/upgrades/damage_boost.png","icon_url":"/api/v1/upgrades/icons/damage_boost.png","rarity":0,"tier":0,"categories":[0],"tags":["offensive","damage"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"damage_flat":15},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.15},"particle_effect":"","sound_effect":"","visual_modifier":"red_glow","hit_impact_modifier":"red_glow"},{"upgrade_id":"dash_core","display_name":"Dash","description":"Unlocks the dash ability. After a grapple release, the dash extends your arc instead of redirecting.","icon":"","icon_url":"/api/v1/upgrades/icons/dash_core.png","rarity":1,"tier":0,"categories":[2],"tags":["mobility","dash"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"dash_cooldown":3,"dash_duration":0.3,"dash_speed":22},"special_effects":["dash"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"dash_mastery","display_name":"Dash Mastery","description":"Reduces dash cooldown by 30%, extends distance and speed. Maneuverability comes at a cost — 5% less bullet damage.","icon":"","icon_url":"/api/v1/upgrades/icons/dash_mastery.png","rarity":1,"tier":1,"categories":[2],"tags":["mobility","dash","cooldown"],"required_upgrades":["dash_core"],"excluded_upgrades":[],"stat_modifiers":{"dash_cooldown":0.7,"dash_speed":1.25},"flat_bonuses":{},"special_effects":[],"stat_penalties":{"damage":0.95},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"double_bounce","display_name":"Double Bounce","description":"Primary bullet ricochets twice. Second bounce deals 60% damage. Does not apply to pellets or shrapnel.","icon":"res://assets/images/upgrades/double_bounce.png","icon_url":"/api/v1/upgrades/icons/double_bounce.png","rarity":2,"tier":1,"categories":[0],"tags":["bounce","utility","ricochet","advanced"],"required_upgrades":["ricochet_shot"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"drill_shot","display_name":"Drill Shot","description":"Bullets pierce through terrain up to 3 times. Each wall costs 30% damage and slows projectiles. Beams require 0.3s warm-up to burn through. Reload 15% slower — drilling equipment is heavy.","icon":"res://assets/images/upgrades/drill_shot.png","icon_url":"/api/v1/upgrades/icons/drill_shot.png","rarity":3,"tier":2,"categories":[0,3],"tags":["offensive","utility","drill","penetration","all_core"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["drill_shot"],"stat_penalties":{"reload_time":1.15},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"enhanced_parry","display_name":"Enhanced Parry","description":"Reduce parry cooldown by 30% and increase parry window. Parry training adds 0.1s to reload.","icon":"res://assets/images/upgrades/enhanced_parry.png","icon_url":"/api/v1/upgrades/icons/enhanced_parry.png","rarity":1,"tier":0,"categories":[1,3],"tags":["defensive","utility","parry"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"parry_cooldown":0.7,"parry_window":1.3},"flat_bonuses":{},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"parry_flash","sound_effect":"parry_sound","visual_modifier":"parry_glow","hit_impact_modifier":""},{"upgrade_id":"explosive_rounds","display_name":"Explosive Rounds","description":"1 major explosion per shot, triggered by the primary bullet impact only (radius 3.5m). Pellets and secondary hits create visual-only mini-flashes. Explosions do not trigger other on-hit effects. 0.15s internal cooldown.","icon":"res://assets/images/upgrades/explosive_rounds.png","icon_url":"/api/v1/upgrades/icons/explosive_rounds.png","rarity":3,"tier":1,"categories":[0,4],"tags":["offensive","special","aoe","payload"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"explosion_radius":3.5},"special_effects":["explosive_rounds"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"explosion_particles","sound_effect":"explosion_sound","visual_modifier":"orange_bullets","hit_impact_modifier":"orange_bullets"},{"upgrade_id":"extended_mag","display_name":"Extended Magazine","description":"Increase magazine capacity by 2 bullets. Extended mags add 0.1s to reload time.","icon":"res://assets/images/upgrades/extended_mag.png","icon_url":"/api/v1/upgrades/icons/extended_mag.png","rarity":1,"tier":0,"categories":[0,3],"tags":["offensive","utility","ammo"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"max_ammo":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"fortified_shield","display_name":"Fortified Shield","description":"Double your shield capacity (+100%). Fortified shielding adds 0.15s to reload.","icon":"res://assets/images/upgrades/fortified_shield.png","icon_url":"/api/v1/upgrades/icons/fortified_shield.png","rarity":2,"tier":1,"categories":[1],"tags":["defensive","shield","capacity"],"required_upgrades":["basic_shield"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"shield":50},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.15},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"grapple_hook","display_name":"Grapple Hook","description":"Unlocks the grapple hook. Latch onto surfaces to slingshot yourself across the arena. Dash within 1.2 seconds of release for extended momentum.","icon":"","icon_url":"/api/v1/upgrades/icons/grapple_hook.png","rarity":2,"tier":0,"categories":[2,3],"tags":["mobility","utility","grapple"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["grapple"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"gravitational_collapse","display_name":"Gravitational Collapse","description":"Every 1.5s your next primary bullet impact spawns a singularity (max 1 active). Sustained fire reduces the cooldown. Pellets and secondary hits cannot create singularities. +30% fire rate. -10% movement speed.","icon":"res://assets/images/upgrades/gravitational_collapse.png","icon_url":"/api/v1/upgrades/icons/gravitational_collapse.png","rarity":4,"tier":2,"categories":[0,4],"tags":["legendary","special","gravity","aoe","experimental"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"fire_rate":1.3},"flat_bonuses":{},"special_effects":["blackhole_rounds"],"stat_penalties":{"speed":0.85},"flat_penalties":{},"particle_effect":"blackhole_particles","sound_effect":"blackhole_sound","visual_modifier":"purple_glow","hit_impact_modifier":"purple_glow"},{"upgrade_id":"ground_slam","display_name":"Ground Slam","description":"Unlock the Ground Slam ability. Double-tap crouch in the air to slam down, creating a shockwave on impact. Stacks increase shockwave force, range, and slam speed.","icon":"","icon_url":"/api/v1/upgrades/icons/ground_slam.png","rarity":1,"tier":1,"categories":[0,2],"tags":["offensive","mobility","slam"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"slam_damage":1.25,"slam_knockback":1.25,"slam_speed":1.2},"flat_bonuses":{"slam_radius":1},"special_effects":["ground_slam"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"heavy_machine_gun","display_name":"Heavy Machine Gun","description":"+35 clip, ×2.0 fire rate with spin-up over 0.5s of sustained fire. Damage ×0.25 per bullet. On-hit effects are reduced to 20% effectiveness. Poison refreshes instead of stacking. Major effects limited to once per 0.2s per target. Reload +1.0s.","icon":"res://assets/images/upgrades/rapid_fire.png","icon_url":"/api/v1/upgrades/icons/heavy_machine_gun.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","speed","fire_control","high_risk"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"fire_rate":1.75},"flat_bonuses":{"max_ammo":35},"special_effects":[],"stat_penalties":{"damage":0.25},"flat_penalties":{"reload_time":1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"hitscan_core","display_name":"Hitscan Core","description":"Commit to precision hitscan weaponry. Shots pierce through one additional target. Unlocks the Fire Control upgrade tree including Rapid Fire, Heavy Machine Gun, Burst Fire, and Shotgun Shells.","icon":"","icon_url":"/api/v1/upgrades/icons/hitscan_core.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","hitscan"],"required_upgrades":[],"excluded_upgrades":["projectile_rounds","charge_core","beam_core"],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["hitscan_pierce"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"last_resort","display_name":"Last Resort","description":"While below 30% health, fire rate doubles and reload time halves. Triggers once per life. Never go down without a fight.","icon":"","icon_url":"/api/v1/upgrades/icons/last_resort.png","rarity":2,"tier":1,"categories":[0,4],"tags":["loser-build","low-health","fire-rate","comeback"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["last_resort"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"lifesteal","display_name":"Lifesteal","description":"Bullets drain life from targets, stealing HP over time. Life-draining ammo has 10% less raw impact.","icon":"res://assets/images/upgrades/lifesteal.png","icon_url":"/api/v1/upgrades/icons/lifesteal.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","special","dot","healing","sustain"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"lifesteal_dps":5,"lifesteal_duration":5},"special_effects":["lifesteal"],"stat_penalties":{"damage":0.9},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"lightweight_ammo","display_name":"Lightweight Ammo","description":"Bullets fly faster and straighter (less gravity) but deal 15% less damage","icon":"res://assets/images/upgrades/lightweight_ammo.png","icon_url":"/api/v1/upgrades/icons/lightweight_ammo.png","rarity":1,"tier":0,"categories":[0,3],"tags":["utility","speed","accuracy"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"bullet_speed":1.4},"flat_bonuses":{},"special_effects":["lightweight_bullets"],"stat_penalties":{"damage":0.85},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"light_trail","hit_impact_modifier":"light_trail"},{"upgrade_id":"melt_zone","display_name":"Melt Zone","description":"Sustained beam contact scorches the surface. Enemies who step through the burning zone are ignited for 3 seconds.","icon":"","icon_url":"/api/v1/upgrades/icons/melt_zone.png","rarity":1,"tier":1,"categories":[0],"tags":["beam","zone","dot","burn"],"required_upgrades":["beam_core"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"melt_zone_dps":10,"melt_zone_duration":3,"melt_zone_lifetime":5,"melt_zone_radius":1.5},"special_effects":["melt_zone"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"multi_shot","display_name":"Multi-Shot","description":"Fire 2 bullets per shot (+15% reload, +20% spread). Secondary bullet deals 60% damage, does not fragment, and cannot trigger major effects (explosion, singularity, thruster). Stacks up to 3 projectiles.","icon":"res://assets/images/upgrades/multi_shot.png","icon_url":"/api/v1/upgrades/icons/multi_shot.png","rarity":2,"tier":1,"categories":[0],"tags":["offensive","multi","shotgun","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["multi_shot"],"stat_penalties":{"damage":0.8},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"multi_muzzle_flash","hit_impact_modifier":"multi_muzzle_flash"},{"upgrade_id":"parry_momentum","display_name":"Parry Momentum","description":"A successful parry launches you forward at 150% sprint speed for 0.5s. Your first shot within that window deals +50% damage.","icon":"","icon_url":"/api/v1/upgrades/icons/parry_momentum.png","rarity":2,"tier":1,"categories":[0,2],"tags":["parry","mobility","timing","synergy"],"required_upgrades":["enhanced_parry"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["parry_momentum"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"phase_runner","display_name":"Phase Runner","description":"Dashing grants invulnerability frames. Each 50 shield points extends the window by 0.15 seconds.","icon":"","icon_url":"/api/v1/upgrades/icons/phase_runner.png","rarity":4,"tier":2,"categories":[2,4],"tags":["keystone","mobility","dash","defensive"],"required_upgrades":["dash_core"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["phase_runner"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"ghost_trail","sound_effect":"","visual_modifier":"ghost_glow","hit_impact_modifier":""},{"upgrade_id":"pinball_rounds","display_name":"Pinball Rounds","description":"Primary bullet ricochets three times. Third bounce deals 45% damage. Bounces slightly correct toward the nearest enemy. Does not apply to pellets, shrapnel, or explosions.","icon":"res://assets/images/upgrades/pinball_rounds.png","icon_url":"/api/v1/upgrades/icons/pinball_rounds.png","rarity":3,"tier":1,"categories":[0],"tags":["bounce","utility","ricochet","chaos","legendary"],"required_upgrades":["double_bounce"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":3},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"poison_enjoyer","display_name":"Poison Enjoyer","description":"Take 50% less damage from poison. While poisoned, your movement speed is increased by 25%.","icon":"res://assets/images/upgrades/poison_rounds.png","icon_url":"/api/v1/upgrades/icons/poison_enjoyer.png","rarity":3,"tier":1,"categories":[1,4],"tags":["defensive","special","poison","sustain"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"poison_resistance":0.5},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"poison_rounds","display_name":"Poison Rounds","description":"Bullets poison targets, dealing damage over time. Stacks on hit.","icon":"res://assets/images/upgrades/poison_rounds.png","icon_url":"/api/v1/upgrades/icons/poison_rounds.png","rarity":2,"tier":1,"categories":[0],"tags":["offensive","special","dot","sustain"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"poison_dps":5,"poison_duration":5},"special_effects":["poison_rounds"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"poison_particles","sound_effect":"","visual_modifier":"green_aura","hit_impact_modifier":"poison_impact"},{"upgrade_id":"projectile_rounds","display_name":"Projectile Core","description":"Commit to real projectile weaponry. Bullets deal +10% damage at close range, scaling up to +40% at maximum range — reward for patience and aim. Unlocks bounces, explosives, homing, and poison upgrade trees.","icon":"res://assets/images/upgrades/projectile_rounds.png","icon_url":"/api/v1/upgrades/icons/projectile_rounds.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","offensive","projectile"],"required_upgrades":[],"excluded_upgrades":["hitscan_core","charge_core","beam_core"],"stat_modifiers":{"damage":1.1},"flat_bonuses":{},"special_effects":["projectile_rounds","distance_damage_scaling"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"quick_reload","display_name":"Quick Reload","description":"Reduce reload time by 30%","icon":"res://assets/images/upgrades/quick_reload.png","icon_url":"/api/v1/upgrades/icons/quick_reload.png","rarity":1,"tier":0,"categories":[3],"tags":["utility","reload"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"reload_time":0.7},"flat_bonuses":{},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"fast_hands","hit_impact_modifier":""},{"upgrade_id":"rapid_fire","display_name":"Rapid Fire","description":"+18% fire rate per stack, but reload takes 0.1s longer — speed comes at the cost of accuracy under pressure.","icon":"res://assets/images/upgrades/rapid_fire.png","icon_url":"/api/v1/upgrades/icons/rapid_fire.png","rarity":0,"tier":1,"categories":[0],"tags":["offensive","speed","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"fire_rate_flat":0.18},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"regeneration","display_name":"Regeneration","description":"Recover health when out of combat for 3 seconds. Regeneration drains focus — reload 0.15s slower.","icon":"res://assets/images/upgrades/regeneration.png","icon_url":"/api/v1/upgrades/icons/regeneration.png","rarity":2,"tier":0,"categories":[1],"tags":["defensive","healing"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["regeneration"],"stat_penalties":{},"flat_penalties":{"reload_time":0.15},"particle_effect":"heal_particles","sound_effect":"","visual_modifier":"green_aura","hit_impact_modifier":""},{"upgrade_id":"resonant_bounce","display_name":"Resonant Bounce","description":"Two additional deflections on charged shots. Charge energy echoes between surfaces, turning missed angles into killing vectors.","icon":"","icon_url":"/api/v1/upgrades/icons/resonant_bounce.png","rarity":2,"tier":2,"categories":[0],"tags":["bounce","charge","ricochet","advanced"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"ricochet_shot","display_name":"Ricochet Shot","description":"Your primary bullet bounces off walls once before dissipating. Ricochets deal 75% damage. Shotgun pellets do not ricochet.","icon":"res://assets/images/upgrades/ricochet_shot.png","icon_url":"/api/v1/upgrades/icons/ricochet_shot.png","rarity":1,"tier":0,"categories":[0],"tags":["bounce","utility","ricochet"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":1},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"shotgun_shells","display_name":"Shotgun Shells","description":"Fires a conical short-range blast. Up to 4 raycasts; 7 visual-only pellets for that punchy feel. Damage scales from ×2.2 point-blank down to ×0.6 at max range. Only the central pellet ricochets or triggers major effects. Reload +35%.","icon":"res://assets/images/upgrades/shotgun_shells.png","icon_url":"/api/v1/upgrades/icons/shotgun_shells.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","shotgun","spread","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["shotgun_mode"],"stat_penalties":{"reload_time":1.3},"flat_penalties":{},"particle_effect":"shotgun_blast","sound_effect":"shotgun_sound","visual_modifier":"wide_muzzle_flash","hit_impact_modifier":"wide_muzzle_flash"},{"upgrade_id":"shrapnel_rounds","display_name":"Shrapnel Rounds","description":"On impact, deals 35% of shot damage to up to 2 nearby enemies. Fragments are AoE-only — they do not ricochet, proc, or explode.","icon":"res://assets/images/upgrades/shrapnel_rounds.png","icon_url":"/api/v1/upgrades/icons/shrapnel_rounds.png","rarity":1,"tier":1,"categories":[0],"tags":["offensive","projectile","fragmentation"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"fragment_count":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":"shrapnel_impact"},{"upgrade_id":"smart_bounce","display_name":"Smart Bounce","description":"Ricochets seek nearby enemies. With more bounces, each lock-on cone narrows to keep multi-hop chains balanced.","icon":"res://assets/images/upgrades/smart_bounce.png","icon_url":"/api/v1/upgrades/icons/smart_bounce.png","rarity":3,"tier":1,"categories":[0],"tags":["bounce","offensive","targeting","smart"],"required_upgrades":["ricochet_shot"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["smart_bounce"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"swift_feet","display_name":"Swift Feet","description":"Increase movement speed by 30%. Sprinting for 1s grants +20% weapon damage for 2s.","icon":"res://assets/images/upgrades/swift_feet.png","icon_url":"/api/v1/upgrades/icons/swift_feet.png","rarity":0,"tier":0,"categories":[2],"tags":["mobility","speed"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"speed":1.3},"flat_bonuses":{},"special_effects":["swift_aggression"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"speed_trail","hit_impact_modifier":""},{"upgrade_id":"thruster","display_name":"Thruster","description":"Bullets deploy thrusters on impact that push targets for 3 seconds","icon":"res://assets/images/upgrades/thruster.png","icon_url":"/api/v1/upgrades/icons/thruster.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","projectile","push","thruster","payload"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["thruster_rounds"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"orange_bullets","hit_impact_modifier":"orange_bullets"},{"upgrade_id":"wall_shot","display_name":"Wall Shot","description":"Hitscan shots deflect off surfaces once. Use the environment to hit targets around corners.","icon":"","icon_url":"/api/v1/upgrades/icons/wall_shot.png","rarity":1,"tier":1,"categories":[0],"tags":["bounce","hitscan","ricochet","utility"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":1},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""}],"count":43,"cached":true,"fetched_at":"2026-06-23 19:13:58","grouped":{"0":{"label":"","rarities":{"0":[{"upgrade_id":"beam_core","display_name":"Beam Core","description":"Commit to sustained beam weaponry. Beam damage naturally ramps up over 1.5 seconds of continuous fire. Enables heat-based upgrade paths.","icon":"","icon_url":"/api/v1/upgrades/icons/beam_core.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","beam"],"required_upgrades":[],"excluded_upgrades":["hitscan_core","projectile_rounds","charge_core"],"stat_modifiers":{"damage":0.6,"fire_rate":10},"flat_bonuses":{},"special_effects":["beam_fire","beam_ramp"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"charge_core","display_name":"Charge Core","description":"Commit to charged-shot weaponry. Shots release after a wind-up for concentrated burst damage. Unlocks charge-based Fire Control upgrades.","icon":"","icon_url":"/api/v1/upgrades/icons/charge_core.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","charge"],"required_upgrades":[],"excluded_upgrades":["hitscan_core","projectile_rounds","beam_core"],"stat_modifiers":{"damage":2},"flat_bonuses":{},"special_effects":["charge_fire"],"stat_penalties":{"fire_rate":0.3},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"damage_boost","display_name":"Damage Boost","description":"+15 flat damage per stack. Reload 0.15s slower — heavier ammo hits harder but takes more effort to chamber.","icon":"res://assets/images/upgrades/damage_boost.png","icon_url":"/api/v1/upgrades/icons/damage_boost.png","rarity":0,"tier":0,"categories":[0],"tags":["offensive","damage"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"damage_flat":15},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.15},"particle_effect":"","sound_effect":"","visual_modifier":"red_glow","hit_impact_modifier":"red_glow"},{"upgrade_id":"hitscan_core","display_name":"Hitscan Core","description":"Commit to precision hitscan weaponry. Shots pierce through one additional target. Unlocks the Fire Control upgrade tree including Rapid Fire, Heavy Machine Gun, Burst Fire, and Shotgun Shells.","icon":"","icon_url":"/api/v1/upgrades/icons/hitscan_core.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","hitscan"],"required_upgrades":[],"excluded_upgrades":["projectile_rounds","charge_core","beam_core"],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["hitscan_pierce"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"projectile_rounds","display_name":"Projectile Core","description":"Commit to real projectile weaponry. Bullets deal +10% damage at close range, scaling up to +40% at maximum range — reward for patience and aim. Unlocks bounces, explosives, homing, and poison upgrade trees.","icon":"res://assets/images/upgrades/projectile_rounds.png","icon_url":"/api/v1/upgrades/icons/projectile_rounds.png","rarity":0,"tier":0,"categories":[0,5],"tags":["identity","core","offensive","projectile"],"required_upgrades":[],"excluded_upgrades":["hitscan_core","charge_core","beam_core"],"stat_modifiers":{"damage":1.1},"flat_bonuses":{},"special_effects":["projectile_rounds","distance_damage_scaling"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"swift_feet","display_name":"Swift Feet","description":"Increase movement speed by 30%. Sprinting for 1s grants +20% weapon damage for 2s.","icon":"res://assets/images/upgrades/swift_feet.png","icon_url":"/api/v1/upgrades/icons/swift_feet.png","rarity":0,"tier":0,"categories":[2],"tags":["mobility","speed"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"speed":1.3},"flat_bonuses":{},"special_effects":["swift_aggression"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"speed_trail","hit_impact_modifier":""}],"1":[{"upgrade_id":"basic_shield","display_name":"Energy Shield","description":"Gain 50 shield points that absorb damage before health. Shield generator adds 0.1s to reload.","icon":"res://assets/images/upgrades/basic_shield.png","icon_url":"/api/v1/upgrades/icons/basic_shield.png","rarity":1,"tier":0,"categories":[1],"tags":["defensive","shield"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"shield":50},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"bigger_bullets","display_name":"Bigger Bullets","description":"Bullets are 30% larger and deal 30% more damage, but reload 20% slower","icon":"res://assets/images/upgrades/bigger_bullets.png","icon_url":"/api/v1/upgrades/icons/bigger_bullets.png","rarity":1,"tier":0,"categories":[0],"tags":["offensive","damage","size"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"damage":1.3},"flat_bonuses":{},"special_effects":["bigger_bullets"],"stat_penalties":{"reload_time":1.2},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"bigger_projectiles","hit_impact_modifier":"bigger_projectiles"},{"upgrade_id":"dash_core","display_name":"Dash","description":"Unlocks the dash ability. After a grapple release, the dash extends your arc instead of redirecting.","icon":"","icon_url":"/api/v1/upgrades/icons/dash_core.png","rarity":1,"tier":0,"categories":[2],"tags":["mobility","dash"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"dash_cooldown":3,"dash_duration":0.3,"dash_speed":22},"special_effects":["dash"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"enhanced_parry","display_name":"Enhanced Parry","description":"Reduce parry cooldown by 30% and increase parry window. Parry training adds 0.1s to reload.","icon":"res://assets/images/upgrades/enhanced_parry.png","icon_url":"/api/v1/upgrades/icons/enhanced_parry.png","rarity":1,"tier":0,"categories":[1,3],"tags":["defensive","utility","parry"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"parry_cooldown":0.7,"parry_window":1.3},"flat_bonuses":{},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"parry_flash","sound_effect":"parry_sound","visual_modifier":"parry_glow","hit_impact_modifier":""},{"upgrade_id":"extended_mag","display_name":"Extended Magazine","description":"Increase magazine capacity by 2 bullets. Extended mags add 0.1s to reload time.","icon":"res://assets/images/upgrades/extended_mag.png","icon_url":"/api/v1/upgrades/icons/extended_mag.png","rarity":1,"tier":0,"categories":[0,3],"tags":["offensive","utility","ammo"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"max_ammo":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"lightweight_ammo","display_name":"Lightweight Ammo","description":"Bullets fly faster and straighter (less gravity) but deal 15% less damage","icon":"res://assets/images/upgrades/lightweight_ammo.png","icon_url":"/api/v1/upgrades/icons/lightweight_ammo.png","rarity":1,"tier":0,"categories":[0,3],"tags":["utility","speed","accuracy"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"bullet_speed":1.4},"flat_bonuses":{},"special_effects":["lightweight_bullets"],"stat_penalties":{"damage":0.85},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"light_trail","hit_impact_modifier":"light_trail"},{"upgrade_id":"quick_reload","display_name":"Quick Reload","description":"Reduce reload time by 30%","icon":"res://assets/images/upgrades/quick_reload.png","icon_url":"/api/v1/upgrades/icons/quick_reload.png","rarity":1,"tier":0,"categories":[3],"tags":["utility","reload"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"reload_time":0.7},"flat_bonuses":{},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"fast_hands","hit_impact_modifier":""},{"upgrade_id":"ricochet_shot","display_name":"Ricochet Shot","description":"Your primary bullet bounces off walls once before dissipating. Ricochets deal 75% damage. Shotgun pellets do not ricochet.","icon":"res://assets/images/upgrades/ricochet_shot.png","icon_url":"/api/v1/upgrades/icons/ricochet_shot.png","rarity":1,"tier":0,"categories":[0],"tags":["bounce","utility","ricochet"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":1},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""}],"2":[{"upgrade_id":"grapple_hook","display_name":"Grapple Hook","description":"Unlocks the grapple hook. Latch onto surfaces to slingshot yourself across the arena. Dash within 1.2 seconds of release for extended momentum.","icon":"","icon_url":"/api/v1/upgrades/icons/grapple_hook.png","rarity":2,"tier":0,"categories":[2,3],"tags":["mobility","utility","grapple"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["grapple"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"regeneration","display_name":"Regeneration","description":"Recover health when out of combat for 3 seconds. Regeneration drains focus — reload 0.15s slower.","icon":"res://assets/images/upgrades/regeneration.png","icon_url":"/api/v1/upgrades/icons/regeneration.png","rarity":2,"tier":0,"categories":[1],"tags":["defensive","healing"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["regeneration"],"stat_penalties":{},"flat_penalties":{"reload_time":0.15},"particle_effect":"heal_particles","sound_effect":"","visual_modifier":"green_aura","hit_impact_modifier":""}]}},"1":{"label":"","rarities":{"0":[{"upgrade_id":"rapid_fire","display_name":"Rapid Fire","description":"+18% fire rate per stack, but reload takes 0.1s longer — speed comes at the cost of accuracy under pressure.","icon":"res://assets/images/upgrades/rapid_fire.png","icon_url":"/api/v1/upgrades/icons/rapid_fire.png","rarity":0,"tier":1,"categories":[0],"tags":["offensive","speed","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"fire_rate_flat":0.18},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""}],"1":[{"upgrade_id":"burst_fire","display_name":"Burst Fire","description":"Each trigger pull fires a quick 3-round burst. Inter-shot delay shortened to 0.075s — rewards precise timing over spray.","icon":"res://assets/images/upgrades/burst_fire.png","icon_url":"/api/v1/upgrades/icons/burst_fire.png","rarity":1,"tier":1,"categories":[0],"tags":["offensive","special","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"burst_inter_shot_delay":0.075,"burst_shot_count":3},"special_effects":["burst_fire"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"dash_mastery","display_name":"Dash Mastery","description":"Reduces dash cooldown by 30%, extends distance and speed. Maneuverability comes at a cost — 5% less bullet damage.","icon":"","icon_url":"/api/v1/upgrades/icons/dash_mastery.png","rarity":1,"tier":1,"categories":[2],"tags":["mobility","dash","cooldown"],"required_upgrades":["dash_core"],"excluded_upgrades":[],"stat_modifiers":{"dash_cooldown":0.7,"dash_speed":1.25},"flat_bonuses":{},"special_effects":[],"stat_penalties":{"damage":0.95},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"ground_slam","display_name":"Ground Slam","description":"Unlock the Ground Slam ability. Double-tap crouch in the air to slam down, creating a shockwave on impact. Stacks increase shockwave force, range, and slam speed.","icon":"","icon_url":"/api/v1/upgrades/icons/ground_slam.png","rarity":1,"tier":1,"categories":[0,2],"tags":["offensive","mobility","slam"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"slam_damage":1.25,"slam_knockback":1.25,"slam_speed":1.2},"flat_bonuses":{"slam_radius":1},"special_effects":["ground_slam"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"melt_zone","display_name":"Melt Zone","description":"Sustained beam contact scorches the surface. Enemies who step through the burning zone are ignited for 3 seconds.","icon":"","icon_url":"/api/v1/upgrades/icons/melt_zone.png","rarity":1,"tier":1,"categories":[0],"tags":["beam","zone","dot","burn"],"required_upgrades":["beam_core"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"melt_zone_dps":10,"melt_zone_duration":3,"melt_zone_lifetime":5,"melt_zone_radius":1.5},"special_effects":["melt_zone"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"shrapnel_rounds","display_name":"Shrapnel Rounds","description":"On impact, deals 35% of shot damage to up to 2 nearby enemies. Fragments are AoE-only — they do not ricochet, proc, or explode.","icon":"res://assets/images/upgrades/shrapnel_rounds.png","icon_url":"/api/v1/upgrades/icons/shrapnel_rounds.png","rarity":1,"tier":1,"categories":[0],"tags":["offensive","projectile","fragmentation"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"fragment_count":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":"shrapnel_impact"},{"upgrade_id":"wall_shot","display_name":"Wall Shot","description":"Hitscan shots deflect off surfaces once. Use the environment to hit targets around corners.","icon":"","icon_url":"/api/v1/upgrades/icons/wall_shot.png","rarity":1,"tier":1,"categories":[0],"tags":["bounce","hitscan","ricochet","utility"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":1},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""}],"2":[{"upgrade_id":"berserker","display_name":"Berserker","description":"Attack and move faster (+22% fire rate, +20% speed) but longer reload. Taking damage while berserking does not interrupt your fire rhythm.","icon":"res://assets/images/upgrades/berserker.png","icon_url":"/api/v1/upgrades/icons/berserker.png","rarity":2,"tier":1,"categories":[0,2],"tags":["offensive","mobility","aggressive"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"speed":1.2},"flat_bonuses":{"fire_rate_flat":0.22},"special_effects":["berserker_flinch"],"stat_penalties":{"reload_time":1.3},"flat_penalties":{},"particle_effect":"red_aura","sound_effect":"","visual_modifier":"red_trail","hit_impact_modifier":"red_trail"},{"upgrade_id":"double_bounce","display_name":"Double Bounce","description":"Primary bullet ricochets twice. Second bounce deals 60% damage. Does not apply to pellets or shrapnel.","icon":"res://assets/images/upgrades/double_bounce.png","icon_url":"/api/v1/upgrades/icons/double_bounce.png","rarity":2,"tier":1,"categories":[0],"tags":["bounce","utility","ricochet","advanced"],"required_upgrades":["ricochet_shot"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"fortified_shield","display_name":"Fortified Shield","description":"Double your shield capacity (+100%). Fortified shielding adds 0.15s to reload.","icon":"res://assets/images/upgrades/fortified_shield.png","icon_url":"/api/v1/upgrades/icons/fortified_shield.png","rarity":2,"tier":1,"categories":[1],"tags":["defensive","shield","capacity"],"required_upgrades":["basic_shield"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"shield":50},"special_effects":[],"stat_penalties":{},"flat_penalties":{"reload_time":0.15},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"last_resort","display_name":"Last Resort","description":"While below 30% health, fire rate doubles and reload time halves. Triggers once per life. Never go down without a fight.","icon":"","icon_url":"/api/v1/upgrades/icons/last_resort.png","rarity":2,"tier":1,"categories":[0,4],"tags":["loser-build","low-health","fire-rate","comeback"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["last_resort"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"multi_shot","display_name":"Multi-Shot","description":"Fire 2 bullets per shot (+15% reload, +20% spread). Secondary bullet deals 60% damage, does not fragment, and cannot trigger major effects (explosion, singularity, thruster). Stacks up to 3 projectiles.","icon":"res://assets/images/upgrades/multi_shot.png","icon_url":"/api/v1/upgrades/icons/multi_shot.png","rarity":2,"tier":1,"categories":[0],"tags":["offensive","multi","shotgun","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["multi_shot"],"stat_penalties":{"damage":0.8},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"multi_muzzle_flash","hit_impact_modifier":"multi_muzzle_flash"},{"upgrade_id":"parry_momentum","display_name":"Parry Momentum","description":"A successful parry launches you forward at 150% sprint speed for 0.5s. Your first shot within that window deals +50% damage.","icon":"","icon_url":"/api/v1/upgrades/icons/parry_momentum.png","rarity":2,"tier":1,"categories":[0,2],"tags":["parry","mobility","timing","synergy"],"required_upgrades":["enhanced_parry"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["parry_momentum"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"poison_rounds","display_name":"Poison Rounds","description":"Bullets poison targets, dealing damage over time. Stacks on hit.","icon":"res://assets/images/upgrades/poison_rounds.png","icon_url":"/api/v1/upgrades/icons/poison_rounds.png","rarity":2,"tier":1,"categories":[0],"tags":["offensive","special","dot","sustain"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"poison_dps":5,"poison_duration":5},"special_effects":["poison_rounds"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"poison_particles","sound_effect":"","visual_modifier":"green_aura","hit_impact_modifier":"poison_impact"}],"3":[{"upgrade_id":"explosive_rounds","display_name":"Explosive Rounds","description":"1 major explosion per shot, triggered by the primary bullet impact only (radius 3.5m). Pellets and secondary hits create visual-only mini-flashes. Explosions do not trigger other on-hit effects. 0.15s internal cooldown.","icon":"res://assets/images/upgrades/explosive_rounds.png","icon_url":"/api/v1/upgrades/icons/explosive_rounds.png","rarity":3,"tier":1,"categories":[0,4],"tags":["offensive","special","aoe","payload"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"explosion_radius":3.5},"special_effects":["explosive_rounds"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"explosion_particles","sound_effect":"explosion_sound","visual_modifier":"orange_bullets","hit_impact_modifier":"orange_bullets"},{"upgrade_id":"heavy_machine_gun","display_name":"Heavy Machine Gun","description":"+35 clip, ×2.0 fire rate with spin-up over 0.5s of sustained fire. Damage ×0.25 per bullet. On-hit effects are reduced to 20% effectiveness. Poison refreshes instead of stacking. Major effects limited to once per 0.2s per target. Reload +1.0s.","icon":"res://assets/images/upgrades/rapid_fire.png","icon_url":"/api/v1/upgrades/icons/heavy_machine_gun.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","speed","fire_control","high_risk"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"fire_rate":1.75},"flat_bonuses":{"max_ammo":35},"special_effects":[],"stat_penalties":{"damage":0.25},"flat_penalties":{"reload_time":1},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"lifesteal","display_name":"Lifesteal","description":"Bullets drain life from targets, stealing HP over time. Life-draining ammo has 10% less raw impact.","icon":"res://assets/images/upgrades/lifesteal.png","icon_url":"/api/v1/upgrades/icons/lifesteal.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","special","dot","healing","sustain"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"lifesteal_dps":5,"lifesteal_duration":5},"special_effects":["lifesteal"],"stat_penalties":{"damage":0.9},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"pinball_rounds","display_name":"Pinball Rounds","description":"Primary bullet ricochets three times. Third bounce deals 45% damage. Bounces slightly correct toward the nearest enemy. Does not apply to pellets, shrapnel, or explosions.","icon":"res://assets/images/upgrades/pinball_rounds.png","icon_url":"/api/v1/upgrades/icons/pinball_rounds.png","rarity":3,"tier":1,"categories":[0],"tags":["bounce","utility","ricochet","chaos","legendary"],"required_upgrades":["double_bounce"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":3},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"poison_enjoyer","display_name":"Poison Enjoyer","description":"Take 50% less damage from poison. While poisoned, your movement speed is increased by 25%.","icon":"res://assets/images/upgrades/poison_rounds.png","icon_url":"/api/v1/upgrades/icons/poison_enjoyer.png","rarity":3,"tier":1,"categories":[1,4],"tags":["defensive","special","poison","sustain"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"poison_resistance":0.5},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"shotgun_shells","display_name":"Shotgun Shells","description":"Fires a conical short-range blast. Up to 4 raycasts; 7 visual-only pellets for that punchy feel. Damage scales from ×2.2 point-blank down to ×0.6 at max range. Only the central pellet ricochets or triggers major effects. Reload +35%.","icon":"res://assets/images/upgrades/shotgun_shells.png","icon_url":"/api/v1/upgrades/icons/shotgun_shells.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","shotgun","spread","fire_control"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["shotgun_mode"],"stat_penalties":{"reload_time":1.3},"flat_penalties":{},"particle_effect":"shotgun_blast","sound_effect":"shotgun_sound","visual_modifier":"wide_muzzle_flash","hit_impact_modifier":"wide_muzzle_flash"},{"upgrade_id":"smart_bounce","display_name":"Smart Bounce","description":"Ricochets seek nearby enemies. With more bounces, each lock-on cone narrows to keep multi-hop chains balanced.","icon":"res://assets/images/upgrades/smart_bounce.png","icon_url":"/api/v1/upgrades/icons/smart_bounce.png","rarity":3,"tier":1,"categories":[0],"tags":["bounce","offensive","targeting","smart"],"required_upgrades":["ricochet_shot"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["smart_bounce"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"thruster","display_name":"Thruster","description":"Bullets deploy thrusters on impact that push targets for 3 seconds","icon":"res://assets/images/upgrades/thruster.png","icon_url":"/api/v1/upgrades/icons/thruster.png","rarity":3,"tier":1,"categories":[0],"tags":["offensive","projectile","push","thruster","payload"],"required_upgrades":["projectile_rounds"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["thruster_rounds"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"orange_bullets","hit_impact_modifier":"orange_bullets"}]}},"2":{"label":"","rarities":{"2":[{"upgrade_id":"bank_shot","display_name":"Bank Shot","description":"Two more deflections on hitscan shots. Master the geometry of every arena to land impossible angles.","icon":"","icon_url":"/api/v1/upgrades/icons/bank_shot.png","rarity":2,"tier":2,"categories":[0],"tags":["bounce","hitscan","ricochet","utility","advanced"],"required_upgrades":["wall_shot"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""},{"upgrade_id":"resonant_bounce","display_name":"Resonant Bounce","description":"Two additional deflections on charged shots. Charge energy echoes between surfaces, turning missed angles into killing vectors.","icon":"","icon_url":"/api/v1/upgrades/icons/resonant_bounce.png","rarity":2,"tier":2,"categories":[0],"tags":["bounce","charge","ricochet","advanced"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{"bullet_bounces":2},"special_effects":[],"stat_penalties":{},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""}],"3":[{"upgrade_id":"drill_shot","display_name":"Drill Shot","description":"Bullets pierce through terrain up to 3 times. Each wall costs 30% damage and slows projectiles. Beams require 0.3s warm-up to burn through. Reload 15% slower — drilling equipment is heavy.","icon":"res://assets/images/upgrades/drill_shot.png","icon_url":"/api/v1/upgrades/icons/drill_shot.png","rarity":3,"tier":2,"categories":[0,3],"tags":["offensive","utility","drill","penetration","all_core"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["drill_shot"],"stat_penalties":{"reload_time":1.15},"flat_penalties":{},"particle_effect":"","sound_effect":"","visual_modifier":"","hit_impact_modifier":""}],"4":[{"upgrade_id":"gravitational_collapse","display_name":"Gravitational Collapse","description":"Every 1.5s your next primary bullet impact spawns a singularity (max 1 active). Sustained fire reduces the cooldown. Pellets and secondary hits cannot create singularities. +30% fire rate. -10% movement speed.","icon":"res://assets/images/upgrades/gravitational_collapse.png","icon_url":"/api/v1/upgrades/icons/gravitational_collapse.png","rarity":4,"tier":2,"categories":[0,4],"tags":["legendary","special","gravity","aoe","experimental"],"required_upgrades":[],"excluded_upgrades":[],"stat_modifiers":{"fire_rate":1.3},"flat_bonuses":{},"special_effects":["blackhole_rounds"],"stat_penalties":{"speed":0.85},"flat_penalties":{},"particle_effect":"blackhole_particles","sound_effect":"blackhole_sound","visual_modifier":"purple_glow","hit_impact_modifier":"purple_glow"},{"upgrade_id":"phase_runner","display_name":"Phase Runner","description":"Dashing grants invulnerability frames. Each 50 shield points extends the window by 0.15 seconds.","icon":"","icon_url":"/api/v1/upgrades/icons/phase_runner.png","rarity":4,"tier":2,"categories":[2,4],"tags":["keystone","mobility","dash","defensive"],"required_upgrades":["dash_core"],"excluded_upgrades":[],"stat_modifiers":{},"flat_bonuses":{},"special_effects":["phase_runner"],"stat_penalties":{},"flat_penalties":{},"particle_effect":"ghost_trail","sound_effect":"","visual_modifier":"ghost_glow","hit_impact_modifier":""}]}}}}