Cyberpunk 2077
0 of 0

File information

Last updated

Original upload

Created by

ShadauxCat

Uploaded by

ShadauxCat

Virus scan

Safe to use

About this mod

Fixes melee combos in sandevistan, adjusts time slow in kerenzikov to match sandesvistan, fixes finishers interrupting sandevistan, and fixes various bugs with the mantis blade leap attack.

Requirements
Permissions and credits
Better Melee




Better Melee is a small mod that addresses some melee bugs in Cyberpunk 2077 and provides some quality-of-life adjustments to improve the melee experience, particularly with the mantis blades.

All changes in Better Melee are optional. The download provides an installer that lets you choose which elements you want, and which ones you don't.

The list of changes are:

Bugfixes:

Melee Combos in Sandevistan

Previously, melee combos in sandevistan were non-functional. The stronger your sandevistan's time dilation, the more time you had to wait between melee attacks. Now you can do light melee combos as much as you want even when sandevistan is active.

This is because there is a hidden melee cooldown that's processed in game time instead of real time, so when your game time is slowed down, so is the cooldown. This mod addresses this by simply removing the cooldown - it doesn't seem to serve any purpose, as you already can't do another melee attack during the animation. I was unable to find any situation where the attack speed of a weapon changed after removing this cooldown, but I didn't test a whole lot of weapons so tell me if you find one.

Finishers Ending Sandevistan Early

In vanilla Cyberpunk 2077, any time you happen to kill an enemy with a melee finisher, your sandevistan ends early, completely devaluing it and often resulting in death. I couldn't really fix this by way of making the finishers not end it early, because the animations are synced - when I removed the "early end" effect, it resulted in a painfully slow animation carried out in slow-motion. Since that's no better than ending it, really, finishers have been completely disabled while either sandevistan or kerenzikov is active.
 
Mantis Blade Leap Targeting Problems


The mantis blades have a few issues when it comes to targeting:

  • Minimum Leap Range
    The minimum leap range was larger than the normal heavy attack range. This, for me at least, resulted in frequently trying to leap to a target, only to have my blades slash through thin air as the target backed away, resulting in another attempt to leap to close the distance until I eventually gave up and ran. The minimum leap range has been adjusted so that you will always be able to close distance with one attack (so long as you're within the normal leap range) using mantis blades.
  • Leaping when you want to do a regular attack
    The base implementation of mantis blades goes by whatever enemy is closest to the center of your crosshair. If you're attacking someone and they move slightly to the left or right so the enemy behind them is under your crosshair, instead of attacking them like you intended, you'll dash by them and attack the enemy behind. This has been fixed by disabling the leap if any enemies exist (roughly) within the collision box of your standard attack.
  • Leaping at enemies that are sitting or squatting
    The leap animation doesn't allow your camera to track the target you're leaping to, but rather, ends with your camera in the same position it was in when you started. Because you're often leaping from long distances, when you leap at an enemy that's squatting, the camera position you started in usually results in your attack just flying over the target's head, wasting your time and generally making you look foolish. I tried to fix this by snapping the camera to the enemy, but it seems other systems in the game are controlling the camera during the animation and preventing the LookAt function from working. Or the LookAt function just doesn't work. Since I couldn't fix it in the ideal way, I fixed this by making the collision volume for the mantis blades 4 meters tall instead of the normal 0.25 meters tall. It's not the best experience visually, since you still swing over their head, but at least it makes the gameplay functional and lets you attack sitting targets.
  • Leaps that appear to hit but just don't for some reason
    Occasionally, I would make a leap at a target, watch the blades hit them, and then... nothing. No damage, no hit effects, no reaction from the target at all. This seems to be somewhat dependent on the angle of the camera at the moment you hit. This was fixed by extending the length of the collision volume for the mantis blades.
  • Leaps getting triggered on light attacks instead of strong attacks when movement speed increased
    The code previously had a clause in it that caused the leap to activate automatically if you were moving faster than a certain speed. Under the influence of cold blood, your movement speed increases on a kill. Deathbolt combined with Cold Blood could get your movement speed up to that point just by walking. This is very awkward because you kill an enemy and suddenly the controls change.

Changes:

Some things in the mod are not strictly bugfixes, but design changes. All of these changes are strictly optional, and it's up to you which ones you want to add to your experience - I consider them to be quality of life enhancements, but your mileage may vary!

Kerenzikov Slowing the Player Down

There's some debate about whether this qualifies as a "fix" or a "change". To me this is a bugfix, because kerenzikov + melee seems completely unusable to me in vanilla, but some people disagree. Based on that feedback, I'm including it in the "change" list and the next version will make this optional.

Kerenzikov also had a problem - unlike sandevistan, kerenzikov slowed time for both the enemy AND the player, which makes it not very helpful at all. The mod comes with two options for improving kerenzikov: Fast Speed makes karenzikov work the same as sandevistan, slowing down time while keeping the player mobile. Fast Melee/Slow Guns makes melee weapons work like sandevistan, but leaves guns at their original behavior. Note: With the Fast Melee/Slow Guns option, the slowdown will be based on what you have equipped at the time you activate kerenzikov. Switching weapons while it's active won't change its behavior.

Mantis Blades: The game says I attack from range. What's my range again? (What's my range again?)

