lightspeed
Chat on IRC!
Tags
Ventrilo Server

Modular Quake Configs

VN:R_N [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)

Ok, ok, so ive been asked for my config over and over. And Ive been saying for months id post my config up for download. So here it is, but first let me try to explain how it works and why i use a config that is made this way.

My config is modular or OO “Object Oriented”. So what is “Object Oriented”? Well in case your new to the code world there is a common phrase passed with in its realms which is ” Don’t recreate the wheel “. So if you want to learn more about what “OO” is then I suggest you check out http://en.wikipedia.org/wiki/Object-oriented_programming.

But why Object Oriented? I know what it is, but its not needed at all, the config works just fine the default way (which is top down style scripting). Well, using OO is not changing how the configuration works, its allowing for 2 things.

  1. It allows for quick and easy editing
  2. It allows for a much more robust and complex configuration that is not possible with the limitation and constraints of the default config reader

For example, if you have a set of large vstrs such as a auto insult script it will take away from the allowed number of lines to be read by a single config, thus causing an error when the config is loaded. Large configs also cause lag as of the amount of items that are put into the system memory from the configuration.

Now before you use my config or try to read over it, let me explain how it all works. But first lets make sure we take a good look at a list of cvars and commands used in the vq3 based games. A good detailed list of cvars and commands can be found at http://www.holysh1t.net/quake-live-commands-list/, or if you want to just get the list yourself to check for consistency you can use the following line in your game console. If you dont know how to get to the console, I recommend you google it and read over the newbie guide to quake configs. Holysh1t has a great one here.

/clear; listcvars; listcmds; condump cvarcmdlist.txt 

//The file cvarcmdlist.txt will be created and stored in your baseq folder.

First part of the config, the part that you actually execute is the “main.cfg”.

//-------------------------->
// @file main.cfg
// @author Newbi
//-------------------------->

//step 1, unbind all previous aliases used by the default or previous config.
unbindall

//step2, call the list of modules used in the config, ex.the binds.config.
exec modules/autotroll.cfg
exec modules/binds.cfg
exec modules/gfx.cfg
exec modules/player.cfg

//step3, announce that we successfully loaded our configuration
say "Newbi's Config v.1.0 Loaded Successfully!"; say "www.q3schools.com"

//alternatively you can use "tell_buddy (your player name)"
//to tell yourself instead of publicly announcing your config loaded.
//tell_buddy Newbi Config Loaded Sir!

Now lets look at the autotroll.cfg script.

//-------------------------->
// @file autotroll.cfg
// @author Newbi
//-------------------------->

set autotroll "vstr ins1"

set ins1 "tell_attacker Your Momma was a snow blower!; set autotroll vstr ins2"
set ins2 "tell_attacker My gun is bigger then yours; set autotroll vstr ins3"
set ins3 "tell_attacker You couldnt whip a fly with a flyswatter!; set autotroll vstr ins1"

Now lets look at the binds.cfg script where all of our aliases and in game commands are stored. This part is important because the “unbindall” command will wipe out our current bindings so its important that you include all of your binds in this file. The following example will only list a few of the possible binds to be used.

//-------------------------->
// @file binds.cfg
// @author Newbi
//-------------------------->

bind w "+forward"
bind s "+back"
bind a "+moveleft"
bind d "+moveright"
bind c "+movedown"
bind mouse2 "+moveup"
bind v "+button3"
bind BACKSPACE "+button2"

//custom commands binds
bind \ "vstr autotroll"

Next lets look at the player.cfg. This script will house all of our “player specific” settings.

//-------------------------->
// @file player.cfg
// @author Newbi
//-------------------------->

seta name "^2O^5nykag^2e"
seta model "keel/default"
seta headmodel "doom/default"
seta cg_forceenemymodel "tankjr/bright"
seta cg_forceredteammodel "mynx/default"

And finally lets look at the graphics settings configuration file. This is where the look and feel of the game is presented.

//-------------------------->
// @file gfx.cfg
// @author Newbi
//-------------------------->

seta r_vertexlight "1"
seta cg_drawfps "1"
seta cg_draw3dicons "0"
seta cg_noprojectiletrail "0"
seta r_picmip "3"
seta r_fullbright "1"

And that will complete the demo package. Now when you want to edit something or add a cvar, just put it in it perspective place and its always so easy to work on and alot easier to read. Not to mention its cleaner and doesnt lag your game session as much.

Now for you lazy bastards that just want to use my config Ive published it for you so you can both view it and download it. I would recommend that you at least attempt to design and build you own config. It will really teach you alot about the game itself and it may even help you find that little edge you have always been looking for. Click here to see Newbi’s Actual Quakelive Config.

Post to Twitter Post to Digg Post to Facebook Post to MySpace Post to StumbleUpon

One Response to “Modular Quake Configs”

  • nFec:

    Hi,

    great job explaining this to the nubs :)

    Edited by Newbi:
    remaining comments removed.

    Please do not troll on my website.

Leave a Reply