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.
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);
}
}Built for both games
BmSDK targets Batman: Arkham City and Arkham Knight, with the same scripting workflow for each. Pick your game and grab the latest release.
Showcase
Development
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.
Getting started
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.
- 1Download the latest release and open the .zip.
- 2Copy the Binaries and BmGame folders into your game directory.
- 3Drop any .cs script mods into BmGame\Scripts, and you’re set.