🐞 Possible Bugs

perks/CurseEnemySpawnTime.cs
GetSpeedIncreasePercentage uses 1f/amount while Refresh applies amount directly (0.2f * level), so at level 1 the UI shows 400% faster even though the modifier is 0.2x time, which is an incorrect display.
perks/PerkBulletForce.cs
GetValue’s non-percent branch adds base twice (1f + 1f + 2f*level), so Refresh applies 2 + 2*level as a Mult instead of the implied 1 + 2*level shown by the percent text.
ui/MinimapPanel.razor
BuildHash uses Time.Now so the hash changes every frame, which disables UI caching and forces a rebuild every tick.