The game gives you basically no indication of when you can and can't leap at a target. Frequently, I would approach a target from a distance, attempt to leap, and then once again look like a fool slashing the air in front of me because I didn't realize I wasn't close enough. When you have mantis blades equipped, an enemy will now glow green if you can leap to them. This also assists with targeting as it makes it absolutely clear which enemy you're going to leap to if multiple are clustered together. Note: Due to things I don't seem able to control, the glowing only shows when your mantis blades are not in an idle state. You can leave the idle state by attacking, blocking, or sprinting. This generally only matters for the first target you want to attack in a group, and generally only if you're taking a stealth approach.

Mantis Blade Aerial Leaps

One thing that bugged me about mantis blades is that the leap gets disabled when you're jumping or falling, which means you can't leap down from above and slash them on the way down. So I changed the leap logic to enable you to initiate leaps in the air. This has the added benefit of making it much easier to activate a leap - instead of having to get a sprint going in a potentially cramped place, or hold the button for a heavy attack, you can jump and seamlessly turn your jump into a leap attack. I did include an optional version of the mod without this, though, in case anyone doesn't want this feature.

Mantis Blade Finishers Suck

Attacking with mantis blades has a critical flaw: the finisher animation takes an excruciatingly long time to apply, during which time you have no i-frames and get riddled with bullets and die. In previous versions of this mod (prior to 1.3), that finisher wasn't disabled because I was recommending another mod that had already done it. However, with the 1.3 update of the game, the way the other mod did it stopped working and instead made enemies invincible, so I've now applied a different way of removing it integrated into this mod that doesn't cause that problem.


Disabling Perfect Block Time Dilation

By request, this option will allow you to disable the time dilation that occurs when performing a perfect block on an enemy melee attack.

Cheats:
By request, the following cheat option has been added to the installer:

Leap With Anything

This cheat allows you to execute the mantis blade leap attack with any melee weapon. Note: This is absolutely, 100%, irrefutably a cheat. Not that Cyberpunk is particularly balanced well, but this will absolutely wreck balance, since many katanas are objectively better than the mantis blades and the leap is supposed to be what makes the mantis blades useful. Use this at your own discretion. It is disabled by default.

Other Mods to Accompany Better Melee:

Required: Redscript

Without redscript, the mod won't do anything. It'll just sit there being useless, like a lot of players' mantis blades. Note: Older versions of redscript are known to be unable to compile Better Melee's script files. Please ensure you have redscript version 0.3.0 or greater.

https://www.nexusmods.com/cyberpunk2077/mods/1511

Installation:

If you have version 1.1.1 or earlier installed, please uninstall it before using the omod installer.

Vortex Install: 

Nothing special, just click "Mod Manager Install" and then go through the steps. Don't forget to activate after installing.

Mod Organizer Install:

To install with Mod Organizer, navigate to the Files section and choose the "Better Melee (Mod Organizer)" file. It's the same file as the other one, just with the extension changed to .zip.

Manual Install:


  • Change the file extension from .omod to .zip file and open it up (or download the "Better Melee (Mod Organizer)" version).
  • Copy ALL of the files from the Core (Required) directory into Cyberpunk 2077\r6\scripts
  • In each directory that has more than one file in it, you MUST copy ONE and ONLY ONE of those files into Cyberpunk 2077\r6\scripts. The files in Finishers are optional (but still only one may be used).

Note that I will not provide support beyond this guide for users who choose to install manually. You undertake this at your own risk.

List of files in the package:

