Jedi Academy 1.4

New version available! Find it here.

By cHoSeN oNe
Date: 07-23-2003




Version 1.4
Author Michael 'cHoSeN oNe' Nohai
Type Jedi Knight II
Server Modification

1.4 - Updates
1.3 - Special Edition
Server Side Only Installation
Rcon, Admin, and Knight commands
Emotes, Client, & Admin commands
Damage CVars
Message CVars
Other CVars
Known Issues
Other Cool Mods

This mod is the official mod for the Jedi Academy. A server-side only modification designed to keep the peace and order on the servers. This is the final chapter of this great series for Jedi Knight II: Jedi Outcast®. With that in mind, I set out and improved this mod a great deal that makes it stand out from its preceding versions. It's loaded with Admin Commands, Client Commands, Emotes, Options, and cVars; Extremely modified to meet any clans expectations. This is truly the only mod you will ever need to get that doesn't alter the normal gameplay of Jedi Knight II: Jedi Outcast® Please visit us at or on IRC at #jedi-academy,

1.4 - Updates
New IP Range Banning Admin Command ( mbanrange)
g_mAllowPowerups - Enforces the use of powerups when 1 or more (Except for ALL) force powers are disabled.
g_mDebugTerminator - Will enforce the "Saber Only" server rule and will allow no weapons other than saber upon it.
g_mDebugEmpower - Will enforce the "No Force" rule and will not allow empowered clients to have force.
g_mAllActivity - detects all activity by client when using the g_timeouttospec cvar, thanks Lee
bot_honorableduelacceptance - now available without cheats, default is enabled.
Spectator Followers can now be kicked, banned, etc. without affecting others.
mvstr - command that allows you to choose which map you want in the rotation, without disrupting the order.
mnextmap - executes next map available in rotation.
g_mAllowAdminMap - controls the mnextmap command usage.
g_mAllowAdminVSTR - controls the mvstr command usage.
g_mAllowTeamSuicide - allows clients to use the \kill command when in team games.
Added Thunder sound effect to admin & knight login.
Added Explode sound effect to the mexplode admin command.
Most default settings that were in academy.cfg are now hardcoded into mod for faster and easier configuration. - this is a perl script for BSD and Linux servers only, designed to archive your games.log file weekly. (written by neoE)
Minor Code Tweaks

1.3 - Special Edition
mnpcaccess does not give client access to cheats.
You can now use clients names for assigning mnpcaccess/mnpcnoaccess.
Fixed an emote exploit due to g_mDebugCheats set to 1 and cheats enabled. (debugKnockMeDown)
Fixed emote exploit when in spectator.
Disabled the use of pushing/pulling dropped items. (this fixes the weird spawnpoint bug)
Empower only gives team force and team heal power as an extra when playing team games only
Empowered clients now has stronger team force and heal when playing in team games.
g_mAdminGun - Enables/Disables AdminGun system. (includes script)
Fixed using emotes when dead.
Fixed using terminator and unterminator to become alive after death.
Fixed Teleporting the dead.
g_mAllowTeleFlag - default is enabled, if set to 0, clients cannot teleport during CTF and CTY gameplay.
New BanIP.dat file stores banned ip's. Full use of 1024 saved ips activated! ( written by Lee Oattes )
Clients cannot use emotes during movements, specials, backattacks, and other saber attacks.
Tweaked the whois command a little again to make it more stable.
Server messages print better for clarity.
New Voting checks, 1) Failed Vote Delay, 2) Need 2 clients to call a vote 3) No voting within 1 min of map change.
g_mAllowVoteMap, g_mAllowVoteGameType, g_mAllowVoteKick - new cVars to control certain voting rights.
Clients can no longer change their name during a vote to escape its purpose.
g_mGiveAdmin - if set to 1, you can grant an admin access level to anyone on the server.
madminaccess, mdenyadminaccess - commands for granting/denying admin access to clients.
New admin command mprotect/munprotect - protects client on server from attacks untill client attacks others.
Silence/Unsilence has new mode parameter.
Sleeping and Punished clients now are invulnerable to attacks.
Explode now gives you a selection of which appendage you wish to detach.
Enable/Disable use of black color names.
Client's nick can now be 50 characters rather than 32.
mreward command removed.
New logout function - to logout as an admin or knight.
Timeout to spectator finally working correctly with g_inactivity timer. ( written by Lee Oattes )
Ignore - ignore certain clients from chatting so you dont have to listen to them.
Punished and Sleeping clients can no longer use the \kill command.
New cVar g_mNameChange - Name changing time allowance, default is 1 minute.
Same name checking, auto renames when a client with same name is found.
New g_mAllowBotLimit, g_mMaxBots, and g_mMinHumans to control amount of bots and players on the server at any given time.
Saga Mode compatible, including all bug fixes made by authors in Lucasforums.
Included Filter for all QTracker� servers using JA Mod. ( Double click JAMod.qtf file to install )
Optimized Source code to increase speed and stability.
All Features included from previous releases.

