- Added a new hero: Pipka Builder.
- Added new hero economy menus for cases, owned cases, and reward activation.
- Added daily quest board support with accepted quests shown on the HUD.
- Added player coin and case reward flow for future gacha rewards.
- Added new world and combat sounds for barricades, Tesla coils, and several hero actions.
- Added new mob and elite prefab support for dungeon and PVE encounters.
- Reworked the hero selection menu into a wider, cleaner two-column layout with compact hero cards.
- Improved hero info popups with wider panels, cleaner ability blocks, and better line wrapping.
- Improved the level-up menu so longer skill descriptions are easier to read.
- Improved the left-side HUD health bar so the red bar clearly represents current HP.
- Improved the hero HUD layout to make room for case and menu buttons.
- Improved dungeon and mob behavior so the shared mob logic is more consistent across regular PVE and dungeon encounters.
- Improved melee mob chasing and attack timing to make close-range enemies feel more reliable.
- Improved Engineer Tesla Coil visuals and setup support for beam-style effects.
- Improved Pipka Builder barricade placement so custom prefabs can use their own collider and size.
- Improved hero balance text clarity for Mirrax, Gorath, Engineer, Fly Lord, Babka, Fimozik, Gravity Man, and Pipka Builder.
- Fixed Phantom ultimate visibility for remote owners, including local stealth visuals, smoke feedback, and ultimate sounds.
- Fixed Mirrax stealth owner visuals so remote players no longer see constant local cloak flicker.
- Fixed Gorath Dread Impact camera shake so the attacker receives the local shake effect more reliably in multiplayer.
- Fixed Pipka Builder barricade destruction sync so both host and remote players see barricades break correctly.
- Fixed melee hero weapon handling so melee-only heroes do not briefly show weapons, without removing weapons from non-melee heroes.
- Fixed Cryomancer aura visuals so the slow tint no longer remains after switching heroes.
- Fixed Gravity Man's first skill behavior so it now only launches targets upward instead of forcing a ground slam.
- Fixed dungeon wave and boss setup issues that could cause incorrect enemy visuals or wrong boss health behavior.
- Fixed hero ability descriptions that were out of date with the real cooldowns, chances, durations, damage, and radius values.
- Fixed hero info and level-up menu text so ability descriptions now match the actual gameplay values.
- Removed the old emergency barricade passive from Pipka Builder.
- Removed the ground-slam part from Gravity Man's launch passive.
(shop and quests are curently not aveliable)
- Added leaderboards
- Added a new Server Intro Menu to replace the old welcome menu, with tabbed text content, copyable Discord/TikTok buttons, and inspector-driven text setup.
- Added an INFO MENU button to the hero menu that opens the server intro menu.
- Added world-panel sizing controls to leaderboard screens so they can be configured properly in 3D space.
- New zone HUB
- New PVP zone
- New PVE zone
- Reworked Gravity Man by replacing Low Gravity with Dense Core and updating his damage values and descriptions.
- Reworked Cryomancer by replacing the old projectile passive with Ice Armor and updating hero/skill descriptions.
- Rebalanced Healer by lowering damage reduction to 10%.
- Rebalanced Phantom by removing the x2 damage bonus from the ultimate.
- Improved slow-effect handling so multiple aura slows now stack multiplicatively instead of overwriting each other.
- Improved the kill feed by moving it into a separate HUD component with zone-aware filtering and configurable styling.
- Improved the scoreboard with a more modern red-themed visual style and better badge syncing.
- Improved engineer deployment behavior, including turret spawn placement around targets and reduced deployment-related server load.
- Improved hero unlock progression so only four heroes are free by default, the fifth unlocks at total level 50, and each later hero requires 25 more total levels.
- Improved the server intro menu style into a softer arcane-themed layout with cleaner tab/content presentation.
- Fixed Marksman's target highlight so the outline now renders correctly for the hero owner.
- Fixed damage-number visibility so dealt damage and taken damage are shown only to the correct player.
- Fixed Cryomancer's Chilling Aura slow logic and vertical-range behavior.
- Fixed Fly Lord effects so active swarm/cloud damage continues correctly after the owner dies.
- Fixed mob spawners so max mob count is no longer multiplied by player count.
- Fixed mob spawners so they only spawn enemies when at least one player is inside the bound zone.
- Fixed duplicate weapon ghosting on player models in multiplayer.
- Fixed Engineer proc spam from shotgun blasts by making turret/mine rolls happen once per shot instead of once per pellet.
- Removed the old WelcomeMenu component and its image-path workflow.
- Removed the outdated PlayerProgression unlock-step logic that relied on the old levels-to-unlock system.
- Removed admin level add/remove actions and their related menu buttons and commands.
- Old HUB
- Added a new server welcome menu
- Added four more PVE zone slots, expanding the total PVE zone support to five.
- Added custom display names for zones in teleport menus and zone counters.
- Added configurable UI color settings for the welcome menu panel and buttons.
- Added blood hit effects and blood decals for weapon impacts on players and mobs.
- Reworked Human with a new passive set and a forward leap ultimate.
- Reworked Marksman abilities and updated how smoke, sniper damage, and target marking behave.
- Reworked Engineer passive deployment logic for turrets and mines.
- Improved aiming with RMB: less spread while aiming, movement slowdown, and weapon-specific zoom behavior.
- Improved respawn logic so spawn points prefer positions farther from nearby enemy players.
- Improved teleport menus so PVE zones now use the same selection flow as PVP zones.
- Improved the welcome menu with better button interaction, hover feedback, and customization options.
- Improved HUD helper text and general menu readability.
- Fixed dead players leaving behind a damageable collider after death.
- Fixed placed hero objects being removed when the owner died.
- Fixed Inferno's Eruption so its damage now shows floating damage numbers.
- Fixed several welcome menu layout and formatting issues.
- Fixed content images in the welcome menu so they stretch properly inside the content area.
- Removed the old Tank hero identity and replaced it with Human.
- Removed unwanted cleanup behavior that deleted active Engineer and Fly Lord world effects on death.
- Added two new heroes: Engineer and Fly Lord.
- Added 2 new weapons: SMG and Sniper Rifle.
- Added HUB, PVE, and PVP buttons to the TAB menu with teleport confirmation.
- Added zone player count display and support for world counters in maps and hubs.
- Added new mob tiers: normal, elite, and boss.
- Added new enemies: Harbinger of Decay and Crimson Wretch.
- Expanded hero setup options for models, effects, sounds, and visual prefabs.
- Updated the weapon HUD: active slots are clearer and inactive slots are more compact.
- Improved weapon positioning in players' hands.
- Improved the crosshair with dynamic expansion while shooting and cleaner feedback.
- Improved mob behavior: mobs now lose aggro after the target dies, with better patrol and chase behavior.
- Improved the mob spawner with support for multiple mob pools and more flexible spawn settings.
- Expanded mob setup with projectile, impact, prefab, and animation timing customization.
- Improved animations and combat feedback for several mob attacks.
- General improvements to combat feel, visuals, and gameplay stability.
- Fixed an issue where Phantom's weapon could appear in the camera after leaving the ultimate.
- Fixed a reload exploit caused by weapon swapping.
- Reloading now properly cancels on weapon swap, including the reload sound.
- Fixed incorrect private hero access display.
- Fixed various issues with damage effects, crit feedback, and floating numbers.
- Removed a weapon swap exploit that allowed players to bypass reload timing.
April 10-11, 2026
---
ADDED
New Hero: Drose (Private)
- Human fused with a rose. 7 passives + 1 ultimate
- Thorn Armor: 15% chance to reflect 10 damage back to attacker
- Poison Thorns: 12% chance to poison enemy for 3 DPS over 8s (green damage numbers)
- Life Drain: Heal 15% of all damage dealt (green heal numbers)
- Rose Bloom: +20% max HP
- Petal Shield: 12% damage reduction
- Thorn Whip: +20% damage boost
- Fragrance: Enemies within 150u deal reduced damage
- Ultimate — Garden of Thorns: Thorn field at cursor, 8 DPS + 40% slow, 500u radius, 8s duration, 25s cooldown
- Custom model support with SwapModel system
- Full skill progression integration (all 7 passives scale with Power)
- Customizable sounds, prefabs, and models for all proc abilities
New System: Skill Progression
- Each skill has 3 levels: 33% / 66% / 100% power
- Skill points are per-hero: hero level = available points minus spent
- Ultimate abilities locked until hero level 10
- Negative skills (penalties) always at full power, not upgradable
- Save/load to skills.json
- Reset per-hero or all skills
New UI: Skill Upgrade Menu (F key)
- Full upgrade interface with skill names, descriptions, level indicators
- Power percentage preview with upgrade projection
- UPGRADE button for available skills
- ULT shows LOCKED/UNLOCKED status
- Close button (X) with cursor support
- Cannot open simultaneously with TAB menu
New UI: Level Up Notification
- Right-side notification: "LEVEL UP! / NEW SKILLS AVAILABLE / PRESS F TO UPGRADE"
- Pulsing animation, yellow border, auto-hides after 5 seconds
New System: Admin System
- 3 admin levels: Lvl 1 (Kick), Lvl 2 (+Ban), Lvl 3 (Full access)
- VIP role — special status assignable by Lvl 3 admins
- Time-limited access: admins, VIP, private heroes — grant for 1/7/30 days
- Ban system: custom duration (minutes to days), ban reason, permanent bans
- Admin action log with timestamps (up to 200 entries)
- Banned players list with remaining time and reason
- Save/load to admin_access.json
- Console commands: admin_grant, admin_revoke, admin_ban, admin_unban, admin_vip, admin_setadmin, reset_all_levels
(admin-only)
New UI: Admin Menu (key 5)
- 3 tabs: PLAYERS, BANS, LOG
- Player selection with full info (name, Steam ID, hero, level, admin level)
- Action buttons filtered by admin level
- Private hero management: grant/revoke with 1D/7D/30D buttons
- z-index 999 (renders above crosshair)
New System: Private Heroes
- HeroInfo.IsPrivate flag for exclusive heroes
- PRIVATE HEROES button (yellow border) in TAB menu
- Separate panel for private heroes with access status and remaining days
- Access granted via admin menu or console commands
- Time-limited access with automatic expiration
New Effect: Poison Effect
- PoisonEffect.cs — DOT component with green damage numbers
- Customizable prefab, model, DPS, duration
- Green tint on poisoned targets
New Effect: Damage Number Colors
- White: normal damage
- Red: marked target bonus (Marksman)
- Yellow: Divine Strike (Healer)
- Blue: Gravity Slam
- Green: poison DOT, life drain heal
- Orange-red: burn DOT (Inferno)
Healer — Reworked Abilities
- Resilience replaced with Divine Strike: 12% chance to deal 12 bonus holy damage (yellow numbers)
- Heavy Rounds replaced with Divine Armor: up to 50% damage reduction
- Customizable sound, model, and prefab for Divine Strike
- Updated hero description and all ability texts
Gravity Man — Full Rework
- Gravity Launch replaced with Gravity Slam: launch up, slam down, 20 damage (blue numbers)
- Zero Gravity replaced with Black Hole: spawns at cursor, 1500u radius, pulls all objects for 5s, 30s cooldown
- Black Hole pulls: Rigidbody objects, PlayerControllers, mobs (via WorldPosition)
- Customizable sounds for slam proc and hit, prefab/model/sound for Black Hole
Marksman — Aim Assist
- Mark Target now includes aim-assist: bullets magnetize to marked target's chest (8 degree angle)
- Damage bonus (+50%) moved to Projectile.cs for reliable application
- Marked target damage numbers shown in red
- AimAssistAngle and AimAssistHeightOffset configurable in inspector
Mob AI — Ranged Behavior
- Mobs throw rocks from range when they have line of sight (no longer run directly under player)
- Line of sight check prevents rocks through walls/obstacles
- Fast transition to ranged when target is elevated (>60u height difference)
- Return to chase when target is reachable for melee
- AttackSpin animation during rock throw
- Removed impact particles from rock projectiles
Scoreboard (V key)
- Steam display name instead of GameObject name
- Steam avatar (38x38) next to player name
- Role badges: [ADM3], [ADM2], [ADM1], [VIP] in blue
- Name truncated to 6 characters with ellipsis
- 20% size increase: 1200px width, 22px row font, 34px title
- Column headers: 16px blue (#55aadd)
- KILL command damage excluded from received damage stats
TAB Menu (Hero Select)
- Static layout — no dynamic resizing
- Hero name on top, buttons below
- INFO panel on left — compact, no empty space
- Ability descriptions in blue, 12-13px font
- Standardized tags: PAS (blue), ULT (orange), NEG (red)
- Description line-height fixed (no text overlap)
- PRIVATE HEROES button with yellow border
- KILL button enlarged and centered
- Removed UNLOCK ALL and RESET buttons
- Pagination system for 10+ heroes (both normal and private)
XP/Level System
- Linear formula: 500 + (level-1) * 200 XP per level
- Level 1→2: 500 XP, Level 49→50: 10,300 XP
- BaseXPPerLevel and XPPerLevelIncrease configurable in inspector
Multiplayer — Visual Sync
- All hero ultimates now broadcast visual effects to all clients
- Inferno Eruption: [Broadcast] for particles and sound
- Cryomancer Blizzard: [Broadcast] for ice shards and sound
- Healer Healing Pulse: [Broadcast] for pulse effect and sound
- Gravity Black Hole: [Broadcast] for spawn/destroy visuals
- Drose Garden of Thorns: [Broadcast] for spawn/destroy visuals
- Drose abilities: [Broadcast] for poison, drain, and thorn reflect sounds
- Tank Shield: [Broadcast] for activate/deactivate sounds
- Speedster Dash: [Broadcast] for dash sound
- Phantom Cloak: [Broadcast] for cloak/uncloak sounds
Multiplayer — Weapon Sync
- WeaponLoadout.ActiveSlot now [Sync] — all clients know active weapon
- BroadcastSwitchWeapon — all clients see weapon switching
- ApplyHoldType on switch — all clients see correct hold animation (rifle vs shotgun)
- BroadcastWeaponRefresh on respawn — fixes stale weapon viewmodels
- Phantom cloak now hides/shows weapon viewmodel via SetViewModelAlpha
Multiplayer — Player Models
- Steam clothing/skins loaded via ClothingContainer for all players
- Clothing hidden when using custom model heroes (Fimozik, Drose)
- Citizen model cached in OnAwake (before any SwapModel) to prevent model corruption
- SwapModel validates saved model is not another hero's model
Durability
- Hit sound cooldown (80ms) — fixes loud shotgun pellet spam
- InstantKill() method — death without damage stats (for KILL button)
Weapon System
- Both weapons firing simultaneously — EnforceActiveWeapon every frame
- Missing weapon selection HUD — expanded WeaponLoadout search (self, children, parent)
- Duplicate SlotIndex auto-fix — weapons with same slot get reassigned
- Disabled WeaponLoadout auto-enable — weapons detect and enable loadout
- Weapon.IsActiveWeapon() — each weapon self-checks against loadout
- HeroFimozik.SetGunsEnabled — proper weapon restore after hero switch
Razor Compilation
- SkillUpgradeMenu.razor rewritten — removed button tag (not supported in s&box UI)
- Fixed onclick syntax (removed quotes around @() expressions)
- Removed special Unicode characters that could break Razor parser
- Simplified template structure using foreach over data structs
Hero Model Swapping
- Fixed Fimozik model persisting on other heroes after switch
- _citizenModel saved in OnAwake before any OnEnabled fires
- SwapModel validates model before saving (won't save Fimozik/Drose as citizen)
- Static citizen model cache shared between all hero swap systems
Phantom Invisibility
- Removed duplicate cloak logic from HeroController (now only in HeroPhantom)
- Weapon viewmodel becomes transparent during cloak
- Cloak/uncloak sounds broadcast to all clients
Gravity Man
- Black Hole tick logic moved inside IsProxy check — no more duplicate damage
- BlackHole timer reset in BroadcastBlackHoleSpawn — prevents instant despawn on proxy
- Visual rotation separated from logic tick
Drose
- Garden of Thorns timer reset in BroadcastGardenSpawn — prevents instant despawn
- Garden tick (damage/slow) restricted to owner only — no duplicate damage
- Garden visual rotation runs on all clients
Speedster
- Fixed missing braces in DashDamage — sound no longer plays for all enemies in scene
Scoreboard
- SteamId type cast fix (CS0172 conditional expression error)
CSS
- overflow-y: auto replaced with overflow: scroll (s&box UI compatibility)
- SkillUpgradeMenu pointer-events: none on root (fixed cursor stuck on screen)
- UNLOCK ALL button from TAB menu
- RESET LEVELS button from TAB menu
- Patrol spam logs from MobEnemy
- Debug logs: [MARK-DEBUG], [PATROL], [LOADOUT], [BONE], [WEAPON]
- Duplicate Phantom visual logic from HeroController
- Exponential XP scaling formula (replaced with linear)
- Drose custom model weapon bone offset may require manual adjustment in Blender per model
- Phantom cloak visual may have 1-frame delay on proxy clients due to [Sync] propagation
- Mob NavMeshAgent speed not fully restored if mob dies during Drose Garden of Thorns slow
- Admin system saves locally — not shared across server restarts without persistent storage
- Private hero access timer uses UTC — may show incorrect remaining days in different timezones
- Clothing visibility toggle runs every frame on custom model heroes (minor performance cost)