---
# System prepended metadata

title: JK Resurrection

---

# JK Resurrection

## Purpose
To add singleplayer replay value to classic multiplayer Jedi Knight: Dark Forces 2 levels by providing remixing abilities - known as build hax - that are casual to use & persistently save / load changes per-JK level.

## Description
A Jedi Knight: Dark Forces 2 launcher/companion EXE that programmatically generates COGs & other MOD files to provide singleplayer sandbox functionality to multiplayer levels.

Resurrection.exe can be associated with GOB files to launch "directly" into that episode, or can be launched standalone & an episode be chosen from a UI.

After the GOD/episode is specified, Resurrection.exe does several things:
1. Manages the ```mod``` folder by purging (OR by moving into the ```mod/off``` folder) all GOBs that are not on the whitelist.
1. Copies the specified episode GOB into the "mod" folder, so that it will be the ONLY one shown on in-game episode lists.
1. Finds a

spawns enemies (and other templates) into classic multiplayer levels after they are loaded.

No modification of the original multiplayer level's GOB is needed.

## Components
- Dynamic Launcher/Companion Mode
- Export to normie regular MOD GOB mode to share.

## Notes
```
JK Resurrection UI

-------------------------
TAB: PLAY
-------------------------
| GOB Name |
[...]

| Level Title | Ref Thing | Ref Sector | Ref Pos |
[...]

| Instance Title |
[...]

[Launch JK]
Use Mods: [0/1]

-------------------------
TAB: MODS
-------------------------
| Active | Mod GOB |
[...]

-------------------------
TAB: SETTINGS
-------------------------
Options
ADDITIONAL_LAUNCH_OPTIONS: -devmode
JK_EXECUTABLE: H:\SteamLibrary\steamapps\common\Star Wars Jedi Knight Remastered\inject.exe

Mods
MOD_MANAGMENT: [0/1]
MOD_FOLDER: mod
MOD_OFF_FOLDER: off

Character
RANDOMIZE_CHARACTER: [0/1]
RANDOMIZE_MODEL_WITH_BSP: [0/1]
RANDOMIZE_SABER_WITH_BSP: [0/1]



================ 
JSON STRUCTURES:
================
settings: {
    USE_MODS: true,
    USE_HEAPHAX: true,
    ACTIVE_MODS: [],
    LAUNCH_OPTIONS: "",
    EXECUTABLE: "JK.exe",
    MOD_ACTIVE_FOLDER: "mod",
    MOD_STORAGE_FOLDER: "mod/off",
    RANDOMIZE_CHARACTER: false,
    RANDOMIZE_MODEL_WITH_BFP: false,
    RANDOMIZE_SABER_WITH_BFP: false,
    LAST_USED_EPISODE_GOB: ""
}
levels: {
  LEVEL_ID: {
    gob: <string>
    title: <string>
    reference_thing: <number>
    reference_sector: <number>
    reference_pos: <string>
  }
}
instances: {
  INSTANCE_ID: {
    title: <string>
    level: <LEVEL_ID string>
    objects: {
      OBJECT_ID: {
        //media: <MEDIA_ID string>
        template: <string>
        pos: <array>
        rot: <array>
      }
    }
  }
}



Random notes:
Resurrection Random.mpc
MY_MODS: ["BFP2X.gob", "JKE.gob", "JKR.gob", "Scope_v1.0Beta.gob", "XtremeFinWarfare.gob"]
```

## File Structure
| Contents | Path |
| :------- | :--- |
| Active Mod GOBs | mods |
| Inactive Mod GOBs | mods/off |
| Active Resurrection COG | mods/cog/active_jkl.cog |
| Inactive Resurrection COGs | mods/resurrection/cogs |
| Mod GOB | mods/resurrection.gob |


### JK Resurrection Mod
- Just a regular JK mod GOB that users put into their mod folder.
- When a compatible JK MP map is loaded, all of the saved Things for that map are spawned in.
- The user kills all the bad guys.
- A few game modes, like respawning enemies or race-the-clock mode.

### JK Ressurection SDK
- Contains the instructions & tools to add support to more levels.
- It's a companion EXE that devs use to save their Thing placements.
- Users can use it too, if polished up enough.

## etc.