General Help

There are many scripts commonly found in QL configs, and quite some of them use complex vstrs. Complex vstrs are often ugly, repetitive, unreadable and unmanageable. This makes it easy by using a first file where common scripts are abstracted in easy to use macros. This file is then preparsed to produce a .cfg you can use in QL.

Preparser? Macro?

A preparser is a program that will read a file(your config), do some changes then output a new file(your parsed config) with the changes done. The file is then supposed to be read by another program(Quake Live). In ASCII art:

Your config ----(preparser)----> Your preparsed config ---->(QL)

A macro is a concept used by some preparser programs. Defining a macro means saying "Okay, from now on, every time you see X, replace it with Y". Of course, it gets a bit more complex, but that's the basic thing. When a parser uses the concept of macros, we call it a macro processor. More on wikipedia.

Why use that? ============= Because often you see patterns that are in every config out there: For example, if you play more than one mode, say CTF and TDM, you'd have binds for each of them, but you don't want to have them use twice the number of keys. So you use some vstr magic to make a couple buttons to switch through your two set of binds. That takes effort, isn't pretty, discourages people. With this set of macros you could just do:

bind toggle_configs(F9, (
    (CTF, {
        bind a say_team INC HIGH
        ...
    }),
    (TDM, {
        bind a say_team RUSH QUAD
        ...
    })
))

And you would be done with it :) Same goes for the streamer, the movie maker, which would want to keep a Playing config, a Streaming and/or a Video config.

In the help section it is described how you can use this.