Core (Required)
betterMelee_KerenzikovCore.reds
betterMelee_LeapCore.reds
betterMelee_MeleeAttackCore.reds
You must install all of these no matter which features you are using
Aerial Leap
To enable aerial leap, install betterMelee_ArealLeap.reds
If you don't want aerial leap, you still must install betterMelee_NoAerialLeap.reds
Kerenzikov Speed
If you want kerenzikov to behave like sandevistan, install betterMelee_KerenzikovAlwaysFast.reds
If you want kerenzikov to behave like sandevistan with melee weapons but not guns, install betterMelee_KerenzikovMeleeFast.reds
If you want kerenzikov to continue behaving like the vanilla version, you still must install betterMelee_KerenzikovAlwaysSlow.reds
Leap Collision
If you want the leap collision fix, install betterMelee_IncreasedMantisCollision.reds
If you want vanilla behavior, you still must install betterMelee_NormalMantisCollision.reds
Leap Highlights
If you want leap highlight indicators, install betterMelee_LeapHighlight.reds
If you don't want highlights, you still must install betterMelee_NoLeapHighlight.reds
Leap Targeting
If you want the leap targeting fix, install betterMelee_LeapNewCollision.reds
If you want the vanilla behavior, you still must install betterMelee_LeapOldCollision.reds
Speed-based Leaps
If you want leaps to be triggered by the sprint button, install betterMelee_NoTriggerFromColdBlood.reds
If you want the vanilla behavior, you still must install betterMelee_DefaultBehavior.reds
Leap Weapons
If you want to enable the CHEAT to leap with ALL melee weapons, install betterMelee_AllLeap.reds
Recommended: If you want the vanilla behavior, you still must install betterMelee_MantisOnlyLeap.reds
Block Time Dilation
If you want to disable time dilation on perfect guard, install betterMelee_NoBlockTimeDilation.reds
If you want the vanilla behavior, don't install anything.
Finishers
If you want to disable finishers during Sandevistan AND with mantis blades, install betterMelee_DisableSandevistanAndMantisFinishers.reds
If you want to disable finishers during Sandevistan only, install betterMelee_DisableSandevistanFinishers.reds
If you want to disable finishers with Mantis Blades only, install betterMelee_DisableMantisFinishers.reds
If you want the vanilla behavior, don't install anything.
Sandevistan Quick Attacks
If you want to enable melee combos during Sandevistan, install betterMelee_SandevistanQuickAttacks.reds

If you want the vanilla behavior, you still must install betterMelee_SandevistanSlowAttack.reds

Why
 do you have to install things when you want to not change anything?

Several of the fixes in the mod affect the same function. In order to avoid having to separately maintain 8 separate permutations of the same function, I divided the function out into components. The vanilla code was copied into the components of the "vanilla behavior" files, while the new code was inserted into the new files, and the base code was modified to call a function that's implemented in those files. Without them, the code won't compile, but I promise they're not sneaking hidden changes in, it's just better organization of the code to support the modular install. The files in Finishers and Block Time Dilation are the only scripts that contain a function only changed by one fix/feature and only in one way, hence why they don't need a second file.

Changelog:
v1.0:
  • Initial Release
v1.1: 
  • Fixed player slow-down during kerenzikov
  • Disabled finishers during sandevistan and kerenzikov to stop them ending the effects early
v1.1.1:
  • Fixed super-speed by repeatedly tapping dodge introduced in v1.1
v1.2:
  • Refactored so that all of the changes and fixes could be optional
  • Switched download file to an omod installer. Uninstall 1.1.1 before installing.
  • Added Leap With Anything cheat
  • Expanded the collision volume of mantis blades just a little further to handle landing on top of an enemy's head in an aerial leap
v1.2.1:
  • Fixed an issue where the mantis blades would fail to hit a living target if a corpse was on the ground in front of them
  • Increased the height of the mantis blades collision volume one more time because it was still missing when attacking people who were sitting in chairs
v1.2.2:
  • Realized there was a second component to the minimum leap range problem that caused the minimum range to still be an issue sometimes, preventing leaps within a 5 meter distance, and fixed that, too
  • New fix: the leap attack would trigger on regular melee attack instead of strong attack or sprint attack when under the effects of Cold Blood and Deathbolt. Forgot to make this togglable in the installer, sorry. :(
v1.3:
  • Support for game version 1.3
  • Made the fix for Cold Blood and Deathbolt togglable in the installer.
  • Added functionality to disable mantis blade finishers, since Annoy Me No More stopped working correctly with the 1.3 update.
  • Added functionality to disable time dilation when parrying an enemy attack.
v1.3.1:
  • Fixed a typo in the installer ModuleConfig.xml that caused installs to fail in 1.3.0
v1.3.2:
  • Oops... I renamed a folder and forgot to repoint the installer at the correct folder. I'm not sure why vortex didn't show me an error when I ran the installer. Thank you to the users who pointed it out.
v1.3.3:
  • Took the time dilation on parry fix back out due to redscript issues... it'll come back when redscript fixes the but with replaced functions calling parent class implementations.
v1.3.4:
  • Thanks to a quick response from the redscript team pointing out the issue was with the decompiler and not the compiler, and what the decompiled code should have looked like to run correctly, the removal of time dilation from perfect guard is back again!