File: game.html

package info (click to toggle)
sauerbraten-data 0.0.20100728+repack-1
  • links: PTS, VCS
  • area: non-free
  • in suites: wheezy
  • size: 525,044 kB
  • sloc: sh: 21; makefile: 2
file content (1137 lines) | stat: -rw-r--r-- 44,655 bytes parent folder | download | duplicates (2)
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Cube 2: Sauerbraten - Command Reference</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="shortcut icon" href="favicon.ico" />
</head>

<body>
<h1>Cube 2: Sauerbraten - Command Reference</h1>

<div class="contents">
<ul class="contents">
<li>
<a href="#gameplay_commands"><b>Gameplay Commands</b></a>
<ul class="contents2">
<li>
<a href="#map"><tt>map</tt></a>
</li>
<li>
<a href="#name"><tt>name</tt></a>
</li>
<li>
<a href="#team"><tt>team</tt></a>
</li>
<li>
<a href="#say"><tt>say</tt></a>
</li>
<li>
<a href="#echo"><tt>echo</tt></a>
</li>
<li>
<a href="#saycommand"><tt>saycommand</tt></a>
</li>
<li>
<a href="#connect"><tt>connect</tt></a>
</li>
<li>
<a href="#lanconnect"><tt>lanconnect</tt></a>
</li>
<li>
<a href="#disconnect"><tt>disconnect</tt></a>
</li>
<li>
<a href="#reconnect"><tt>reconnect</tt></a>
</li>
<li>
<a href="#rate"><tt>rate</tt></a>
</li>
<li>
<a href="#showscores"><tt>showscores</tt></a>
</li>
<li>
<a href="#conskip"><tt>conskip</tt></a>
</li>
<li>
<a href="#toggleconsole"><tt>toggleconsole</tt></a>
</li>
<li>
<a href="#weapon"><tt>weapon</tt></a>
</li>
<li>
<a href="#setweapon"><tt>setweapon</tt></a>
</li>
<li>
<a href="#cycleweapon"><tt>cycleweapon</tt></a>
</li>
<li>
<a href="#nextweapon"><tt>nextweapon</tt></a>
</li>
<li>
<a href="#gamespeed"><tt>gamespeed</tt></a>
</li>
<li>
<a href="#mode"><tt>mode</tt></a>
</li>
<li>
<a href="#skill"><tt>skill</tt></a>
</li>
<li>
<a href="#showgui"><tt>showgui</tt></a>
</li>
<li>
<a href="#updatefrommaster"><tt>updatefrommaster</tt></a>
</li>
<li>
<a href="#clearservers"><tt>clearservers</tt></a>
</li>
<li>
<a href="#keepserver"><tt>keepserver</tt></a>
</li>
<li>
<a href="#addserver"><tt>addserver</tt></a>
</li>
<li>
<a href="#paused"><tt>paused</tt></a>
</li>
<li>
<a href="#blood"><tt>blood</tt></a>
</li>
<li>
<a href="#damageblendfactor"><tt>damageblendfactor</tt></a>
</li>
<li>
<a href="#damageblend"><tt>damageblend</tt></a>
</li>
<li>
<a href="#damagecompass"><tt>damagecompass</tt></a>
</li>
<li>
<a href="#sendmap"><tt>sendmap</tt></a>
</li>
<li>
<a href="#getmap"><tt>getmap</tt></a>
</li>
</ul>
</li>
<li>
<a href="#items_and_gameplay"><b>Items and Gameplay</b></a>
</li>
<li>
<a href="#multiplayer"><b>Multiplayer</b></a>
</li>
<li>
<a href="#capture"><b>Capture</b></a>
</li>
<li>
<a href="#singleplayer_modes"><b>Singleplayer Modes</b></a>
<ul class="contents2">
<li>
<a href="#sp_respawning">SP Respawning</a>
</li>
</ul>
</li>
<li>
<a href="#network_code"><b>Network Code</b></a>
</li>
<li>
<a href="#multiplayer_online"><b>Multiplayer Online</b></a>
<ul class="contents2">
<li>
<a href="#setmaster"><tt>setmaster</tt></a>
</li>
<li>
<a href="#mastermode"><tt>mastermode</tt></a>
</li>
<li>
<a href="#kick"><tt>kick</tt></a>
</li>
<li>
<a href="#clearbans"><tt>clearbans</tt></a>
</li>
<li>
<a href="#spectator"><tt>spectator</tt></a>
</li>
<li>
<a href="#goto"><tt>goto</tt></a>
</li>
<li>
<a href="#pausegame"><tt>pausegame</tt></a>
</li>
</ul>
</li>
<li>
<a href="#demo_recording"><b>Demo Recording</b></a>
<ul class="contents2">
<li>
<a href="#recorddemo"><tt>recorddemo</tt></a>
</li>
<li>
<a href="#stopdemo"><tt>stopdemo</tt></a>
</li>
<li>
<a href="#cleardemos"><tt>cleardemos</tt></a>
</li>
<li>
<a href="#listdemos"><tt>listdemos</tt></a>
</li>
<li>
<a href="#getdemo"><tt>getdemo</tt></a>
</li>
<li>
<a href="#demo"><tt>demo</tt></a>
</li>
</ul>
</li>

