Aliases and Scripts
Scripting is the replacement for the old Q2 Alias.
A script is where you string a series of commands together to execute using only 1 key bind. There are scripts for all kinds of stuff. The most popular was the Sniper Zoom, but this is no longer necessary. The ALIAS command in a config no longer works in Q3A. You'll also find info on Toggles, which are quick ways to turn stuff on and off in the game.
WHERE DO I PUT MY CONFIG FILES?
The autoexec file is always put in the BaseQ3 subdirectory, but I have called and executed configs once I've entered a game. In this case, the config is
executed from the mod directory. For simplicity, keep all your configs in the baseQ3 directory, and copy them into the appropriate mod directory AS WELL.
So when I'm playing the Demonic mod and I decide to execute a new config once I'm in the game, it will be found.
A toggle is used to turn on/off a feature which has only 2 settings, that are on/off, basically a
1 or a zero (0). A toggle can be set to send information to your HUD and then turned off, all with the press of a key. Here is an example:
bind F2 toggle cg_drawfps \\turns on FPS info upper right of screen
With this toggle, you will see your FPS (frames per second) to gauge connection performance, and then hitting the F2 key a 2nd time will turn it off.
Here are more that you might find useful:
// These clear or clutter the screen, depends on what you like
// If you don't want them toggle enabled, set the feature in your config permanently
bind F2 toggle cg_drawgun //draws your gun on the screen if you want it there
bind F2 toggle cg_drawicons //draws icons in HUD (armor, health and ammo)
bind F2 toggle cg_drawstatus //toggles your ENTIRE HUD on and off
bind F2 toggle drawtimer //shows how much time left in game if server has timelimit set
bind F2 toggle cg_lagometer //toggles lagometer display with netgraph or frag counter
bind F2 toggle cg_thirdperson //toggles player view point
bind F2 toggle cl_noprint //turn off text messages from players, team msgs still work
SNIPER ZOOM (no script required)
In Quake 3, you can set a CG_ZOOMFOV variable to the Field Of Vision you want when you
hit a key that is bound for +ZOOM. Yes Quake 3 fans, there is a Santa Claus. In your config file (inside Baseq3 directory), mine is called AUTOEXEC.CFG, I've put a variable like so:
set cg_zoomfov 30 //sets the FOV for when I hit the SHIFT key
bind shift +zoom
QUAKE 3 SCRIPTS
Quake 3 has implemented the same thing, but it's called a variable string, noted as "VSTR" in
your config. The VSTR is the alias routine to be executed,. First you set the vstr by name, and then call it with a bind.
set <name of vstr goes here> "<command goes here>"
bind x vstr <vstr name goes here>
BEST WEAPON FOR USE WITH QUAD SCRIPT
This script chooses your best weapon when you pickup the quad.
set quadweap "say_team I have the quad;wait;weapon 7;wait;weapon 3;wait;weapon
bind r "vstr quadweap"
In the script above, "quadweap" is simply the name of the alias/vstr. So "set quadweap" would
be the same as "alias quadweap" in Quake 2. Then instead of a Q2 command like bind r "quadweap", Quake 3 precedes this with "vstr", simple as that.
In this example, when I hit the r key, it executes the vstr "quadweap" which notifies my team that I have the quad first, then runs through my inventory to use the best weapon.
Now this is critical. The "best weapon" means most effective weapon for me with the Quad, that minimizes my chances of self detonation (read: blowing myself up)!! I have 4 weaps in
the example, Plasma (8), Lightning (5), shotgun (3), rocket launcher (7), but note they are listed in reverse order, very important.
Following what the VSTR does, it will load up the weapon 7 first, rocket launcher. But this is the weap that usually get's me killed when I fire a rocket at dudio when we're in close battle.
Then the vstr does a wait tick on the processor, then tries to load up weapon 3, the shotgun. Then the Lightning Gun, and finally the Plasma if I have it. This is where the vstr halts its
command. If the Plasma gun and Lightning guns are NOT in my inventory, it has already loaded up the best weapon PREVIOUSLY listed and contained in inventory.
Multiple team messages assigned to one key
This script simply allows you to use one key for more than one team message. The first time
you hit it, your team mates see/hear "We need more defense", then the key bind is redefined so the second time you hit it your team will see/hear "base is overrun".
set needdef "say_team need defense;wait;bind HOME vstr overrun"
set overrun "say_team base is overrun;wait;bind HOME vstr needdef"
bind HOME vstr needdef
F1 key to toggle scores as in Quake 2
This script reassigns a similar function found in Quake 2, when you hit the F1 key to display
the scores, it stayed there until you hit the F1 key again. In Q3, the F1 key shows the scores as long as you are pressing it down. I was used to the toggle in Q2, so this is the script I use.
// SCORE BUTTON VSTR
set scores "+scores;wait;bind F1 vstr noscores"
set noscores "-scores;wait;bind F1 vstr scores"
bind F1 "vstr scores"
To split a "+" function into a 2 keystroke bind
Some players, for whatever reasons, may want to take a +xxxx command and split it up,
such as +scores, or +button5. This can be accomplished with a script. In Alliance CTF, the grapple command is +button5. Pressing the keybind for +button5 will fire the grapple, and
releasing the key will release the grapple. If you want to split this function, or any other, use a vstr script like this:
set hook "+button5;wait;bind mouse2 vstr unhook"
set unhook "-button5;wait;bind mouse2 vstr hook"
bind mouse2 vstr hook
One key for two different functions, which is toggled
In this script, a player who wishes to assign one key to 2 different functions can accomplish this with a toggle script. The example below assigns GRAPPLE or SNIPER ZOOM to one
key. Then uses another key to toggle the function he/she wants. Specifically, you would use the TAB key to toggle the MOUSE2 function. The MOUSE2 key will start with grapple
function by default. Hit the TAB key and the MOUSE2 key becomes the sniper zoom. Hit TAB again, and it goes back to Grapple use.
bind TAB vstr zoomon
bind s +button5
set hookon "bind s +button5;wait;echo HOOK MODE ENABLED;bind TAB vstr zoomon"
set zoomon "bind s +zoom;wait;echo SNIPER ZOOM ENABLED;bind TAB vstr hookon"