This guide was not written by me, to get in touch with the admin of this site, email admin@tr1x.com

Meet the PennyFAQer.
Every time I had a question, I wrote it down on this pad to remember to ask when I was talking to a professional.
Every time I got an answer, I wrote that down, too.
Same thing here, now it's on the Chop forum instead of my desktop.

It's got kinda long, and now that it's here it's getting a lot longer; I recommend using your browser's search function [Ctrl+F] for referencing what you're looking for. [Example: is it cg_hudfiles or cg_drawhudfiles? I have to check those all the time.] Especially since this is in virtually no order whatsoever.
(Well some order:--> Unanswered Questions, Game Questions, Command Questions, Scripting Questions)

Variables (the stuff you gotta fill in: keys, commands, etc) appear in these things: {your-name-here}.

Got a question not listed?
Got a correction?
Fire away.





Currently Unanswered Questions:

How to have a speedometer up in the corner to clock differnet stylings of strafe-jumping (similar to the fps display, and preferably with distance-traveled vs. distance-achieved readouts)?
How to make a Team-Energize script that will execute even when the console is up?
How to automate a script to run every time I enter a particular map?
How to bind +taunt to your death?
How to increase/decrease the size (number of lines held) of the console log?
How to increase the number of console lines displayed on the screen (default at 3)?
What value is the move speed on the server checkable under?
How come the /tell command doesn't always work?
Why do some cfg values in \base\cfg not get overwritten by the later execution of the disruption\cfg?
How to get the Team-Energize animations/sounds to shut off?
How to get "+button0" - "+button14" to be programmed or do anything useful?
Where is a tutorial explaining in depth the why's and how's of +/- commands?
How to increase a setting by 1 value (or preferrably x value) no matter what the value currently is (such as increasing your crosshairsize with some kind of +1 command)?
How to get a screenshot bind to work when the console is open?
How to automate a script to run at the start of every game session?
How to automate a script to run at the end of every game session?
What does "slider handle key exit" mean?
What does "Three keys down for a button!" mean?





Game Questions:

What maps are there (and slangnames)?
Quote:
The Big4 CTF:
Imperial / ctf_Imperial / Garrison27-D / Imp
Yavin / ctf_Yavin / YavinTemple / Temple / Temple Tournament
Bespin / BespinExhaustShafts / BespinPipes / Pipes
NS Streets / ctf_NS_Streets / Nar-Shadaa / WarringFactions / NarShad

The New4 CTF [Get them here]:
Ruins / ctf_Ruins / YavinRuins
BespinFort / ctf_BespinFort / BespinTowers / Towers
Kashyyyk / ctf_Forest / KashyykTreeCanopy / Trees
Coruscant / Coruscant Streets / ctf4

FFA:
YavinTempleFFA / YavinFFA / FFA / Massassi Temple
Raven

[Note that "Bespin" refers to BespinExhaustShafts only, never BespinTowers. Similarly, saying "Yavin" refers to YavinTempleCTF only, never YavinRuins or even YavinTempleFFA. Rule of thumb: the Big4 always outslang the New3, CTF always trumps FFA.]

How are points awarded?
Quote:
CTF_CAPTURE_BONUS 100 // what you get for capture
CTF_TEAM_BONUS 25 // what your team gets for capture
CTF_RECOVERY_BONUS 10 // what you get for recovery
CTF_FLAG_BONUS 10 // what you get for picking up enemy flag
CTF_FRAG_CARRIER_BONUS 20 // what you get for fragging enemy flag carrier
CTF_CARRIER_DANGER_PROTECT_BONUS 5 // bonus for fraggin someone who has recently hurt your flag carrier
CTF_CARRIER_PROTECT_BONUS 2 // bonus for fraggin someone while either you or your target are near your flag carrier
CTF_FLAG_DEFENSE_BONUS 10 // bonus for fraggin someone while either you or your target are near your flag
CTF_RETURN_FLAG_ASSIST_BONUS 10 // awarded for returning a flag that causes a capture to happen almost immediately
CTF_FRAG_CARRIER_ASSIST_BONUS 10 // award for fragging a flag carrier if a capture happens almost immediately

How to color a name or talking?
Quote:
^1Red
^2Green
^3Yellow
^4Blue
^5Light blue
^6Purple
^7White

