-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathctfbot13b1.txt
2321 lines (1962 loc) · 109 KB
/
ctfbot13b1.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Title : CTF Bot
Version : 1.3b1
Filename : ctfbot13.zip
Date : 24 Apr 97
Credits : See below for complete Acknowledgements & Credits section
Many thanks to all contributors and supporters, without
whom CTF Bot would not be nearly as cool.
Author : Drew 'BZ' Davidson
Email : [email protected] (Please see "Emailing the Author" section
below before emailing me for any reason!)
Homepage : http://www.interpath.com/~davidson/ctfbot.htm
Type of Mod
===========
Quake C : yes
Sound : yes (replaced one sound in pak file)
MDL : yes (extra skins on player.mdl)
Format of QuakeC
================
unified diff : no
context diff : no
.qc files : yes
progs.dat : yes (in pak2.pak file)
pak0.pak file : no
pak1.pak file : no
pak2.pak file : yes
Pak File Contents (pak2.pak)
=================
progs.dat = brains of the bot
progs/player.mdl = standard CTF player.mdl + 4 extra skins
sound/demon/dland2.wav = to eliminate incorrect thump sound
Description of the Modification
===============================
This is CTF Bot (aka Capture the Flag Bot), a computer-controlled
deathmatch opponent that plays ThreeWave Capture the Flag 4.0.
The unmodified ThreeWave CTF is available from:
http://threewave.planetquake.com/
See the section "Acknowledgements & Credits" below for complete
information on who designed all of the CTF maps, and who converted
them to CTF or added waypoints. I'd very much like to thank
everyone who helped out by adding waypoint for maps, converting
maps to CTF, creating CTF maps, or offering suggestions for
CTF Bot. CTF Bot would not be anywhere near as fun without
the help of the people listed.
Version 1.3b1 Notes [NEW!] (new documentation)
===================
Do NOT try to install CTF Bot over an existing CTF Bot directory.
Just rename your old CTF Bot directory "ctfbotold" or something
and start fresh.
Please note that due to ThreeWave CTF 4.0 having a pak1.pak, the
installation instructions for CTF Bot have slightly changed. See
ctfbot13.txt for complete instructions.
Please note that a few impulse numbers have changed, mostly stuff
that is not used very often if at all (i.e. toggle normal/bot names
and toggle use of waypoints).
Please note that due to changes in the bot AI, the skill settings
that you use will be affected. For example, you may find that
it's easier in this version to defeat a group of bots with skills
0, 1, 2, and 3. Simply adjust the skills in makebots.cfg to your
liking to get an easier or more difficult game.
Before You Install CTF Bot
==========================
You should have a basic knowledge of Quake things like how to edit and
use config files, how to bind keys in config files, how to use the Quake
console, how to load a specific map file, what autoexec.cfg files do,
etc, before you try to install and use CTF Bot. It would also be very
good if you had experience with installing and using Quake C patches.
If you don't know this stuff, please go to the CTF Bot web page and check
the "Links" section for web pages with general Quake info.
If you've never played CTF before then you definitely should go to
ThreeWave at http://threewave.planetquake.com/ and read about it because
I assume you know what you are doing with regard to CTF, i.e. you know
how to pick up the flag, what you have to do to capture the flag, how to
use the hook, how to drop backpacks with ammo, what the runes are, etc.
*IMPORTANT NOTE*: If you don't have the ThreeWave CTF client mod, you
won't be able to play Capture the Flag with the bots, so go download that
now before you install the bots. You need BOTH ThreeWave client paks,
the normal one and the one introduced with ThreeWave CTF 4.0.
You can download ThreeWave CTF stuff from
http://threewave.planetquake.com/
[SIDE NOTE: Technically, you don't *absolutely* need the ThreeWave CTF
client or server mod to use CTF Bot. But you won't have any CTF maps to
play on. You could use the non-custom CTF models (i.e. the flags look like
keys) and then create your own CTF map with the dynamic map creation
features of CTF Bot, but that would be very silly and you would miss out
on the fantastic maps, models and graphics that greatly enhance the CTF
experience. But just for the record you can set the teamplay variable
in server.cfg so that CTF Bot does not require the ThreeWave CTF client
side mod.]
Quake may crash if it is given the default 8 Megs of memory. You should
probably use the "-winmem 16" parameter to give Quake 16 megs of memory
when using this bot. Also, this bot may play too slow on slower machines.
If it plays too slowly, reduce the number of bots. I would like to hear
if you have a slow machine and can get acceptable game play.
Note that even with 16 megs of memory allocated to Quake, you still may
get the "RAM" icon occasionally when playing on some maps.
How to Install CTF Bot [NEW!] (changed documentation)
======================
Please note that this installation procedure is different from previous
versions of CTF Bot, due to ThreeWave CTF 4.0 having both a pak0.pak
and a pak1.pak.
First please read the "Version 1.3b1 Notes" and "Before You Install CTF
Bot" section above! The following installation procedure assumes you will
be playing on a single machine that is not networked (i.e that you will
be playing by yourself on the server). If you are playing with a
network, you will have to follow the installation for *all* machines, not
just the server. The CTF pak0.pak, pak1.pak, and the CTF Bot pak2.pak
file is required (and the ctfbot.cfg file is useful) for all clients
also. See "CTF Bot on Network Servers" below for more information.
Note that CTF Bot is fully compatible with normal networked CTF. You
could run with a "-game ctfbot" parameter in order to play on normal CTF
internet servers and everything would function normally. This means that
if you want to wanted to save some disk space, you could delete your
normal CTF directory after installing CTF Bot, and use the ctfbot
directory instead of the ctf directory for running net Quake. However,
be careful, please know what you are doing, don't delete anything until
you have tested everything out, etc. ALSO PLEASE NOTE that with
QuakeWorld, the server determines the directory name, so that you will
probably have to rename your "ctfbot" directory as "ctf" in order to save
disk space as described here and remain compatible with CTF QuakeWorld
play. Obviously, don't try doing this or any other fancy stuff unless
you know what you are doing!
CTF BOT 1.3 INSTALLATION PROCEDURE:
----------------------------------
0) Read the sections "Version 1.3b1 Notes" and "Before You Install CTF
Bot" and "How to Install CTF Bot" above.
1) Unzip the CTF Bot zip into a *NEW* directory called "ctfbot"
inside your Quake directory. This will install the following:
- ctfbot [DIR /quake/ctfbot/ that you created ]
ctfbot13.txt [ this file ]
whatsnew.txt [ file describing new features in this version ]
impulses.txt [ numerical list of impulse commands ]
ctfbot.cfg [ CTF Bot default key config ]
server.cfg [ CTF Bot server config ]
waypoint.cfg [ CTF Bot extra key config ]
autoexec.cfg [ execs ctfbot.cfg and server.cfg ]
makebots.cfg [ exec this to make some bots ]
pak2.pak [ brains of the bot & red/blue skins ]
file_id.diz [ archive description ]
src/ [DIR source code ]
ents/ [DIR entities for converting maps to CTF ]
2) Copy the pak0.pak from the ThreeWave CTF 3.5 client mod, and the
pak1.pak from the ThreeWave CTF 4.0 client mod, into the
ctfbot directory. You can get both of these mods from
http://threewave.planetquake.com/
DO *NOT* OVERWRITE YOUR EXISTING pak0.pak OR pak1.pak FILES IN
THE id1 DIRECTORY!
3) OPTIONAL: Install More CTF Maps
If you want to play on more maps that CTF Bot has waypoints for,
put the bsp's (e.g. koc1.bsp) into your /id1/maps/ directory. That
way the maps are available to all mods (e.g. normal CTF, CTF Bot, etc.)
If you want to play CTF Bot on the id maps that have been converted to
CTF, follow the instructions in "Converting Maps to CTF" below to
convert your id bsp's into CTF bsp's. You will also need to edit the
server.cfg file to change the percentage of custom CTF/id maps when
playing if you want the id maps to show up when the level changes.
Note that if you convert id maps to CTF (e.g. e1m1), you shouldn't
put them in your /id1/maps/ directory, because that will overwrite
the non-converted versions and you will get error messages. But
maps that exists only in CTF form should be kept in your /id1/maps/
directory.
Check the CTF Bot web page for the latest on maps CTF Bot has
waypoints for.
4) Your final CTF Bot directory structure should look like this
(excluding the files/directories not used for play):
- quake [DIR /quake/ ]
quake.exe [ Quake application ]
q95.bat [ Q95 batch file ]
- ctfbot [DIR /quake/ctfbot/ ]
ctfbot.cfg [ CTF Bot default key config ]
server.cfg [ CTF Bot server config ]
waypoint.cfg [ CTF Bot extra key config ]
autoexec.cfg [ execs ctfbot.cfg and server.cfg ]
makebots.cfg [ F7 execs this file to make some bots ]
pak0.pak [ copied from ThreeWave CTF 3.5 client patch ]
pak1.pak [ copied from ThreeWave CTF 4.0 client patch ]
pak2.pak [ from CTF Bot zip file ]
- maps [DIR /quake/ctfbot/maps/ ]
e?m?.bsp [ if you converted id bsp's to CTF ]
etc.
5) Run Quake (or Q95.BAT if you want to play networked games) with
the following command line parameters:
-game ctfbot ==> to use CTF Bot resources (i.e. the various paks)
-listen ==> start a listen (i.e. deathmatch) server
-winmem 16 ==> give Quake 16 megs of memory
-zone 512 ==> give Quake more memory for config files (optional)
6) QUICK START: You should probably read the rest of this file to find
out the impulse commands that are very useful (like ordering your
bots to attack and defend). But if you just want to start
playing, here's how: By default you start up in observer mode.
You must press 1 to select red team, 2 to select blue team, or
jump for automatically selected team. After you have joined a
team, hit F7, which by default spawns 6 bots (4 enemies and 2
friends). Then start killing.
7) If you would like to customize settings and/or key bindings, see
"Customizing Controls and Settings" section below.
8) If you have trouble, consult the "Troubleshooting" section below.
9) Read the rest of this file for tons more cool impulses that will
make CTF Bot more fun.
10) If you know what you are doing, you can ignore all of the above,
and install it however you want. E.g. you could unpak the pak2.pak
file and put the player.mdl in your id1/progs directory, etc. You
could also unpak the ctf pak0.pak, pak1.pak, put those in your
id1 directory, and then rename the CTF Bot pak2.pak as pak0.pak.
Or you could unpak everything, etc. It's all up to you. But
please know what you are doing before you try something fancy.
Use your common sense. By having some common sense and knowing
what you are trying to accomplish, you can save a considerable
amount of disk space by not keeping around multiple copies of
the paks. Personally, I unpak *all* of my pak files and keep
pretty much everything in the id1 directory. But I know what I
am doing, so I can do things like that.
Converting Maps to CTF
======================
You should know a bit about Quake before attempting this. If you
don't know what a bsp file is then you should *definitely* learn
more about Quake before attempting this.
This procedure will allow you to convert your id bsp's (i.e the maps
that came with Quake like e1m1) into CTF bsp's so you can play CTF Bot
on id maps. If you already have converted your id bsp's to CTF with
this procedure (with the ThreeWave server mod for example), you can
just copy most of those bsps over, you don't have to convert them
again for CTF Bot. However keep in mind that CTF Bot contains more
and different ent files than in the standard CTF so you will have to
convert some of your bsps again to use the new or alternate versions.
1) Unpack the pak0.pak and pak1.pak files from the /quake/id1/
directory to get the separate bsp's (e1m1.bsp, etc). You can
get a unpaking utility at:
http://www.cdrom.com/pub/quake/utils/bsp_pak_tools/
2) Copy the *.bsp files you unpaked in step (1) to your /ctfbot/ents/
directory. You only need to copy the .bsp files that have
corresponding .ent files. If some bsp's have more than one
corresponding ent file, copy the bsp again and rename it to match
the ent file (e.g. for e3m1, copy your e3m1.bsp and rename it so
that you have e3m1.bsp and e3m1v2.bsp in the ent directory)
3) Get a copy of QBSP, make sure that it is in your execution path,
then run dobsp.bat. This will insert the *.ent files into the
*.bsp files (that is, it will insert the CTF entities into the bsp
files so that the flags appear in the maps). It shouldn't take
more than a minute or two to convert all the bsp's. You can
get a copy of QBSP at:
http://www.cdrom.com/pub/quake/utils/level_edit/bsp_builders/
4) Move the converted bsp's to your /ctfbot/maps/ directory. Do *NOT*
move them to your /id1/maps/ directory! If you do that, then you
will be overwriting the bsp files that come with quake, and then
you will get error messages about "no spawn function" for the flags
and such when you run those maps in normal Quake.
5) For more detailed instructions on converting maps to CTF, read
the ThreeWave server mod documentation. The ThreeWave server
mod is available at: http://threewave.planetquake.com/files.html
Troubleshooting
===============
If something isn't working, the most likely explanation is that you
didn't follow the installation instructions above. If you have unpaked
any of your pak files, or deviated somehow from the installation
instructions above, and something isn't working, then the proper files
are probably not being used by Quake. There are several files that are
required in order for CTF Bot to work correctly. I have created a pak
file to make the installation process easy, and if you try to get fancy
(by unpaking pak files or using your own server.cfg), it may not work
the way it should! Please try to follow then instructions above and
see if that works. If it still doesn't work please read the rest of
this section for hints on how to make it work.
If the flags are not visible, one of the following two things has
happened: either (1) you are in single player mode, or (2) the file
server.cfg is not being exec'ed when you start Quake. You can solve (1)
by adding the "-listen" param to the Quake command line. You can solve
(2) by making sure that server.cfg is being exec'ed when you start Quake
(e.g. make sure that autoexec.cfg in the ctfbot directory has the line
"exec server.cfg"). The server.cfg file sets various server variables
that are *REQUIRED* to run CTF correctly. Also make sure that you
didn't exec another file that overrode the settings.
If the bots are all one color (i.e. you can't tell the difference between
the teams), somehow the progs/player.mdl in the CTF Bot pak2.pak is not
being used by Quake. If you are running a server on a different machine,
see "CTF Bot on Network Servers" below for how to fix this.
If the bots are *still* all one color, you probably unpaked your pak
files. Quake is probably using the player.mdl from the pak0.pak instead
of the one from the pak2.pak. If you want to unpak any pak files (e.g.
to use a custom progs.dat) then you should unpak the pak0.pak also, so
that there are *no* pak files in the ctfbot directory. Sometimes it's
tricky to know what files Quake is going to use. Having no pak files
makes it much easier to control what Quake does. You should use
everything from the pak0.pak, *EXCEPT* the player.mdl, which should come
from the pak2.pak file (the player.mdl from the pak2.pak has extra skins
required to see the bots as different colors). This is probably the
case for clients also; don't unpak any of the pak files unless you unpak
all of them. (Of course, on the client side there's no reason to unpak
the files because clients don't use progs.dat files at all.) After
you unpack everything, move the pak files to another directory so Quake
won't see them.
If you are playing on a map that you thought CTF Bot had waypoints for,
but the bots are really dumb and you can't see the waypoints when
you turn on bot debug, perhaps you renamed the bsp. CTF Bot knows
what map it is playing on by the name of the bsp file, and if you
rename the bsp file, the waypoints will not work.
If you are playing by modem and are having trouble changing levels,
try using the "changelevel" command instead of the "map" command to
start a new level. It works just like the map command (i.e. in the
console type "changelevel ctf1"). Also remember that both sides need
the pak0.pak, pak1.pak, and pak2.pak. See your Quake documentation
for more help.
If you are getting a message that says something like "progs/star.mdl
not found" then you either forgot to copy the ThreeWave pak0.pak file
into the ctfbot directory, or you copied the wrong pak0.pak file (e.g.
the one from the id1 directory) into the ctfbot directory, or you didn't
include the "-game ctfbot" Quake command line parameter when you ran
Quake. Please follow the installation instructions above. Another
possibility is that you are doing weird things with the teamplay
variable (e.g. making the teamplay var something like "483?Ctfbot12blah"
which may confuse Quake, causing it to not notice certain flags (and
not precache the right stuff). Try removing the extra text after the
teamplay value and see if that works.
If you see the "CTF Bot 1.3" greeting, but when you hit F7 or execute
impulse 100 it says something like "impulse 100 is for sysop only", you
probably are not using the correct server.cfg file. The server.cfg file
sets the teamplay variable to "total freedom" mode by default so that you
can add bots (see "Server Administration & Settings" below for more
info). If you use different server.cfg files (e.g. from version 1.1 of
CTF Bot or from a generic CTF server) you may not be in a mode where only
sysops can add bots. To fix this, use the server.cfg file that comes
with the version of CTF Bot that you are using, and make sure that it is
being exec'ed properly.
If you get a bunch of "no spawn function" errors, and nothing works,
then you installed CTF Bot improperly and as a result the CTF Bot
progs.dat is not being used by Quake. Perhaps you unpaked the CTF
pak0.pak file. Try installing according to the installation procedure
above. Also, you may be running Quake with an incorrect -game
parameter.
If you find that IPX or TCP/IP is disabled in the Multiplayer menu,
try using Q95.BAT instead of Quake.exe.
If you are trying to use CTF Bot with QuakeWorld, give up. CTF Bot
doesn't work with QuakeWorld. (See "CTF Bot with QuakeWorld" below
for more info.)
Customizing Controls and Settings
=================================
The file autoexec.cfg execs ctfbot.cfg and server.cfg. If you have a cfg
file containing your Quake key bindings, you may want to exec it from
the autoexec.cfg file in the ctfbot directory. That is, add the line
"exec blah.cfg" as the first line, where blah.cfg is the name of the
config file containing your custom key bindings. Or, if you want to
override the default ctfbot key bindings, exec your config as the
last line. However, be careful if your config file changes various
teamplay options, or CTF may not work correctly.
The file ctfbot.cfg sets up some key bindings for you, so you can spawn
bots quickly (hit F7). Tweak this file to change the settings, or just
use the impules listed below to spawn bots and start killing.
The file server.cfg sets up the various CTF server variables. You can
tweak this to your liking, for example if you want to start in a
different map by default, or if you want to disable observer mode,
change the teamplay options, or change the time limit or frag limit.
The file waypoint.cfg sets up some key bindings for you for spawning
waypoints and for making dynamic map modifications. By default this
file is not exec'ed, because most of the time you do not need these
functions for playing, so exec this file manually from the console
to use the key bindings.
See the ThreeWave CTF server docs for more info on what teamplay options
are available. Also see "Server Administration & Settings" below for
useful bot-related server settings.
CTF Bot on Network Servers
==========================
If you are running a CTF Bot server on a different machine than you
are playing on (i.e. if you're not playing on the server), you need
to have the CTF Bot pak2.pak on all of the *CLIENT* machines also.
The CTF Bot pak2.pak contains extra skins for the bots, and if it is
not on a client's machine, that client will see all of the bots as
the same color. (Also make sure all of the clients are using the
"-game ctfbot" parameter so that Quake will actually see the
pak2.pak.) Of course, the clients also need the ThreeWave client
side paks (unless you have tweaked the server variables to not require
the custom client-side models).
HOWEVER, you can try a fix that may work (UPDATE: THIS DOES NOT SEEM TO
WORK?). If you set teamplay bit 32768, CTF Bot will attempt to use the
color maps of clients instead of using skins. Due to an inherent Quake
limitation, client-side skins are required to have the bots show up as
the correct colors in all situations, but this may work most of the
time.
Also keep in mind that you need to run Q95.BAT instead of Quake.exe
to do most network stuff. Consult the Quake documentation for more
info on running networked servers.
If you are playing over a network, you may want to check out the
"Server Administration & Settings" section below, because by default
any player can execute any impulse (i.e. anybody can create a bot).
You will almost definitely want to change this.
CTF Bot has been primarily designed for play on a single machine
or on a LAN. It has not been extensively tested on public Internet
servers, and it probably has many shortcomings in that area. One
major problem is that I don't have a network to test with.
Note that if you want to have your server automatically select only
certain maps (for example only the maps with waypoints) you will need to
edit the source code (the RandomLevel routine) to select only the maps
you want. If you don't do this you will probably select levels
manually with the changelevel command or the admin change-level menu.
CTF Bot over Modem [NEW!] (new documentation)
==================
It should be possible to play the bots head to head with another human
connected by modem. If you are having trouble with this, remember
that both sides need a complete installation of CTF Bot with the CTF
pak0.pak, the CTF pak1.pak, and the CTF Bot pak2.pak. Both sides should
use the -game ctfbot command line parameter when running Quake. Please
consult the "Troubleshooting" section above for general hints if something
goes wrong, and also consult your Quake documentation for setting up modem
play.
"Can I Bring CTF Bot When I Play on the Internet?" [NEW!] (new documentation)
==================================================
No. CTF Bot is a Quake C bot, and Quake C bots are server-side-only bots.
That is, CTF Bot must be running on the server for them to operate. It
is totally impossible to "bring bots with you" when you play on the net.
Unless the server that you connect you is running CTF Bot, you won't see
CTF Bot in that game. If you want to know if you are playing against a
Quake C bot like CTF Bot in a game, there is one very simple test. Press
whatever key to bring up the Rankings frag list (the real Quake one, not
the fake one generated by CTF Bot with the console). CTF Bots (and all
other Quake C bots as well, Reaper bots, etc) do not apppear in the
Rankings list.
If you suspect someone of using bots to kick your ass, unless he has
control of the server (i.e. controls what patches the server is running),
then he is most likely NOT using CTF Bot against you. More than likely,
he is using a *client-side bot* against you. Client-side bots are
programs that connect to Quake servers just like normal players.
Client-side bots bots *do* show up in the Rankings list. CTF Bot is not
a client-side bot. Client side bots can connect to CTF servers, so just
because you saw a bot in a CTF game does not mean that it is CTF Bot.
Maps [NEW!]
===========
On some maps, bots use a waypoint scheme to navigate. The bots are much
smarter (and thus much more fun) on waypoint maps than others. The
waypoints are compiled into the bot code. You don't need special
versions of the maps (bsp's) to use with CTF Bot (however, you *DO*
need special versions of some of the bsp's to play CTF of course,
for example the id maps).
Currently the maps with at least some waypoints include the following.
Note that there are even more maps, see the Alternate Waypoints and
Alternate CTF Conversions below.
ctf1 - ctf8
[NEW!] ctf2m1
[NEW!] ctf2m2
[NEW!] ctf2m3
[NEW!] ctf2m4
[NEW!] ctf2m5
[NEW!] ctf2m6
[NEW!] ctf2m7 (idctf1)
[NEW!] ctf2m8
koc1
[NEW!] start
e1m1
e1m2
e1m3
e1m4
e1m5
e2m1
[NEW!] e2m3
[NEW!] e2m5
[NEW!] e4m3
dm1
dm3
dm6
maniac1
maniac2
satyr1ac (CTF version of satyr1a)
mexx6c (CTF version of mexx6)
martim5c (CTF version of martim5)
[NEW!] tonyctf2
[NEW!] tonyctf3
[NEW!] tnyctf3x
[NEW!] tonyctf4
[NEW!] tonyctf5
[NEW!] tonyctf6
[NEW!] tonyctf7
[NEW!] nedctf
[NEW!] nochance
[NEW!] athena
[NEW!] gadiantn
[NEW!] critctf1 (CTF version of critters)
[NEW!] omegactf
[NEW!] ctfkkong
[NEW!] ctf0
[NEW!] thresh
[NEW!] ares
The following maps also have waypoint support, but they appear (as
improved versions in the case of stb_ctf) in the ThreeWave CTF 4.0 pak,
so they are supported for backward compatibility only:
idctf1 (same as ctf2m7)
[NEW!] stb_ctf (actually same as ctf2m3)
Some of these maps have alternate waypoint sets. See "Alternate
Waypoint Maps" below for what they are and how to use them.
See "Waypoints" section below for technical info on adding waypoints
to a map.
Alternate Waypoint Maps [NEW!]
=======================
CTF Bot has alternate sets of waypoints for some of the maps. The bots
will play differently when you use the alternate sets of waypoints. For
example, they will take different paths from base to base, they may go
get different weapons, etc. The alternate sets may be more fun than
the default sets, but because of the larger number of waypoints in
some cases, they may play too slowly on slower machines.
To use the alternate waypoints, copy the appropriate bsp files (which
must already have been converted to CTF) and add "w#" to the end of the
file name, where # is the set of the waypoints that you want. Alternate
sets always start with w2. Here are the valid file names you could
end up with:
[NEW!] e1m2w2.bsp = use waypoint set number 2 of e1m2
[NEW!] e1m2w3.bsp = use waypoint set number 3 of e1m2
[NEW!] e1m3w2.bsp = use waypoint set number 2 of e1m3
[NEW!] dm3w2.bsp = use waypoint set number 2 of dm3
So, for example, copy your CTF-converted e1m3.bsp and name it
e1m3w2.bsp. Then play on it by typing "map e1m3w2" at the console. To
play on the default waypoints for e1m3 again, type "map e1m3". Or, if
you want to save the disk space, just rename your CTF-converted e1m3.bsp
to e1m3w2.bsp instead of making another copy of the bsp. Of course, you
will have to rename it again to play on the default set of waypoints
again. The different bsp name tells CTF Bot to use the alternate
waypoint sets (which are compiled into the bot code). The bsps are of
course identical except for the name.
Note that if you are playing networked, all of the clients require a
renamed bsp files also, or it will say "BSP not found" and they won't be
able to play.
If net servers want to use the alternate sets instead of the main sets,
they should probably just rearrange the waypoint-creation code to use
the alternate sets, instead of mucking about with bsp renaming which
will screw up clients that don't have the renamed bsp files.
Alternate CTF Conversions [NEW!]
=========================
Some id maps have alternate CTF conversions. This means that there
are ent files supplied that will add flags to a different area of
the map. See the "Converting Maps to CTF" section above for info
on getting these alternate CTF versions. When you play on the
alternate version, make sure the bsp files have the names used
below, because the bots know what map they are playing on from
the name of the bsp. These alternate conversions and waypoints
were done by Karl Was.
[NEW!] e3m1v2
[NEW!] e3m2v2
[NEW!] e3m6v2
Misc Playing Notes
==================
Even on waypoint maps, the bots have certain limitations. They don't
know they entire layout of maps. So, the moral is: help your bots. If
you see a bot on your team with just a shotgun, then either lead it to a
good weapon, or toss it your weapon. Otherwise, don't be surprised with
your bot gets slaugtered. Use the "report in" order to find out what
weapon your bots are using, and help them out if they can't seem to find
anything good. Luckily on most of the default CTF maps the good weapons
are easily found. On some of the id levels the good weapons are not on
the main path between bases and so the bots are unlikely to find them.
Note that it is very helpful to have bots with you. If you can't get
past a high-skill enemy bot, bring along some buddies. Let them grab
the good weapons or toss them a rocket launcher and ammo and watch them
kick ass while you get all the glory. :-)
Check the CTF Bot web page for links to more maps, including more maps
with waypoint support.
Some maps are more fun than others. Some maps have architectural
aspects that confuse the bots. Some maps need more waypoints to work
better. Some maps are just too big. Some maps are just too small.
Those are the breaks.
For some reason, the bots seem to run slower on large levels than
small levels, even with the same number of bots. So, if you are
getting poor performance, but don't want to decrease the number of
bots, try a smaller level.
Note that when there are a large number of bots, and the frame rate
starts to decrease, you may notice weird stuff, like grenades going
right through bots. This is most likely due to Quake not having
enough time to properly compute collisions, and the solution is
to not have so many bots.
On maps that do not contain waypoints, a lot of the time it is easy to
capture their flag. If you go in their base, kill all the bots, and
snag their flag, it may be easy to grab their flag again after that if
they have all respawned away from their base, because they won't be
able to find their way back. As a result, some non-waypoint maps work
better than others with these bots. It can still be fun to play on
non-waypoint maps, because the bots do use teamplay tactics.
Thoughts On Playing Bots
========================
Playing CTF Bot is not the same as playing humans. I would have to be
crazy to assert that playing CTF Bot is the same as playing humans.
Although CTF Bot can be very good at combat tactics, when it comes to
thinking strategically, or thinking at all for that matter, the bots
fall far short of human thinking. This is true for all bots, not just
CTF Bot. Truly intelligent artificial intelligence is simply very
hard to do. Even the famed Reaper bot is staggeringly dumb when
compared to even the dumbest human.
However, playing CTF Bot can be *fun*. If you have a poor net
connection, it can be much more fun than playing on the lagged
net. It can also be useful for learning the levels, and for practice.
It is also extrememly fun when playing other people over a small
LAN or over a modem.
Be aware when you use CTF Bot for practice, however, that you may
get used to the bots doing certain things, or using certain paths
from base to base. You may be unprepared for humans doing certain
incredible maneuvers, using grappling hook tactics, or taking paths
that the bots do not employ. For me, this makes net play even more
fun. The contrast of human intelligence on the net with bot
intelligence makes CTF on the net even more exciting!
Special note for the extremely lagged: it doesn't have to be that
way! The most common cause of lag is a crappy internet service
provider (ISP). Get a new ISP and your Quake pings may improve
tremendously. Give it a try; perhaps you will be able to play
CTF with humans on the net with low lag. CTF with humans is very
fun and many ISP's have a month-by-month pay system so you can
try that ISP for a month and if it sucks too then just cancel it.
Skill Levels
============
The console variable "skill" is used as the skill of the next bot
created. Type "skill #" in the console to change the skill, where # is
a number from 0 to 3. Skill levels don't have to be an integer (i.e.
1.5 or 2.7 are legal). Skill has various effects on play. Lower skill
levels misjudge target's velocity and position when firing, have
smaller field of view, are less likely to make evasive maneuvers, are
less likely to jump effectively, are less likely to see enemies far
away, are less likely to see enemies with Ring of Shadows, plus tons
of other things.
Bots with a skill of 2 or higher use the "visor dude" CTF skin.
CTF strategy/tactics are generally *NOT* affected by skill. That is,
low-skill bots are (approximately) as smart as high-skill bots when it
comes to capturing the flag. They are just dumber when it comes to
combat tactics such as strafing, aiming, etc.
Status Bar [NEW!]
==========
The CTF status bar appears just above the normal Quake status bar when
you are in 320x200 resolution. At higher resolutions it may appear
in an annoying place on the screen, so use impulse 70 to turn it off.
The status bar was introduced in ThreeWave CTF 4.0.
The CTF Bot status bar is enhanced from the ThreeWave 4.0 status bar
as follows: instead of the display that shows what rune you have,
some text like "Reg.R.B" appears in the lower left corner. The first
part is what rune you have... nothing if you have no rune, "Reg" for
Regeneration, "Hst" for Haste, "Str" for Strength, and "Res" for
Resistance.
After the rune part is a white R if the Red flag has been carried
(i.e. has been taken), and a white B if the Blue flag is being
carried. An orange R appears if the Red flag is missing but not
yet returned to base (i.e. it is lying about). An orange B appears
if the Blue flag is lying about. If the flags are in the bases,
there is no R or B, just a space. The crux of all this is that you
can tell at a glance of the CTF status bar where the flags are.
Also, after a flag has been captured, either "Red capture!" or
"Blue capture!" appears for a few seconds in the status bar. This
can be useful because sometimes things can happen so fast that a flag
is captured but you are not sure which one because of a bunch of
assist messages that were printed along with the capture message.
Identifying Humans [NEW!] (new documentation)
==================
ThreeWave CTF 4.0 automatically sets your top color to something
other than red or blue so that players can tell each other apart.
Bots will always be all red or all blue, unless you replace the
skins as explained below or use the teamplay bit 32768 to use
clients color maps.
You can change your top color to something else in the console,
type "color 0 4" or "color 0 13" for white/red or white/blue for
example. The second number has to be 4 or 13 (for red or blue).
The first number can be:
0: White 1: Brown 2: Sky Blue 3: Olive Green 4: Red 5: Gold
6: Salmon 7: Peach 8: Light Purple 9: Light Magenta 10: Tan
11: Teal 12: Yellow 13: Blue
You can use impulse 141 to identify the bot or player that you
are looking at.
Skins [NEW!] (new documentation)
=====
The skins that the bots use are stored as separate red and blue skins
in the player.mdl file that comes in the CTF Bot pak2.pak. You can
replace these skins with the appropriate utility with whatever skins
you want. For example, you could make red bots look like Borg and
blue bots look like Stormtroopers. And because the bots with a skill
of 2 or higher use the "visor dude" CTF skin, you can replace that
skin with a more evil-looking version or something to show that they
are higher skill. Or use a totally different skin. It's up to you.
You can get a utility for replacing the skins in a mdl at
http://www.cdrom.com/pub/quake/utils/ One good utility that does this
is qME (formerly QuakeME) but there are others too.
If you replace the skins, the replacements will *NOT* affect humans.
Humans will still appear with the default CTF skins and whatever
colors they choose or have assigned.
Quick Spawning of Bots
======================
Included is a file that spawns a series of bots to demonstrate how you
can make a config file spawn various differently-skilled bots easily.
By default you can hit F7 to spawn 4 differently-skilled enemy bots and
2 bots on your team. Edit makebots.cfg to suit your skill level and
desired number of bots.
If you get telefragged when you spawn the bots in this manner, it
is likely that all the bots did not get created, because as soon
as you get telefragged, you are dead and so impulse commands no
longer work. Start a new map and try again, or add bots manually.
Impulse Commands
================
See the file "impulses.txt" for a complete list of impulses
in numerical order, and topic order.
More default keys set in ctfbot.cfg: F1-F4 sets skill 0-3
Help Impulses
=============
Impulse ## Key Description
----------- --- -----------
impulse 199 = F1 = help
Impulse 199 for help. This lists all impulses & default keys,
including the impulses that are default ThreeWave impulses.
Creating and Removing Bots
==========================
Impulse ## Key Description
----------- --- -----------
impulse 100 = F5 = creates a bot on your team
impulse 101 = F6 = creates a bot on the enemy team
= F7 = exec makebots.cfg (makes several bots)
impulse 105 = = creates a red bot (regardless of your team)
impulse 106 = = creates a blue bot (regardless of your team)
impulse 107 = = remove red bot (regardless of your team)
impulse 108 = = remove blue bot (regardless of your team)
See "Quick Spawning of Bots" section below for more info on
spawning bots.
Impulse 107/108 removes the red/blue bot with the fewest frags.
Bot Debug
=========
impulse 103 = F8 = cycle bot debug mode (see what bot is thinking)
impulse 104 = = turn bot debug off
Impulse 103 cyles the debug mode, from 1 to 4 and then back to 0
(off). The higher the debug mode, the more detailed the debug
messages printed. High debug modes generate huge number of
messages.
Impulse 104 immediately sets debug mode to 0 (off).
The default bot debug mode is 0 (off).
Bot Orders
==========
Impulse ## Key Description
----------- --- -----------
impulse 80 = f = report status & weapon
impulse 81 = a = order more bots on your team to attack
impulse 82 = d = order more bots on your team to defend
impulse 83 = e = order closest bot to escort you
impulse 84 = c = order closest bot to camp at your location
impulse 85 = x = order closest bot to drop items for you
impulse 86 = z = team status
impulse 87 = s = order more bots on your team to roam
impulse 88 = w = order bots to come where you stand [NEW!]
impulse 89 = = toss the flag / order bot to toss flag [NEW!]
When you give an order, the resulting status of your team is printed
so you can see how many bots are doing what.
Bots will generally follow your orders, but will sometimes go
AWOL and decide what to do on their own.
When you give an order to attack, defend, or roam, you have no
control over what bot will actually start attacking/defending/roaming.
The bot will be taken out of the appropriate "pool" of other bots,
for example, when you order more bots to attack, first they are taken
out of the roaming pool, then if there are no roamers, they are taken
out of the defender pool, then the camping pool, then the escort pool.
If you keep pressing "more bots attack" eventually they will *all*
attack. However, you will be overriding orders given to bots to
camp and escort (orders which were possibly given to the bots by
other humans on your team). So use teamwork with other humans on
your team when giving bots orders.
"Attack" means go toward the enemy base.
"Defend" means go toward your base.
"Escort" means follow you around. Bots will say things like "let's
attack" while they are following you, so you know that you have their
attention. They will sometimes get distracted by items though.
Sometimes the bot wants something but can't get it, but if you grab it
the bot will of course not want it anymore. If you are far above or
below them, but they are still following you, they will try to jump
down or hook their way up, so you can get them to follow you most
places. Sometimes you have to just be patient while the dumb bot
figures out how to get where you are, and sometimes you are just out of
luck. Sometimes it helps to try to get your buddy to try a different
route; e.g. get it to hook its way up somewhere easier and then lead it
to where you want it to be once it gets up there.
Note that you do *NOT* need to request escort when you have the
enemy flag. When you have the enemy flag, bots will *always* try to
escort you.
"Camp" means stay at the location you specify. Bots will not
just stand still, but will jump and hook around, and still pick up
nearby stuff. Bots may get stuck behind something and not be
able to get back to the camping location you specified. If they
get lost for more than 30 seconds, they stop camping and say so.
Camping and escorting work for 2 minutes and then the bots go
about their normal business.
"Roam" means just wander around and pick up stuff and kill. Bots
currently don't explore as well as they attack and defend. They
don't know where to go exactly and can tend to stay in one area,
but may be drawn out of that area when they try to find good
stuff or see an enemy, so there's no guarantee that bots will
stay still.
"Come" means try to go to where you are standing when you issued the
order. *All* bots who can see you will forget everything (except
fighting with enemies) and try to come where you are. If a bot can't
see you, they won't try to come. This is very useful if the bots are
trying to get some sort of item that is inaccessible, or pointless to
get, or otherwise being dumb. Or if the bots can't quite capture
because they are stuck on something, you can help them get around the
thing. Once the bots get to where you were, they will start figuring
out what to do on their own again. So if you are trying to lead them
far away, you will need to keep saying "come". Otherwise they may come
to where you are and then immediately turn around and go somewhere you
don't want them to be.
Bots with the flag are not affected by orders to attack, defend, or
roam. They will camp, escort, and come however.
The bots are not smart enough to care whether or not the flag is in the
base, and will happily defend (or attack) an empty base if you order
them to. This can be helpful if you've got the enemy flag and the
enemy has your flag... order your bots to attack and hope they can
get your flag back.
The bots have higher priorities than your orders, like fighting with
enemies. You may issue your orders and find that the bots are too
busy trying to kill to follow your orders. However, the bots
remembered that you ordered them and will start attacking or defending
when they have finished killing the enemy, or finished getting
the items they are interested in.
"Attack" and "Defend" work only on maps with waypoints.
The other orders (including "Camp") work on all maps.
When you order a bot to drop stuff, a bot nearby you may drop something
for you. At most one thing will be dropped when you make this request,
regardless of how many bots are nearby and regardless of how much good
stuff they may have. Bots will *NOT* drop anything that you already
have. This means that if you have a rune, bots won't drop a rune for
you. If you have a rocket launcher, they won't drop a rocket launcher.
So if a bot has a rune that you want, you'll have to drop your rune first
before asking the bot for its rune. When you ask bots to drop stuff, they
will try to give you a rune first. Note that when bots drop runes, they
pop out of the bot just like when you kill a someone with a rune. This
means that the rune may fall into lava or you might not be able to find
it. Those are the breaks. If no nearby bot has a rune, they will try to
drop a backpack containing a good weapon and some ammo for that weapon.
Weapon priorities are: lightning gun, then rocket launcher, then grenade
launcher, then super nailgun. When a bot drops a rune or backpack with a
weapon, all bots on your team will ignore the item for 10 seconds, and
then if it's not picked up bots will try to get it. However, other bots
may pick up the item accidentally, so this may be tricky in a crowd of
bots.
Currently bots won't drop just ammo, they will only drop runes and
weapon/ammo backpacks. Also, if the teamplay flags are set so that
rune and/or backpack dropping is not allowed, then this of course
will work differently.
Impulse 89 has two uses: tossing the flag and ordering bots to toss the
flag to you. If you have the enemy flag, impulse 89 will toss the flag.
When you toss the flag, you can't pick it up again for 3 seconds. You
toss the flag in the direction that you are aiming, similar to firing a
grenade. This is useful for tossing the flag to a teammate if you are
about to die. Be careful, however, because if you toss the flag into
lava, it will return to the enemy base automatically after a set amount
of time (unless someone manages to grab it again). If you do not have
the enemy flag, but a nearby bot on your team has the enemy flag, you
can use impulse 89 to order the bot to toss the flag to you. This is
useful if the bot seems to be stuck or you want the flag because the bot
is not being smart enough for you. Again, however, be careful, because
the bot may toss the flag over your head into lava. When a bot drops
the flag, all bots on your team will ignore the flag for 10 seconds, and
then if it's not picked up bots will try to get it. However, bots may
pick up the item accidentally, so this may be tricky in a crowd of bots.
If a human player tosses the flag, bots will try to get it immediately.
You have to be close and within sight of the flag carrier bot in order
to order that bot to toss the flag.
Tossing the flag plays a sound (vore attack) that is heard by everyone,
and prints a message that says something like "Outlaw tossed the red
flag!"
Note that in normal ThreeWave CTF you are not allowed to toss the flag,
and Zoid (the creator of CTF) has expressed his stance against flag
tossing. I have included the ability to toss the flag in CTF Bot because
you can cheat just about every other way, so why not this way. But if
you plan on running a network server and don't want players on your
server to be able to toss the flag, see "Server Administration &
Settings" section for information on how to disallow this.
Detailed Scores