Create a directory like this:
where '/home/.../jk2/' is the path where you installed Jedi Knight II. Now you can start the server with the '+set fs_game academy' argument.

./jk2ded +set fs_game academy +exec server.cfg +exec academy.cfg

Place in location of your server's jk2 root directory.
View the cron script by using the crontab -1 command to see the script.
Next edit the script using the crontab -e command and map the path to the perl script.
If you wish to Back-up at 5 am every week, every month, type the following.
0 5 * * 0 /path/jk2root/
If you wish to have an email sent to you in case the script fails, type MAILTO="your email"

Create a directory like this:
X:\...\Star Wars JK II Jedi Outcast\GameData\academy
where 'X:\...\Star Wars JK II Jedi Outcast\' is the path where you installed Jedi Knight II. Now you can start the server with the '+set fs_game academy' argument.

jk2mp.exe +set fs_game academy +exec server.cfg +exec academy.cfg

For the Ban code, you will need to authorize FULL Admin access to the academy folder.
Windows: Make sure you have an administrator account.
Linux: command = man chmod, then follow on screen instructions.

Server Side Only Installation
If you install the mod the way as described with a pk3 file, the client will still have to download it when he connects. To prevent this, since Jedi Academy Mod is serverside only, You need to put all files in academy folder. The directory should now appear like ...../jk2/gamedata/academy under Windows or \ ...../jk2/academy under Linux. Under this dir there will be a vm dir with one .qvm file in it as well as the academy.cfg file. Now when a client connects he should not have to download the mod before he can enter the game.

Various Trainer and Knight commands
Logging of player IP when player connects to the server. Logging happens in the following format:
mlog_ClientConnect: <player client id> '<player name>' -> '<player ip>'
Logging of Trainer and Knight commands. Every command will be logged in the following format:
mlog_command <playername>
Removed the 2 player at a time duel limit.
Sabers don't automatically ignite at the start of a duel.
"No bacta rule" is now working for duels.
Voting system is now limited for Trainer use only.
When player wins a duel he now gets up to 25 shield points as well as the full 100% health.
Typing !motd or !rules when saying something shows the motd to the player who said it.
Typing !version or !author when saying something shows the version number and author.
Typing !home or !web when saying something shows the JA home page link.
Setting the g_allowDuelSuicide to 1, will enable the clients to use \kill during private duels.
Setting damage for all the moves.
Various emotes.
Fixed Red Stance kick bug, are now able to kick those that use Red.
Invisible Saber Bug fix.
Spectator following/saber throw bug fixed.
g_banIPs cvar removed because it is no longer needed.
g_mMOTDShowTime, g_mSlapKnockDownTime - converted to seconds

Rcon, Admin, and Knight commands
NOTE: [..] are optional

<..> are required

playerid => Can be a client id, full player name or partial player name. For example if there's a player named 'Padawan' and you want to kick him you can use this: mkick pad; mkick pada; mkick wan; etc. (Just watch out if there are more players with the same sequence in their name. At this point only the first encountered player is taken for the command. Also note that the keyword 'all' has special meaning. Most commands take the 'all' keyword to execute the command on all players on the server.

reason => This sends a message to both the server and the client consoles when a player is kicked or kick-banned. For example you can type: "\amkick pada please follow the rules next time." This will send the message "please follow the rules next time" to the server. Also message will be sent to the person's console. (They can scroll up in their console when they are disconnected)