STAR WARS™ Jedi Knight: Jedi Academy™

STAR WARS™ Jedi Knight: Jedi Academy™

Not enough ratings
Install JA++ Client and Dedicated Server (win32/64 bit)
By Hollow
Learn how to install JA++ (japp/japlus) client and setup a JA++ dedicated server in Windows 32/64 bit machines.
   
Award
Favorite
Favorited
Unfavorite
Client installation
JA++ is not a true client in the sense that it does not replace the executable/binary file that runs the game, rather it's a mod that runs on top of the executable and adds several improvements for clients and servers. We will call it "client" for simplicity and to separate from the server part. JA++ is a continuation of JA+, which is no longer in development, and they are not meant to be installed together and will cause errors if you try. However, JA+ clients will work on JA++ servers, and JA++ clients will also work with JA+ servers all the same.

Requirements
  • 32 bit Windows Binaries (cl_bins_win32.pk3 and sv_bins_win32.pk3), Assets (cl_assets.pk3), Animations (sh_animations.pk3), and Lua (sh_lua.pk3) files, obtain here[japplus.github.io]
  • 64 bit Windows Binaries (japp-windows-x86_64.zip), obtain here[github.com]
  • 7-Zip file archiver for handling compressed (.zip, .pk3) files. Free and open source, obtain here[www.7-zip.org]
JA++ cannot be installed alongside JA+. If you have the latter installed, you must remove it first.
  • Remove the JA+ GLA animations from your 'GameData\base' folder
  • Remove clientPlugin_v*.pk3 from 'GameData\japlus' folder
  • Alternatively, delete 'japlus' folder if you want to start clean

Install
Extraction:
  1. Download the files in the "Requirements" section above.
  2. Extract the contents of all the .pk3 files to 'GameData\japlus' folder.
  3. If you have a 64 bit operating system (nearly all modern systems are 64 bit), open the 'japp-windows-x86_64.zip'. Inside it, navigate to the 'cl_bins_Windows_x86_64.pk3' and 'sv_bins_Windows_x86_64.pk3' files, then extract the contents of both these files into 'GameData\japlus' folder.
