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.
  2. Copies the specified episode GOB into the "mod" folder, so that it will be the ONLY one shown on in-game episode lists.
  3. 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.