Happy Rhythm Fest everyone! We're celebrating with a new update, discounts on Crypt of the NecroDancer and all DLC, and the Rift of the NecroDancer demo is back if you didn't get a chance to play it last time.
Now on to the patch notes!
New features
- Added Win Streak tracking to All Zones Mode
- Deathless Mode's win counter is shared with the win streak tracker
- Deathless Mode now allows interrupting win streaks on the first floor to switch to a different mode or character
- All Zones Mode runs now automatically submit to the corresponding Deathless Mode leaderboards upon completion
- Each combination of character and game mode tracks its own win streak individually
- Win streaks are preserved when quitting to the lobby on the run summary menu or the first floor after a win
- Win streaks are lost when quitting to the lobby (after the first floor), quick restarting mid-game or losing a run
- Menu options that are about to break a win streak now show a warning message while on a streak
- Deathless Mode's win counter is shared with the win streak tracker
- Added an option to toggle DLC playtime being counted separately on supported platforms
- Added a 1 in 1024 chance for Dice Traps to spawn a rare enemy
- Added controller rumble options to the "Reassign controls" menu
- Added HUD indicators for diagonal movement button bindings to the lobby while playing Diamond, Klarinetta or Miku
- This can be disabled in the options
- This can be disabled in the options
- Added visual spark effect for ground wires in Zone 5
- Added a "Restore Unlock Progress" menu under "Manage save data"
- This makes specific game content (characters, zones, items, NPCs) quickly accessible if they've previously been unlocked on another platform
- This makes specific game content (characters, zones, items, NPCs) quickly accessible if they've previously been unlocked on another platform
- Added an option to enable floating selection boxes in the editor when copying and pasting
Balance changes
- Changed Miku to no longer take damage when pressing too many buttons in a single beat
- Standing still by not pressing any buttons for a beat will still inflict damage as before
- Standing still by not pressing any buttons for a beat will still inflict damage as before
- Changed Zone 4 walls to be breakable without a shovel if the AMPLIFIED DLC is disabled
- This helps Miku traverse Zone 4 more easily, as she cannot pick up shovels
- This helps Miku traverse Zone 4 more easily, as she cannot pick up shovels
- Changed Pawnbroker to present a unique scroll as a special offer to Miku
- Changed enemies disintegrated via teleportation to drop gold, increase multiplier and reduce cooldowns
- This most commonly occurs when dashing into an enemy against an unbreakable wall as Miku
- This most commonly occurs when dashing into an enemy against an unbreakable wall as Miku
- Changed Shrine of the Feast to no longer appear for Aria and Coda
- Changed Shield of Shove to push frozen and sunken enemies
- Changed Chaunter to possess Skeleton Knights directly with piercing attacks
- Changed Granite Golems to move more slowly in Randomizer Mode
- Changed Pixies to heal the player when pushed into them (via Bounce Trap or Shovemonster)
- Changed Red Chests on boss floors to no longer contain Backpack, Holster or Cursed Potion
Modding features
- Added support for passing 4x4 matrices to VertexBuffer.setTransform() and GFX.setGlobalTransform()
- Added functions VertexBuffer.read()/.write() to manipulate raw vertex attributes
- Added function VertexBuffer.getQuadCount() to check how many triangle pairs have been drawn
- Added function VertexBuffer.hook() to intercept calls to VertexBuffer.draw()/.drawText()/.drawQuad()
- Added function VertexBuffer.isHooked() to check if a vertex buffer has been hooked for the current frame
- Added function placementUtils.isImpassable() to check if a tile contains an obstacle or stationary enemy
- Added function placementUtils.isBlocking() to check if a tile is the only way to pass between adjacent tiles
- Added component itemGlobalBan to automatically ban an item for all characters
- Added component inventoryUnbannedItems to lift bans for items with specific components
- Added component tilePassabilityInhibitor to mark an entity as an impassable obstacle
- Added component Sync_itemShrinkingFlashEffect to highlight items in the HUD regardless of stackability
- Added component enemyPoolRare to mark enemies as rare
- Added parameter ev.weapon to event.objectCheckAttack, allowing attacks to be restricted to a single weapon
- Added field shape to return value of PlacementUtils.getRoomAt() and related functions
- Added field targetFlags to component Coldsteel_itemTunnelAttack
- Added field disableSwipe to component attackOnPartialMove
- Added attribute hardModeMinibosses to enum LevelSequence.Zone
- Added attribute hardModeMinibossPosition to enum Boss.Type
- Added data field randomizer to CustomEntities.extend when using the enemy template
- Changed invalid component accesses on entities to no longer raise an error for packaged mods
- Changed Pawnbroker to present a Potion as a special offer if all other items are banned, instead of no item
- Added a custom rule to enable an additional shop-restocking effect for Ring of Charisma (SYNCHRONY DLC)
- This is currently disabled by default, but might become a permanent change in a future update based on feedback
- This is currently disabled by default, but might become a permanent change in a future update based on feedback
Bugfixes
Gameplay bugfixes
- Fixed Gorgon Statues not appearing on the next level after falling through a trapdoor
- Fixed Familiars failing to affect enemies larger than one tile
- Fixed Miku being able to build up unlimited "SING" ability charges on boss floors
- Fixed Miku incorrectly double-hitting enemies when performing an electric attack
- Fixed Deep Blues being able to instantly attack the player when hit by an electric attack
- Fixed Wisps materializing too close to players if a Monocle, Circlet of Telepathy or Glass Torch is picked up
- Fixed Dragons and Nightmares being able to stomp other enemies posthumously
- Fixed shrines placing their items at unreasonably long distances if the tiles below the shrine are occupied
- Fixed Shrine of Sacrifice placing items on top of gold if the enemy is killed underneath the shrine
- Fixed Dove getting stuck on boss floors in Ensemble Mode when using a bomb to teleport the miniboss
- Fixed Deep Blues breaking the rules of chess while castling in rare cases
- Fixed Chaunter not dropping the Golden Lute on death
- Fixed Cadence's penultimate boss passing through incorporeal Ghosts during phase 2
- Fixed Berserk Spell ending if one of Reaper's soul familiars bumps into an enemy
- Fixed Nocturna not dropping the Golden Lute when dying while in Bat Form
- Fixed monsters charmed by Miku's "SING" ability not dropping their items upon healing Miku
- Fixed Miku's "SING" ability instantly vaporizing Mimics and their loot
- Fixed Red and Blue Dragons moving too quickly if knocked back after exhaling
- Fixed some levels being impassable for Monk/Coda without items if the SYNCHRONY DLC is disabled
- Fixed Dancepad mode causing zones to generate in an incorrect order when playing Aria
- Fixed Mannequins not accounting for cursed hearts
- Fixed Miku getting stuck behind locked chests/cages
- Fixed "I love gooooooold!" achievement not being unlocked when playing as Nocturna
Level generation bugfixes
- Fixed Zone 3 generating differently for the same seed depending on whether the Shopkeeper is alive
- Fixed Wind Gargoyles sometimes obstructing shop entrances
- Fixed Thief and Cracked Floors sometimes appearing in secret rooms
- Fixed Bounce Traps sometimes pointing into walls
- Fixed Sarcophagi causing some layouts to be impassable for Monk/Coda
- Fixed Shop Wall Mimics rarely being placed at incorrect locations
- Fixed cracked walls rarely obstructing the path through the level for Monk and Coda
- Fixed inconsistent training staircase position for hot and cold Zone 3 monsters
Audio bugfixes
- Fixed Miku's voice lines becoming nearly inaudible while shrunk
- Fixed Banshee's deafening effect ceasing if an enemy damages the Banshee
- Fixed Banshee's and Monstrous Shopkeeper's screams not stopping when transformed into another enemy
Visual bugfixes
- Fixed Miku's attack preview displaying inaccurately near enemies larger than one tile
- Fixed run summary screen displaying an incorrect seed in All Characters Mode and Story Mode
- Fixed Map, Monocle, and other vision items continuing to take effect after entering or leaving spectator mode
- Fixed missing outline pixels on Obsidian Shield's equipment sprite
- Fixed chat messages with line break characters obscuring the screen
- Fixed Miku's armors not being obscured in Mystery mode
- Fixed missing outline pixel in Miku's virtual armor
- Fixed Gorgons not flashing upon turning into statues
- Fixed Klarinetta's eyes glowing in the wrong color while electrified
- Fixed Miku's attack causing enemies larger than one tile to bounce incorrectly
- Fixed Mary visually appearing beneath her sheep in Phasing Mode while in the lobby
- Fixed Mannequins' health bars not always being visible
- Fixed animations briefly playing incorrectly after loading a save
Level editor bugfixes
- Fixed Slimes and other stationary enemies being removed from custom dungeons when playing Monk or Coda
- Fixed hidden playable characters still being listed in the level editor's side panel
Performance bugfixes
- Fixed performance issues when playing very long Deathless Mode runs
- Fixed performance issues after creating large numbers of text flyaways or attack swipes within a single level
- Fixed performance issues if multiple different players activate Berserk Spell
- Fixed post-game replay rarely causing errors while showing the perspective of the enemy that dealt the final blow
Engine bugfixes
- Fixed SYNCHRONY DLC requiring a separate Steam launch option on macOS
- Fixed crash when playing the SYNCHRONY DLC on Windows 7
- Fixed freeze on Windows if the computer has not been shut down for a few days
- Fixed freeze when changing the system clock on Linux while the game is running
Modding bugfixes
- Fixed Klarinetta incorrectly causing modded weapons to perform attacks after moving
- Fixed item bans sometimes being incorrectly auto-assigned to modded spells
- Fixed Leprechauns not gaining extra health when playing as a modded character extending Eli's template
- Fixed stairs and trapdoor penalty boxes unlocking when a miniboss is transmuted into another miniboss
- Fixed error when an enemy with AI type PATTERN does not have the aiPattern component
- Fixed errors if an entity has the sprite component, but not the spriteExtrapolatable component
- Fixed error when calling audio.getPosition() in multi-instance mode
- Fixed error when a modded character without the health component activates Shrine of Blood
- Fixed flickering visuals when using VertexBuffer.drawQuad()
- Fixed beat bars cutting out on Cadence's final boss when using custom music
- Fixed Weekly Challenge leaderboards not handling custom rule changes correctly
- Fixed Sync_excludeFromDiceTrap not having an effect on minibosses
- Fixed Shrine of Blood appearing for modded health-locked characters
- Fixed error when banning a component that doesn't exist
- Fixed custom dungeon secret shops generating two overlapping entrance runes
Changed files in this update