There are four different places names are displayed, each with slightly different display results (this isn't complete, but here are some details):

Scoreboard Names: Nothing unusual.
Player Names: White names appear as team color (unless you use ^7).
Loading Names: Strange ^ values will show the entire name in that color.
Console Names: The color black will show up.

Almost every other key produces some kind of color effect, some appear as black at times, some show color during the load screen, some combos will hide parts of names at different views, some will hide a name completely, some will make periods appear as blocks/flags, etc.

Also, the above coloring switches apply to ALL text in the game, and so can be used to modify /say's and /say_team's (from their default ^2 and ^5) and console/echo messages.

How to move the fastest?
Quote:
Speed3 + Strafe-jumping

What is strafe-jumping?
Quote:
It's a strange jump pattern indigenous to the QuakeIII engine, that's main purpose is not really jumping, but speed: it is the fastest way to move in JediKnight. [OK, it's tied with a mid-air team-blast (shooting a teammate).] It also produces the longest jumps, simply because your player is moving so fast (maybe roughly a 1/3 more distance.).

It's a must-learn, the only 'secret' needed to win. When you see someone accused of having a "speed-cheat", this is what they're doing.

It "happens" with or without force-speed on (though for first-timers it is probably easier to learn/"feel" it at full Speed3).

There are many wonderful tutorials on how to do it (first stop, the Education Page at this site). Make it a date. Preferably a video to watch it being done. There are practice-maps, but they're better for honing technique, kinda hard to learn in.

I personally recommend learning to do it in one direction - Left or Right - first. It's like slowly and constantly curving while you hop along; once you "feel where the speed is" and get the hang of them seperately you can put them together for a straight running method. YavinFFA is fantastic for this, you can just do laps around the temple in either direction.

How do you "Matrix"-like dodge, where the body automatically dodges a shot super fast?
Quote:
Have your Force-Seeing maxxed out.
You are still vulnerable to shots below the knees or direct headshots (<-- how to beat autododge).

[Note: it is not actually necessary to have Seeing on (in use) to get this auto-dodge, it simply needs to be maxed out in your force-powers.]

What is flagaiming?
Quote:
Keeping your gun centered on the flag, then - without moving - firing when an enemy passes over trying to get the flag. Though it's not a banning offense, it is extremely frowned upon by all players, and - because it teaches nothing in the way of aiming practice - it is guaranteed to ceiling a player at a weak shooting-skill level.

How long does a dropped flag take to auto-return to the flag-pedestal?
Quote:
30sec or 40sec, being debated.
Use your own clock or cg_drawtimer (see below) and get a reading for yourself so you'll know.

How long before a player that doesn't change position is dropped by the server?
Quote:
3min, with a "10 seconds to inactivity drop!" warning at 2:50

How to wall-float and/or get on the roof?
Quote:
A combination of Speed3 + Jump3 + Strafe-jumping

Any surface can be wall-floated, if you have enough speed and the right angle (Kashyyyk and Nar-Shadaa best for learning that key angle).
This is not necessary for regular gameplay.
Try to learn strafe-jumping first, it will save you a lot of headache.

Check these videos out:
http://www.own-age.com/vids/video.aspx?id=579
http://www.own-age.com/vids/video.aspx?id=326
http://www.own-age.com/vids/video.aspx?id=633

Also, any teammate can either teamblast you onto the roof or can jump-ladder you up (jump-ladder: jump directing underneath you, giving you something to jump off of a 2nd time).

What is a killtracker?
Quote:
A program that automates a broadcast chat message Every Single Time you kill someone; most typically to "count" kills (though there is rarely a known starting point for the count).

Use of a killtracker in this server is very frowned upon by players and a banning offense. This is for two main reasons:
1. They increase traffic, slowing down the server (imagine if everyone used one...)
2. They kinda ruin real chatting in the game, by causing the chatmessage sound to go off non-stop, making it hard to tell if a message went by or if it was just another killtracker broadcast. Eats up space in everyone's console log, too.

Do people really cheat?
Quote:
Yes, tailored to whatever method the person wants to cheat, so watch out. Each cheat comes with a free "banned-for-good" option, ending your days in the server permanently.

How to catch/stop cheats? Go into spectator, click till you get to them, take a demo, post it on the forum. If you're not entirely sure about what you see, ask someone else first or note who the player is: better than 90% of cries of "cheat" in the server are false.

Above all, don't quit just because you think/know someone's cheating. The idea of a fair game is pretty much over, but you'll be a weaker player if you don't take the opportunity to practice fighting against these things with your Tenloss. Stop talking to the cheater, and play around trying to find a chink in their armor. It's practice, and it'll make you better at straight beating the same type of cheat in the future.

How to change the backround music in the game?
Quote:
//Under Construction//, look around the forum/google for now.

How to make a shortcut that goes directly into Chop Shop DISRUPTION! Instagib?
Quote:
Make a desktop shortcut to your jk2mp.exe, then right-click the new shortcut and go to Properties, in the Target box tack on (don't delete anything, just add this to the end):
+connect 67.15.23.244:28070






Commands Questions:

How do you control commands while in the game?
Quote:
Shift + ` to get the Console menu (basically: ~).

"/" first allows a command (forgetting it usually means that what you typed will be spoken to the group!).
PageUp and PageDown scrolls the log.
Up and Down arrows cycle through your previous commands.
The Console can be accessed both from inside a map and while at the JKO main menu.

How do you control commands while outside the game?
Quote:
All of the configurations you use are saved in two files that are both called jk2mpconfig.cfg; one is in your \GameData\base folder, the other is in your \GameData\disruption folder. The \base\cfg applies itself to all multiplayer JKO games that you play, but the \disruption\cfg only executes when you enter ChopShopDISRUPTION!Instagib. These files can be opened with a word program and edited very easily, and more .cfg files and autoexec.cfg files can be added to your \GameData\base folder to further customize your game.

[Note: the relationship between these two jk2mpconfig.cfg files is a little strange. The \disruption\cfg executes 2nd, and so should take precedence, but exceptions occur. Also, changes made inside the game can propogate to both files, one of the files, or sometimes neither. For how to deal with all this and create a personal cfg, skip to near the end of this FAQ.]

How to bind a command to a key?
Quote:
/bind {key} "{command}"

[Note: any command, ANY of the following, can be bound to a key.]

How to bind multiple commands to one key?
Quote:
/bind {key} "{command};{command}"

In other words, the semicolon ";", but be very mindful of quotation marks in these binds, you may have to play with them to get things just right.

Also, you could create a cfg file in the \GameData\base folder with the multiple commands,
and then type /exec xxx.cfg in the console.

How do I create and use a cfg file?
Quote:
Take a text file or word document, change the last three letters from .txt/.doc to .cfg. Set your computer to open .cfg files with your favorite text program.

To run a .cfg file, type in the console:
/exec xxx.cfg
or
/bind {key} exec xxx.cfg

[Note: "^" word-coloring applies to executing cfg files, too. If you name a file ^1xxx.cfg and bind a key to exec it, it will appear as "execing xxx.cfg". This is handy for differentiating multiple cfg file exec's.]

How to check a specific bind?
Quote:
/bind {key}
Will show you info like this:
"{key}" = "{command}"
If nothing is currently bound to the key it will show:
"{key}" = ""

How to see a list of all current binds?
Quote:
To see them in the console:
/bindlist

For a hard copy:
/writeconfig x.cfg
writes an extra config file of your current binds and settings, look for it in your \GameData\disruption folder

How to see a list of all current binds AND settings being used?
Quote:
/writeconfig x.cfg
File will be written to the \GameData\disruption folder

How to see what the bind abbreviation is (if any, some keys won't work) for a currently un-binded key?
Quote:
Go to Esc, Controls, then pick a function and hit the key, see what it says.

How to jump directly to another server?
Quote:
/connect 0.0.0.0:00000
Instead of zeros, put the IP:PORT

For instance:
/bind {key} connect 67.15.23.244:28070

How to return to the main JKO menu?
Quote:
/disco
/bind {key} "disconnect"

How to exit the game?
Quote:
/quit
/bind {key} "quit"

Why do some commands have a "+" or "-" in front of them?
Quote:
Good question, I have no idea yet, but these commands can certainly act a little differently. Sometime a "+" can get stuck on, and you'll have to type it's "-" in the console to shut it off.

How to talk to the group?
Quote:
/say {message}

/bind {key} say "Hi!"

/bind {key} messagemode
Brings up a prompt

How to talk to just the team?
Quote:
/say_team {message}

/bind {key} say_team "Hi!"

/bind {key} messagemode2
Brings up a prompt

How to private chat?
Quote:
/bind {key} "messagemode3"
then point gun to select person and hit that bind key

How to private chat without pointing the gun?
Quote:
/serverstatus
to see the # of the person you want, then
/tell {player number} {message}
/tell 3 Hi!
or
/tell {exact player name} {message}
[Note: If you had to use a ^color to make the name, it's isn't necessary to ^7 the color off.]

How to change name?
Quote:
/name {newname}
/bind {key} name "{newname}"

How to switch skins from the command line?
Quote:
/team_model {skin}

How to wave to a person and taunt them?
Quote:
/bind {key} "+taunt"

How to make the green box make noise?
Quote:
/bind {key} "+use"
[Note: This pumps up your shield, in case force_lightning is really abusing you.]

How to bind team switches?
Quote:
/bind {key} team auto
/bind {key} team blue
/bind {key} team red
/bind {key} team spectator

How to commit suicide?
Quote:
/kill
/bind {key} "kill"

How to set the sound values?
Quote:
/s_musicvolume {value}
Controls the music volume.

/s_volume {value}
Controls the effects volume.

How to preset the EAX sound on/off?
Quote:
/seta s_UseOpenAL "0"
turns it off
/seta s_UseOpenAL "1"
turns it on

Not to be done from the command line; set the value in your GameData\base\jk2mpconfig.cfg

How to see bodies dismember when shot?
Quote:
/seta cg_dismember 0
for no dismemberment

/seta cg_dismember 1
for limbs

/seta cg_dismember 2
for limbs, heads, waist-cuts

also
/seta g_dismember 100
(0 to 100) is the percent of time that dismemberment will occur when the model is hit in the right place.

How to make the guns not make marks on the wall?
Quote:
/cg_marks "0"
"1" to bring them back

How to make the gun disappear?
Quote:
/seta cg_drawGun "0"
"1" to get it back

/bind {key} "cg_drawGun !"
to toggle

How to change the crosshair size?
Quote:
/seta cg_crosshairSize {value}
Default is "24"
About "700" is fullscreen (strictly for big-game).

How to get a different crosshair?
Quote:
/seta cg_drawcrosshair "1"
'1' is norm, '0' is none, '2-8' are different, '9' is for hardcores.

How to steady my aim?
Quote:
/seta cg_bobroll "0"
/seta cg_bobpitch "0"
/seta cg_bobup "0"
/seta cg_runroll "0"
/seta cg_runpitch "0"

[For a good time, increase those all to "0.1".]

How to switch between a setting that is either on or off ("1" or "0")?
Quote:
/bind {key} "{setting} !"
/bind {key} toggle {setting}

How to see the game clock?
Quote:
/seta cg_drawTimer "1"
"0" to make it go away
/bind {key} "cg_drawtimer !"

How to see frames per second?
Quote:
/seta cg_drawfps "1"
"0" to remove
/bind {key} "cg_drawfps !"

How to see the lagometer?
Quote:
/seta cg_lagometer "1"
/bind {key} "cg_lagometer !"

How to see when packets are dropped?
Quote:
/showdrop 1
0 is default/off

How do I simplify the heads-up-display?
Quote:
/seta cg_hudfiles "1"
"0" is default

/bind {key} cg_hudfiles !

How to make the sky blank/black/1-color (nighttime instead of daytime)?
Quote:
/seta r_fastsky "1"
"0" is default
/bind {key} r_fastsky !

How to walk/run on command?
Quote:
/bind {key} cl_run !

How to stop all sound currently playing?
Quote:
/bind {key} soundstop

How do I set/fix the mouse speed in the cfg?
Quote:
/seta sensitivity "1"
1 is a bit too slow, find something you like

How to have mouse speed accelerate as it is turned?
Quote:
/cl_mouseAccel {value}
0 is default/off

How do you change forcepowers from the command line?
Quote:
The main commands are: forcepowers and forcechanged and a string that looks something like this: 7-2-033000030000333000. However, I never learned how to do it because a Danish dude made this cool program, google it:
jk2_force_editor.zip

How do you see who's in the server, including spectators?
Quote:
/serverstatus

Can someone tell if you're spectating them, or how to see who's speccing you?
Quote:
/serverstatus
A spectator with a score (ie, not "0") is watching the player who has the identical score.

How to set the cfg value for fullscreen vs. windowed?
Quote:
/seta r_fullscreen "0"
is windowed
/seta r_fullscreen "1"
is fullscreen

How to make screen wider (fish-eyed, not pinhole)?
Quote:
/seta cg_fov "80"
lower number for small view, higher for wider view

How to get my player's position coordinates in the game?
Quote:
/viewpos

How to take a picture?
Quote:
/screenshot
/bind {key} screenshot

Adding "silent" eliminates the "wrote screenshot ..." echo in the upper left corner of the screen.
/bind {key} screenshot silent

Once I accidentally had a way to make a bind take a picture while the console was open (yes, I'm sure), but I lost how to do it. So, you'll have to fully type in "/screenshot" when you want to take a console pic; after that, just use the UPARROW to cycle back to the command instead of retyping it. You can take advantage of naming a screenshot from the console by adding a word after it, it's very quick, and very handy later on for identifying the file. For example:
/screenshot joke
This saves the picture as "joke.jpg" (JKO adds the extension automatically, if you put the ".jpg" on it would just save it as "joke.jpg.jpg").

How to remove all clutter from the screen?
Quote:
/cg_draw2d
/bind {key} "cg_draw2d !"
This is nice for taking clean screenshots because it removes the HUD-stuff and crosshairs from the screen instantly (though not the console messages).

How to change how long messages stay on the screen?
Quote:
/con_notifytime
3 is default
0 they don't appear at all

How to silence the console?
Quote:
/cl_noprint 1
0 turns it back on.

How to erase everything in the console?
Quote:
/clear
Using "/clear" is nice to get rid of any console messages in the corner of your screen before you take a pic, but remember that you will lose all information in your console (unless you're using "/logfile" to save stuff).

How to change how fast the console window drops-down/goes-up?
Quote:
/scr_conspeed {value}
3 is default
9 is fairly instant (though 99 is even faster)
1 is humorously slow
0 keeps it permanently down/up

How to record a demo?
Quote:
/bind {key} "g_synchronousclients 1; record; g_synchronousclients 0"
/bind {key} "stoprecord"

There are many, many beautiful scripts that get all funky with this, primarily for the reason that most computers will disconnect from a server if a name for the demo isn't specified (like putting "record demo0001;" instead of just "record;"). Why JKO will automatically name screenshots but not demos is a mystery, but if you get some error like "Invalid Delta, this isn't supposed to happen!" or kicked with a "CL_SetCGameTime:cl.snap.valid" error, just write/find a script to name your demos.

Also, demos are viewable by leaving them in the folder they were created in. If you want to watch a demo but have never recorded one, create a "demos" folder in such places as \GameData\base\demos or \GameData\disruption\demos.

How to copy the console log to a text file?
Quote:
/condump x.cfg
This copies everything currently in the console to a file named x.cfg (or whatever name and extension you want to give it) in the \GameData\disruption folder.

/logfile "0"
Logfile, when started, slowly copies every new entry in the console to a text file named qconsole.cfg in the \GameData\disruption folder.
"0" is off.
"1" copies the console in a big block after every map. Written over every time you play JKO again.
"2" copies the console line by line as it happens. Written over every time you play JKO again.
"3" copies like "2", BUT unlike "1"/"2" this doesn't overwrite, it appends data every time you play JKO, so you never lose info but the file gets huge.

How to see all possible commands?
Quote:
/cmdlist

How to see all possible cvars?
Quote:
/cvarlist
You'll need /logfile 1-3 to see them all.

How to see the current setting value?
Quote:
/{setting}
Will show the current and default values.

In addition to your own personal changes, it's useful for when you want to check the force regeneration time on the server:
/g_forceRegenTime
currently at "200"

Or the move speed on the server:
/???
currently at "?"

How to get the setting back to the "way it was" default?
Quote:
/reset {setting}






Scripting Questions:
/bind W say "You will pay the price for your lack of Scripting."; +force_lightning"

How do I save all my wierd binds and settings so that they're there every time I join the game?
Quote:
Two ways, what I used to do and what I do now:

1. Make your GameData\Disruption\jk2mpconfig.cfg file Read-Only, so that any changes have to be hard written by you. This can get a little wierd.

2. Make a personal cfg file in \GameData\base (preferably with a Very short name, like x.cfg, because you'll need to commandline type it on occasion), add a bind to the very top of it, like "/bind W exec x.cfg". Slowly put every custom bind/setting/script that you use into this cfg. When you next enter the server, go to the commandline and type /exec x.cfg (thereby saving that handy "W" bind to the \disruption\jk2mpconfig.cfg) This way, while the \disruption\jk2mpconfig.cfg loads whatever wackiness you configured the last time you played, pressing "W" will reload your "permanent file" (which I still paranoidly keep Read-Only). Unless of course you changed the W bind, so pick a key that you rarely ever mess with (so that you don't have to commandline exec the cfg constantly). I use the HOME button for this; I usually keep my 3 key open for trying spur'o'moment ideas, whatever's best for you. Also I keep an autoexec.cfg file in the \GameData\base folder with a single line - exec x.cfg - just to further railroad in those settings.

[Note: Autoexec.cfg files in the \disruption folder don't execute. Autoexec.cfg files in the \gamedata\base folder will always be overwritten two seconds after they execute by the \disruption\jk2mpconfig.cfg execution. So I don't use 'em. Any ideas? I've seen a lot of changes not happen from the \disruption\cfg because they were not in the \base\cfg... even though the \base\cfg executes first and should then be overwritten I think the execution order is \base\jk2mpconfig.cfg, \base\autoexec.cfg, and then \disruption\jk2mpconfig.cfg, but there's a few irregularities.]

Why do some settings keep coming back?
Quote:
Hard to say, keep trying things, this can be a pain. When working on automating my skin, I remember having my base/cfg set to Kyle, my disruption/cfg set to Kyle, an autoexec in base set to Kyle, and a line in the disruption/cfg that exec'ed a script to set skin to Kyle. What would I see when I'd came into the server? Desann, without fail, everytime.

In this case, I think deleting all my extra skins finally did the trick, good riddance. But this kind of thing happens a lot and seems like it's for a new and different reason every time.

What is scripting?
Quote:
Scripting is programming commands to run together, any of the Commands listed above.

How do I script one key to toggle between commands (when !/toggle won't work)?
Quote:
By using the set and vstr commands.

Though there are many variations, here's a basic example, for checking your fps and then shutting it off with the "f" key:

bind f vstr fps
set fps vstr fps1
set fps1 "cg_drawfps 1; set fps vstr fps2"
set fps2 "cg_drawfps 0; set fps vstr fps1"


Of course, you could just use the !/Toggle command because cg_drawfps is an on/off deeleebobber, but this is the general idea behind, say, cycling through model skins by pressing one button.

How to give a bunch of code a header title in the cfg?
Quote:
//
As in this one that we see all the time:
// generated by jk2mp, do not modify

How to automate console messages to myself?
Quote:
/echo {message}
This is like a chat message to yourself, and it is very useful when scripting switches that you can't always see change. For instance, if you were in BespinPipes and accidentally hit your bindkey for "/r_fastsky !", you would not be able to tell what you had just changed. Adding this "/echo" command to that bind would give you an onscreen message alerting you to what you had changed:
/bind {key} "r_fastsky !; echo "I just changed the sky."
This becomes phenomenally useful (and more complex) when you start to get a wide variety of scripts and switches going.

How to delay a command?
Quote:
/wait x
/bind {key} "{command}; wait 100; {command}"
Execution will pause for x "game tics"/frames before continuing. A "game tic" is much less than a second, but not a fixed constant: it depends on system and network variables.

The rule with wait commands is trying to get them as short as possible. To see why, type something like "/wait 750" into your console - you'll be waiting. You'll still have mouse movement, but every key/button (including mouse buttons) locks up until the wait tic reaches 750.

Also, any command in execution when the wait commands starts stays in execution (so if you were pressing "+forward" when it started, you'd be walking forward till the 750 was up).

How to script a mute button?
Quote:
Under 'mute2' you'll need to fill in the values that you normally use. [Check them by typing "/s_volume" and "/s_musicvolume" in the console.]

// Mute Button Script
bind {key} vstr mute
set mute vstr mute1
set mute1 "s_volume 0; s_musicvolume 0; set mute vstr mute2; echo "^6MUTE""
set mute2 "s_volume {value}; s_musicvolume {value}; set mute vstr mute1; echo "^2Sound ^2On""

How to script an automatic silence of force-seeing to listen for footsteps?
Quote:
/bind {key} "force_seeing; wait 75; soundstop"

Adjust the wait number as needed, too soon and it won't catch the sound in time. This is still a bit laggish for me to use, please post if you come up with a better version/method.

How to script a certain taunt to play while using a different skin?
Quote:
[This and the following script are experimental only: though it works on the scripter's end, I've never found someone to confirm that it's visible to other players. If you have any feedback or tweaks, please post.]

/bind {key} "team_model {taunt-skin}; wait 20; +taunt; team_model {current-skin}; -taunt"

The "{taunt-skin}" appears for less than a second, then it reverts to the original skin and executes the taunt. A little lag on the first switch for me, after that it's seamless. Adjust that wait number as needed. That "{current-skin}" will be the skin you want showing, whatever you're currently using. [And if you change between skins regularly --> happy scripting.]

How to script access to every taunt?
Quote:
This starts with the first skin, "bespin_cop". Whatever skin you want to use, add it to the initial bind and set the tat/tatup/tatdown initial-values accordingly.

// Full Taunt Script
bind {key} "vstr tat; wait 30; +taunt; team_model bespin_cop; -taunt"
bind {key} vstr tatup
bind {key} vstr tatdown
set tat vstr tat00
set tatup vstr tatcur24
set tatdown vstr tatcur02
set tat00 "team_model weequay"
set tat01 "team_model bespin_cop"
set tat02 "team_model chiss"
set tat03 "team_model desann"
set tat04 "team_model galak"
set tat05 "team_model gran"
set tat06 "team_model imperial"
set tat07 "team_model imperial_worker"
set tat08 "team_model jan"
set tat09 "team_model jedi"
set tat10 "team_model jeditrainer"
set tat11 "team_model kyle"
set tat12 "team_model lando"
set tat13 "team_model luke"
set tat14 "team_model monmothma"
set tat15 "team_model morgan"
set tat16 "team_model prisoner"
set tat17 "team_model rebel"
set tat18 "team_model reborn"
set tat19 "team_model rodian"
set tat20 "team_model stormpilot"
set tat21 "team_model stormtrooper"
set tat22 "team_model swamptrooper"
set tat23 "team_model tavion"
set tat24 "team_model trandoshan"
set tatcur00 "set tat vstr tat00; set tatup vstr tatcur24; set tatdown vstr tatcur01; echo "+taunt-Script: Weequay: '*foreign-language*'""
set tatcur01 "set tat vstr tat01; set tatup vstr tatcur00; set tatdown vstr tatcur02; echo "+taunt-Script: Bespin_Cop: 'Take that!'""
set tatcur02 "set tat vstr tat02; set tatup vstr tatcur01; set tatdown vstr tatcur03; echo "+taunt-Script: Chiss: 'Who cares? Out of sight, out of mind, says I.'""
set tatcur03 "set tat vstr tat03; set tatup vstr tatcur02; set tatdown vstr tatcur04; echo "+taunt-Script: Desann: 'Save your strength, fool.'""
set tatcur04 "set tat vstr tat04; set tatup vstr tatcur03; set tatdown vstr tatcur05; echo "+taunt-Script: Galak/Reelo/Shadowtrooper/Ugnaught: '*cackle*'""
set tatcur05 "set tat vstr tat05; set tatup vstr tatcur04; set tatdown vstr tatcur06; echo "+taunt-Script: Gran: '*foreign-language*'""
set tatcur06 "set tat vstr tat06; set tatup vstr tatcur05; set tatdown vstr tatcur07; echo "+taunt-Script: Imperial: 'Surrender or die!'""
set tatcur07 "set tat vstr tat07; set tatup vstr tatcur06; set tatdown vstr tatcur08; echo "+taunt-Script: Imperial_Worker: 'Ready to give up?'""
set tatcur08 "set tat vstr tat08; set tatup vstr tatcur07; set tatdown vstr tatcur09; echo "+taunt-Script: Jan: 'Come on out here.'""
set tatcur09 "set tat vstr tat09; set tatup vstr tatcur08; set tatdown vstr tatcur10; echo "+taunt-Script: Jedi: 'The force is my ally.'""
set tatcur10 "set tat vstr tat10; set tatup vstr tatcur09; set tatdown vstr tatcur11; echo "+taunt-Script: Jeditrainer: 'Let the force flow through you!'""
set tatcur11 "set tat vstr tat11; set tatup vstr tatcur10; set tatdown vstr tatcur12; echo "+taunt-Script: Kyle: 'Just takin' care of business.'""
set tatcur12 "set tat vstr tat12; set tatup vstr tatcur11; set tatdown vstr tatcur13; echo "+taunt-Script: Lando: 'Woo-Hoo!!'""
set tatcur13 "set tat vstr tat13; set tatup vstr tatcur12; set tatdown vstr tatcur14; echo "+taunt-Script: Luke: 'I'm saying that I want you to let go of your anger before it destoys you.'""
set tatcur14 "set tat vstr tat14; set tatup vstr tatcur13; set tatdown vstr tatcur15; echo "+taunt-Script: Monmothma: 'Yes.'""
set tatcur15 "set tat vstr tat15; set tatup vstr tatcur14; set tatdown vstr tatcur16; echo "+taunt-Script: Morgan: 'May the force be with you.'""
set tatcur16 "set tat vstr tat16; set tatup vstr tatcur15; set tatdown vstr tatcur17; echo "+taunt-Script: Prisoner: 'Come out!'""
set tatcur17 "set tat vstr tat17; set tatup vstr tatcur16; set tatdown vstr tatcur18; echo "+taunt-Script: Rebel: 'Give it up!'""
set tatcur18 "set tat vstr tat18; set tatup vstr tatcur17; set tatdown vstr tatcur19; echo "+taunt-Script: Reborn: '*cackle*'""
set tatcur19 "set tat vstr tat19; set tatup vstr tatcur18; set tatdown vstr tatcur20; echo "+taunt-Script: Rodian: '*foreign-language*'""
set tatcur20 "set tat vstr tat20; set tatup vstr tatcur19; set tatdown vstr tatcur21; echo "+taunt-Script: Stormpilot: 'Come here.'""
set tatcur21 "set tat vstr tat21; set tatup vstr tatcur20; set tatdown vstr tatcur22; echo "+taunt-Script: Stormtrooper: 'Hey! You there!'""
set tatcur22 "set tat vstr tat22; set tatup vstr tatcur21; set tatdown vstr tatcur23; echo "+taunt-Script: Swamptrooper: 'One more kill for me.'""
set tatcur23 "set tat vstr tat23; set tatup vstr tatcur22; set tatdown vstr tatcur24; echo "+taunt-Script: Tavion: '*cackle*'""
set tatcur24 "set tat vstr tat24; set tatup vstr tatcur23; set tatdown vstr tatcur00; echo "+taunt-Script: Trandoshan: '*foreign-language*'""

How to script non-repeating automatic demoing?
Quote:
Here's the start of a popular simple one, lengthen and edit as needed:

// Demo Script
bind {key} vstr demo
set demo vstr demo1
set demo1 "g_synchronousclients 1; record demo0001; g_synchronousclients 0; set demo vstr demo2"
set demo2 "stoprecord; set demo vstr demo3"
set demo3 "g_synchronousclients 1; record demo0002; g_synchronousclients 0; set demo vstr demo4"
set demo4 "stoprecord; set demo vstr demo5"
set demo5 "g_synchronousclients 1; record demo0003; g_synchronousclients 0; set demo vstr demo6"
set demo6 "stoprecord; set demo vstr demo7"
set demo7 "g_synchronousclients 1; record demo0004; g_synchronousclients 0; set demo vstr demo8"
set demo8 "stoprecord; set demo vstr demo9"
set demo9 "g_synchronousclients 1; record demo0005; g_synchronousclients 0; set demo vstr demo1"
set demo10 "stoprecord; set demo vstr demo11"

How to script a cycle between different crosshair shapes and sizes?
Quote:
I wrote this one to give a display of what settings you were currently using or changed to, works well but it's huge (mine goes from 1 - 100, I cut it down here to save on space). I'd recommmend putting this in a seperate cfg because of it's size, and because once you find something you like you won't be needing all this code sitting in memory. Also, be sure to note what type and size of crosshair you are currently using before adjusting, because this script will revert to it's base settings when adjusted (unless you change the initial values of dch/dchn and chs_s/chs_b when you find something you like).

// Crosshair Type-Size Script
bind {key1} vstr chcon
set chcon "vstr chstat1"
set chstat1 "cg_crosshairsize; bind {key2} vstr chs_b; bind {key3} vstr chs_s; set chcon vstr chstat2"
set chstat2 "cg_drawcrosshair; bind {key2} vstr dch; bind {key3} vstr dchn; set chcon vstr chstat1"
set dch vstr dch2
set dchn vstr dch9
set dch1 "cg_drawcrosshair 1; set dch vstr dch2; set dchn vstr dch9"
set dch2 "cg_drawcrosshair 2; set dch vstr dch3; set dchn vstr dch1"
set dch3 "cg_drawcrosshair 3; set dch vstr dch4; set dchn vstr dch2"
set dch4 "cg_drawcrosshair 4; set dch vstr dch5; set dchn vstr dch3"
set dch5 "cg_drawcrosshair 5; set dch vstr dch6; set dchn vstr dch4"
set dch6 "cg_drawcrosshair 6; set dch vstr dch7; set dchn vstr dch5"
set dch7 "cg_drawcrosshair 7; set dch vstr dch8; set dchn vstr dch6"
set dch8 "cg_drawcrosshair 8; set dch vstr dch9; set dchn vstr dch7"
set dch9 "cg_drawcrosshair 9; set dch vstr dch1; set dchn vstr dch8"
set chs_b vstr chs_b11
set chs_s vstr chs_b50
set chs_b10 "cg_crosshairsize 10; set chs_b vstr chs_b11; set chs_s vstr chs_b09"
set chs_b11 "cg_crosshairsize 11; set chs_b vstr chs_b12; set chs_s vstr chs_b10"
set chs_b12 "cg_crosshairsize 12; set chs_b vstr chs_b13; set chs_s vstr chs_b11"
set chs_b13 "cg_crosshairsize 13; set chs_b vstr chs_b14; set chs_s vstr chs_b12"
set chs_b14 "cg_crosshairsize 14; set chs_b vstr chs_b15; set chs_s vstr chs_b13"
set chs_b15 "cg_crosshairsize 15; set chs_b vstr chs_b16; set chs_s vstr chs_b14"
set chs_b16 "cg_crosshairsize 16; set chs_b vstr chs_b17; set chs_s vstr chs_b15"
set chs_b17 "cg_crosshairsize 17; set chs_b vstr chs_b18; set chs_s vstr chs_b16"
set chs_b18 "cg_crosshairsize 18; set chs_b vstr chs_b19; set chs_s vstr chs_b17"
set chs_b19 "cg_crosshairsize 19; set chs_b vstr chs_b20; set chs_s vstr chs_b18"
set chs_b20 "cg_crosshairsize 20; set chs_b vstr chs_b21; set chs_s vstr chs_b19"
set chs_b21 "cg_crosshairsize 21; set chs_b vstr chs_b22; set chs_s vstr chs_b20"
set chs_b22 "cg_crosshairsize 22; set chs_b vstr chs_b23; set chs_s vstr chs_b21"
set chs_b23 "cg_crosshairsize 23; set chs_b vstr chs_b24; set chs_s vstr chs_b22"
set chs_b24 "cg_crosshairsize 24; set chs_b vstr chs_b25; set chs_s vstr chs_b23"
set chs_b25 "cg_crosshairsize 25; set chs_b vstr chs_b26; set chs_s vstr chs_b24"
set chs_b26 "cg_crosshairsize 26; set chs_b vstr chs_b27; set chs_s vstr chs_b25"
set chs_b27 "cg_crosshairsize 27; set chs_b vstr chs_b28; set chs_s vstr chs_b26"
set chs_b28 "cg_crosshairsize 28; set chs_b vstr chs_b29; set chs_s vstr chs_b27"
set chs_b29 "cg_crosshairsize 29; set chs_b vstr chs_b30; set chs_s vstr chs_b28"
set chs_b30 "cg_crosshairsize 30; set chs_b vstr chs_b31; set chs_s vstr chs_b29"
set chs_b31 "cg_crosshairsize 31; set chs_b vstr chs_b32; set chs_s vstr chs_b30"
set chs_b32 "cg_crosshairsize 32; set chs_b vstr chs_b33; set chs_s vstr chs_b31"
set chs_b33 "cg_crosshairsize 33; set chs_b vstr chs_b34; set chs_s vstr chs_b32"
set chs_b34 "cg_crosshairsize 34; set chs_b vstr chs_b35; set chs_s vstr chs_b33"
set chs_b35 "cg_crosshairsize 35; set chs_b vstr chs_b36; set chs_s vstr chs_b34"
set chs_b36 "cg_crosshairsize 36; set chs_b vstr chs_b37; set chs_s vstr chs_b35"
set chs_b37 "cg_crosshairsize 37; set chs_b vstr chs_b38; set chs_s vstr chs_b36"
set chs_b38 "cg_crosshairsize 38; set chs_b vstr chs_b39; set chs_s vstr chs_b37"
set chs_b39 "cg_crosshairsize 39; set chs_b vstr chs_b40; set chs_s vstr chs_b38"
set chs_b40 "cg_crosshairsize 40; set chs_b vstr chs_b41; set chs_s vstr chs_b39"
set chs_b41 "cg_crosshairsize 41; set chs_b vstr chs_b42; set chs_s vstr chs_b40"
set chs_b42 "cg_crosshairsize 42; set chs_b vstr chs_b43; set chs_s vstr chs_b41"
set chs_b43 "cg_crosshairsize 43; set chs_b vstr chs_b44; set chs_s vstr chs_b42"
set chs_b44 "cg_crosshairsize 44; set chs_b vstr chs_b45; set chs_s vstr chs_b43"
set chs_b45 "cg_crosshairsize 45; set chs_b vstr chs_b46; set chs_s vstr chs_b44"
set chs_b46 "cg_crosshairsize 46; set chs_b vstr chs_b47; set chs_s vstr chs_b45"
set chs_b47 "cg_crosshairsize 47; set chs_b vstr chs_b48; set chs_s vstr chs_b46"
set chs_b48 "cg_crosshairsize 48; set chs_b vstr chs_b49; set chs_s vstr chs_b47"
set chs_b49 "cg_crosshairsize 49; set chs_b vstr chs_b50; set chs_s vstr chs_b48"
set chs_b50 "cg_crosshairsize 50; set chs_b vstr chs_b01; set chs_s vstr chs_b49"

How to script automatic team-energizing (instead of having to hold down the button)?
Quote:
This is revoltingly simple for how much time I spent on it and how complex I was getting: add "; force_forcepowerother" to any and every key that you regularly hold down (forward, jump, scores, etc), and then make a switch that toggles it off or back. There's a glitch, too: when it's on, sometimes force-seeing doesn't respond immediately, have to hit it a couple times. My guess is that when there are two or three "force_forcepowerother" commands going to the system, "force_seeing" just gets drowned out. While this isn't a trainstopper, it is a little trade-off for using this script.

[Note: You'll need to know Exactly what binds you're using right now so that you can fill in every "{key}" reference in the code below.]

First, in \GameData\base make a file called "TE-script.cfg" and put this in it:

// Team-Energize Script - On
echo "^2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ^4TEAM-ENERGIZE ^2ON>>>"
bind {key} "+forward; force_forcepowerother"
bind {key} "+moveleft; force_forcepowerother"
bind {key} "+back; force_forcepowerother"
bind {key} "+moveright; force_forcepowerother"
bind {key} "+moveup; force_forcepowerother"
bind {key} "+movedown; force_forcepowerother"
bind {key} "+scores; force_forcepowerother"


Second, add the following to your main config file:

// Team-Energize Script - Switch / Off
bind {key} vstr te
set te vstr te-on
set te-on "exec TE-Script.cfg; set te vstr te-off"
set te-off "bind {key} +forward; bind {key} +moveleft; bind {key} +back; bind {key} +moveright; bind {key} +moveup; bind {key} +movedown; bind {key} +scores; echo "^1<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^4TEAM-ENERGIZE ^1OFF<<"; set te vstr te-on"


That bind entry "bind {key} vstr te" will be your Team-E key. You'll need your TE button close at hand for maximum use and quick on/off's (this isn't and has never been a forcepower to be buried in the F-keys for "special moments"). This script eliminates the need for a seperate "force_forcepowerother" button that has to be independently held down while you're trying to work: however, when you want this thing off, you'll want it off quick. I highly recommend that you just switch you're old TE button to this as long as it's close by, but the new thing to master is thinking of team-energizing as something that's either ON or OFF instead of a push-button mentality. After I made some initial screw-ups (leaving it on while flag-carrying, etc..), I had it down icecold.

Go ahead and take TE away from some of those buttons above or add it to others. Feel free to customize that echo message, too. I am still trying to find a way to get TE to execute while you're in the console/chatting, please PM/mail me if you think of anything.

Wondering why part of it is in a seperate cfg? Because I can't get a "/set" command to bind more than one command to a button; the 2nd command just gets executed immediately as though it was part of the /set script, not for the new bind. I played a lot with "" quotation marks but got nowhere, please PM me if you figure out how. Most of the time a vstr to a set with both commands would work, but not here because you're dealing with "+" commands, which stay on continuously when executed as part of a string.

[Note: when two people are Team-E'ing each other in an orgy of infinite whooshing, this can sink FPS into the single digits quick. So really a team probably only needs their main defender and/or midplayer to have TE switched ON permanently (though once someone on offense gets the flag, everyone near them should be flipping it on). Point being: does anyone know the cvar to shut off the blue warp-graphics and whooshing sounds that chew up FPS for this force-power?? Love to know, thanks.]

How to script a toggle for having the console down while you move around?
Quote:
This is an first edition, I'll have something a little better up soon.

// Dropped Console
bind {key} vstr dropcon
set dropcon vstr dropcon1
set dropcon1 "toggleconsole; wait 5; scr_conspeed 0; toggleconsole; set dropcon vstr dropcon2"
set dropcon2 "scr_conspeed 99; set dropcon vstr dropcon1"

Is there an alternate scope?
Quote:
Yes, it's simply a bind that toggles cg_fov values, although more complex one's add mouse-sensitivity, mouse-acceleration, and crosshair toggleswitches as well. The advantage of the alt-scope is being able to move/jump while zoomed in. The disadvantage of the alt-scope is it that it doesn't have the larger hitbox advantage of the regular/standard scope. Pick your poison.

How to script a command to run at the end of every game session?
Quote:
Add it to your bind for disconnect/quit:
/bind {key} "{command}; exec {script}.cfg; disconnect"
/bind {key} "{command}; exec {script}.cfg; quit"
Maybe even throw a wait command in there before the quit/disco. This isn't a bulletproof method but it mostly works for me.

How to script a command to run ONLY at the start of every game session?
Quote:
The following will run a cfg the first time (and only the first time) you 'bind-exec' your personal cfg file:

If your personal cfg is named (for example) x.cfg, create another cfg named "pre_x.cfg". Make sure there is no "unbindall" command at the top of your x.cfg (add it to the pre_x.cfg if you want). Put the commands you want "start-exec'ed only" in the pre_x.cfg, along with a line that says "exec x.cfg". Then add "bind {key} exec "pre_x.cfg"" to your quit/disco commands (see above), making that {key} the same one you normally use for exec'ing x.cfg, that being whatever your config reload bind is.

Now when you enter the game and exec your cfg the first time, you will see:
execing pre_x.cfg
execing x.cfg

...but after that your bind will only exec your main cfg, until the next time you enter the game.

Is it possible to have too big of a cfg?
Quote:
Yes. You'll get this error: Cbuf_InsertText overflowed. Put lengthy scripts into alternate cfg's with /exec links to them to eliminate this.

What are some other useful scripts?
Quote:
To always enter the server with the same name, add the name command to the start of your /quit and /disco binds (thereby making the game edit your jk2mpconfig just as you leave).

Add a vstr to your Mute script into your "team spectator" bind, and a vstr to turn the sound back on to your red/blue team binds.

Since you always need to open the console to read a serverstatus, bind it as:
bind {key} "serverstatus; toggleconsole"

For a permanently up scoreboard, bind an exec to a seperate cfg with the line +scores. You'll have to rehit it to update scores/ping/time, but it will update teams/players on it's own.

For wall-floating invisible walls, add /viewpos to all your movement binds, allowing you to find the jump pattern with the most depth (and learn where the "death-line" is at).




======================================================================
Things that weren't covered in the PennyFAQ and won't be:
(look around the forum or ask for more info on all of these, 'cept cheatin')
Quote:
Overly overly simple questions (cuz if they don't know how to get to Spectator --> they didn't find the forum, either)

How-to's on converting demos into movies

How to improve connection speeds

How to improve computer performance

How to cheat

Tactics and Strategy

The purpose of this FAQ is to
1. Centralize all information that applies to the Chop Shop DISRUPTION! Instagib server.
2. To equalize the information playing field.

The lion's share of this information was told to me in chat/PM or read about in other FAQ/forums, and a small amount was self-discovery. I'm not going to try to "credit" all of those sources (and most were anonymous), because in the end LucasArts/ActiVision/Raven/Quake3 are the real people to thank (or blame: for not producing an authoratative FAQ themselves).

Special thanks to Admin Amidala and Rook,
and to any player who freely answers questions when asked,
and to the aliased player who showed me how to roof.

.


Last edited by Pennypacker on Sun Mar 06, 2005 4:12 am; edited 124 times in total