How to easily execute a Perfect Dodge and Perfect Attack in Gotham Knights

Gotham Knights brings a fair number of fun combat mechanics to the table, which, when mastered, can make the title’s endgame progression significantly easier.

Some of the more challenging encounters in the game, along with the boss fights, can be quite difficult, especially for those new to the Arkham franchise, and WB Games have made it so that players have enough tools at their disposal to make the game highly versatile in the combat aspect.

One such fun combat mechanic to pull off in Gotham Knights is the Perfect Dodge and the Perfect Attack.

Perfect Attack/Dodge is one of the most efficient ways to deal with mobs and more challenging foes later on in the game. However, it’s not all that easy to pull off.

It takes a fair amount of practice and knowledge to complete this combat feature perfectly. However, the investment is well worth it, as it’s one of the most fun mechanics to pull off in the game.

There are a few nuances to implementing Perfect Dodge and Perfect Attack in Gotham Knights, and today’s guide will go over how you can efficiently execute them in the game.

Executing a Perfect Dodge and Perfect Attack in Gotham Knights

Perfect Dodge and Perfect Attack are part of the same attack string but are executed a little bit differently. However, to perform them, you will first need to unlock them from the Gear Tab, which can be found in the in-game menu under Skills.

1) Perfect Dodging in Gotham Knights

Perfect Dodging in the game is all about baiting an enemy melee attack and dodging it right before the hit lands. This will help the character you are playing evade the incoming attack in a different manner than usual.

To be able to execute it, you will be required to,

  • Make an enemy charge at you with a melee attack. It’s important to note here that the mechanic only works for melee attacks and will not be something that activates for ranged attacks. Hence, when surrounded by enemies, always take out the ranged ones first.
  • When you find that the enemy is about to attack you, do not dodge immediately, there will be a white or red on them, which will turn spikey the closer the attack is to land on you. Wait for it to turn very spikey before you press the dodge button. Upon executing it accurately, you will be able to do a perfect dodge.
  • The command for a dodge will be different on all the platforms. For PC, it will be the “Space” key. For the PS5, it will be the “Circle” button. And for the Xbox, it will be the “B” button.

You will know when a Perfect Dodge happens in Gotham Knights when the character dashes out of harm's way much faster than usual.

2) Landing a Perfect Attack in Gotham Knights

Once you have mastered the Perfect Dodge, landing a Perfect Attack becomes child’s play. A Perfect Attack can only be landed on an enemy when you have been able to Perfectly Dodge their melee attacks.

To be able to land one in the game, you will need to,

  • Land a Perfect Dodge on an enemy about to strike you with a melee attack.
  • Once you have successfully done the dodge, you will need to make a melee attack immediately, which will now be termed a Perfect Attack.
  • For each platform, the attack button will be different. For PC, it will be the “Left Mouse Click.” For the PS5, it will be the “X” Button. And for the Xbox, it will be the “A” button.
  • Like with Perfect Dodges, Perfect Attack has a different animation than normal attacks in the game.

Perfect Dodge and Perfect Attack in Gotham Knights is one of the best ways to take care of a mob or takedown a challenging boss without breaking a sweat, as it allows you to continuously rack up damage and momentum.

Quick Links

More from Sportskeeda

" modalPopup.closeOnEsc = false; modalPopup.setHeader("Why did you not like this content?"); modalPopup.setContentText(modalText); modalPopup.addCancelOkButton("Submit", resetRatingAndFeedbackForm, sendRating); modalPopup.removeCloseModalIcon(); modalPopup.disableDismissPopup(); modalPopup.open(); } else { sendRating(index); } } function sendRating() { var requestPayload = { "post_id": 1269393, "rating_value": ratingValue } if (ratingValue > 3) { requestPayload.rating_feedback_type = null; requestPayload.rating_feedback = null; } else { if (!$('input[name="drone"]:checked') || !$('input[name="drone"]:checked').value) { showErrorMessage('option'); return; } if (!$(".post-rating-feedback-note textarea") || !$(".post-rating-feedback-note textarea").value) { showErrorMessage('note'); return; } var selectedOption = $('input[name="drone"]:checked').value; var feedbackNote = $(".post-rating-feedback-note textarea").value; requestPayload.rating_feedback_type = selectedOption; requestPayload.rating_feedback = feedbackNote; } pureJSAjaxPost(addratingAPI, requestPayload, onsaveRatingSuccess, onsaveRatingFail, function() {}, true); } function resetRatingAndFeedbackForm() { var activeStars = Array.from($all('.rating span.rating-star.active')); for (var i=0; i < activeStars.length; i++) { activeStars[i].classList.remove("active"); } if ($('input[name="drone"]:checked')) { $('input[name="drone"]:checked').checked = false; } var userNote = document.querySelector(".post-rating-feedback-note textarea"); userNote.value = ''; modalPopup.close(); } function onsaveRatingSuccess() { modalPopup.close(); savePostIdInUserRatedPostsCookie(); $("#post-rating-layout").classList.add("hidden"); $("#post-rating-message").classList.remove("hidden"); window.setInterval(function showMessage() { $("#post-rating-widget").classList.add("hidden"); }, 3000); } function onsaveRatingFail() { console.error('Saving post rating failed!'); modalPopup.close(); } function savePostIdInUserRatedPostsCookie() { userRatedPostIds.push(1269393); var expiryTime = new Date(); expiryTime.setMonth(expiryTime.getMonth() + 12); // Expiry after 1 year setCookie("user_rated_post_ids", JSON.stringify(userRatedPostIds), expiryTime); } function isPostRatedByUser() { var userRatedPostIds = getCookie('user_rated_post_ids'); if (userRatedPostIds) { try { userRatedPostIds = JSON.parse(userRatedPostIds); } catch (err) { console.error(err); return false; } } else { return false; } if(userRatedPostIds.indexOf(1269393) >= 0) { return true; } else { return false; } } function getRatingCountByPostId(postId) { return new Promise(function(resolve, reject) { pureJSAjaxGet( getRatingCountBaseURL + postId + '/rating/count', function(data) { try { data = JSON.parse(data); if (data.meta_value) { resolve(data.meta_value); } reject("Failed to fetch rating count for the post:" + postId); } catch (err) { reject("Failed to fetch rating count for the post:" + postId); } }, function(err) { reject("Failed to fetch rating count for the post:" + postId); }, true); }); } function showErrorMessage(messageType) { var messageContainerId = '#' + messageType + '-error'; $(messageContainerId).classList.remove('hidden'); window.setInterval(function () { $(messageContainerId).classList.add("hidden"); }, 5000); } (function() { var callFired = false; function lazyLoadPostRating() { if (callFired) return; callFired = true; if (!isPostRatedByUser()) { getRatingCountByPostId(1269393) .then(function(ratingCount) { if (ratingCount < 10) { $("#post-rating-widget").classList.remove("hidden"); } }) .catch(function(err){ console.error(err); }); } } document.addEventListener("scroll", lazyLoadPostRating, { passive: true, once: true }); document.addEventListener("mousemove", lazyLoadPostRating, { passive: true, once: true }); document.addEventListener("touchmove", lazyLoadPostRating, { passive: true, once: true }); })();

ncG1vNJzZmivp6x7tLzOq6uso5WasaJ6wqikaJ2jpbyzwNJon6ivXZqutLXLsmSesJWYwrWxjKmcq56VmMFusM6dnp5loJq%2Fp7HCrWSarKSWsKx5xqiroZmdYrivtcahq6w%3D