{}BmSDK

Script the Arkham games
in C#.

BmSDK is a scripting platform for Batman: Arkham City and Arkham Knight. Extend the game with custom gameplay and logic, using a full C# SDK built on the engine’s own UnrealScript API.

SpawnJoker.cs
using BmSDK;
using BmSDK.BmGame;
using BmSDK.BmScript;

[Script]
public class DemoScript : Script
{
    public override void OnKeyDown(Keys key)
    {
        if (key != Keys.J)
            return;

        var player = Game.GetPlayerPawn();

        // Load .upk with RCharacter_Joker
        Game.LoadPackage("FunFair");

        // Spawn Joker in front of the player
        var joker = new RPawnVillainThug(player.Location, player.Rotation);
        joker.InitCharacter(RCharacter_Joker.StaticClass());

        var dir = player.Rotation.ToDirection() with { Z = 0 };
        joker.Move(dir * 100);
    }
}

BmSDK targets Batman: Arkham City and Arkham Knight, with the same scripting workflow for each. Pick your game and grab the latest release.

Arkham City

A full C# scripting SDK for Batman: Arkham City, based on the game's own UnrealScript API.

Arkham Knight

Feature-complete BmSDK, now with full support for Batman: Arkham Knight.

BmSDK aims to be a fully idiomatic C# SDK, yet familiar to modders who might have some experience in UnrealScript. Developer convenience/tooling is a huge priority.

Full game API

The SDK mirrors the engine’s UnrealScript API, so you get to work with the game’s built-in classes (pawns, characters, packages) through C# with full IntelliSense support.

Write/debug in Visual Studio

BmSDK is intended to work natively with Visual Studio (and Visual Studio Code) - debugging works out-of-the-box with the provided solution files.

Share mods as source

Script mods are just .cs files. Players can drop them into BmGame\Scripts and have them run out-of-the-box with no building/packaging needed.

If you just want to play script mods, you don’t need to build anything. Install the release, then add scripts as you find them.

  1. 1Download the latest release and open the .zip.
  2. 2Copy the Binaries and BmGame folders into your game directory.
  3. 3Drop any .cs script mods into BmGame\Scripts, and you’re set.