Launch:
  1. Create a shortcut of the multiplayer game executable (jamp.exe, taystjk.x86_64.exe, etc) by right clicking the executable > Send to > Desktop (create shortcut).
  2. On your desktop, click on the created shortcut, then select Properties.
  3. On the Shortcut tab, look for Target input box. After the last quotation mark ("), add
    '+set fs_game "japlus". Make sure to include a space between the quotation mark and the '+set'. Example:
    "C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\jamp.exe" +set fs_game "japlus"

The shortcut will launch your preferred game client (vanilla, OpenJK, TaystJK, etc.) with JA++ main menu features (improved character selection, improved server browser), but it's not actually required. Joining a JA+/++ server will automatically load the clientside JA++ mod even if you don't launch the game with this shortcut.

Note: Placing the .pk3 files themselves in the 'japlus' folder will NOT work at all. You need to extract the contents of the .pk3 files into the 'japlus' folder. Why Raz0r's instructions say you should "place the downloaded files in GameData\japlus" folder directly is baffling. In Jedi Knight games .pk3 files are typically placed directly in base or mod folders (like his instructions say), so the fact you have to extract their contents for them to work is super confusing. It took 2 days of banging my head on the desk to finally troubleshoot the bad instructions.
Server installation
Requirements
  • 32 bit Windows Binaries (cl_bins_win32.pk3 and sv_bins_win32.pk3), Animations (sh_animations.pk3), and Lua (sh_lua.pk3) files, obtain here[japplus.github.io]
  • 64 bit Windows Binaries (japp-windows-x86_64.zip), obtain here[github.com]
Install
Identical as client installation. If you installed client above, you are done and can proceed to Configuration.

Standalone server installation is identical as client installation above, except you don't need to extract the contents of 'cl_assets.pk3' file. However, there is zero reason to do this since asset file takes virtually no space.

Configuration
Go to 'GameData\japlus' folder, and open the 'server.cfg' file with a text editor (or create if it doesn't exist). Copy and paste the following code, then edit the cvars (configuration variables) you deem appropriate. Do not forget to modify the hostname and rconpassword.
  1. Right click on your desktop background, select > Open in Terminal.
  2. enter the following command: notepad japlus_dedicated_server.cfg
  3. When it asks if you want to create new file, select Yes
  4. Copy and paste the Server Config in the code below
After this, edit the cvars (configuration variables) you deem appropriate. Do not forget to modify the hostname and rconpassword. Double slashes at the start of a line (//) make the compiler not read the line (called "comments"). Erase the // to enable those lines (also called uncommenting a line). Only uncomment lines that start with 'set' or 'seta'. Everything without those are just human readable information for you, if you uncomment those the file will break.

////////////////////////////////////////////// ///////////JA++ SERVER CONFIG FILE//////////// ////////////////////////////////////////////// //---------SERVER PASSWORDS----------- seta rconpassword "ABCD1234" //rcon (remote control) password, to run privileged commands on the server //set g_password "pass for private server" //Server password. When set, players can only join if they enter this password //set sv_privatePassword "pass for private clients" //set sv_privateClients 0 //----------MAIN SETTINGS------------ set sv_hostname "JA++ Server" set g_motd "This is the message of the day" set sv_maxclients 32 // gametypes // 0 = FFA // 3 = DUEL one on one tournament // 4 = POWER DUEL // 6 = TEAM DEATHMATCH // 7 = SIEGE // 8 = CTF set g_gametype 0 set sv_maxRate 25000 //[Connection Speed] / ([Num Clients] x 8 ) = [sv_maxrate] set sv_master1 "master.jkhub.org" set sv_master2 "masterjk3.ravensoft.com" set sv_master3 "master0.gamespy.com" set sv_master4 "master.qtracker.com" set sv_master5 "clanservers.net" set g_banIPs "" set sv_maxPing "600" set sv_floodProtect "1" set sv_reconnectlimit "2" set bot_minplayers 5 set sv_fps 30 //---------FORCE POWERS & WEAPONS---------------- set g_weaponDisable 131043 // just saber: 524279 set g_forcePowerDisable 16357 // For forcePower bit values use the rcon cmd forcetoggle set g_maxForceRank 7 set g_forceRegenTime "100" // Force regen speed. Smaller is faster. 200 is the basejka default value. //----------OTHER SERVER SETTINGS------ //set g_gravity "800" //set sv_timeout "300" //set g_warmup "20" //set g_doWarmup "0" set g_teamAutoJoin 0 set g_friendlyfire "0" set g_friendlySaber "0" //set g_log "games.log" //set g_statLog "1" //set g_statLogFile "stats.log" set g_inactivity 0 set g_timeouttospec 0 set g_allowvote 524287 set timelimit 0 set fraglimit 50 set capturelimit 5 set duel_fraglimit "10" set g_autoMapCycle 0 set sv_allowdownload 0 set g_dismember 100 // the players must allow cg_dismember "100" set cg_dismember 2 set g_saberLocking 0 set g_saberLockFactor 2 set g_slowmoDuelEnd 0 set g_allowDuelSuicide 0 set g_siegeTeamSwitch 1 set g_locationBasedDamage 1 set g_stepSlideFix 1 set g_allowNPC 1 set g_useWhileThrowing 1 set g_armBreakage 0 set g_enableBreath 0 set g_enableDust 1 // Remove some items set disable_item_medpak_instant 0 set disable_item_medpak 0 set disable_item_medpac 0 set disable_item_shield_lrg_instant 0 set disable_item_shield_sm_instant 0 set disable_item_force_boon 1 set disable_item_force_enlighten_dark 1 set disable_item_force_enlighten_light 1 set sv_pure "0" // not ja+ related but used by the plugin system set bot_honorableduelacceptance 0 set dmflags 128 set g_teamForceBalance 1 set g_debugMelee 1 set d_saberKickTweak 0 // 1 (default basejka)=> staff kick damage weaker, 0 => real damage set g_jediVmerc "0" set d_saberSPStyleDamage 0 //////////////////////////////////////////// ///////////ALL JA++ MOD SETTINGS//////////// //////////////////////////////////////////// set bot_addDelay 3 set bot_maxbots 0 set g_debugTrace 0 set g_forceClientUpdateRate 250 set g_jplua 1 set g_logAdmin 1 set g_logClientInfo 0 set g_logConsole 0 set g_logFormat 1 set g_logItemPickup 1 set g_logSecurity 0 set g_privateDuel 23 set g_privateDuelHealth 100 set g_privateDuelShield 100 set japp_accurateMuzzle 0 set japp_allowBusyAttack 1 set japp_allowButterfly 1 set japp_allowDFA 1 set japp_allowEmotes 1 set japp_allowFallSuicide 1 set japp_allowFlagDrop 0 set japp_allowFlagPull 0 set japp_allowForceCombo 0 set japp_allowHook 1 set japp_allowJetpack 1 set japp_allowKata 1 set japp_allowLedgeGrab 0 set japp_allowPushPullKnockdown 1 set japp_allowSaberSwitch 1 set japp_allowSPCartwheel 1 set japp_allowStab 1 set japp_allowToggleSpecialAttacks 0 set japp_allowVoiceChat 960 set japp_allowWeaponDrop 0 set japp_allowWeaponPull 1 set japp_alwaysSpawnPowerups 0 set japp_ammapAnyGametype 0 set japp_antiFakePlayer 1 set japp_antiUserinfoFlood 1 set japp_charRestrictRGB 1 set japp_chatProtection 1 set japp_crashHandler 0 set japp_damageNotifications 0 set japp_duelStats 1 set japp_empowerDrain 0 set japp_fallToDeathInstant 0 set japp_fixWeaponCharge 1 set japp_flipKick 1 set japp_flipKickDamage 20 set japp_flipKickKnockdown 1 set japp_forceLightningDamage 1 set japp_gripHolsterSaber 0 set japp_hookSpeed 800 set japp_improveYellowDFA 1 set japp_instagib 0 set japp_itemDropStyle 1 set japp_maxConnPerIP 3 set japp_mercInfiniteAmmo 1 set japp_passRankConflict 1 set japp_pauseTime 120 set japp_promode 0 set japp_randFix 1 set japp_readyThreshold 0.5 set japp_removeOldMines 1 set japp_saberBlockChanceMax 0.75 set japp_saberBlockChanceMin 0.0 set japp_saberBlockChanceScale 0.5 set japp_saberBlockStanceParity 3.0 set japp_saberIdleDamage 1 set japp_saberTweaks 0 set japp_scorePlums 0 set japp_scoreUpdateRate 1000 set japp_shootFromEye 0 set japp_showLaggingClients 1 set japp_slapDistance 50.0 set japp_slideOnHead 1 set japp_spawnActivateSaber 0 set japp_spawnWeaps 12 set japp_speedCaps 0 set japp_suicideDropFlag 0 set japp_teleportBits 0 set japp_unlagged 1 set japp_unpauseTime 5 set japp_userinfoValidate 805306367 set japp_voteDelay 3000 set japp_vq3physics 0 set japp_weaponPickupAlways 0 set japp_weaponRoll 0 set jp_gripSpeedScale 0.8 set pmove_float 0 set pmove_overbounce 1 set g_forceRegenTimeDuel 200 //----------SERVER MAP LAUnCHING--------------- map mp/ffa3 // default map
Semi-optional: Install full game/engine client
If you are on Steam, you might notice that trying to launch the 'jamp.exe' shortcut throws an "Application load error 5:0000065434". This is because Steam has DRM that only allows you to launch the game using the Steam launcher, not through the executable directly (which is BS). Placing the command line arguments in the game properties (right click game on Steam > Properties > on Launch Options) does not seem to work correctly for me.

Because of this, I recommend you install a game client mod. Raz0r suggests OpenJK, which is a client that modernizes the game engine to support widescreen resolutions and such, but keeps everything else mostly vanilla. If you want a vanilla experience, I highly suggest OpenJK. However, I will show how to install TaystJK as it is one of the best modern clients available. It's based on EternalJK which itself is based on OpenJK, so it should work just fine with japp, but it also offers some quality of life improvements the game desperately needs (like japro integration, out of the box native resolution, excellent Vulkan video renderer, and much more).

Installation
Installing TaystJK[jkhub.org] is extremely easy. Download the latest build from here[github.com], then extract the contents of 'TaystJK-windows-x86_64.zip' into the GameData folder. Then create a desktop shortcut as I taught you, but use the taystjk executable and put the command line arguments like so:
"D:\SteamLibrary\steamapps\common\Jedi Academy\GameData\taystjk.x86_64.exe" +set fs_game "taystjk"

You can even launch TaystJK with JA++ activated on top
"D:\SteamLibrary\steamapps\common\Jedi Academy\GameData\taystjk.x86_64.exe" +set fs_game "japlus"

JA++ should now be fully working, whether you installed OpenJK or TaystJK. If you installed TaystJK, remember to change the game renderer to Vulkan in the video settings in-game. Have fun!
Port Forwarding
Very important! If you haven't done so yet, we need to open the ports that Jedi Academy Dedicated Server uses to receive external connections (ie. internet players). Please follow the guide here for instructions how to do it, or use a search engine for router-specific instructions.