lakitu7_qvm.txt

manual in txt - Lakitu7, 02/16/2009 02:27 pm

Download (42.8 kB)

 
1
Lakitu7's Tremulous 1.1 Game.qvm
2
3
Current Version: 5.5
4
5
Download Links 
6
http://projects.mercenariesguild.net/projects/lakitu7-qvm 
7
Intro 
8
While playing on and administrating Tremulous servers, I found a distinct lack of a server package that a) Contains all of the features that I want b) Doesn't have any stupid crap that ruins the game as it was meant to be played. 
9
10
Thus, like many server owners, I began the task of making my own. While I originally intended to just put something together from existing patches, I quickly found that patches for many things that I wanted either didn't exist or weren't available. 
11
12
By the time I'd finished tracking down, separating, and creating my own patches, I'd done enough work to feel that I should distribute this QVM. Thanks to the encouragement of my friends asking for it, I eventually finished getting it to a releasable state. 
13
14
Nowadays, it's very difficult to find an American server that isn't running my QVM or one of the very many that have forked from it (mostly to add said stupid crap, but oh well...). Thus, I guess I'm doing something right. I continue to develop this package, leading the way in creating and incorporating all the code worth having, but none of the rest. 
15
16
Upgrade Install 
17
Upgrade install: Just drop the new game.qvm in place of the old one. Set new admin flags and cvars where applicable. 
18
19
Install 
20
Easy way 
21
Install a tremded binary appropriate for your OS (I recommend the MG Tremded, which I also work on: http://releases.mercenariesguild.net/tremded/) 
22
Install my compiled game.qvm to the appropriate location: 
23
.tremulous/base/vm/game.qvm in linux 
24
documents and settings/you/application data/tremulous/base/vm/game.qvm in windows 
25
26
Harder way 
27
First, get your tremded set up, as above. Then, 
28
Download SVN revision 966 (svn co -r966 svn://svn.icculus.org/tremulous/trunk directoryname) 
29
Apply my .patch 
30
make 
31
place in the correct location (see above) 
32
33
If you're using linux, you should already know how to compile things. 
34
35
If you're using Windows, use either of the excellent build guides at http://tremulous.net/phpBB2/viewtopic.php?t=3408 or http://tremulous.net/phpBB2/viewtopic.php?t=2672. 
36
37
Tremded Note 
38
Although this package was originally intended for it, a few rather nasty bugs are now widely known in TJW's tremded, so I can't really recommend using it anymore. Since my source includes a tremded backport patch and thus will generate a compatible teremded, feel free to compile one for your target machine that way. However, the better option for newer code and more features is the MG Tremded, which I also work on, available at http://releases.mercenariesguild.net/tremded/. 
39
40
Development 
41
Development is now (relatively) public. You are free to use the latest SVN version and test out things I've added before they get released. I guarantee that I at least test each thing once by myself before committing. After that, it goes in and begins testing on Puretrem and other servers. If you'd like to test as well, go for it. Just please report issues if you find them. 
42
Bug tracker: http://projects.mercenariesguild.net/projects/lakitu7-qvm/issues SVN: svn://source.mercenariesguild.net/lakitu7-qvm/ You can also view the revision log here, so you know what's changed: http://source.mercenariesguild.net/lakitu7-qvm/ 
43
44
Contact Information 
45
Forums: The Lakitu7's 1.1 QVM thread, tremulous.net forums, mods subforum 
46
IRC: Lakitu7 on Freenode, Dorksnet, or Synirc 
47
In-Game: }MG{Lakitu7, probably on Puretrem 
48
49
FAQ 
50
I want a QVM with features x and y, but not z. Will you compile one for me? 
51
Unless you're a good friend of mine and you have a darn good reason why you can't do it yourself, no. If you're running Linux, I'm sure you know how to compile your own anyway. If you're running Windows, see either of the excellent build guides linked in ``harder way.'' If you ask nicely and put forth the effort to learn to do things yourself, I may help you, but I won't do it for you. 
52
53
I don't want your QVM, but I do want patch X from it 
54
I've made EVERY patch that I have used available here: http://projects.mercenariesguild.net/projects/lakitu7-qvm/files 
55
56
I found a bug 
57
Well damn, tell me. Use the contact information above or report it at the bug tracker: http://projects.mercenariesguild.net/projects/lakitu7-qvm/issues. If it's part of a patch that I didn't make, then I'll still fix it, or I'll whine at whoever did to to fix it instead. 
58
59
I have a suggestion for a new feature. 
60
Maybe. If I don't see myself using something, I won't code it for you. But if the idea is good and I'd like to have it, perhaps. BUT, I have no interest in doing any fullscale mods that make sweeping gameplay changes. I do not have any interest in making any ``balance'' changes. If your suggestion is nice and can be implemented with a reasonable degree of effort, I'll think about it. You can make submissions either directly or via the bug tracker link above. 
61
62
You should add the Protoss/Predator/MDriver Turret/M4A1 Abrams Tank/BFG9000 
63
Hay man that's so cool how about you make it yourself and then post it on the forums. 
64
65
Update this for newer SVN revisions 
66
No, the code size has grown so large that it's basically impossible now. As of 5.3, I have begun directly incorporating the SVN revisions that fix bugs in game.qvm. In fact, I have finished doing so for those patches in SVN up until time of writing. However, I will not be merging EVERYTHING (ie refactors and style changes) for no tangible benefit. That'd just entirely burn me out of doing this very quickly, which wouldn't be very good for anyone. 
67
68
Patch/Feature List 
69
I have mirrored every patch that I've used here: http://projects.mercenariesguild.net/projects/lakitu7-qvm/files. 
70
You may use any patches that I have made for whatever you wish, but as with all GPLed code, follow the license: you must keep it open source. Other patches are available from their given sources. Patches that have multiple things are together because they don't apply together in their separate forms. I have linked their original separated versions where applicable. Merges from Tremulous SVN trunk are not listed or credited here, but they are in the changelog). 
71
72
Engine 
73
74
svn_950_to_tjw_s_tremded.patch 
75
Description: Backports SVN code to be compatible with 1.1 clients. QVMs generated are to be used with TJW's Tremded 
76
Author: vcxzet 
77
Source: http://www.mercenariesguild.net/patches/?do=details&task_id=2 
78
79
backport-tremded-up-to-1011.patch 
80
Description: Backports tremded (svn 1011 or less) to be compatible with 1.1 game.qvms. This has now been included so that you can use it to build a compatible tremded yourself. If you'd prefer to use your own, that's fine, but I wouldn't keep using TJW's anymore, since there's some bugs in that which are pretty nasty. 
81
Author: Me, with much help from Kevlarman 
82
83
Gameplay 
84
85
tjw-poison-system.patch tjw-no_chomp_during_pounce.patch 
86
87
Description: Balance changes from TJW's 1.1 QVM. You're likely used to all of them 
88
Author: TJW 
89
Source: http://tjw.org/tremulous/ (separated out by me) Info here: http://tjw.org/tremulous/FEATURES.txt 
90
91
dretchPunt+no_pounce_trample_ff.patch 
92
93
Dretchpunt: everyone knows what this is already 
94
Author: TJW 
95
Source: http://tjw.org/tremulous/ (separated out by me) 
96
97
No Pounce and Trample FF: turn frindly fire on pounce/trample on and off by g_friendlyFireMovementAttacks. Irrelevant if g_friendlyFire is off. 
98
Idea: Norfenstein/TJW. Rewritten for 1.1 by me 
99
Source: trem.tjw.org server autodownload 
100
101
mnp-share+risujin-donate.patch 
102
Authors: Martin Doucha, Risujin 
103
Source: http://tremulous.net/phpBB2/viewtopic.php?t=3014 , https://bugzilla.icculus.org/show_bug.cgi?id=2896 
104
Please turn these off. They ruin the game. g_allowShare 0 will turn off BOTH of them. I just have them because they're so damn popular that I can't not do it anymore. 
105
106
risujin-retribution.patch 
107
Teamkillers pay their victims for the price of their equipement. 
108
Author: Risujin 
109
Source: http://tremulous.net/phpBB2/viewtopic.php?t=3014 Separated out by me 
110
111
benmachine-antiblock940-5.patch 
112
Forcibly bumps players out of the way when they are blocking the spawn. This patch is disabled by default, for now. Set g_antiSpawnBlock 150 to try it out. 
113
Author: benmachine 
114
Source: http://www.mercenariesguild.net/patches/?do=details&task_id=70 
115
116
lakitu7-g_deconDead.patch 
117
Adds g_deconDead, which controls the ability to decon structures that have 0 health and are about to explode, causing damage. This was possible before g_markdeconstruct (r880), but was regardless of g_markdeconstruct's setting. g_deconDead defaults to 0 (svn behavior, cannot decon dead structures). g_deconDead reverts to the pre-880 behavior. 
118
Author: Me 
119
120
r1ch-team_imbalance_warnings.patch 
121
Sends a notice every g_teamImbalanceWarnings when the playercount between teams differs by at least 3. It also allows people to switch teams without losing their credits/kills during this circumstance. 
122
Author: R1CH (ported by me) 
123
Source: svn.quakedev.net 
124
125
das-iro.no-shove-for-placing-builder.patch 
126
Prevents shoving the builder when he is trying to place a building. No effect when g_shove is off. 
127
Author: Das-Iro 
128
Source: http://das-iro.de/tremulous/ 
129
130
Lakitu7+tjw-teamkill_messages_with_dmg_done+logging.patch 
131
Teamkill messages now have the amount of damage done by the killer to the killed. This is a sum over multiple hits, if applicable, and can be larger than the player's max health if it was done throughout healings/regen. This is so that admins and players alike can differentiate between ``grazed your foot with a rifle'' teamkills and ``hit you in the head repeatedly with a luci'' teamkills. 
132
Author: tjw (original tk messages patch), Me 
133
134
Lakitu7-ff_percentage.patch 
135
Friendly Fire cvars (g_friendlyfire, g_friendlybuildablefire, g_friendlyfiremovementattacks, g_friendlyfirehumans, g_friendlyfirealiens) are all now floating points. 0 is still off. 1 is still on, so you do not have to change anything to upgrade. However, values between 0 and 1 will multiply the damage by that amount, allowing friendly fire to be, for instance, on but half damage. 
136
Author: me 
137
138
Lakitu7+kevlarman-g_forceautoselect.patch 
139
When g_forceautoselect=1, players can only use autoselect to join a team. This is for use with servers where all players tend to go to one side or the other. 
140
Author: Kevlarman + me 
141
Idea: Khalsa 
142
143
googles+rezyn+lakitu7-builder_(requires_buildlog).patch 
144
Adds the /builder command. Players (and admins) can look at a building and use /builder to find out who built it. Admins with access to use !buildlog will also see the buildlog number of the item. This is useful for the !revert #number functionality, particularly in removing glitched buildings outside the map. It can also be used in free spec. The use of this command does not require any flag, unlike previous implementations. 
145
Author: Googles, Improved by Rezyn, then further improved by me 
146
147
kevlarman-cg_unlagged.patch 
148
Adds cg_unlagged, by which a player can turn off the benefits of unlagged hit-compensation, but only for himself. As with all cgame cvars added exclusively server-side, players must use /setu for this to do anything whatsoever. Players who wish to disable unlagged for their own hittests (does not affect how other players hit them) may use '/setu cg_unlagged 0' to do so. Everyone else who isn't a luddite can continue to use unlagged regardless. This cvar does absolutely nothing if g_unlagged is 0 on the server. Remember, only dirty foreigner commies don't use unlagged, but they're a part of the community too so I guess we can let them have their way =) 
149
Author: Kevlarman 
150
151
Admin System 
152
Lakitu7-listadmins_minlevel_parameter.patch 
153
Listadmins takes a second number parameter allowing you to filter results by admin level 
154
Author: me Requested by: many people 
155
Examples: 
156
!listadmins 0 2 
157
Lists all admins of level 2 and up, skipping none 
158
!listadmins 21 2 
159
Lists all admins of level 2 and up, starting at number 21. 
160
!listadmins lak 3 
161
Lists all admins with containing ``lak,'' level 3 and up. 
162
163
Lakitu7-register.patch 
164
Adds the !register command with admin flag R. When given to L0s, it allows them to become level 1 with !register. If they don't have a GUID, it tells them where to get one. When given to level1 and up, it allows them to update their "admin name" to their current one by !setlevel-ing them to their current admin level. 
165
Author: me 
166
167
Lakitu7-sees-full-listplayers-flag.patch 
168
Adds an admin flag $. People with this flag see the regular information in !listplayers. Those without only see ID, Team, mute/denybuild/etc., and Name. Makes it more difficult for random players to tell if there are admins present, removing the need for servers that have either removed !listplayers from l0s (bad idea) or given all admins the hide flag (which has the side effect of making them invisible to each other too) 
169
Author: me 
170
171
gate-!warn.patch 
172
!warn user reason 
173
Author: Gate Displays a big ol' message to your target that tells them that an admin is warning them for reason: reason and they should stop whatever they are doing and comply. I feel this is a much less abusable alternative to !slap 
174
175
benmachine-info-12.patch 
176
Adds !info [IMAGE png]topic[IMAGE png] admin command, usable by those with flag H. It Returns the text of a file from /info/info-topic.txt. See source and docs for more info. 
177
Docs: http://www.bandstand.org.uk/~benm/coding/done.php#buildlog-revert 
178
Author: benmachine 
179
Source: http://www.mercenariesguild.net/patches/?do=details&task_id=43 
180
181
Lakitu7-admin-true-name-in-banlog.patch 
182
Save admin's ``true'' name in the ban logs. ``True'' name is the one that shows up in !listplayers when they are using something else 
183
Author: Me 
184
185
lakitu7-l1command.patch 
186
Adds command !L1, usable by admin levels with flag S. !L1 user sets a level 0 user to level 1. Made to be used with g_minLevelToJoinTeam. 
187
Author: Me 
188
189
L0 command 
190
Adds command !L0, which sets a level-1 player back to level-0. This is designed to eliminate the frequent problem of people using !register on their name and then losing their GUID having to wait around for a high-level admin who can use !setlevel to help them out. 
191
Source: p-g-QVM 
192
Idea: Frequently requested by many 
193
194
avenger-mute_enhancements.patch 
195
Muted people can't change names, vote, or send PMs (or get around that with /tell) 
196
Author: Avenger (consolidated by me) 
197
Source: https://bugzilla.icculus.org/show_bug.cgi?id=2931 
198
199
avenger-adjustban-r948.patch and tjw-tremulous-svn939-ban.patch 
200
Fix the SVN 910 ban bug. !Adjustban command is now needed to change ban lengths on existing bans 
201
Author: Avenger, TJW 
202
Source: https://bugzilla.icculus.org/show_bug.cgi?id=3096 
203
204
Lakitu7-admfforceteamchange_overrides_locked_teams.patch 
205
Admin flag 5 can override locked teams 
206
Author: me 
207
208
Lakitu7-denybuild-denies-grangerclasses.patch 
209
Patches !denybuild so that it denies targets from using the granger/advgranger class as a whole so that it can be used against battle grangers. (As of 5.1, this actually works) 
210
Author: me 
211
212
Lakitu7-g_adminSayFilter.patch 
213
When g_adminSayFilter 1, filters display of !commands that were typed into the chat. 
214
Author: me. Idea: CU|Dyin 
215
216
kevlarman-specme999.patch 
217
!specme 
218
Author: Kevlarman I modified this to !specme instead because that seems to be what most people expect it to be called. Personally, I don't see why people can't just use /team spectate, but it's requested a lot, so here it is. 
219
220
Lakitu7+benmachine-pause.patch 
221
Adds the !pause command that allows you to pause and unpause the game in progress. People can only chat and use admin commands, while the game is paused. This is mostly useful in conjunction with buildlog/revert. 
222
Author: Benmachine, Me Idea: Benmachine 
223
224
benmachine - buildlog-17.patch 
225
Benmachine's masterwork, !buildlog and !revert: both improved for functionality and usability and included here officially for the first time. I suggest using these while the game is !paused, while you get the hang of them. See Ben's docs here: http://www.bandstand.org.uk/~benm/coding/done.php#buildlog-revert 
226
Author: benmachine 
227
228
rezyn-listmaps+maplog.patch 
229
Creates two new commands !listmaps and !maplog. 
230
!listmaps 
231
lists the maps on the server so that players can know which ones can be used for /callvote map. It can also take a parameter of some text to search for, eg. !listmaps atcs. 
232
!maplog 
233
shows the results of the last 5 maps. This is nice for folks that go take a break and come back to be like ``Who won last map?'' or to see whether folks have been stacking a particular teams for the last hour. 
234
Author: Rezyn 
235
Source: p-g-QVM 
236
237
critux-rotation.patch 
238
Adds the !rotation command, which lists the current map rotation and shows where in it the server currently is. Sounds reasonable enough to me. Flag is ``j'', same as !listmaps. I'd have called it !listrotation (and I think he would have too, from the look of the code) but that's too long for the !help listing. :( 
239
Author: Critux 
240
Source: Tremwars qvm 
241
242
rezyn-showbans_search.patch 
243
Allows !showbans to be given a parameter to search the list by name or IP. eg: !showbans unnamedplayer or !showbans 64.129. 
244
Author: Rezyn 
245
Source: p-g-QVM 
246
247
googles-banNotice.patch 
248
Appends the text of g_banNotice to the text of every ban reason as it is sent to the player (meaning that the banned players will see it, but you won't see it when viewing reasons in !showbans or admin.dat). Default is blank (off). The suggested use for this setting is to include a link to your forums etc. where people may appeal the ban. 
249
250
rezyn-g_adminMaxBan.patch 
251
Admins without flag 8 (can_perm_ban) can ban for a maximum of the time set by g_adminMaxBan. Bans by these admins for longer durations are shortened to this time. By my own addition, admins without the flag who do not specify any duration for bans will ban for this duration (instead of receiving an error message). Previously, these admins could still ban for something like 52 years, making the flag kind of useless. Default: 2w (2 weeks). 
252
Author: Rezyn 
253
Source: p-g-QVM 
254
255
Lakitu7+Amanieu-admin_stealth.patch 
256
Creates the new admin flag &. For admins with this flag, the announcement of their admin actions will use their registered admin name instead of whatever name they are currently playing as. This both gives accountability to the admin (so that players know which admin to complain about, instead of some alias) and allows the admin to hide the alias he may be using. There's no ``toggle'' for this because it is assumed that a player will use his admin name under most circumstances and use !register to keep that up-to-date. 
257
Author: Amanieu and I came up with this idea independently. He made it first, but I didn't like his implementation, so I remade it from scratch. 
258
259
Troy-Subnetbans.patch 
260
Admin Flag E allows use of !subnetban. Admin Flag W can be given to an admin to give them a by-GUID exception to any ip bans against them. 
261
Syntax: !subnetban [ban#] [CIDR mask] 
262
Example: '!subnetban 10 16' changes ban #10 to be a ban on XXX.XXX.*.* 
263
Example: '!subnetban 10 24' changes ban #10 to be a ban on XXX.XXX.XXX.* 
264
Example: '!subnetban 10 32' changes ban #10 to be a regular (non-subnet) ban 
265
You can use !showbans -subnet to show subnet bans 
266
Use of this command may make your admin.dat incompatible with other qvms that do not use the same patch. Use with caution! 
267
Author: ==Troy== 
268
269
New Text Modes 
270
Lakitu7-sayadmins3.patch 
271
I can't think of how many times I've wanted this feature, so I went ahead and made it. Admins frequently want to talk amongst themselves to make a decision without the whole server hearing it. Adds commands: /say_admins, /a It also works in chat and in server console/rcon Use of the command and receipt of its messages is governed by the cflag ?, given to levels 3, 4, and 5 (via *) by default. Server owners can choose whether or not regular players can use the command to send messages to active admins. This is set by g_publicSayadmins 
272
Author: me 
273
274
Lakitu7+Amanieu-admin_messages.patch 
275
Sends admins (those with the say_admins flag) a notice informing them when someone attempts to callvote against an admin, or tries to use an admin command they lack access to. When a teamvote kick or denybuild is called, admins not on that team also receieve notice of it via this system. 
276
Author: Amanieu, Me Idea: Collected 
277
278
rezyn-ban_check_fixes.patch 
279
(Re)adds a notice via the admin_messages system when a banned player tries to connect, now with flood protection to stop admins from getting spammed by this. 
280
Author: Rezyn 
281
282
avenger-say_area.patch 
283
Adds /say_area to send text only to teammates that are nearby. Use it for binds that aren't relevant to people not near you (nade!, retreating to base! etc.) 
284
Author: Avenger 
285
Source: none? 
286
287
benmachine-me-action939-4.patch 
288
Adds IRC-like /me command. It's useless, but fun. g_allowActions disables it. g_actionPrefix changes the text that appears before an action to denote that it is an action. 
289
Author: benmachine 
290
Source: http://www.mercenariesguild.net/patches/?do=details&task_id=5 
291
292
Lakitu7+googles+rezyn+benmachine-admin_cp+cp_to_team+newlines+wordwrap.patch 
293
This patch combines a bunch of functionality and patches related to CP (center-print): 
294
benmachine-cp1003M-1.patch 
295
Makes CP parse [IMAGE png] into [IMAGE png] and [IMAGE png]n into a newline. Author: Benmachine 
296
googles-admin_cp 
297
Creates a !cp command (flag Z) that admins can use to send CP (center print) messages. Author: Googles, with a few improvements by Rezyn. 
298
Lakitu7-cp_to_team 
299
!cp (and the console CP command) now takes an optional argument to specify team(s) to send the text to. Author: me 
300
Examples: 
301
!cp -h Did you guys just get deconned? 
302
!cp -s The server is full. Specs need to make room or leave 
303
!cp -as Only aliens and spectators can see this text 
304
Lakitu7-cp_wordwrap 
305
Makes cp (and the console CP command) automatically add newlines to word-wrap text instead of cutting it off. Word-wrapping is done intelligently at spaces between words whenever possible. Newlines inserted manually with [IMAGE png]n are still respected. Author: me 
306
307
Callvote-Related 
308
309
Lakitu7-tjw-avenger-martindoucha_sdmodes+sdvotes+poll+designate959.patch 
310
Description: g_suddenDeath, Sudden Death Modes, Poll (formerly custom), !Designate, vote designate. Denybuild and vote mute are now in SVN and thus are also included here. 
311
312
SDModes 
313
Adds different methods of sudden death. Author: TJW 
314
Source: http://tjw.org/tremulous/ (separated out by me) Info here: http://tjw.org/tremulous/FEATURES.txt 
315
316
SD Votes 
317
Allows /callvote sudden_death Author: Avenger 
318
Source: https://bugzilla.icculus.org/show_bug.cgi?id=2920 (modified heavily by me) 
319
320
g_suddenDeathVotePercent 
321
Author: me More than g_suddenDeathVotePercent must vote yes for Sudden Death votes to pass. This is in an effort to balance them. Set to 0 if you want to DISABLE them entirely. Defaults to 74. 
322
323
g_SuddenDeathVoteDelay 
324
Author: me Enter time in # of seconds (default 180) to begin sudden death after a SD vote passes. The idea here is that if SD votes become ``begin SD in 3 minutes'' instead of ``begin SD now,'' they are even less abusable. Change it to 0 for the old behavior. (Idea: }MG{Paper Cut) 
325
Note: As of 5.4, the g_suddenDeath cvar no longer has any known issues and will work when changed from the console, although you shouldn't really do it anyway for gameplay reasons. 
326
327
g_mapVotesPercent 
328
Author: me More than g_mapVotesPercent must to vote yes for map, draw, and map_restart votes to pass. 
329
330
Poll Votes: /callvote poll String goes here 
331
Allows the calling poll votes. Before r858, people would use /callvote map ``Is unnamedPlayer an idiot?'' Since that's diabled now by a check to verify that ``is unnamed player an idiot.bsp'' exists before calling the vote, I replaced it with poll. They DO nothing, but can be useful for an admin to ask a question of users on their server. Also has /callteamvote poll String goes here for things like /callteamvote poll Move to window room? Idea for teamvote version thanks to Benmachine. Quotes no longer need to be places around the text. 
332
Author: Me 
333
As of 5.1 you no longer automatically vote yes to poll votes 
334
335
Designate: 
336
Creates designated builders. Structures built by designed builders (or /protect -ed by them) cannot be deconned except by then or by another designated builder. Admins with flag # are perma-designated. Designate votes for players are enabled with g_designateVotes 1. 
337
Author: Martin Doucha (ported by me) 
338
Source: https://bugzilla.icculus.org/show_bug.cgi?id=2857 
339
340
Lakitu7-callvote-multiple-name-matches.patch 
341
Makes /callvote return a list of partial name matches when there are multiple matches for a string 
342
Author: me 
343
344
Lakitu7-teamvote_majority_wins.patch 
345
Teamvotes as they are in svn / as they were required a majority of people ON THE TEAM to pass. This patch makes them pass if the majority of voters voted yes, instead of having votes fail 4 yes - 1 no because the majority of the team didn't vote. At least 2 yes votes are still required to prevent a vote from passing 1-0. 
346
Author: me 
347
348
Lakitu7-vote2teamvote.patch 
349
When a player uses /vote and there is a teamvote occurring, but no global vote, forward their vote as a /teamvote. I hate making and including this patch, but it's a necessary evil because most players terribly fail at using anything that's not bound to a key by default. This won't be necessary anymore in 1.2, but for now, it's so that teamvotes actually have a prayer of passing, especially when combined with the above. 
350
Author: Me 
351
352
Rociante-vote_times3.patch 
353
Players cannot call a vote until they have been connected for g_voteMinTime seconds 
354
Players cannot call for a map change after g_mapvoteMaxTime seconds 
355
For both, setting the cvar to 0 disables. The restrictions are ignored for admins with no_vote_limit and when the player is the only one on the server. This patch is to cut down on the number of idiots that join a game just to spam a vote for atcs. 
356
Author: Rocinante 
357
358
Lakitu7-VoteReasons.patch 
359
It's back again, but now with less brokenness from people having spaces in their names. The syntax is: 
360
/callvote (whatever) -r reason. Spaces/multiple words are allowed in both the player name and the reason without issue. The reason may optionally be added to ANY type of vote. If g_requireVoteReasons=1, then reasons will be required for /callvote kick and /callteamvote kick. 
361
Examples: 
362
/callvote kick unnamed player -r this guy is deconning the base 
363
/callvote draw -r this map sucks 
364
/callteamvote denybuild newbie builder -r deconning turrets for teslas 
365
Author: me 
366
Idea: Risujin 
367
368
Critux-g_nextmap.patch 
369
At the end of a map, the contents of cvar g_nextmap will be loaded (if it exists) instead of advancing the map rotation. It will then be cleared to resume the rotation as normal unless overridden again. /callvote nextmap mapname will call a vote to set g_nextmap to mapname I extend my thanks and props to Critux for beating us all to making this patch that's been on many people's wanted lists for quite a long time. 
370
Author: Critux 
371
Source: Tremwars qvm 
372
373
Clan Scrim/Match/Practice Features 
374
lakitu7-restart_keepteams_switchteams+lock.patch 
375
Adds !restart keepteams, !restart switchteams, !restart keepteamslock, !restart switchteamslock 
376
Author: Me Useful for clan matches when you want to set things up, then !restart the round while keeping people on the teams they've just joined. Put "lock" afterward to auto-lock teams after the restart 
377
378
lakitu7-devmapNoGod+devmapNoStructDmg.patch 
379
g_devmapNoGod: Disables use of /god, /noclip, and /give health during /devmap. Useful during practices g_devmapNoStructDmg: Prevents damaging structures during /devmap. Useful during practices 
380
Author: Me 
381
382
lakitu7-g_minLevelToSpecMM1.patch 
383
Spectators with admin level < g_minLevelToSpecMM1 can only speak to other spectators. (/say_team, but not /say) Combine with g_privateMessages 0 to be uninterrupted by spectators during clan matches 
384
Author: Me 
385
386
lakitu7-g_minLevelToJoinTeam.patch 
387
Only users with admin level > g_minLevelToJoinTeam can join a team. Otherwise, they are forced to spectate. This can be used to quickly create a private server. 
388
Author: Me 
389
390
benmachine-notarget948-1.patch 
391
Makes the /notarget cheat work during devmap by having you be ignored by turrets and such when it's on. 
392
Author: benmachine 
393
Source: https://bugzilla.icculus.org/show_bug.cgi?id=3243 
394
395
Lakitu7-devmapKillerHP.patch 
396
When you die, tells you your killer's HP... but only in cheat mode (devmap) because I don't believe this should be given in real games. set g_devmapKillerHP 1 to enable. 
397
Author: me 
398
399
Misc. 
400
401
tjw+mkp+lakitu7+r1ch-follow-teammates-when-dead+stickyspec.patch 
402
When they are dead (and while in the spawn queue), players can spectator-follow their teammates. To activate, press button3 (by default, return or mouse3). This patch also includes sticky spectator functionality (which I had to mostly rewrite to work with dead-spec). As an aside, this patch is really really huge and was a giant pain in the ass, so please enjoy it. Idea: tjw, R1CH 
403
Author: tjw, Undeference, R1CH, Me 
404
405
wireddd+Amanieu_countdown+warmupmodes.patch 
406
Adds some minor enhancements to warmup time. A countdown is displayed in CP during warmup indicating how long until the the game begins (3 2 1 GO!). Also adds g_warmupmode. In mode 1 (default), players cannot join a team during warmup. That's how it's always been. In mode 2, players can join a team during warmup, but will not spawn until the game begins. 
407
Author: Wireddd, cleaned up by Amanieu 
408
Source: http://www.mercenariesguild.net/patches/index.php?do=details&task_id=164&project=2 
409
410
Wraths' patches 
411
002.tjw.www_download.patch 
412
009.peoro.building_messages.patch 
413
Lakitu7+peoro-change_team_messages.patch (peoro's patch, now with logging to games.log) 
414
014.peoro.namelog_shows_prohibition.patch 
415
017.npa.privmsg_to_console.patch 
416
022.kristall.nojoin_warmup_time.patch 
417
027.napkin.more_info_to_flag4.patch 
418
034.risujin.ckit_recovers_with_blaster.patch 
419
031.napkin.log_to_file_only.patch 
420
032.wolfwings.tremstats_log_team_class.patch 
421
035.pierre.realtime_stamp_at_mapstart.patch 
422
423
All of these are from http://wraths.dyndns.org/games/tremulous/patches/svn901 and their authors/functions are obvious from the filenames. Several notes: 
424
425
Black Names Fix: 
426
Fixes the bug with white nd black names. Black names are disallowed by this fix, as was intended by the original code. 
427
428
Lakitu7-disable-difficult-names2.patch 
429
Disallows names that are prolematic: those that begin with numbers or contain // or /* As of version 5.2, this also disallows names that contain characters which cannot be typed in-game, including control characters, extended ascii, `, and ~. Furthermore, it also disables names that begin with -, or contain a space followed by a -. That is, ``some-idiot'' is fine, but ``some -idiot'' is not. This change is allow the use of unix style command arguments that use - without confusion with player names. 
430
Author: me 
431
432
Lakitu7-mystats.patch 
433
Adds the /mystats command. Players can use it once per minute and during intermission Shows a variety of useful personal statistics that are tracked per-game such as builds, building kills, damage dealt, feeds, etc. 
434
Author: me 
435
436
foobar-NewbieNaming-0.90-899.patch 
437
Auto-renaming of unnamedPlayers to your choice + numbers 
438
Author: Foobar http://tremulous.net/phpBB2/viewtopic.php?t=3738 
439
440
rezyn-newbiename_noregister.patch 
441
Prevents names used by NewbieNaming from being !registered 
442
Author: Rezyn 
443
Source: p-g-QVM 
444
445
r1ch-unnamedplayer_join_warning.patch 
446
Prevents unnamedplayers from joining a team, instead telling them how to set a name. This does not affect players who have been renamed by newbienaming, as it is an alternative to newbienaming 
447
Author: R1CH (ported by me) 
448
Source: svn.quakedev.net 
449
450
risujin-svn929-admin_layout.patch 
451
Adds !devmap and !savelayout back to g_admin. Works with the existing implementation of !layout in SVN 
452
Author: Risujin 
453
Source: http://v1.risujin.org/pub/tremulous/admin_layout-svn929.patch.tar.gz 
454
455
avenger-g_maxGameClients.patch 
456
Do not allow more than g_maxGameClients to join a team. Connected clients beyond this amount can only spectate, creating spectator slots, R1Admin style. 
457
Author: Avenger 
458
Source: https://bugzilla.icculus.org/show_bug.cgi?id=2969 
459
460
philbordelon-floodprotection+lakitu7-enhancements.patch 
461
Prevents flooding of chat commands. Controled by g_floodMinTime. 0=off. Default: 2000. Admins with admin permission #2 (immune to flood protection & censorship) are immune. This permission was already in the admin system, but didn't do anything because it wasn't implemented yet. All forms of /say are protected by flood protection, along with PMs and admin commands. g_floodMaxDemerits lets you fine tune the harshness of the protection somewhat. See the source link for details. I defaulted it to 5000. 
462
Author: Phil Bordelon (Updated and given a few more features by me) 
463
Source (Original): https://bugzilla.icculus.org/show_bug.cgi?id=2811 
464
465
Lakitu7-g_clientUpgradeNotice.patch 
466
When g_clientUpgradeNotice 1, it informs players without a GUID that they should upgrade their client to receive faster map downloads and obtain a GUID, along with a link to where to get it (tjw's site). Notice is sent at connect and once per map change. 
467
468
trem-servers-prefixes for flag4.patch 
469
Adds [H][A][S] prefixes to team chat visible to admins with flag 4 
470
Author: www.trem-servers.com 
471
Source: ?? 
472
473
Lakitu7-remove-boost-warning-messages.patch 
474
Removes ``must be on humans / must be alive to use this command'' messages for BOOST 
475
Author: me 
476
477
Logging 
478
479
Lakitu7+benmachine-g_decolourLogfiles.patch 
480
Strips colors from games.log and admin.log to make them more human readable, machine searchable and take up less space. Controled via g_decolourLogfiles. 0 = off. 1 = on, but adds an extra parameter to clientconnect and clientrename messages that contains the names still in color. I hope that stats script can be updated to use this to allow them to continue to have colored names. 2 = on, without the modification to those lines by 1. This is ``compatability mode.'' Use it if your existing stats script breaks (but you don't mind it being decoloured, if applicable). Regardless of which option you use, this patch fixes color bleeding in console messages when using ttycon_ansicolor 
481
Author: Benmachine, Me 
482
483
Logging Patches 
484
Lakitu7-log_callvotes.patch 
485
Lakitu7-log_stageups.patch 
486
Lakitu7-mirror_adminlog_to_gameslog.patch 
487
Logs stage inreases, vote (and teamvote) calling, and vote (and teamvote) final results to games.log. Individual players' votes are NOT logged. Use of admin commands are also shown in games.log 
488
Author: me 
489
490
Bugfixes 
491
492
Lakitu7-luci-exploit-fix.patch 
493
My hacky, but working fix for Bug 3302 
494
Author: me 
495
496
Lakitu7-console-ignores-@-in-listplayers.patch 
497
Console/rcon doing !listplayers is not affected by admins with flag @ 
498
Author: me 
499
500
rezyn-sayargsoverrunfix.patch 
501
Fixes a buffer overrun bug that causes buffer text to be repeated/sent to the wrong players under certain circumstances I don't need to mention here. Rezyn fixed this before anyone even knew there was still a way to trigger it, then one was found, so it suddenly became useful. 
502
Author: Rezyn 
503
504
Amanieu-maprestart.patch 
505
If the next map in maprotation is the same as the one you're currently playing, do !restart instead of making everyone reload the same thing for no reason. 
506
Author: Amanieu 
507
508
Appendix A: COMPLETE list of admin commands and flags 1	cannot be vote kicked, vote muted
509
2	cannot be censored or flood protected TODO
510
3	never loses credits for changing teams
511
4	can see team chat as a spectator
512
5	can switch teams any time, regardless of balance
513
6	does not need to specify a reason for a kick/ban
514
7	can call a vote at any time (regardless of a vote being disabled or voting limitations)
515
8	does not need to specify a duration for a ban
516
9	can run commands from team chat
517
0	inactivity rules do not apply to them
518
!	admin commands cannot be used on them
519
@	does not show up as an admin in !listplayers
520
$	sees all information in !listplayers
521
#	permanent designated builder
522
&	uses admin stealth
523
?	sees and can use adminchat
524
B	!showbans display a (partial) list of active bans
525
C	!time show the current local server time
526
D	!listadmins display a list of all server admins and their levels
527
E	!subnetban adjust or change a subnet mask on a ban
528
G	!readconfig reloads the admin config file and refreshes permission flags
529
H	!info read the servers information files
530
K	!lock lock a team to prevent anyone from joining it
531
K	!unlock unlock a locked team
532
L	!devmap load a map with cheats (and optionally force layout)
533
L	!layoutsave save a map layout
534
L	!listlayouts display a list of all available layouts for a map
535
M	!map load a map (and optionally force layout)
536
N	!rename rename a player
537
P	!spec999 move 999 pingers to the spectator team
538
R	!register Registers your name to protect it from being used by others or updates your admin name to your current name.
539
S	!pause Pause (or unpause) the game.
540
U	!buildlog display a list of recent builds and deconstructs
541
V	!passvote pass a vote currently taking place
542
W	admin is exempt from bans against them (intended to exempt someone from a subnet ban)
543
a	!admintest display your current admin level
544
b	!ban ban a player by IP and GUID with an optional expiration time and reason.
545
b	!adjustban change the length or reason of a ban. time is specified as numbers followed by units w (weeks) d (days) h (hours) or m (minutes) or seconds if no units are specified
546
b	!unban unbans a player specified by the slot as seen in showbans
547
c	!cancelvote cancel a vote taking place
548
d	!allowbuild restore a players ability to build
549
d	!denybuild take away a players ability to build
550
e	!namelog display a list of names used by recently connected players
551
g	!designate give the player designated builder privileges
552
g	!undesignate revoke designated builder privileges
553
h	!help display commands available to you or help on a specific command
554
h	!specme moves you to the spectators
555
i	!listplayers display a list of players their client numbers and their levels
556
j	!listmaps Lists the maps on the server that are available for map votes
557
j	!rotation Lists the current map rotation and the current position in it
558
k	!kick kick a player with an optional reason
559
l	!L0 Sets a level 1 to level 0
560
l	!L1 Sets a level 0 to level 1
561
m	!unmute unmute a muted player
562
m	!mute mute a player
563
n	!nextmap go to the next map in the cycle
564
o	!maplog List the last several maps and their outcomes
565
p	!putteam move a player to a specified team
566
r	!restart restart the current map (optionally using named layout or keeping/switching teams)
567
s	!setlevel sets the admin level of a player
568
v	!revert revert one or more buildlog events
569
y	!allready makes everyone ready in intermission
570
w	!warn Warn a player to cease or face admin intervention
571
Z	!cp display a CP message to users, optionally specifying team(s) to send to
572
573
574
Default admin flags (if you do not create an admin.dat) 
575
5: * (everything) 
576
4: iahCpPkmBbewd?$ 
577
3: iahCpPkmwd?$ 
578
2: iahCpPwd 
579
1: iahC 
580
0: iahC 
581
582
Appendix B: New Cvars that were added g_lockTeamsAtStart	Used by !restart lock options. Don't mess with it yourself. I don't even think you can anyway
583
g_designateVotes	Default 0. 1 to enable /teamvote designate and /teamvote undesignate
584
g_clientUpgradeNotice	Default 1. 1 to enable, 0 to disable the notice
585
g_teamImbalanceWarnings	Default 30 (every 30 seconds)
586
g_adminSayFilter	Default 0 (off)
587
g_myStats	Enables /mystats. Default 1 (on)
588
g_publicSayadmins	Lets non-admins use say_admins to message active admins. Default 1 (on)
589
g_devmapKillerHP	Default 0 (off)
590
g_newbieNumbering	Default 0 (off)
591
g_newbieNamePrefix	Default ``Newbie#''
592
g_suddenDeath	Used by SD votes. As of 5.4 there are no longer any known issues with modifying it manually, but you still shouldn't for gameplay reasons.
593
g_suddenDeathMode	Default 0 (off / default 1.1 behavior) Note: 1 is the default SVN/1.2 behavior
594
g_friendlyFireMovementAttacks	Default 1 for compatability, Recommended 0 (turns off pounce/trample damage)
595
g_retribution	Default 0 (off)
596
g_suddenDeathVotePercent	Default 74. (> 3/4ths must vote yes to pass) Set to 0 to disable SD votes entirely.
597
g_SuddenDeathVoteDelay	Default 180. Time (in seconds) to wait before a successful SD vote is executed.
598
g_mapVotesPercent	Default 50. (> 1/2 must vote yes to pass)
599
g_allowShare	Default 0. Also controls /donate. Please leave this off, it ruins the game :(
600
g_minLevelToJoinTeam	Default 0
601
g_minLevelToSpecMM1	Default 0
602
g_dretchPunt	Default 1
603
g_devmapNoGod	Default 0
604
g_devmapNoStructDmg	Default 0
605
g_maxGameClients	Default 0 (no limit)
606
g_actionPrefix	Default ``* ''. Set to blank to disable actions.
607
g_antiSpawnBlock	Default 0 (disabled). Set to 150 to turn on.
608
g_deconDead	Default 0 (disallow deconning dead structures)
609
g_floodMinTime	Default 2000. Set to 0 to turn off flood protection
610
g_floodMaxDemerits	Default 5000. Fine tuning of flood protection. See docs for more info.
611
g_decolourLogfiles	Default 0 (off). Settings: 1 (on) 2(on, stats script compatibility mode). See docs for more info.
612
g_voteMinTime	Players cannot call a vote until they have been connected to the server for at least this many seconds. 0 to disable.
613
g_mapvoteMaxTime	Players cannot call a map vote after this many seconds of play. 0 to disable.
614
g_warmupMode	1 (default): Players cannot join until end of warmup 2: Players can join a team, but cannot spawn until end of warmup
615
g_requireVoteReasons	0 (default): off 1: Require players to specify a reason when calling kickvotes
616
g_forceautoselect	0 (default): off 1: Players may only select a team using autoselect
617
g_buildLogMaxLength	Controls the max length of the buildlog. Default 50.
618
g_banNotice	Appends this text to the end of every ban message as it's sent to the player. Default: (blank)
619
g_adminMaxBan	Admins without flag 8 can ban for a maximum of this length. Default: 2w
620
g_nextMap	Specifies a map that will be played after the current one, overriding the rotation. This is set automatically by /callvote nextmap, but can be changed manually via rcon as well.
621
cg_unlagged	Client-side userinfo cvar that turns off unlagged hit detection for that player. (This is not a server setting).
622
623
624
Appendix C: New Commands that were added 
625
/me /me_team 
626
/share 
627
/donate 
628
/say_area 
629
/say_admins /a (same thing) 
630
/protect /resign (designated builder stuff) 
631
/mystats 
632
633
Changelog 
634
The full changelog is no longer included here. Please see the accompanying changelog.txt. You may also wish to view http://source.mercenariesguild.net/lakitu7-qvm?view=rev for the SVN logs (which begin during version 5.2 development). 
635
636
Credits 
637
The following people contributed code, created included code, or provided help to make this possible: kevlarman, vcxzet, Napkin, Avenger, Risujin, r1ch, peoro, tjw, pierre, Khalsa, foobar, gate, Martin Doucha, Wolfwings, benmachine, Phil Bordelon, trem-servers.com, tuple, Das-Iro, Mexel, Techhead, Rocinante, Amanieu, Rezyn, Googles, Critux, Wireddd, ==Troy==, Thorn 
638
639
Also all of the MG/AA/Puretremulous servers and communities, who put up with my constant updating and testing and breaking of things :)