A JKDF2 and MOTS engine recreation.

Project maintained by bahstrike Hosted on GitHub Pages — Theme by mattgraham


There are several ways you can help!


Just download the engine and report any issues you find.

Custom mods/levels

The majority of issues I have found with implementing features correctly have been through fan-made levels and mods. This is because, generally speaking, fans have managed to find ways to push the original Sith engine much further than LEC did in the vanilla game.

If you think you have a particularly challenging mod or level, let me know.


If you have a good understanding of any of the peculiarities of the original Sith engine, or an ideal way to implement a specific feature, then your design input is valuable.

The process of creating very specific testbed levels/scripts to isolate a particular engine behavior can be tedious, but is generally not difficult to do and can be of immense help to ensure compatibility to every level and mod.

There are a slew of flags, and a bunch of COG verbs (such as CreateThing vs CreateThingNR), that have never been fully explained.


It is super easy to expand the functionality of JK by adding new features to the engine and COG. If there’s something you always wished was possible or there was better engine support to do it, let me know!

The COG compiler and virtual machine are completely hand-written and extremely easy to extend. Want to be able to increment a value by doing i++ ? We can add a postfix unary increment operator to the language. Want to be able to use strings and concatenate them like stringA + “stuff” ? Strings are already supported and extending the binary addition operator to detect if the operands are strings and do a concatenation instead of a decimal value addition would take about 3 lines of code.

COG verbs are also utterly simple to add. Its just a few lines of code to add a new one. They can be simple like cos() or VectorAngle(). But with full access to all the original engine code, entirely new avenues of engine functionality can be pursued. Why not add a handful of COG verbs to be able to, say, dynamically generate keyframe animations? Or maybe some new functions to more finely tune AI behavior? Heck, add some web request COG verbs to be able to stream content from the internet.


To take a direct first-hand approach to Smith development, please contact me regarding an application to join BAH or have your group become an affiliate.

If accepted, you (or your group) will be added to the contributers list for the Smith project in github and will be granted full access to the repository.

You will need to prove the following:


Please direct all information, requests or other discussion to the Jedi Knight Dark Forces 2 Discord server, or to the Smith project forum at JK Hub.

Smith JKHub Forum