Overview
Ever wanted to play as someone else other than the Dark Knight in Batman: Arkham Knight? Well you can with mesh/character swapping mods. After reading this guide, you should be zipping through the Gotham skyline as Harley Quinn in no time!
A Note on Terminology
There are several phrases you’ll see when talking about modding Batman: Arkham Knight. The term “character swap” refers to running code to replace Batman and all his moves and animations with that of another playable character. In other words, in a character swap, you can have Harley Quinn instead of Batman Note that the character swap also carries over Harley’s animation and idle lines.
The term “mesh swap” refers to running a code to swap a mesh (aka skin aka model) of the current player character with that of another mesh. In a mesh swap, you will still have the same animations and skill sets as the original character, but you will now be playing with a different, possibly non-Batman skin. An example is of a mesh swap could be https://www.youtube.com/watch?v=j_Oh7c8dN4A. Your character will look like Charisma, but you will still be able to glide like Batman and use all of Batman’s gadgets and special takedowns. As you’ll see later in this guide, it’s possible to do both character swapping and mesh swapping at the same time.
Finally, you might see some mods that claim that “no mesh-swapping” is required. This refers to mesh mods where you can choose those meshes from the showcase menu, as opposed to running console commands. These mods are created with hex editing and can only work with other playable character models.
Setting Everything Up
Before we even start, I recommend that you have the Season Pass so you can have access to all the characters.
To swap meshes or characters, you will need to run console commands. However, unlike a game such as Half-Life, you don’t input codes inside a console window in Arkham Knight. Instead, console commands are run from external text files. To do this,
- Inside the folder Batman Arkham KnightDLC356474ContentBmGameConfig, create the file BmInput.ini using a text editor inside the folder. This file will define the keybinds that will execute the codes.
- Inside BmInput.ini, insider the following line of code:
[Engine.PlayerInput] .Bindings=(Name=”F1″, Command=”exec console.txt”)
The above code will run the text file console.txt when F1 is pressed. You can find a list of keybind names here[docs.unrealengine.com] if you want to use something other than F1 to run console.txt
- Inside the folder Batman Arkham KnightBinaries, create a text file named console.txt. You will be inserting the swapping codes in this file.
You can update console.txt while BAK is running. Just save console.txt after you are done editing and you will be able to run whatever new code you placed inside the text file. On the other hand, if you want to update keybindings in BmInput.ini, you will need to restart the game.
Character Swapping
Now that you have your BmInput.ini and console.txt files set up, it’s time to insert the codes. There are 11 playable characters in B:AK. Their codes are as follows:
- LoadPC Playable_DLCRedHood
- LoadPC Playable_DLCHarleyQuinn
- LoadPC Playable_Nightwing0
- LoadPC Playable_Robin0
- LoadPC Playable_Azrael
- LoadPC Playable_BruceWayne
- LoadPC Playable_Catwoman0
- LoadPC Playable_Gordon
- LoadPC Playable_Joker
- LoadPC Playable_DLCBatgirl
- LoadPC Playable_Batman_GothamKnight
It shouldn’t be too hard to discern which code corresponds to which character. Bruce Wayne and Gordon both have Batman’s fighting moves, but lack any gadgets or ability to perform a beatdown. Joker has absolutely not fighting skills. Instead, the only thing Joker can do is slide underneath everyone. Also, you will need the corresponding DLC for each character to be able to play as them.
So, let’s say we want to play as Harley Quinn in the main campaign. To do this,
- Place the line “LoadPC Playable_DLCHarleyQuinn” (without the quotation marks) inside console.txt.
- Start up a game. As soon as the bats appear, spam the F1 key or whatever key you assigned console.txt to. Keep pressing F1 until the game finishes loads. You should now be playing as Harley.
- If you mess up the spamming and you remain as Batman, you can simply restart the game. Again, start spamming your key once the bats appear on screen. Keep repeating until you play as Harley Quinn.
As you just performed a character swap, you’ll notice that not only will you look like Harley, but you’ll also have her You can even activate her Mayhem mode and use it against someone else other than the Bludhaven Police.
To play as another character, simply replace the line “LoadPC Playable_DLCHarleyQuinn” inside console.txt with another character swap code, say Red Hood (LoadPC Playable_DLCRedHood). After saving console.txt, restarting the game and spamming the console key during the loading screen, you should now be able to go around Gotham shooting thugs and criminals. As you might surmise, you should only use one character swap code at a time.
Don’t expect to complete the main campaign or any of the story packs as a swapped character, though. Your character will usually revert back to Batman during a cutscene if you are only running a character swap mod (though some cutscenes will ). More seriously, you sometimes won’t be able to continue the game if you’re not playing as Batman.
Mesh Swapping, Basic
To perform a mesh swap, we first need to find the mesh codes. Mesh codes can be easily found via Google, but there are several resources I found:
- Mesh codes[drive.google.com] that Mr.JAG created for this
- The .RAR file found in the description of (the codes are in the file labeled Batman-Arkham-Knight-Mesh-Swapping-Mod.rar).
- This list of Robin mesh codes[drive.google.com]
In general, if you want to swap meshes,
- Paste the mesh swap code inside console.txt
- Now you need to load the mesh into the game. For the vast majority of meshes, you just need to open the showcase menu and load the model you want to see in the game in character view.
- Once the model is loaded, rotate and zoom in to the model at different angles. Just make sure you see the whole model.
- While you are still in character view, press the button you assigned to execute console.txt several times. This is to load the mesh into the game’s memory. If the mesh is not in the showcase menu (e.g. Batgirl), then you must load the level said mesh appears in (e.g.start a AR Challenge with Batgirl) and press the console.txt button.
- Now that your model is loaded into the game memory, start your game. Like with the character swap, as soon as the bats appear, start spamming your console.txt button. Keep pressing the console.txt button until you
You can view a video on how to mesh swap below:
For our example, let’s say we want to play as Aaron Cash. First, paste the following code inside your console.txt:
Back in the main menu, go to the showcase and load the Aaron Cash model in charcter view. Rotate Cash and zoom in to him to make sure the texture loads at close angles. Afterwards, start a new game and start spamming the console.txt key as soon as the bats appear. Keep pressing the key until the game has loaded. You should now be playing as Aaron Cash, but with Batman’s moves and gadgets.
Combining Character and Mesh Swapping
It is possible to do mesh swapping with characters other than Batman. All you need to do is to add one of those LoadPC commands to your console.txt file. For example, let’s say we want swap Harley Quinn with the mesh of her Puddin’. To do that, first, paste the following lines of code in console.txt:
That last line hides Harley’s baseball bat (h/t Mr. JAG). If you don’t include that line, the baseball bat will .
Load the Joker model in the Showcase and press the console.txt button. After pressing the console.txt button, start a new game, doing the usual key spamming. Note that in the previous example that we did not need to load any Harley models in the showcase. Once the game loads, you should be playing as Mr. J, but with Harley’s animations, gadgets and voice lines.
If the mesh code you place below the LoadPC line matches with the skin you selected in the showcase for that character, you won’t even need to load up the showcase, as LoadPC does the mesh loading for you. So why would you do this, other than to save a couple of seconds? I mean, you won’t look any different than if you had just loaded only a character swap.
Well, as I mentioned before, when you use only a character swap, your player character will revert back to Batman during most cutscenes. By combining both a character and mesh swap, you can still see your player character’s model through the cutscene. For example, in the following video, I solely used a character swap to play as Harley Quinn (i.e. the only code in my console.txt was LoadPC Playable_DLCHarleyQuinn)
Notice that while I can use Harley’s moves while fighting the rebels, the player model switches back to Batman during the cutscene. Now compare to this video where I fight the rebels as Catwoman and combine both mesh and character swapping:
In the above video, I used the following line of code:
Note that I’m using Catwoman’s moves and gadgets. When the cutscene starts, though, it’s Catwoman, as opposed to Batman, talking to Nyssa, albeit with Batman’s voice.
I found this method to work for most cutscenes, at least for cutscenes that will still work if you don’t play as Batman. One cutscene that did not work with this method, though, was You can still continue to play as Barbara Gordon after the cutscene, but the only way to get Batgirl to appearing during the actual cutscene itself is to use this Batgirl skin over Batman[drive.google.com] mod and select the Batgirl skin in Batman’s showcase menu.
Mesh Swapping, Advance
Let’s take a closer look at those mesh variables in those codes I posted earlier.
The first variable is MainMesh. MainMesh is usually the head and hands components of a model. For certain models, such as Nightwing, MainMesh can consist of the entire body. As such, this is arguably the most important mesh.
The next variable is BodyMesh. This is usually consists of the clothing and suit. If MainMesh already loads the entire model (see Nightwing), then you can set this variable to “None.”
The third variable is CapeMesh. This variable obviously refers to the cape that Batman wears. If you don’t set CapeMesh to “None,” your swapped character will end up wearing Batman’s cape.
Finally, we have the variable ExtraMeshes. As its name implies, this variable loads any additional meshes that wasn’t already loaded by MainMesh or BodyMesh. In other words, ExtraMeshes is used when you want to load more than two non-cape meshes. You can probably load as many meshes via ExtraMeshes as you want.
Unfortunately, ExtraMeshes only works for specific characters, none of them Batman. Only Azrael, Red Hood, Gordon and Hush are able to load extra meshes via the ExtraMeshes variable.
This is why you can’t properly use the Bruce Wayne/Hush model when playing as Batman. If you use the following code while playing as Batman:
You’ll end up getting something like this:
Notice in the screenshot that Bruce Wayne is not wearing any jacket. That’s because Batman is unable to load SkeletalMesh’Hush_Mesh.Mesh.Hush_BM3_Cine_Skin_Jacket’, i.e. the mesh being loaded via ExtraMeshes. If we swap …Hush_BM3_Cine_Skin_Jacket’,
with SkeletalMesh’Hush_Mesh.Mesh.Hush_BM3_Cine_Skin_Trews’, you’ll get a .
Thus, if you want to use ExtraMeshes, remember to add LoadPC Playable_Azrael at the top of the code (using LoadPC Playable_BruceWayne or LoadPC Playable_Gordon will also work, if you don’t mind the lack of gadgets or fighting moves).
I haven’t really figured out how to consistently swap meshes for the Arkham Aslyum cutscenes. However, there do seem to be some things that definitely needs to happen for it to work.
- The console.txt key should definitely be spammed in the pre-rendered cutscene before Batman arrives at the Asylum. Specifically, you should be spamming the console.txt button as soon as click the skip cutscene button. Just to be safe, spam the console.txt button during the preceding loading screen.
- Mesh swaps require both a MainMesh and a BodyMesh. If BodyMesh is set to none, then the game crashes. If a mesh only comes with a MainMesh, copy the MainMesh over to BodyMesh. For example, Classic Harley Quinn only comes with MainMesh. In turn, your mesh code should look like this:
Set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh’DLC0_HarleyQuinn_BruceTimm_Mesh.Mesh.DLC0_HarleyQuinn_BruceTimm’ Set RAddContentPlayerCharacterMesh BodyMesh SkeletalMesh’DLC0_HarleyQuinn_BruceTimm_Mesh.Mesh.DLC0_HarleyQuinn_BruceTimm’
Probably the reason why it’s very hard to make someone else other than the default Batman skin appear on the gurney is that the game loads several unique Batman models that appear exclusively in the cutscenes. These Batmen are named Playable_Batman_Std_15 through Playable_Batman_Std_19, and I found that changing the MainMesh and BodyMesh variables for these unique Batmen could lead to the mesh swap in the cutscene. The code to do that for Playable_Batman_Std_15 (the Batman on the gurney) is:
If you could not find your desired mesh code in the links I posted earlier, you can still find these skins on your own. For example, say you want to find the mesh swap code for the 90s Catwoman skin. To do that,
- Enable Arkham Knight’s log by adding “-log” to Arkham Knight’s launch options. This will launch a command-prompt style log window alongside the main Arkkham Knight program. Running Arkham Knight in windowed mode is recommended.
- In BmInput.ini, add the following line of code:
.Bindings=(Name=”f2″, Command=”exec GetAttributes.txt”)
- Inside the folder Batman Arkham KnightBinaries, create a text file named GetAttributes.txt.
- Inside GetAttributes.txt, add the following line of code:
getall RAddContentPlayerCharacterMesh MainMesh getall RAddContentPlayerCharacterMesh CapeMesh getall RAddContentPlayerCharacterMesh BodyMesh getall RAddContentPlayerCharacterMesh ExtraMeshes
- Start an AR challenge with the 90’s Catwoman skin loaded. When the AR starts, press F2.
- Go back to the log window. You should see something like this (ignore the Batgirl codes):
From the log, you can see that the MainMesh code for 90’s Catwoman is SkeletalMesh’DLC0_Catwoman_90s_Mesh.Mesh.DLC0_Catwoman_90s_Head’ while the BodyMesh code is SkeletalMesh’DLC0_Catwoman_90s_Mesh.Mesh.DLC0_Catwoman_90s_Body’. Therefore, your model swap code will be the following:set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh’DLC0_Catwoman_90s_Mesh.Mesh.DLC0_Catwoman_90s_Head’ set RAddContentPlayerCharacterMesh BodyMesh SkeletalMesh’DLC0_Catwoman_90s_Mesh.Mesh.DLC0_Catwoman_90s_Body’ set RAddContentPlayerCharacterMesh CapeMesh None set RAddContentPlayerCharacterMesh ExtraMesh None
Now you can apply that mesh code over someone such as Red Hood:
Skin swaps without console commands
It’s possible to get the same results of mesh swapping without running any console commands. It’s also possible to swap Catwoman, Nightwing and Robin’s skins in the main campaign with that of another character’s (e.g. swapping Catwoman’s skin with Batman). To do this, download the following file:
[link]This file allows your to use non-Batman skins for Batman. This mod also allows you to use Batman skins for Catwoman. You can see this mod in action .
To install, extract the PLAYABLECHARSBATMAN folder to Batman Arkham KnightDLC[Whatever DLC number you want]. From there, you can go to the character showcase and choose your skin.
Screenshots and Videos
Here are some screenshots showcasing various mesh swapping and character swapping mods:
Here are some more videos I created: