Batman™: Arkham Knight

Batman™: Arkham Knight

243 ratings
How to Swap Characters and Meshes
By sn0wsh00
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 clear out the mixing chamber inside Ace Chemicals with her bat and mayhem mode. 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 swapping out Batman's skin with Johnny Charisma's skin. 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,
  1. Inside the folder Batman Arkham Knight\DLC\356474\Content\BmGame\Config, create the file BmInput.ini using a text editor inside the folder. This file will define the keybinds that will execute the codes.
  2. 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[] if you want to use something other than F1 to run console.txt
  3. Inside the folder Batman Arkham Knight\Binaries, 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,
  1. Place the line "LoadPC Playable_DLCHarleyQuinn" (without the quotation marks) inside console.txt.
  2. 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.
  3. 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 animations, her gadgets and her voice lines. 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 still show your swapped character). 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:

In general, if you want to swap meshes,
  1. Paste the mesh swap code inside console.txt
  2. 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.
  3. Once the model is loaded, rotate and zoom in to the model at different angles. Just make sure you see the whole model.
  4. 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.
  5. 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:
set RAddContentPlayerCharacterMesh BodyMesh SkeletalMesh'Aaron_Cash_Mesh.Mesh.Aaron_Cash_Skin' set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh'Aaron_Cash_Mesh.Mesh.Aaron_Cash_Skin' set RAddContentPlayerCharacterMesh CapeMesh None

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:
LoadPC Playable_DLCHarleyQuinn set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh'Joker_BM3_Mesh.Mesh.Joker_BM3_Skin' set RAddContentPlayerCharacterMesh BodyMesh SkeletalMesh'Joker_BM3_Mesh.Mesh.Joker_BM3_Skin_Shirt' set RAddContentPlayerCharacterMesh ExtraMeshes (SkeletalMesh'Joker_BM3_Mesh.Mesh.Joker_BM3_Skin_Jacket',SkeletalMesh'Joker_BM3_Mesh.Mesh.Joker_BM3_Skin_Trousers') set RAddContentPlayerCharacterMesh CapeMesh None Set SkeletalMeshComponent'BmScript.Default__MPawnPlayerHarleyQuinn.BaseBallBat0' Skeletalmesh None

That last line hides Harley's baseball bat (h/t Mr. JAG). If you don't include that line, the baseball bat will float awkwardly inside your character.

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:
LoadPC Playable_Catwoman0 set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh'Catwoman_BM3_Mesh.Mesh.Catwoman_BM3_Head_Skin' set RAddContentPlayerCharacterMesh BodyMesh None set RAddContentPlayerCharacterMesh CapeMesh None

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 the scene where Gordon punches Batman. 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[] mod and select the Batgirl skin in Batman's showcase menu.
Mesh Swapping, Advance
Mesh Components
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:

set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh'Hush_Mesh.Mesh.Hush_BM3_Cine_Skin_Body' set RAddContentPlayerCharacterMesh BodyMesh SkeletalMesh'Hush_Mesh.Mesh.Hush_BM3_Cine_Skin_Trews' set RAddContentPlayerCharacterMesh ExtraMeshes (SkeletalMesh'Hush_Mesh.Mesh.Hush_BM3_Cine_Skin_Jacket') set RAddContentPlayerCharacterMesh CapeMesh None

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 pantsless Bruce Wayne.

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).

Mesh Swapping in the Arkham Asylum Scene

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:
Set RAddContentPlayerCharacterMesh MainMesh SkeletalMesh'DLC0_HarleyQuinn_BruceTimm_Mesh.Mesh.DLC0_HarleyQuinn_BruceTimm' Set RAddContentPlayerCharacterMesh BodyMesh SkeletalMesh'DLC0_HarleyQuinn_BruceTimm_Mesh.Mesh.DLC0_HarleyQuinn_BruceTimm' Set RAddContentPlayerCharacterMesh StandaloneBeltMesh None Set RAddContentPlayerCharacterMesh CapeMesh None RAddContentPlayerCharacterMesh Playable_Batman_Std_15.Playable_Batman_Std_15.MainMesh = SkeletalMesh'DLC0_HarleyQuinn_BruceTimm_Mesh.Mesh.DLC0_HarleyQuinn_BruceTimm' RAddContentPlayerCharacterMesh Playable_Batman_Std_15.Playable_Batman_Std_15.BodyMesh = SkeletalMesh'DLC0_HarleyQuinn_BruceTimm_Mesh.Mesh.DLC0_HarleyQuinn_BruceTimm'

Finding mesh swap codes
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,

  1. 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.
  2. In BmInput.ini, add the following line of code:
    .Bindings=(Name="f2", Command="exec GetAttributes.txt")
  3. Inside the folder Batman Arkham Knight\Binaries, create a text file named GetAttributes.txt.
  4. Inside GetAttributes.txt, add the following line of code:
    getall RAddContentPlayerCharacterMesh MainMesh getall RAddContentPlayerCharacterMesh CapeMesh getall RAddContentPlayerCharacterMesh BodyMesh getall RAddContentPlayerCharacterMesh ExtraMeshes
  5. Start an AR challenge with the 90's Catwoman skin loaded. When the AR starts, press F2.
  6. 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:

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 here.

To install, extract the PLAYABLECHARSBATMAN folder to Batman Arkham Knight\DLC\[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:
SioPao Feb 14 @ 9:09pm 
I successfully swapped the suits. But I encountered a problem with other playable characters. In the main missions, Nightwing and Catwoman are playable characters. Whenever I mesh swap using the console.txt command, the mesh swap also applies to them. Nightwing and Catwoman also has a beyond suit during the missions. It's kind of cool in some ways, but I want to remove them. Any idea?
rottenf Jan 7 @ 9:52pm 
Thank you for your guide. Works perfect.
reecetaylor512 Jan 2 @ 5:34pm 
any clue how to change the suit up skin used at the beginning. Haven't been able to find much info on it other than knowing we need to mesh swap but no clue how lol
Lemon_1119 Nov 10, 2023 @ 4:15pm 
The latest community patch of Arkham Knight has brought the ability to make more meshes to work on Batman, that being Alfred, Bruce and more meshes working.

The mod link is:
monkeyzu77 Oct 21, 2023 @ 8:20pm 
Is it possible to add a new challenge map skin for red hood, that being Alfred's mesh?
TheScrubPython Jun 21, 2023 @ 2:51am 
everything seems to work, i just keep getting a grey screen on load, but it shows the objective in the Harley style so i know everything else worked
T-REX May 24, 2023 @ 1:36pm 
when i do it the game crash
Pops Apr 27, 2023 @ 2:47pm 
Do you know if the arkham knight red hood (mall fight/ending) mesh code is in any of the mesh code databases?
sn0wsh00  [author] Apr 26, 2023 @ 3:22pm 
@WhiteFang If I recall, I think the only way to do that is to start a new game
WhiteFang Apr 26, 2023 @ 10:04am 
do you have a link to all console commands in AK? I want to reset upgrades and skill points to 0