<li>
<a href="#movie_recording"><b>Movie Recording</b></a>
<ul class="contents2">
<li>
<a href="#movie"><tt>movie</tt></a>
</li>
<li>
<a href="#moview"><tt>moview</tt></a>
</li>
<li>
<a href="#movieh"><tt>movieh</tt></a>
</li>
<li>
<a href="#moviefps"><tt>moviefps</tt></a>
</li>
<li>
<a href="#moviesound"><tt>moviesound</tt></a>
</li>
<li>
<a href="#movieaccel"><tt>movieaccel</tt></a>
</li>
</ul>
</li>

<li>
<a href="#bots"><b>Bots</b></a>
<ul class="contents2">
<li>
<a href="#addbot"><tt>addbot</tt></a>
</li>
<li>
<a href="#delbot"><tt>delbot</tt></a>
</li>
<li>
<a href="#botlimit"><tt>botlimit</tt></a>
</li>
<li>
<a href="#botbalance"><tt>botbalance</tt></a>
</li>
</ul>
</li>

</ul>
</div>

<h2 id="gameplay_commands">Gameplay Commands</h2>

<p>
The following commands can be applied in the game by pressing T, and then typing
<i>/commandname</i>.  The backquote key (`) is a shortcut for having the / typed for you.
To have these commands applied automatically before the game starts open the autoexec.cfg
file and add them there, without the /.  <i>Name</i> and <i>team</i> in particular should be
changed there.
</p>

<pre id="map">map M</pre>
<p>
Loads a map. If connected to a multiplayer server, votes to load this map (others will have to type "map M" as well to agree with loading this map). To vote for a map with a specific mode, set the mode before you issue the map command (see multiplayer menu). See also map in the editref.
</p>

<pre id="name">name yourname</pre>
<p>
Used for multiplayer, sets the name other players will know you as.
</p>

<pre id="team">team teamname</pre>
<p>
Determines who are your teammates in any team game mode (truncated to 4 characters, case sensitive).
</p>

<pre id="say">say text...</pre>
<p>
Outputs text to all players, as if you typed it.
</p>

<pre id="echo">echo text...</pre>
<p>
Outputs text to the console.  Most useful for scripts.
</p>

<pre id="saycommand">saycommand P...</pre>
<p>
This puts a prompt on screen where you can type stuff into, which will capture  all keystrokes until you press return (or esc to cancel). You may press tab to autocomplete commands/aliases/variables, and up/down keys to browse the command history. If what you typed started with a "/", the rest of it will be executed as a command, otherwise its something you "say" to all players. default key = T for talk, ` for commands. If P is prefix to insert to the buffer, (default key ` inserts a /).
</p>

<pre id="connect">connect serverip [port [password]]</pre>
<p>
Connects to a server, e.g. "connect fov120.com". You can optionally specify a port for connecting to servers with custom ports. If port is 0 or not specified, then it connects to the default port. You can optionally specify a password for connecting to password-protected servers.
</p>

<pre id="lanconnect">lanconnect</pre>
<p>
Connects to any server on the local area network by broadcasting the connection request.
</p>

<pre id="disconnect">disconnect</pre>
<p>
Leave the server.
</p>

<pre id="reconnect">reconnect [password]</pre>
<p>
Reconnects to the server which you were last connected to. You can optionally specify a password if the server was password-protected.
</p>

<pre id="rate">rate N</pre>
<p>
Sets your clients maximum downstream bandwidth to N bytes per second. Leaving it at 0 (the default) means the server will dynamically try to do the best thing, this is recommended for players who don't have a clue what their bandwidth is (setting your rate unoptimally is worse than not setting it all). Modem players (56k) could try rate 4000 and tweak from there, dsl players can try rate 6000-10000. Note that the more players on a server, the more critical the effect of your rate.
</p>

<pre id="showscores">showscores</pre>
<p>
+showscores turns display of scores (name/frags/network) on and -showscores turns it off. Default key = tab
</p>

<pre id="conskip">conskip N</pre>
<p>
Allows you to browse through the console history, by offsetting the console  output by N. Default key keypad - scrolls into the history (conskip 1) and keypad + resets the history (conskip -1000).
</p>

<pre id="toggleconsole">toggleconsole</pre>
<p>
Toggle between a more permanent and bigger console display and default, scroll off the screen variety. Unlike other games, you can
play the game normally with the larger console on.
</p>

<pre id="weapon">weapon a b c</pre>
<p>
Tries to select weapons a, b &amp; c, in that order, if they have ammo (0 = fist, 1 = sg, 2 = cg, 3 = rl, 4 = rifle, 5 = gl, 6 = pistol). If none of the 3 indicated have any ammo, it will try the remaining weapons for one with ammo (in order 3/2/1/4/0) (the fist needs no ammo). You can use the weapon command with 0 to 3 arguments. 
examples:
</p>
<pre>weapon 2 1 0 // close up selection
weapon 4 3 2 // far away selection
weapon 3 2 1 // medium distance selection
weapon 0 // humiliate selection :)
weapon // just switch to anything with ammo
</pre>

<p>
In any selection, it will skip whichever weapon you have currently selected, so executing a weapon command repeatedly toggles between the two best weapons with ammo within a given selection. default keys 0 to 4 select the corresponding weapons, with sensible default alternatives, middle mouse button is a simple weapon switch.
</p>

<pre id="setweapon">setweapon N [F]</pre>
<p>
Sets with weapon to gun N, only if the gun has ammo. If F=1, then the gun is set to N, regardless of whether the gun has any ammo.
</p>

<pre id="cycleweapon">cycleweapon A B C D E</pre>
<p>
Cycles through the guns specified (may specify 1-5 guns). The next gun with ammo after the currently used gun in the sequence is selected.
</p>

<pre id="nextweapon">nextweapon [N] [F]</pre>
<p>
Cycles through all available guns with ammo (or even empty guns if F=1 is specified). If N is -1, then it cycles through the available guns in reverse.
</p>

<pre id="gamespeed">gamespeed P</pre>
<p>
Sets the gamespeed in percent, i.e. 50 is playing in slowmotion at half the speed. does not work in multiplayer. for entertainment purposes only :)
</p>

<pre id="mode">mode N</pre>
<p>
Set gameplay mode to N for the next game played (next map load). N can be:
</p>

<ul>
<li>0: "ffa" / "default" mode. This is the default normal ffa game, and can also be used as "prewar" while setting up teams / voting for the next game.</li>
<li>1: coop edit mode. This simply enables map editing in multiplayer, otherwise identical to mode 0.</li>
<li>2: a standard teamplay game. will work with any number of teams with any number of players: you are allied with all players whose "team" setting is the same as yours.</li>
<li>3/4: instagib [team] mode. No items will spawn, but everyone will have 100 rifle rounds and 1 health.</li>
<li>5/6: efficiency [team] mode. No items will spawn, but everyone will get all weapons with full ammo, and green armour.</li>
<li>7/8: tactics [team] mode. No items will spawn, but everyone will spawn with only base ammo for 2 random weapons and green armour.</li>
<li>9: capture mode, see capture mode section below.</li> 
<li>10: regen capture mode, like capture mode but with no respawn timer, and you regenerate health, armour, and ammo by standing on bases you own.</li>
<li>11: ctf mode. Capture the flag where you must retrieve the enemy flag and return it to your own flag for points.</li>
<li>12: insta ctf mode. Capture the flag as above, but with weapons, health, and items as in instagib mode.</li>
<li>13: protect mode. Touch the enemy flag for points. Protect your own flag by picking it up.</li>
<li>14: insta protect mode. Like protect mode above, but with weapons, health, and items as in instagib mode.</li>
<li>15: hold mode. Hold the flag for a time to score points.</li>
<li>16: insta hold mode. Like hold mode above, but with weapons, health, and items as in instagib mode.</li>
<li>17: efficiency ctf. Capture the flag as above, but with weapons, health, and items as in efficiency mode.</li>
<li>18: efficiency protect.  Like protect mode above, but with weapons, health, and items as in efficiency mode.</li>
<li>19: efficiency hold.  Like hold mode above, but with weapons, health, and items as in efficiency mode.</li>
<li>-1: demo playback mode, see demo recording section below.</li>
<li>-2, -3: single player, see single player mode section below.</li>
</ul>

<p>
Frag counting is the same for all modes: 1 for a frag, -1 for a suicide or a teamkill. Timelimit for all games is 10 minutes, or 15 minutes for teamplay, and no timelimit for mode 1 (and mode 0 in a local game).
</p>

<pre id="skill">skill N</pre>
<p>
Sets the skill level (1-10) for single player modes. Default = 3. Affects number of monsters in DMSP mode, and general monster AI in all SP modes.
</p>

<pre id="showgui">showgui servers</pre>
<p>
Displays the server menu. The server menu contains the last N servers you connected to, sorted by ping (servers are pinged automatically when bringing up this menu). Just select one to connect again. If you connect to a server by typing "connect" manually, the server gets added here automatically. You can also add servers to "servers.cfg" manually.
</p>

<pre id="updatefrommaster">updatefrommaster</pre>
<p>
Contacts the masterserver and adds any new servers to the server list (written to servers.cfg on exit). (see also multiplayer menu).
</p>

<pre id="clearservers">clearservers [N]</pre>
<p>
Clears all servers from the server browser's list. If N is 0 or not specified, only servers added by the masterserver are cleared. If N is 1, all servers are cleared, including kept servers.
</p>

<pre id="keepserver">keepserver NAME PORT [PASSWORD]</pre>
<p>
Adds a server to the server browser's list with ip address NAME and port PORT. If PASSWORD is specified, this password is used when clicking on the server in the server browser.
This command causes the server to remain in the server browser's list even if the server list is updated from the master server or servers are cleared.
</p>

<pre id="addserver">addserver NAME PORT [PASSWORD]</pre>
<p>
Adds a server to the server browser's list with ip address NAME and port PORT. If PASSWORD is specified, this password is used when clicking on the server in the server browser.
Note that servers added to the list with this command will be removed when the list is updated from the masterserver!
</p>

<pre id="paused">paused B</pre>
<p>
Wether the game is paused or not (default 0, default key F1 toggles).
</p>

<pre id="blood">blood B</pre>
<p>
Toggles whether blood is enabled (default 1).
</p>

<pre id="damageblendfactor">damageblendfactor F</pre>
<p>
The higher F, the longer the screen will stay red when you are damaged.
</p>

<pre id="damageblend">damageblend B</pre>
<p>
Toggles whether the screen is blended red when damaged (default 1).
</p>

<pre id="damagecompass">damagecompass B</pre>
<p>
Toggles whether compass arrows are shown, indicating the amount and direction of damage taken (default 1).
</p>

<pre id="sendmap">sendmap</pre>
<pre id="getmap">getmap</pre>
<p>
These two commands allow you to send other players maps they may not have while in multiplayer mode, and easily keep maps in sync while doing coop edit. "sendmap" reloads the current map you are on, then uploads it to the server and sends every other player a message about it. Other players can then simply type "getmap" to receive the current map, which is written to their local disk then reloaded. A second variant "sendmap name" is available which is particularly useful for coop editing, which first does a "savemap name" before performing the actual "sendmap". Thus in both cases you must already be on the map you 
want to send before issuing the command! (in some multiplayer that requires voting). Also note that "getmap" operates on the last map send by some other player, whatever it is.
</p>

<h2 id="H2_1">Movement, controls &amp; physics</h2>

<p>
Jumping gains a 30% speedboost while in the air.
Moving forwards or backwards without strafing also gains a 30% speedboost. Forward and jumping
speedboosts are cumulative.</p>
<p>
This has been designed such to give you multiple options to control your speed while navigating
a level, you can use strafe for example to slowdown forward motion as you approach a corner to
make navigating the corner easier. What this achieves is giving you both speed and precision at
the same time, because pure speed (all action being equally fast) just makes you bump into walls.
</p>

<h2 id="items_and_gameplay">Items and Gameplay</h2>

<p>
Official game storyline: "You kill stuff. The End."  <b>All of the following is assumed to be highly in flux.  Once things settled down the document will reflect the changes.</b>
</p>

<p>
There are initially 7 weapons:
</p>

<table>
<tr>
<td>num</td>
<td>name</td>
<td>damage</td>
<td>reload</td>
<td>dam/sec</td>
<td>technically similar to</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>0</td>
<td>fist</td>
<td>50</td>
<td>0.25sec</td>
<td>200</td>
<td>quake3 gauntlet</td>
</tr>
<tr>
<td>1</td>
<td>shotgun</td>
<td>
20x10</td>
<td>1.4sec</td>
<td>143</td>
<td>doom2 SSG (wide angle, but less than in doom2)</td>
</tr>
<tr>
<td>2</td>
<td>chaingun</td>
<td>30</td>
<td>0.1sec</td>
<td>300</td>
<td>quake LG (mild spread at distance)</td>
</tr>
<tr>
<td>3</td>
<td>rocket launcher</td>
<td>120</td>
<td>0.8sec</td>
<td>150</td>
<td>quake RL (splash damage)</td>
</tr>
<tr>
<td>4</td>
<td>rifle</td>
<td>100</td>
<td>1.5sec</td>
<td>66</td>
<td>quake2 RG</td>
</tr>
<tr>
<td>5
</td>
<td>
grenade launcher</td>
<td>
75</td>
<td>
0.5sec</td>
<td>
100</td>
<td>
any quake GL, except faster but less damaging</td>
</tr>
<tr>
<td>6</td>
<td> pistol</td>
<td>
25</td>
<td>
0.5</td>
<td>
50</td>
<td>
quake SG, but more precise</td>
</tr>
</table>

<p>
The player has available all weapons when he spawns, but no ammo for them (except 40 pistol ammo), 100 health, and no armour.
</p>

<p>
Items that can be picked up:
</p>

<ul>
<li>6 types of ammo (10 shells, 5 rockets, 20 bullets, 5 rifle rounds, 10 grenades, 30 pistol ammo) (to a max of 30/15/60/15/30/120, respawn 12/9/6 seconds)</li>
<li>health (adds 25 to a max of MAXHEALTH (initially 100), respawn 20/15/10 seconds)</li>
<li>health boost (adds 10 to your MAXHEALTH until the end of the current map, respawn 60 seconds)</li><li>light armour (100, absorbs 40% of damage, respawn 20 seconds)</li>
<li>heavy armour (200, absorbs 60% of damage, respawn 20 seconds)</li>
<li>quad powerup (4x damage for 20 seconds, respawn 60 seconds)</li>
</ul>

<p>
Health and ammo respawn depends on number of players in the game, the numbers 
given are for 1-2, 3-4, and 5+ player games respectively.
</p>

<h2 id="multiplayer">Multiplayer</h2>
<p>
Quick start to multiplayer gaming:
</p>

<ul>
<li>Open up autoexec.cfg with an editor and make sure you have your name set to something unique.</li>
<li>Start the game</li>
<li>go to the multiplayer menu and select "update from master server", this will get you the lastest server list (you only need to do this once every day of multiplayer gaming or so).</li>
<li>select the server browser in the multiplayer menu. see how all servers get pinged automatically and information on player/map/game mode are displayed.</li>
<li>select a server with a good ping (near the top of the list, below 200 is very playable, above may give noticable delays on gameplay events but is still playable).</li>
<li>run, shoot and enjoy!</li>
<li>you may want to get familiar with the various game modes the game has, and how to vote for other maps and modes (again, easily done using the multiplayer menu) Be cooperative with the other players on the server, and vote. Remember, press T to talk to others.</li>
</ul>

<p>
Setting up a LAN game:
</p>

<ul>
<li>One of the computers on the LAN has to run server.bat. It really doesn't matter which.</li>
<li>The simplest way for all players to connect is for them to type "lanconnect" (if there is only one server on the LAN) or "connect servername" (if there are multiple servers) in the console (press ` to get in the console), where servername is the network name or ip address of the machine running server.bat. if all went well you should now be in the game together, as above.</li>
<li>If your LAN is connected to the internet, by default your server will register with the masterserver, and players could thus follow the procedure above to join the game: your server will show up in the list, and may thus be joined by people over the internet! If you want to avoid your server to contact the master server, you can start it with -mblah or something.</li>
</ul>

<h2 id="capture">Capture</h2>

<p>
This is the most complicated multiplayer mode so some explanation is required. This mode is centered around the idea of capturing and holding bases, and has similarities to
the game "battlefield 1942" and the "onslaught" mode of unreal 2004: "bases" are placed thruout the map
</p>

<p>
A base (flag) can be in 2 states: captured or neutral. When captured, it is
captured by a certain team. This is shown
by the texture its rendered with (red means enemy captured, blue means
your team, grey means neutral). When a base is captured, it will produce ammo periodically (every 20 seconds). Your team may take ammo (shown as ammo boxes orbiting the base) by either touching the base, or explicitly with the R key ("repammo" command).
</p>

<p>
A neutral base can be converted to your team by standing next to
it for N seconds (N = 7 or so) within a certain radius. Multiple players speed up
the process proportionally. The time accumulated to N is counted by the server as soon
as the first player enters the radius,
and reset to 0 immediately once all players of the initial team leave the radius.
</p>

<p>
A base of the enemy color can be converted to neutral in exactly the same way.
(so often it is a 2 step process to take over a base). However, it takes twice as long to convert an enemy base to neutral, as it does to convert a neutral base to your team.
</p>

<p>
Current team name and capture status is shown above the base using a text particle.
</p>

<p>
At the spawn of a map, all bases are neutral, and all players spawn at normal player spawns,
and try to capture whatever they can. Once bases are captured, players will
spawn at spawnpoints close to whichever of their bases is closest to an enemy base.
spawning will be preferred at bases which are not currently being captured by an enemy.
</p>

<p>
If a player dies, they wait M seconds before they can respawn again (M = 10 or so).
If you have no bases left (the enemy has captured yours, or at least made em neutral)
you will spawn at random spawnpoints. 
</p>

<p>
If all bases are captured by one team, then that team wins the game automaticaly. Alternatively, 
if this doesn't happen, at the timelimit the team that wins is the team
that has held the most bases for the most amount of time (1 point per X seconds for every
base in your color).
</p>

<p>
No points are awarded for kills or self-deaths. Infact, no individual score is ever displayed,
your score is the same as the team's score.
</p>

<p>
When you spawn, you are given a certain amount of ammo for randomly 2 weapons out of the
5 main ones, + pistol ammo. You will not be able to get more ammo unless it is placed in
the map, or if given to you by another player. Any other player can replenish your ammo
of types of ammo he doesn't have. I.e. if you have RL/MG and he has GL/MG, you can replenish
his GL ammo, and he can give you RL ammo.
</p>

<p>
A simple HUD shows bases relative to your current position in red or blue (can be a sphere with
blips on it, with blips on the border for faraway bases).
</p>

<h2 id="singleplayer_modes">Singleplayer Modes</h2>

<p>
There are two single player modes:
</p>

<ul>
<li>
(mode -3, command "/sp &lt;map&gt;"): a classical progress-based monsters-wake-up-when-they-see-you mode which is very similar to Doom &amp; Quake, and is played on maps specifically designed for SP. Items don't respawn.
</li>
<li>
(mode -2, command "/dmsp &lt;map&gt;"): an arena style SP mode (akin to my "DMSP" mod for quake) which you play on DM maps: 10 seconds after the game starts monsters start spawning in (currently about 1 per second), which will immediately be angry at you. The map ends when they all have spawned and they are all killed (either by you or by their buddies ;). The number of monsters depends on the "skill" variable. Items respawn as in DM.
</li>
</ul>

<p>
Either mode can be turned into "slow motion SP" by toggling the "slowmosp" var.
These modes that work the same as regular SP, except that the gamespeed is directly derived
from your health, so the more damage you take, the more in slow motion the game
plays. Slow motion, while in one way a punishment for your failures, also makes
it easy to escape enemy fire and land perfect hits, therefore allowing you to recover.
Besided that, it just looks/feels plain cool. These modes do not support the concept of
death, you are simply going "infinitely" slow at health = 1. To compensate, there
is health regeneration, which is faster the less health you have. Your score (see
SP respawning below) will be measured in real time, so any slow motion time negatively
affects your score ("simulation time" shown is the time you would have taken with
no slowdown at all).
</p>

<p>
The mode numbers can most conveniently be set over the singleplayer menu. In both cases, the map ends when all monsters are killed, or an end of level trigger is hit if one is available. Coop play is not supported yet.
</p>

<p>
There are currently 8 monsters, with the following properties (sorted roughly in order of "threat" they pose):
</p>

<table>
<tr>
<td>gun used</td>
<td>model</td>
<td>damage</td>
<td>stamina</td>
<td>speed</td>
<td>freq</td>
<td>lag</td>
<td>rate</td>
<td>loyalty</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>fireball</td>
<td>ogro</td>
<td>5</td>
<td>100</td>
<td>14</td>
<td>3</td>
<td>0</td>
<td>10</td>
<td>1</td>
</tr>
<tr>
<td>chaingun</td>
<td>rhino</td>
<td>7</td>
<td>70</td>
<td>18</td>
<td>2</td>
<td>70</td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>shotgun</td>
<td>ratamahatta</td>
<td>50</td>
<td>120</td>
<td>12</td>
<td>1</td>
<td>100</td>
<td>30</td>
<td>4</td>
</tr>
<tr>
<td>rifle</td>
<td>slith</td>
<td>25</td>
<td>200</td>
<td>12</td>
<td>1</td>
<td>80</td>
<td>40</td>
<td>4</td>
</tr>
<tr>
<td>rocket launcher</td>
<td>bauul</td>
<td>30</td>
<td>500</td>
<td>10</td>
<td>1</td>
<td>0</td>
<td>20</td>
<td>6</td>
</tr>
<tr>
<td>bite</td>
<td>hellpig</td>
<td>12</td>
<td>50</td>
<td>22</td>
<td>3</td>
<td>0</td>
<td>10</td>
<td>1</td>
</tr>
<tr>
<td>iceball</td>
<td>knight</td>
<td>10</td>
<td>250</td>
<td>8</td>
<td>1</td>
<td>0</td>
<td>1</td>
<td>6</td>
</tr>
<tr>
<td>slimeball</td>
<td>goblin</td>
<td>7</td>
<td>100</td>
<td>12</td>
<td>1</td>
<td>0</td>
<td>20</td>
<td>2</td>
</tr>
</table>

<p>
The models are just temp until I find some real monster models.
</p>

<p>
The damage given is for a single shot, where damage is simply a quarter of the equivalent player gun. For the shotgun this is if he hits you at point blank range, but is a lot less at distance. RL guy of course deals out splash damage too.
</p>

<p>
Stamina is the amount of damage taken before dying, speed is their movement speed in units/sec (player = 24), and freq is their relative frequency of spawning in DMSP mode.
</p>

<p>
"lag" is how long it takes them to press fire after they have decided they will shoot in a particular direction, which means you can out-strafe their bullets (but still get hit when standing still or moving towards them). The number is in msec on skill 0, and half as big on skill 10.
</p>

<p>
"rate" indicates how often they will attempt to shoot you while they have you in their sights. It is not an absolute fire rate measure, as fire rate is lower with distance and has some absolute minimum. Again, it is also dependant on skill (skill 10 fires twice as often as skill 0). "loyalty" indicates how often they have to be hit by another monster in a row before they fight back.
</p>

<p>
Other important parameters: monsters will at most jump down 4 units in height, unless their health is 100 or less, in which case they allways jump down.
</p>

<p>
As you can summise from the above, the keys to surviving in SP are: keep moving, preferably perpendicular to the monster line of sight, frequently move behind walls and back (this makes monsters search for you again, which delays them), and use monster infighting to your advantage.
</p>

<h3 id="sp_respawning">SP Respawning</h3>

<p>
Classic SP works differently from most FPS games that employ a savegame based system. The developers believe that the problem with savegames is that they
take away any tension in gameplay; since you play without fear because you can make frequent saves, and when you do have to reload, its just an annoyance
(or frustration, if you forgot to save for a while because it was going so well). Because of this, savegames will not be added to the game.
</p>

<p>
Instead of savegames, Cube 2: Sauerbraten employs a novel system based on respawnpoints (not to be confused with checkpoints, which are just an annoying version of savegames).
The major annoyance in other games comes from having to repeat the same thing, here, you can die, and still never have to repeat the same gameplay again, yet
you still have strong motivation not to die. This brings back the tension in gameplay, without the frustration.
</p>

<p>
The way it works that when you die, the world stays AS IS. Dead monsters stay dead, and alive ones just continue at their current location. You respawn, as if it were DM,
at your last respawnpoint. Respawnpoints are entities placed by the level designers in various spots throughout the level, and the game remembers the last one you touched.
You can touch these more than once.
</p>

<p>
When you respawn, the evil monsters will have stolen your armour, and most of your ammo (currently they take 2/3rds, unless you have 5 or less, in which case they don't take anything).
On the plus side, you will have all your health back (and you have kept any healthboost powerups!), and your starting supply of pistol ammo (see, the monsters are evil, but fair).
Even though you are punished for dying, you are never stuck, since even if a group of monsters is very hard to overcome, they will be easier every time you try, since the dead ones stay
dead (and the hurt ones stay hurt!). You may have to work with your pistol more, but that is part of the tradeoff.
</p>

<p>
An additional motivation to not die, is that deaths are the most important component in reaching a good score on a level. Every time you finish a level, you will see a printout like this:
</p>

<pre>--- single player time score: ---
time taken: 155 seconds
time penalty for 1 deaths (1 minute each): 60 seconds
time penalty for 21 monsters remaining (10 seconds each): 210 seconds
time penalty for lower skill level (20 seconds each): 140 seconds
time penalty for missed shots (1 second each %): 25 seconds
TOTAL SCORE (time + time penalties): 590 seconds (best so far: 423 seconds)
</pre>

<p>
This gives you the stats of your game. The overal score is something that will be displayed in the menus next to the map name, so you can try and improve your best score, and compare to others. These score values are saved accross runs of the game
(in bestscore_&lt;mapname&gt; aliases).
</p>

<p>
The final formula has been tweaked such that:
</p>

<ul>
<li>The number of deaths has the biggest impact on your score. You want to have 0 deaths for a good score.</li>
<li>The second most important thing is frags, you want to make sure you have killed all monsters.</li>
<li>The third most important thing is probably time... finish the map as quickly as you can</li>
<li>another component is accuracy, which reflects shots fired compared to damage dealt (which is not the same as damage taken, i.e. it does not take into account if a rocket is mostly wasted because the monster only had 10 health).</li>
<li>the last component is skill. If more agressive monsters don't phase you, then you can score more by playing on skill 10.</li>
</ul>

<h2 id="network_code">Network Code</h2>

<p>
You will notice that the engine plays and responds better on a high ping connection than most games out there; the reason for this is that just about everything is done clientside, not just movement (as is common in games today) but also aim (the fat client / thin server model).
</p>

<p>
The benefits of this are that the effects of lag are minimised, and someone on a 200 ping can compete on an almost even playing field with someone with a 20 ping, the disadvantages are mainly in that its harder to combat cheating. Further advantages for server admins are that servers use virtually no cpu, and very little bandwidth for a lot of clients (you can host a 4 player game on a modem!).
</p>

<p>
It is impossible to completely hide lag however, and these are some of the effects that can still show lag if you or someone you play with has a high ping / bad connection:
</p>

<ul>
<li>if the connection has packetloss. There is no direct indicator of packetloss, instead the "packet jump" figure is provided on the hud (use "showscores"). Packet jump says as much as the amount of milliseconds that pass between updates from the indicated player. If it is extremely variable, or is high(&gt;80) then your gameplay may be hampered (players jumping from place to place). Ideally it is a steady 40 or lower. A consistent packet jump is more vital to gameplay than ping.
There is also player prediction based on extrapolation using the physics model, in an attempt to be both as up to date as possible in relation to the game state, and as realistic with regards to physics. However, under packet loss this model breaks down and player movement becomes choppy.</li>
<li>if ping is high (either yours or someone you play with), some actions may appear lagged. The effect of ping is generally that the players in a game are effectively playing more and more seperate games, as someone with a high ping is "playing in the past". The local effects of this are masked out by client side movement &amp; aim, but may become noticable across players:
<ul>
<li>you may get hit by someone even though you are already out of his view. This is because he is aiming at your movements of a while ago, and his hits take a while to arrive back at you. You may therefore be hit by gunfire up to his lag + your lag milliseconds after you leave his FOV.</li>
<li>item pickup: you may be denied an item if you try to pick it up at virtually the same time as someone else (server decides who was "first"). Item pickup is server side, only when you hear the sound effect have you actually picked up the item.</li>
<li>players dying appears lagged. This will improve.</li>
</ul>
</li>
<li>if a player is severely lagged (or you are) he temporarily becomes a "ghost" that cannot be hit (if &gt;1sec packet jump).</li>
</ul>



<h2 id="multiplayer_online">Multiplayer Online</h2>

<p>
Besides the abovementioned client-side gameplay, the code is also open source, which makes it too easy to cheat with. Anyone can modify the source to add cheats, recompile, and join multiplayer games.
</p>

<p>
There is no real trivial way to combat this:
</p>
<ul>
<li>Moving the gameplay entirely serverside makes things a lot more complicated, hurts smoothness of gameplay, and still doesn't really solve the cheating problem</li>
<li>Cube 2's predecessor, Cube, had "official binaries" which differed from the Open Source version in a different network protocol. This helped combat cheating somewhat, but still not entirely.</li>
<li>A social solution, "Trusted Communities" was proposed, that would give players an identity, and only allow you to play on trusted servers if you were trusted by other players. This system could work well but requires a lot of infrastructure and organization</li>
</ul>

<p>
Cube and Cube 2 have rather small communities, and the main issue is not necessarily to combat cheating (a lost battle to start with), but more to allow non-cheaters to have undisturbed games together.
Hence Sauerbraten multiplayer has a very simple solution:
</p>

<p>
There is no cheat protection at all. Nada.
</p>

<p>
Servers operate in a so called "master mode" which allows people to easily and painlessly have games with people they know, without being disturbed by cheaters.
The way it works is very simple: the first person to enter a server and use the "setmaster" command becomes the "master" of that server. The master has 4 commands at his disposal which other players have not:
</p>

<pre id="setmaster">setmaster B</pre>
<p>
Attempts to set master status to B. 0 gives up master status, 1 claims master status, or the admin password may be specified to steal master status from the current master. If you specify a password, you are granted "admin" status, which allows you to enable server features that an ordinary master can't. 
</p>

<pre id="mastermode">mastermode N</pre>
<p>
Sets the server to master mode N. N can be (ranging from very open to very private):
</p>

<ul>
<li>0 (open): anyone can enter the server. This is the default mode. It is good for games with random people, if no cheaters appear to be around.</li>
<li>1 (veto): as 0, but now the master can force map changes. This is good when playing with new players who may not understand how to vote for map changes.</li>
<li>2 (locked): as 1, but anyone joining after this mode has been set will be forced to be spectator only. This mode is ideal for tournament play, or games with friends only.</li>
<li>3 (private): as 2, but now noone can join the server anymore. Good for games with friends when cheaters are around, cheaters wont even connect, so wont have the chance to try and screw things up.</li>
</ul> 

<pre id="kick">kick N</pre>
<p>
Kick's the player with client number N (displayed in parentheses next to name) off the server, and bans his ip until 4 hours or the server is empty. You can't kick yourself. N may also just be the player's name.
This command is useful when you started playing an open game, and a cheater joins. Additionally you can move to a higher mastermode for additional protection.
Don't use this command for anything other than cheaters or people otherwise obstructing games.
</p>

<pre id="clearbans">clearbans</pre>
<p>
Clears all previously set bans, as if the server were empty.
</p>

<pre id="spectator">spectator B [N]</pre>
<p>
Sets whether a player is a spectator (B=1 to enable, 0 to disable). N is specified as for kick. A player can voluntarily make himself a spectator, but only the current master can make other players spectators.
</p>

<pre id="goto">goto N</pre>
<p>
If you are a spectator, then this takes you to the location of player N (where N is a client number or the player's name).
</p>

<pre id="pausegame">pausegame N</pre>
<p>
Pauses a multiplayer game if N=1, or unpauses it if N=0. Requires admin privileges.
</p>

<p>
The important thing to see about these commands is that they don't prevent cheating, nor are necessarily a fair way of adminning a server. They just make it real easy to have fun games with friends without being disturbed by cheaters or people you don't want to play with.
</p>

<p>
In the event that a cheater is the master, or someone is being abusive with his masters powers, you can simply leave the server and start a game somewhere else. There are usually more servers than players anyway, and more players than cheaters.
</p>

<p>
If the current master leaves the server, other players may attempt to claim master status. Mastermode will be reset to 0 when this happens (also when the server clears). At any time, all
players will see who is the master in a game because his name is marked in a different colour on the scoreboard.
</p>

<h2 id="demo_recording">Demo Recording</h2>

<p>
You may record server-side demos during multiplayer games. You must have gained "admin" privileges by using the "setmaster"
command to enable demo recording for a match. Once enabled, the next map that is played will start recording a demo. Once this map finishes, the server
will provide the demo, so that any interested clients can download it. Demo recording is disabled automatically again for the next map, unless
it is explicitly enabled again. The server will only store a fixed number of demos, and the oldest demo will be removed to make room for new ones if
it already has the maximum number of demos (currently 5).
</p>

<p>
Demos may be played back via the special local "demo" mode (mode -1), where the map name is the name of the demo to be played.
</p>

<pre id="recorddemo">recorddemo B</pre>
<p>
Sets whether demo recording will be enabled for the next match (B=1 to enable, 0 to disable). Requires admin privileges.
</p>

<pre id="stopdemo">stopdemo</pre>
<p>
If in multiplayer, this command will finish recording a demo prematurely instead of waiting till the end of a match. Requires admin privileges.
</p>
<p>
If used during local demo playback, this will stop demo playback.
</p>

<pre id="cleardemos">cleardemos</pre>
<p>
Clears all demos from the server. Requires admin privileges.
</p>

<pre id="listdemos">listdemos</pre>
<p>
This lists all demos available on the server. Any client may use this command.
</p>

<pre id="getdemo">getdemo [N]</pre>
<p>
This command retrieves a demo from the server, where N corresponds to the demo number provided by the "listdemos" command.
If no number is specified, this command will get the most recent demo. The demo will be saved locally in the main directory as
a file with the extension ".dmo". Any client may use this command.
</p>

<pre id="demo">demo F</pre>
<p>
This alias sets the mode to -1 (the special demo playback game mode) and map to F, where F is the name of a demo file, but without 
the ".dmo" file extension. The "stopdemo" command may be used to terminate playback early when in this game mode.
</p>


<h2 id="movie_recording">Movie Recording</h2>
<p>
Cube 2 can record movies as uncompressed video and sound to AVI files. These files will grow very large very rapidly and so it is strongly recommended that they are compressed before sharing.
</p>

<pre id="movie">movie [filename]</pre>
<p>
Providing a filename begins the movie recording, without a filename stops the recording.
Small movies are stored as  "&lt;filename&gt;.avi", but when a movie file exceeds 1Gb then the movies are stored as multiple files "&lt;filename&gt;XXX.avi", where XXX is numbered in sequence 000 to 999.
</p>

<pre id="moview">moview W</pre>
<p>
The width (default is 320) of the movie (0 will use the current window width). The movie will be downsized appropriately.
</p>

<pre id="movieh">movieh H</pre>
<p>
The height (default is 240) of the movie (0 will use the current window height). The movie will be downsized appropriately.
</p>

<pre id="moviefps">moviefps F</pre>
<p>
The framerate (default is 24fps) at which to record the movie. Movie recording may prematurely stop if unable to record reliably at this framerate.
</p>

<pre id="moviesound">moviesound 0/1</pre>
<p>
Enable recording of sound with 1, disable with 0.
</p>

<pre id="movieaccel">movieaccel 0/1</pre>
<p>
Enable GPU-accelerated video encoding with 1, disable with 0. This is enabled by default, but may cause problems on some video cards. If you notice movie recording displaying strange results, try disabling this and see if it helps.
</p>

<h2 id="bots">Bots</h2>
<p>
Bots are supported in all multiplayer modes, so long as they have waypoints available to guide them. Bots range in skill from 0 to 100, with an extra skill level 101 making the bots as skilled as possible. You must either be master or playing locally to add or remove bots. At the end of a match, all bots are removed. 
</p>

<pre id="addbot">addbot [SKILL]</pre>
<p>
Adds a bot at skill level SKILL if provided, or defaults to a random skill level between 50 and 100 if not provided. You must be master or playing locally to use this command. Bots may only be added up to the server specified bot limit unless you are an admin or local player. This also causes waypoints to load if any are available for the current map.
</p>

<pre id="delbot">delbot</pre>
<p>
Removes a bot. You must be master or playing locally to use this command.
</p>

<pre id="botlimit">botlimit N</pre>
<p>
Sets the bot limit for masters to N. This limit does not effect admins or local players. Only admins or local players can use this command.
</p>

<pre id="botbalance">botbalance B</pre>
<p>
Enables automatic team balancing for bots if B=1 and disables it if B=0. Only masters or local players can use this command.
</p>

</body>
</html>