Jedi Knight Dedicated Server Auto Launcher Programming Project Proposal Description For the JKDF2.COM Jedi Knight Dedicated Server, there is a specific need for an application that can automatically launch multiple instances of Jedi Knight, with instance-specific host settings. Concept written by EAH_XxHeReTiKxX on 4/1/2015 for the JKDF2.COM Dedicated Server project. Updated 4/7/2015. Reasons why this is important When starting the server, the dedicated server operator must manually configure every hosted JK/MotS game instance because it will default to the host settings of the previous successful JK/MotS hosted game. For every hosted JK/MotS game instance, the server operator must manually configure 10 different settings within the JK/MotS host game menus. These 10 different settings can vary widely depending on the type of hosted game. For example: o Full Force Jedi Training Levels Rotating Rank: 8, Use Score Limit: Yes, Use Time Limit: Yes, Team Play: No, Single-level only: No, Time Limit: 30, Score Limit: 20, Maximum Players: 32, Game Name: JEDI TRAINING FF o No Force Capture the Flag Team Play Rotating Rank: 0, Use Score Limit: Yes, Use Time Limit: No, Team Play: Yes, Single-level only: No, Time Limit: (none), Score Limit: 300, Maximum Players, 32, Game Name: CTF ROTATE NF If the game crashes, or if the server has to restart for any reason, the server operator must repeat this highly time consuming and tedious process. Auto launcher could be easily added to Windows s startup entries to automatically launch all server hosted games. Concept for a multiple-instance auto launcher 1. The launcher should refer to a configuration file that allows the operator to configure the number of automatically launched instances, the installed location of each instance, and the instance specific registry modifications. a. Within the configuration file, with each instance launch parameters separated by line break, each line should specify the following information, semicolon-delimited, with the following registry key instance-specific modifications: CurrentDirectory (DirectPlay), Path (DirectPlay, same value as CurrentDirectory), CommandLine (DirectPlay) maxrank, gameflags, timelimit, scorelimit, maxplayers, tickrate, gamename. 2. After writing the instance-specific registry settings, Auto Launcher should launch the DPLAUNCH utility which allows DirectPlay hosting of Jedi Knight/Mysteries of the Sith and bypasses many of the in-game menus associated with normally hosting a TCP/IP game. a. Auto Launcher should hook into or somehow press DPLAUNCH s Run Application button. b. DPLAUNCH has a drop down menu to select which DirectPlay game to launch. It does this by enumerating the registered DirectPlay applications on the system (from registry). If only JK is registered, it will default to Jedi Knight, if only Mysteries of the Sith is registered, it will default to Mysteries of the Sith. c. To force JK vs MotS in DPLAUNCH - Auto Launcher may need to launch all Jedi Knight games, and then delete the Jedi Knight DirectPlay key, create the Mysteries of the Sith key, and launch all Mysteries of the Sith games.
3. The launcher should be able to automatically navigate through the Jedi Knight menu system to a launched game with a series of three pre-defined ENTER key presses. 4. When it comes to level selection in Jedi Knight s Host Settings menu, there is no way to predefine which episode and level is automatically selected when this menu is reached. However, I intend to have multiple distinct Jedi Knight Installation directories that each contain only a single.gob episode file in the Jedi Knight\EPISODE subfolder. Using this method I can pre-define the episode and/or level that the host automatically launches. a..gob EPISODE files that contain multiple levels will be modified to omit the other levels in the episode if only a specific map is desired with no map rotation through the episode.
Documentation of Jedi Knight and Mysteries of the Sith Registry Keys Jedi Knight Game Settings: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LucasArts Entertainment Company\JediKnight\v1.0 Jedi Knight DirectPlay Settings: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectPlay\Applications\Jedi Knight 1.0 Mysteries of the Sith Game Settings: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LucasArts Entertainment Company LLC\mysteries of the sith\v1.0 Mysteries of the Sith DirectPlay Settings: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectPlay\Applications\Mysteries of the Sith 1.0 The registry that need to be modified specific to the individually launched instance of Jedi Knight and Mysteries of the Sith: Game Settings: maxrank, gameflags, timelimit, scorelimit, maxplayers, tickrate, gamename DirectPlay Settings: CurrentDirectory, Path, CommandLine The format of all of the keys according to regedit is REG_BINARY. Each key contains values in hexadecimal format. The Auto Launcher does not need to know how to convert user-defined values to hexadecimal, because the operator will have pre-determined these values. The Auto Launcher needs only to update these specific registry keys based on the user-defined parameters in the Auto Launcher configuration file. Removed 4/7/15. CESC_MasterYoda is implementing method for Auto Launcher to convert user defined values in its configuration file to hexadecimal.
Jedi Knight Registry Key Documentation Jedi Knight Game Settings Registry Key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432N ode\lucasarts Entertainment Company\JediKnight\v1.0 KEY NAME EXAMPLE KEY CONTENT FORMAT ACCEPTED VALUES maxrank (MP Host: Maximum Force Rank: 0-8) hex:xx,xx,xx,xx 9 Diferent Values ranging from No Force (0) to 1-8 Rank 0 - Uninitiated (No Force) 00,00,00,00 Rank 8 - Jedi Lord 08,00,00,00 gameflags (Use Score Limit, Use Time Limit (minutes), Team Play, Single-level Only) hex:xx,xx,xx,xx Checkbox Yes/No for all four settings NO Score Limit, NO Time Limit, NO Team Play, 00,00,00,00 YES Score Limit, NO Time Limit, NO Team Play, 10,00,00,00 YES Score Limit, YES Time Limit, NO Team Play, 18,00,00,00 YES Score Limit, YES Time Limit, NO Team Play, 98,00,00,00 YES Single-Level Only NO Score Limit, YES Time Limit, NO Team Play, 08,00,00,00 NO Score Limit, NO Time Limit, YES Team Play, 03,01,00,00 NO Score Limit, NO Time Limit, NO Team Play, 80,00,00,00 YES Single-Level Only YES Score Limit, YES Time Limit, YES Team Play, 9B,01,00,00 YES Single-Level Only (ALL CHECKED) timelimit (Time Limit Value) hex:xx,xx,xx,xx 1-100 30 Minutes 40,77,1b,00 100 Minutes 80,8d,5b,00 scorelimit (Score Limit Value) hex:xx,xx,xx,xx 0-999 Score Limit 10 0a,00,00,00 Score Limit 30 1e,00,00,00 Score Limit 100 64,00,00,00 Score Limit 999 e7,03,00,00 maxplayers (Player Limit Value) hex:xx,xx,xx,xx 1-32 32 Player Limit 20,00,00,00 tickrate (Network Tick Rate Value in msec) hex:xx,xx,xx,xx 100-300 80 MSEC Tick Rate 50,00,00,00 Only accepts minimum of 100 in the field, but can be manually set in registry to a lower number. gamename (Game Name Value) Game Name: "abcdefghijklmno" Jedi Knight DirectPlay Settings Key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432N ode\microsoft\directplay\applications\jedi Knight 1.0 hex:xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx hex:61,00,62,00,63,00,64,00,65,00,6 6,00,67,00,68,00,69,00,6a,00,6b If left blank, defaults to "(playername)'s Game". Otherwise accepts 1-15 characters. Each character is seperated by a 00. CommandLine -windowgui -devmode Launch parameters for game. CurrentDirectory Path File (Does not change) Guid (Does not change) (x86)\lucasarts\jedi Knight (x86)\lucasarts\jedi Knight JK.EXE {BF0613C0-DE79-11d0-99C9-00A02476AD4B} Exactly the same as Path. Exactly the same as Current Directory.
Mysteries of the Sith Registry Key Documentation Mysteries of the Sith Game Settings HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\LucasArts Entertainment Company LLC\mysteries of the sith\v1.0 All keys and acceptable values are the same format as Jedi Knight with the exception of gameflags which has different values in MotS due to Character Personalities mode. maxrank (MP Host: Maximum Force Rank: 0-8) hex:xx,xx,xx,xx 9 Diferent Values ranging from No Force (0) to 1-8 Rank 0 - Uninitiated (No Force) 00,00,00,00 Rank 8 - Jedi Lord 08,00,00,00 gameflags - Use Score Limit, Use Time Limit (minutes), Team Play/Friendly Mode, Singlelevel Only, Mysteries of the Sith (personalities), Jedi Knight (ranked Jedi only) hex:xx,xx,xx,xx Checkbox Yes/No for all six settings. Mysteries of the Sith/Jedi Knight only one of the two checkboxes can be chosen. NO Score Limit, NO Time Limit, NO Team Play, 00,00,00,00, YES Mysteries of the Sith, NO Jedi Knight NO Score Limit, NO Time Limit, NO Team Play, 00,10,00,00, NO Mysteries of the Sith, YES Jedi Knight YES Score Limit, YES Time Limit, YES Team Play, 9B,01,00,00 YES Single-Level Only, YES Mysteries of the Sith, NO Jedi Knight YES Score Limit, YES Time Limit, YES Team Play, 9B,11,00,00 YES Single-Level Only, NO Mysteries of the Sith, YES Jedi Knight timelimit (Time Limit Value) hex:xx,xx,xx,xx 1-999 30 Minutes 40,77,1b,00 100 Minutes 80,8d,5b,00 scorelimit (Score Limit Value) hex:xx,xx,xx,xx 0-999 Score Limit 10 0a,00,00,00 Score Limit 30 1e,00,00,00 Score Limit 100 64,00,00,00 Score Limit 999 e7,03,00,00 maxplayers (Player Limit Value) hex:xx,xx,xx,xx 1-32 32 Player Limit 20,00,00,00 tickrate (Network Tick Rate Value in msec) hex:xx,xx,xx,xx 100-300 80 MSEC Tick Rate 50,00,00,00 Only accepts minimum of 100 in the field, but can be manually set in registry to a lower number. gamename (Game Name Value) Game Name: "abcdefghijklmno" hex:xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx,00,xx hex:61,00,62,00,63,00,64,00,65,00,6 6,00,67,00,68,00,69,00,6a,00,6b If left blank, defaults to "(playername)'s Game". Otherwise accepts 1-15 characters. Each character is seperated by a 00. Mysteries of the Sith DirectPlay Settings HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectPlay\Applications\Mysteries of the Sith 1.0 CommandLine -windowgui -devmode Launch parameters for game. CurrentDirectory Path File (Does not change) Guid (Does not change) (x86)\lucasarts\mysteries of the Sith (x86)\lucasarts\mysteries of the Sith JKM.EXE {A4FF3960-3B4F-11d1-96CB- 444553540000} Exactly the same as Path. Exactly the same as Current Directory.
Automatic Navigation Through the Jedi Knight Menus Auto Launcher Automatic menu clicks and key presses FIGURE 1 DirectPlay Launcher, DPLAUNCH.EXE Auto Launcher has written the instance-specific registry settings and launched DPLAUNCH.EXE. Auto Launcher now hooks into the application and uses the Run Application button to launch the game. NOTE: In the Application field of DPLAUNCH, the default Application needs to be forced by deleting the MotS or JK DirectPlay key so it defaults to one or the other. FIGURE 2 Jedi Knight or Mysteries of the Sith Launched by DPLAUNCH NOTE: The window needs focus to load to player selection screen. Auto launcher should force an ENTER key push to progress to host game settings screen.
FIGURE 3 Jedi Knight or Mysteries of the Sith Host Game Settings Page. Settings have been predefined and set through Auto Launcher s registry changes. Auto Launcher must force ENTER key to progress to character selection screen. FIGURE 4 Jedi Knight or Mysteries of the Sith Character Selection Screen Auto Launcher must force ENTER key to progress to game. FIGURE 5 Jedi Knight or Mysteries of the Sith successfully hosted to a launched game. Auto Launcher must force ESC key to in-game menu and launch the next Jedi Knight or Mysteries of the Sith game instance with the requisite registry edits.