Crypt of the NecroDancer v3.5.0 is now available!
Hey there NecroDancers! Grab a friend because we have a bunch of changes to how co-op works. Specifically, we’ve added new co-op enemies! No more shall you faceroll through the zones as a pod of death. You’ll need to watch each other’s backs going forward because these new enemies can’t be killed alone.
There’s a bunch of other changes and fixes too, so take a look at the patch notes for all the details.
Good luck out there!
New enemies
- Added 6 new enemies to co-op mode in the SYNCHRONY DLC!
- Jockey:
- Grabs players like a monkey, but only inhibits their attacks while still allowing them to move around.
- The Jockey does not take damage from the player it’s grabbing, and another player must come to help!
- Phantom:
- Chooses a specific player to follow around like a Ghost, but can only be hit by other players!
- The Phantom’s target can push it away briefly, but cannot inflict damage to it or kill it normally.
- Granite Golem:
- An extremely thick-skinned Golem, invincible against most normal attacks.
- Only takes damage when hit by two players simultaneously. Work together to defeat it!
- Wisp:
- A spirit that appears near groups of players travelling together.
- Dodges the first hit by teleporting behind the back of another nearby player!
- Skittish Blademaster:
- Parries incoming hits, but lunges away instead of counter-attacking.
- Protectorc (AMPLIFIED DLC only):
- A very well-protected Orc wielding three shields instead of one, blocking attacks from the front and sides.
- Chooses a specific player to follow, requiring any other player to strike at the Orc’s unprotected backside.
- Jockey:
New features
- Added mouse input support for all in-game menus
- Added new translations for Simplified Chinese and Korean
- Added translated texts for new menus, items and mechanics introduced since v3.0.0 across all supported languages
- Added colored HUD beat bars for when Chaunter’s possession timer runs out
- Added advanced option to show speedrun time splits in All Characters Mode
- Added advanced options for adjusting the Shopkeeper’s singing volume and falloff distance
- Added advanced volume options menu for fine-tuning the volumes of specific sound sources
- Added advanced option to increase the number of keys that can be assigned to each action
- Added support for changing the appearance of Klarinetta’s Zweihänder via the “Change Skin” menu
- Added support for changing the appearance of Suzu’s and Klarinetta’s attack swipes via the “Change Skin” menu
Balance changes
- 🔹 Shield Items: All stackable shields now regenerate 1 hit upon completing a level, up to their default stack size
- 🔹 Reflective Shield: Increased durability from 1 to 2 hits
- 🔻 Reflective Shield: Now reflects the exact damage blocked, instead of at least 5 hearts
- 🔹 Shield of Shove: No longer prevents weapon attacks, allowing enemies to be simultaneously shoved and attacked
- 🔹 Shield of Shove: Now works when moving around corners, pushing enemies regardless of the shield’s prior facing direction
- ▫️ Shield of Shove: Now simultaneously pushes multiple horizontally or vertically aligned enemies in a row
- ▫️ Shield of Shove: Crush attack now targets the most distant enemy when multiple enemies are aligned, instead of the closest
- 🔻 Shield of Shove: Crush attack now deals 3 piercing damage instead of infinite phasing damage
- 🔹 Thief: Now drops more items in co-op mode (one item per player)
- 🔹 Thief: Increased the rarity of the first item drop from +1 to +2
- 🔹 Thief: No longer steals items from non-targeted players
- 🔹 Thief: No longer steals items when knocked into another player
- 🔻 Thief: Now evades attacks by players other than its current target in multiplayer
- 🔹 Shrine of Sacrifice: Now accepts players as sacrifices
Other changes
- Changed Thief to use an updated spritesheet
- Changed vision modifiers (such as Sunglasses and Ring of Shadows) to no longer silhouette enemies in spectator mode while observing multiple players
- Changed “Reassign Controls” menu to automatically update multi-key combos when changing directional movement keys
- Changed HUD controller prompts to support additional buttons, axes and controller models
- Changed startup Changelog menu to combine patch notes from multiple updates
- Changed numeric settings to be represented by sliders in the options menu
- Changed categorical settings to show a dropdown menu with all available options
- Changed secret shops to generate in multiplayer if any player character can encounter them, instead of requiring the shop type to be valid for all characters
- Changed all shields capable of blocking multiple hits to appear cracked if the next hit will break them
- Changed color for gold warning outlines on Monk/Coda to increase contrast
Modding features
- Added documentation comments for 850+ components and fields
- Added event
objectGetHUDBeatBars
to allow mods to customize the appearance of beat indicators in the player HUD - Added event
spellTransmute
to allow mods to intercept transmutations - Added function
itemGeneration.getSeenCounts()
to directly manipulate the tables tracking which items have spawned in a run - Added function
shrineGeneration.getSeenCounts()
to directly manipulate the tables tracking which shrines have spawned in a run - Added function
soulFollower.spawn()
to create a Soul Familiar - Added helper functions
action.dx()
andaction.dy()
to decomposeaction.Direction
values into their X and Y offsets - Added support for binding delay functions (
delay.new()
) to named global variables - Added support for passing more specific parameters to
shrineGeneration.choice()
- Added components
sacrificable
andsacrificableInstantReward
to control eligibility for the Shrine of Sacrifice - Added component
spellCheckSafeLevel
to limit whether a spell can be cast in the lobby - Added components
generateSecretRoom
,generateSecretRoomInRun
,generateSecretRoomExcludeFromSingleZone
andgenerateSecretRoomRestrictLevel
- Added component
traitBannedSecretRooms
to control which travel runes are allowed to spawn for a playable character - Added component
traitZone5Bleed
to add patches of Zone 5 to the level across all zones - Added component
traitExtraMiniboss
to add an additional miniboss on each level - Added component
traitAddSpiders
to generate Spiders outside of Zone 4 - Added components
traitExtraEnemies
andtraitExtraEnemiesZ1Z2Z5
to increase the number of enemies encountered throughout a run - Added components
traitAddSarcophagus
,traitNoSarcophagus
to control Sarcophagus generation - Added components
traitNoBlademasters
,traitZone4NoMonkeys
andtraitZone4NoSpiders
to prevent specific enemies from spawning - Added component
innateAttackInhibitTemporarily
, preventing enemies from attacking for a number of beats - Added component
innateAttackInhibitOnHit
, preventing enemies from attacking when damaged on the same beat - Added component
innateAttackInhibitAgainstNonTarget
, preventing enemies from attacking players they are not currently targeting in co-op mode - Added component
knockbackableDeferred
, delaying knockback until all players have acted for the current beat in co-op mode - Added component
shieldPreventActionOnHit
, preventing enemies from acting when their shield is hit, without increasing their beat delay in co-op mode - Added field
weaponThrowHolder.distance
to control the maximum distance of the charge attack of Cadence’s penultimate boss - Added field
fortissimoleSpawn.spawnTypes
to control which types of enemies Fortissimole spawns - Added field
necrodancer.shieldBypassFlags
/necrodancer.shieldTeleportFlags
to control which damage types Cadence’s final boss responds to - Changed item-destroying spells to trigger the
objectDeath
event, referencing the caster as the killer - Changed healing caused by the Shopkeeper Familiar to reference the familiar as the healer in
objectHeal
- Changed
dbg
orprint
to no longer have an effect in packaged mods, reducing the size of log files and improving performance- To write messages to the log file in packaged mods, use
log.info("Test: %s", 123)
- To write messages to the log file in packaged mods, use
Bugfixes
Input bugfixes
- Fixed the vertical D-Pad axis of some controller models not working when Steam Input is disabled
- Fixed controller button icons appearing much bigger than intended in language-specific fonts
- Fixed the
B
button on controllers sometimes being handled as ‘Confirm’ instead of ‘Back’ - Fixed Pause and Quick Restart keys not working when bound via Player 2’s controls menu
- Fixed inaccurate controller button prompts for Xbox 360 and PlayStation 4 controllers when Steam Input is disabled
Gameplay bugfixes
- Fixed Beetles, Tarmonsters and Mimics not being provoked by Reaper’s souls
- Fixed Ring of Courage not protecting from Spike Traps if a Spider or Pixie jumps on the player on the same beat
- Fixed secret room Shopkeepers instantly killing the player when attacked by a Rapier, Axe or Cat o’ Nine Tails
- Fixed Pixies dealing damage to distant players holding a Rapier
- Fixed Shrine of Sacrifice ignoring item restrictions on environmental kills, such as Spike Traps
- Fixed Shrine of Space occasionally generating levels without any enemies or exit stairs
- Fixed Reaper phasing into newly-spawned Skeletons when a Soul Familiar causes a Skull to split
- Fixed Shield of Shove’s crush attack not inflicting directional damage, causing Skulls to split the wrong way
- Fixed some enemies acting a beat too late after entering the field of view
- Fixed Familiars being able to hit burrowed moles
- Fixed Randomizer Mode sometimes giving more than 1 heart to fast-moving Yetis
- Fixed Reflective Shield not inflicting directional damage
- Fixed Cat o’ Nine Tails and Axe causing players to dash when attacking the Ghost Shopkeeper at close range
- Fixed Ring of Courage not granting immunity to the No Return Square
- Fixed Potion Rooms sometimes being only partially encased in Spiked Walls
- Fixed Pixies not granting health when pushed into a player by an Earth Spell or a charmed Wind Mage
- Fixed Coral Riff dealing splash damage when moving during phase 1 of the fight
- Fixed Cadence’s penultimate boss delaying his next action upon entering phase 2 of the fight
- Fixed Cadence’s penultimate boss inconsistently delaying his next action after charging
- Fixed Cadence’s penultimate boss sometimes starting a charge immediately after being knocked back
- Fixed Cadence’s penultimate boss fight not being limited to one live miniboss per bell
- Fixed Minotaurs not ringing bells by charging into them in Cadence’s penultimate boss fight
- Fixed gold collected by Dorian during Cadence’s final boss not being doubled while Cadence is wearing a Crown of Greed
- Fixed Nocturna’s final boss not spawning a miniboss when entering phase 2 of the fight
- Fixed shrines sometimes placing items on top of gold coins
- Fixed coins appearing on the next level after falling through a trapdoor
- Fixed charmed enemies possessed by Chaunter not being able to attack after their charm status runs out
- Fixed thrown weapons getting stuck under NPC cages in Single-Zone Mode
- Fixed Thief getting stuck targeting players in the secret shop
- Fixed Thief being stunlocked and visually teleporting when attacked repeatedly by a player other than its target
- Fixed Leprechaun failing to steal gold from players under the effects of Shrine of Binding
- Fixed Ghast and Ghoul sometimes waiting an extra beat after dodging the first hit
- Fixed Wraiths and other spirits rapidly disappearing/reappearing in co-op if multiple players are nearby
Engine bugfixes
- Fixed Changelog menu switching pages while the chat prompt is open
- Fixed settings and saves being cloud-synchronized when Steam Cloud is disabled
- Fixed errors when viewing a post-death replay from an Exploding Mushroom’s perspective
- Fixed Discord Rich Presence sometimes failing to update the lobby status in multiplayer when restarting a run
- Fixed the character selection room in All Character Mode not displaying its name in the game browser
- Fixed multi-instance window title being cut off on Windows
Leaderboard & Achievement bugfixes
- Fixed In The Zone achievements for zones 1 through 4 unlocking when playing characters other than Cadence
- Fixed Daily Challenge leaderboards not showing up if [SYNCHRONY] is active while [AMPLIFIED] is disabled
- Fixed Daily Challenge leaderboards showing “No entries for this leaderboard” when a character other than Cadence is selected in the lobby
Level editor bugfixes
- Fixed entities dying instantly when moved onto lava via the editor’s move tool
- Fixed Moles destroying gold coins and traps when moved via the editor’s move tool
- Fixed Coral Riff and Tentacles spawning water when moved via the editor’s move tool
- Fixed story bosses dealing damage when moved via the editor’s move tool
- Fixed level editor ceasing to respond when generating reduced-size Zone 5 levels
- Fixed players other than the host being able to close online level editor sessions
Audio bugfixes
- Fixed the Shopkeeper’s voice playing at a lower volume than intended
- Fixed Ring of Gold repeatedly playing the gold collection noise if a coin falls down a trapdoor
- Fixed enemies possessed by Chaunter not playing a sound effect when healing
Visual bugfixes
- Fixed Soul Familiars not silhouetting when moving past the level border
- Fixed player names showing up even when “Player name render distance” is set to “Off” in the options
- Fixed Deep Blues’ Knights displaying a misleading attack animation when forced to attack via knockback
- Fixed “coin” item pickup flyaway not being capitalized correctly when playing with All-Caps Text disabled
- Fixed incorrect animation when toggling off Winged Boots above a Bounce Trap
- Fixed the sprite of Cadence’s penultimate boss being visually offset in the level editor’s placement preview
- Fixed Red/Blue Dragons’ Fireball and Ice Breath spells not displaying correctly in the HUD when spectating multiple players
- Fixed gold outlines being visible when spectating multiple players if any of them is playing Monk/Coda
- Fixed enemies possessed by Chaunter not displaying a particle effect when healing
Modding bugfixes
- Fixed settings values being set to
nil
after their containing script file is renamed - Fixed graphics drawn using the
debugVisuals
module not showing up in the debug overlay - Fixed mod menu not showing the latest versions after focusing the game window
- Fixed mod updates not showing up when more than 100 mods are installed
- Fixed “Popular on mod.io” section loading forever if the top 100 popular mods have all been installed
- Fixed Ctrl+F hotkey not working in the debug settings menu
- Fixed menu cursor not always being placed in the correct location when searching in the mod menu
- Fixed persistent errors after loading a level with an invalid custom song