====== Server Modification and Maintenance Guide ====== There are not very many guides on Tremulous server modification/maintenance, so I've decided to create one here for the benefit of anyone who would like more information about it. ===== Modification ===== Servers rely on a special file called game.qvm. The [[http://tjw.org/tremulous/game.qvm|stock QVM]] has virtually nothing in the way of features. There are no /share or /donate commands and no server admin commands such as !map, !devmap, and !slap. In other words, it has none of the features you usually encounter on even the most low-quality servers. These features cannot be added to an already-existing QVM. You can either download and patch the Tremulous source code, which is a difficult and often time-consuming process, or you can download a precompiled QVM. [[http://www.mercenariesguild.net/patches/?do=details&task_id=69|Lakitu7's QVM]] has a good range of features. ==== Server.cfg ==== The easiest way to modify your server is to edit server.cfg. This contains all the cvars that are set on server startup. Note, however, that single-game cvars (like g_humanbuildpoints) can't be set in server.cfg. To create a script that will execute at the beginning of every map, you should add this to server.cfg: set g_mapconfigs "mapconfigs_folder_name" Now you need to create a directory with the same name as what you used in place of "mapconfigs_folder_name". Put it in your_tremulous_folder/base. Then create a config file called default.cfg containing the commands/cvars and save it in the mapconfigs folder. ==== Admin.dat ==== Adding simple admin commands is easy. Chances are you've already stumbled on a guide that tells you how to do this, but I'll write one here anyway. Note that you can't add arguments to admin commands. If you want to create a command that slaps and mutes a specified player to death, you're out of luck. You'll have to compile the QVM yourself or get someone to do it for you. Here is a sample admin command you could add to admin.dat: [command] command = ubp exec = set g_alienbuildpoints 999999999; set g_humanbuildpoints 999999999; cp ^2Unlimited buildpoints! desc = Enables unlimited buildpoints. levels = 6 7 This gives both teams 999999999 buildpoints (which is basically equal to infinity in Tremulous) and announces it to everyone in green text. You would use it by typing !ubp in the console, and it's only available to levels 6 and 7. The command's description is "Enables unlimited buildpoints." You could also clean up the command by changing exec to "exec ubp.cfg". You would then create a script called "ubp.cfg" containing the following commands, and save it to your_tremulous_folder/base. set g_alienbuildpoints 999999999 set g_humanbuildpoints 999999999 cp ^2Unlimited buildpoints! ==== !info ==== The !info command (if your QVM has it) displays server info. A guide to setting up !info can be found [[http://e|here]]. ===== Maintenance ===== What you do to maintain your server is up to you. However, these routines will help a lot: * Periodically reorganize admin.dat so the highest-level admins are at the top. * Occasionally erase admin.log and games.log so you don't have to go searching through them just to find out who deconned the Reactor/Overmind.