Player
Info
1. Your /Quake2/lmctf/ directory
2. Binding keys & configs
3. Position info (autotext) & compass
4. Team-radio sounds
5. Local voice sounds
6. The Gamespy tab
7. Eraserbots
8. Gibstats
9. Clan model & skin add-on paks
Server
info
1. The GUI server tool
2. The LM server for DM & CTF
3. Server options
4. The rcon
5. Tournament mode
6. Referee mode
7. Practice mode
8. Implementing clan skins & models
9. How to implement gibstats
Editor
Info
1. Creating clan model paks
2. Creating clans skin paks
3. Creating local voice sounds
4. Creating team-radio sounds
5. Custom entities
General
Loki's Minions Contacts and Credits
If you're using a Gamespy
1.52 you should upgrade to 2.01 or you might experience a stall
in the loading process (right before map). If this happens rename the autoexec.cfg
as a new file called yourname.cfg,
delete the /lmctf/autoexec.cfg and put it in /baseq2/ (so Gamespy will
find it). It won't automatically launch unless it's
activated within Gamespy (see Gamespy section). If you
are not using Gamespy, type in the console, exec
yourname.cfg.
// more bindings -- go in Quake2/lmctf/autoexe.cfg
//special command binds bind x "cmd team red" bind x "cmd team blue" bind x "cmd flagstatus" bind x "cmd ctfmenu" bind x "drop artifact" bind x "drop flag" //
radio mode commands (either command works)
//retrieving
game stats
// offhand-grappling hook
command
//(inferior)
normal-style grapple
|
3.
Position info (autotext) & compass
Note
the "%p" binding is an enhanced autotext function that substitutes your
present location in the map with a description. For instance if you
bind "p" "say_team" "I have flag am near %p"
and you are standing near where quad respawns
then your team reads, "I have flag and am near the quad hole."
Command / Text message
appears
"say_team"
"Available Rune %p" - Available Rune in
the blue basement
"say_team"
"Enemy flag carrier located %p" - Enemy
flag carrier located in red base
"say_team"
"Base is clear: %f" - Base is clear: Flag
is in base
"say_team"
"Hello %v" - Hello [HD] Hurr|cane
"say_team"
"Our flag carrier is %c" - Our flag carrier
is in lower red hall
"say_team"
"Does anyone care that I have %a?" - Does
anyone care that I have 100 armor?
"say_team"
"I'm on defense with %t" - I'm on defense
with Haste rune
"say_team"
"I have flag and am at %h" - I have flag
and am at 12 health
"say_team"
"Can no one to challenge the %n?" - Can
no one to challenge the blue team?
compass
mode commands (either command works)
"compass
off" or "compass 0"
"compass
1" or "compass on"
"compass
2" or "compass facing"
"compass
3" or "compass flag" (points to friendly
carrier)
4.
Team-radio sounds
The following are LM team-radio
sounds, audible messages that broadcast to all teammates. Servers may allow
for team-radio sound customization detailed in the editing section.
Command - Your team hears
"play_team"
"attack" - Offense, attack now
"play_team"
"attack10" - Attacking
in ten seconds
"play_team"
"capit" - Cap it already
"play_team"
"clear" - Base is clear
"play_team"
"defense" - Need defense
"play_team"
"escort" - Got the flag, need escort
"play_team"
"incoming" - Incoming attack
"play_team"
"overrun" - Base is overrun
"play_team"
"q60" - Have quad, respawn in 60 seconds
"play_team"
"quad" - Incoming quad
"play_team"
"qattack" - Get quad and attack
"play_team"
"qwaiting" - Waiting for quad
"play_team"
"ready" - Ready on offense
"play_team"
"recover" - Recover our flag
"play_team"
"regroup" - Fall back and regroup
"play_team"
"roger" - Roger
"play_team"
"status" - Requesting base status
"play_team"
"work" - Good work team!
5.
Local Voice Sounds
The following are LM local
voice sounds, audible voices that broadcast to players nearby. Servers
may allow for local voice customizations detailed in the editing section.
Command - Players
nearby hear
"play_voice"
"damn" - Damn!
"play_voice"
"escort" - I need escort!
"play_voice"
"followme" - This way!
"play_voice"
"getflag" - Go get the flag
"play_voice"
"goodshot"
- Good shot
"play_voice"
"gotcha"
- Gotcha
"play_voice"
"laugh"
- hehe
"play_voice"
"silly"
- <burp>
"play_voice"
"stopshoot" - Stop Shooting me!
6.
The Gamespy Tab
Use the tab included
in your LMTE v4.0 zip, or download the LM
tab. Launch GameSpy. Go to the "View" menu, highlight "Custom Tabs,"
click "Import" and browse/select the custom tab file. An LM tab should
be available next to your other tabs. Right click on it, select properties
to alter the settings in the dialogue box.
You may name tab anything you wish but the +set game lmctf line is a MUST. If you do not have Gamespy
2.01 and cannot put bindings in your autoexec.cfg
you may automatically execute /baseq2/yourname.cfg
through this window or manually in the console: exec yourname.cfg
(see section 2)
|
![]() |
You will not be playing with any of Loki's Minion CTF code, not yet at least (no offhand grapple, no special laser fire, etc....) until we port Eraser code into LMCTF a project we're saving for later day. You will be using THREEWAVE CTF that ERASER & CRBot are merged with. You will only get:
LMCTF4.0 and the 3.0_maps | Available from our downloads page if you don't have them already. |
Three Wave CTF | around 11 +megs. |
CTF Bot | Eraser & CRBotv1.10 support CTF |
QPed | Any PAK utility will do though. |
2. For Eraser & CRBot copy pak4.pak & pak5.pak and pak6.pak from the LMCTF folder into the Eraser or CRBOT folder. (Watch your drive space, you're looking at an extra 100 megs.)
3. To change maps, run your favorite CTFBot, go to the console & type: map LMCTF05 (where xx = 01 through 10) or your id ctfmap, or 1st person map of your choice.
99.9
% of this came from FREAKBOY.
So a BIG Thanks goes to him for all of the hassle.
-Floyd
Der
Kommissar updated this for LM's tutorial (mostly cosmetic changes)
If there is anything wrong, please tell him.
8.
Gibstats
Currently Gibstats does
not allow players to retrieve stats while in the game. What LMTE does allow
is the ability of players to retrieve stats via the commands stats
<player name> to view anyone statistics
or statsall to spy everyone's doings.
9.
Clan model & skin add-on paks
Players merely need to extract
the player add-on paks into /lmctf/player/ directory and copies of portrait
pictures into /lmctf/pics/. For instance, the Demonhordes.zip would extract
into /lmctf/players/daemon/ and /lmctf/players/rino/. The servers skins.ini
file determins which skin will be used.
Server
info
1.
The GUI server tool
The files LMCTFGUI.EXE and
LMCTFHLP.HLP must be in the Quake 2 directory, and the SPIN.VBX and VBRUN300.DLL
files must be either in your Windows system directory or in the Quake 2
directory as well.
NOTE: The GUI tool is not ready for the July 15 release of LMTE 4.0. It is expected to be finished "soon." Sorry.
2.
The LM server for DM & CTF
Unzip the zip file into
your Quake2 directory. If you do not already have VWEP, download it and
unzip it into your Quake2 directory.
We recommend downloading the LMTE GUI tool for Servers (see above). It will configure and run your server for you by showing you a dialog box with check boxes for each option you may want. This is only available for Windows 95 and Windows NT.
For a non-Dedicated server run quake2 with the command line arguments:D:\Quake2\quake2.exe +set game "lmctf" +set deathmatch 1 +exec server.cfg
maplist.txt -- This optional file contains the list of maps you want the server to cycle through. To alter your map list create a file called "maplist.txt" in your main Quake2 directory. Enter the names of the maps you want in the order you want (supply only one map per line with no spaces and do not give file extensions). Change the command line parameters of your server to launch your server with the same map that is listed first on your maplist. If you do not do this, your server will start with base1, and will ignore your first maplist map. The map list will loop around to the beginning of your list when it completes. To override maplist cycle and view another map, type in the console gamemap lmctf02 or whatever.
motd.txt -- This optional file contains your custom message of the day. To alter your Message of the Day (motd) create a file called "motd.txt" in your main Quake2 directory. Type your text message into the file (your line spacing will be reflected the display).
If you want to support id CTF maps, you will need to copy the CTF "pak0.pak" into your LMCTF directory.
3.
Server options
Server options are changed
by selecting the desired value in the menu, and then using the inventory
use key, which will either set that value (in the case of timelimit/fraglimit)
or toggle the value (dmflags/ctfflags). All the DMFlags, CTFFlags, time
limit, and fraglimit are changeable via a referee menu, toggling individual
flags by name.
Flags are just bits in a larger variable.
To set them, find the variable you want to set flags for, such as CTFFLAGS.
Find the options you want to set, such as CTF_WEAP_BALANCE and CTF_OFFHAND_HOOK.
Add the associated numbers together. In our case CTF_WEAP_BALANCE has a
value 1, and CTF_OFFHAND_HOOK has a value 16. We add them to get 17. Set
the variable equal to this number: set ctfflags 171
// dmflags->value flags
#define DF_NO_HEALTH
1
#define DF_NO_ITEMS 2
#define DF_WEAPONS_STAY
4
#define DF_NO_FALLING
8
#define DF_INSTANT_ITEMS
16
#define DF_SAME_LEVEL 32
#define DF_SKINTEAMS
64
#define DF_MODELTEAMS
128
#define DF_NO_FRIENDLY_FIRE
256
#define DF_SPAWN_FARTHEST
512
#define DF_FORCE_RESPAWN
1024
#define DF_NO_ARMOR 2048
#define DF_ALLOW_EXIT
4096
#define DF_INFINITE_AMMO
8192
#define DF_QUAD_DROP 16384
#define DF_FIXED_FOV
32768
// CTF CODE -- LM_JORM
// ctfflags->value flags
#define CTF_WEAP_BALANCE
1
#define CTF_ALLOW_INVULN
2
#define CTF_TEAM_RESET 4
#define CTF_TEAM_NOSWITCH
8
#define CTF_OFFHAND_HOOK
16
#define CTF_NOVOICE 32
#define CTF_NO_GRAP_DAMAGE
64
#define CTF_TEAM_NOTEAMS
128
#define CTF_FLAGS_NOFLAGS
256
#define CTF_SCORE_BALANCE
512
// refset->value flags
#define CTF_RED_FLAG_FROZEN
1
#define CTF_BLUE_FLAG_FROZEN
2
#define CTF_GREEN_FLAG_FROZEN
4
//servers in general probably
don't want to permanently set anything in refset.
//these are for practice
mode purposes. Each bit locks a flag in place.
//Green flag isn't implemented,
but is there for future expansion.
// Flags for runes
#define RUNE_DAMAGE 1
#define RUNE_RESIST 2
#define RUNE_HASTE 4
#define RUNE_REGEN 8
The help menu is a multi-page menu that reads all it's information out of a "help.txt" file in the lmctf directory. This will allow server administrators to add any text they want to our existing help. It also means we can change player help without recompiling the server.
4.
The rcon
The rcon may do any server
console command remotely using the standard:
Game
play proceeds till the goal of the match is achieved (either time limit
or fraglimit). If the goal is fraglimit, you get no warnings (a rare
form of game, only supported for the freakish chance someone wants it).
For time limited games, the far more common form, written warnings are
given every minute detailing how long till the match ends. When the match
nears completion, you hear the countdown of 10 to 1 (clocked properly to
match with the number or seconds), then a load horn/buzzer and message
telling you which side has won. Players' scores are immediately frozen,
and though they can still fight and capture the flag, none of it counts.
The level lasts an additional 5 minutes like this, allowing the referee
to verify the captured log, allowing players to take screenshots of the
scoreboard, and allowing people to "stats" other players. At the
end of 5 minutes, the server switches back to normal play mode and moves
to the next map.
At
any time, the referee can restart the match, be it during countdown, the
game itself, or the post-game. During play time, if a player is
disconnected and reconnected, that player will retain all stats.
At the end of the match, the server sits in 'intermission' mode, allowing players (and refs) to retrieve stats information via stats/statsall, and to take screenshots, etc. The referee can abort this wait early via the referee commands (by setting a new level or match in progress).
6.
Referee mode
To
enable referees on a server, the server must add to server.cfg: set
refpassword put_referee_password_here
A referee logs on using the syntax: referee
put_referee_password_here
Referee abilities are primarily
accessible via the ctfmenu
function. These abilities include:
// referee commands
gotomap <mapname> (or whatever) a safer way to change maps than gamemap <mapname> kick <playername> users refmenu pingalert <floor> <ceiling> bind
x "cmd flagstatus"
|
8.
Implementing clan skins and models (add-on paks)
Skins.ini
is an OPTIONAL file letting server operators override which skins/player
models are displayed for which team.
The file is very simple.
It contains two sections, one for red, and one for blue. Each is
a list of the exact directory where the skin in question can be found.
Since all skins MUST be in a subdirectory of quake2/players, if you wanted
to add the female skins "jenny.pcx" to the list of valid skins for the
red team, you would write the following in the skins.ini file:
[red]
female/jenny
Note that the above entry is the exact same thing as what your "skin" console variable is set to in order to use the skin in deathmatch mode.
The "skinset" console variable is still supported on LM servers, and serves two purposes. First of all, if NO skins.ini file can be found, the skinsets work the way they did under 3.0, giving current servers backward compatibility. Secondly, even if you are using a skins.ini (highly recommended), the skinset variable determines which sounds are played for red and blue captures. A new skinset, skinset 3, was added so the "war" sounds could be supported.
9.
Implementing Gibstats
Setting set
stdlogfile 1 in your server.cfg turns on standard logging.
set stdlogname "lmctf/Standard.log" names your standard logfile as being Standard.log in the lmctf/ directory under quake2. _Unless_ you set logrename. See below.
set logrename "lmctf" overrides stdlogname. If this variable is set to anything other than "" logging will attempt to create a directory matching this name, and store logfiles there. These logfiles will be named matching the current date, and as a result, will be automatically rotated on a daily basis. For example, the logfile today would be: quake2/lmctf/13Jul1998.log. The logfile is closed at the first end of level which occurs after midnight.
set logfile 1 enables console logging, to lmctf/qconsole.log. This is a standard feature of quake2, and is not modifiable by us, but servers may wish to be aware of this feature.
Automated
logfile renaming (either daily or per level) If server sets (in server.cfg):
set logrename "directory_name" logs will then be autonamed by date, and
closed at midnight each day. The purpose of this is to enable automated
processing of gibstats. Logs will appear in directory matching directory_name,
which might typically be set to "lmctf" or "lmctf_logs" or some such.
Editor
Info
1.
Creating clan models paks
The skins.ini file (see
server section 8) can be used to allow server operators to support
new skins (see below) OR new models. The requirements
of the add-on authors are different depending on which you want.
Adding models requires a few more files. You not only need to have the skins, as above, and the portraits in the pics directory, but you also need to support VWep, the sounds, and supply the model itself. For a "Daemon" model, here is a list of the files you might need:
quake2/players/daemon/a_grenades.md2
quake2/players/daemon/bump1.wav
quake2/players/daemon/death1.wav
quake2/players/daemon/death2.wav
quake2/players/daemon/death3.wav
quake2/players/daemon/death4.wav
quake2/players/daemon/dh-bd1.pcx
quake2/players/daemon/dh-bd1_i.pcx
quake2/players/daemon/dh-rd1.pcx
quake2/players/daemon/dh-rd1_i.pcx
quake2/pics/dh-bd1_i.pcx
quake2/pics/dh-rd1_i.pcx
quake2/players/daemon/drown1.wav
quake2/players/daemon/fall1.wav
quake2/players/daemon/fall2.wav
quake2/players/daemon/gurp1.wav
quake2/players/daemon/gurp2.wav
quake2/players/daemon/jump1.wav
quake2/players/daemon/pain25_1.wav
quake2/players/daemon/pain25_2.wav
quake2/players/daemon/pain50_1.wav
quake2/players/daemon/pain50_2.wav
quake2/players/daemon/pain75_1.wav
quake2/players/daemon/pain75_2.wav
quake2/players/daemon/tris.md2
quake2/players/daemon/w_bfg.md2
quake2/players/daemon/w_blaster.md2
quake2/players/daemon/w_chaingun.md2
quake2/players/daemon/w_glauncher.md2
quake2/players/daemon/w_grapple.md2
quake2/players/daemon/w_hyperblaster.md2
quake2/players/daemon/w_machinegun.md2
quake2/players/daemon/w_railgun.md2
quake2/players/daemon/w_rlauncher.md2
quake2/players/daemon/w_shotgun.md2
quake2/players/daemon/w_sshotgun.md2
quake2/players/daemon/weapon.md2
quake2/players/daemon/weapon.pcx
Then, in your skins.ini, you might add:
[red]
daemon/dh-rd1
[blue]
daemon/dh-bd1
Don't forget to tell server
operators which "skinset" setting you want them to use so the proper capture
sounds are played. In our case, we might want "skinset 1" so DEMON
ROARING sounds are played.
2.
Creating clans skin paks
The skins.ini file (see
server section 8) can be used to allow server operators to support
new skins OR new models. The requirements of the
add-on authors are different depending on which you want.
To add new skins to a server, merely drop the skin and the portrait into the male or female directory on the server (quake2/players/male). IN ADDITION, drop the portraits into the pics subdirectory, or else players will not be able to see their self portraits (quake2/pics). As an example, for a "jenny.pcx" skin you make, you would have the following NEW files on your server to use it:
quake2/players/female/jenny.pcx
quake2/players/female/jenny_i.pcx
quake2/pics/jenny_i.pcx
Next, add the following entry into your skins.ini.
[red]
female/jenny
Now, your "jenny.pcx" is a valid skin for players on the red team to use. Anyone with autodownload will automatically grab this skin. You might wish to publish this skin otherwise, though, to make it faster for people to grab the needed skin.
3.
Creating local voice sounds
Sounds should be 16- bit
(8-bit will work though) at 22,050 MHz. Put them in a /lmctf/voice/
directory for all the players and the server in question. Use male_
and fem_ as prefixes if you want it to work for different sexes.
Local voice sounds now allow you to prefix a "_" in front of the sounds
to specify that the sound is non-gender specific. Example: play_voice
_hello would play the wav file _hello.wav
Note the sound file itself must have the _ in front of it. Also,
you can specify to play the male gender: play_voice male_hello would
play male_hello.wav
4.
Creating team radio sounds
Sounds should be 16-bit
(8-bit will work though) at 22,050 MHz. Put them in a /lmctf/radio/ directory
for all the players and the server in question. Use male_ and
fem_ as filename prefixes if you want it to work for different sexes.
Team radio sounds now allow you to prefix a "_" in front of the sounds
to specify that the sound is non-gender specific. Example: play_team
_die would play the wav file _die.wav Note
the sound file itself must have the _ in front of it. Also, you can specify
to play the male gender: play_team male_die would play
male_die.wav
5.
Custom Entities
Two new entities have been
added to LMCTF. They are info_position,
which provide room/area descriptions for autotext, and func_explosive,
which are exploding walls with the ability to respawn. Worldcraft users
can download the lmctf.fgd
file which contains all the CTF and LMCTF entities, QER user can download
the lmqer.zip
file which contains all the CTF and LMCTF entities, Qoole user can download
the lmqoole.zip
which contains all the LMCTF entities, and finally BSP users can download
lmbsp.zip
which contains all the LMCTF entities.
Your autotext print might be: "I have flag %p." Everyone reads: "I have flag west of at the blue waterfall." There are two spawn flags for this entity. Spawnflags: "1" will require a player to have line of site to the entity. Spawnflags: "2" will disregard any location information (north of, south of, etc.). An example:
Your autotext print might be: "I have flag %p." You get: "I have flag at the blue waterfall." only if you're in line of site from the entity.
To implement entity placement
on the fly, info_position or otherwise, bind a key to cmd
position. The key will give you the coordinates needed to place
entities in a bsp file directly without map editors. This is done by opening
up the bsp file in a text editor like wordpad. Scroll down to bottom where
the entities are and edit the entity into the code.
Red Flag | "classname" "item_flag_team1" |
Blue Flag | "classname" "item_flag_team2" |
Red team start | "classname" "info_player_team1" |
Blue team start | "classname" "info_player_team2" |
Red banner | "classname" "misc_ctf_banner" |
Blue banner | "classname" "misc_ctf_banner" "spawnflags" "1" |
Small red banner | "classname" "misc_ctf_small_banner" |
Small blue banner | "classname" "misc_ctf_small_banner" "spawnflags" "1" |
General
Contacts and Credits
Loki's Minions Contacts |
Loki's Minions Development Team |
Programmers
Jormungard, Surt, Hati Mappers Mr White, Vampire, Der Kommissar, Chrono Kid, Zugzug, Schmitz, Phats, Golney, Tesh, Suicide20 Flag, Rune, and Hook Models Gooseman, Jormungard |
Textures,
Graphics, Skies
Wicked, Brad Klann, Der Kommissar, Stecki, Grimlok, Mr White, Chrono Kid, Suicide20, Gooseman Add-on Pak Coordination Ed Hunter Sounds Mr White, Der Kommissar |
Loki's Minions Special Thanks |